如何使用 Linux RAID 启用“--write-mostly”?

如何使用 Linux RAID 启用“--write-mostly”?

不幸的是mdadmmdadm.conf手册页不太符合标准。我想--write-mostly为我的 RAID 启用标志,但手册页和互联网都没有告诉我如何操作。我不知道在哪里可以放置默认参数mdadm,也不知道它何时启动以及通过什么启动。

看起来添加此信息的合理位置是mdadm.conf,但未提及该标志man mdadm.conf。我在哪里以及如何启用--write-mostly

答案1

您可以将设备设置为主要进行写入,例如,

echo writemostly > /sys/block/md0/md/dev-sda1/state

并清除主要写入状态

echo -writemostly > /sys/block/md0/md/dev-sda1/state

请注意,你可能需要 root 权限才能成功执行此操作,并且

须藤回声状态> /sys/block/md0/md/dev-sda1/state

不起作用。

如果您对mdadmLinux 软件 RAID 还有其他疑问,请发帖至

[email protected]

(您无需订阅)。

您在回答中提到的内核崩溃错误已在 2012 年 1 月及以后发布的 Linux 内核版本(3.1.10、3.2.2 和 3.3-rc1)中得到修复。它仅影响所有设备均为“主要写入”的阵列。

答案2

已经过去一个多星期了,现在来回答我自己的问题:

mdadm显然,当您创建新的 RAID 阵列时,您会将其作为命令行参数传递;只需采用手册页中的示例并添加--write-mostly。手册页说,它之后的所有设备都将启用写入主要功能;这是模糊的语言,所以我只能假设它意味着合理的事情:它适用于下一个参数。

然而,在内核 3.1(2011 年 10 月发布)上,尝试--write-mostly/在某些关键步骤中--write-behind触发了恐慌,并破坏了我的 RAID 阵列。[something...]scsi.c

此外,如果您要拆分阵列,请确保您知道自己在做什么。我发现我的阵列有新的 UUID(可能是由于新的主元数据版本)并且不确定如何继续。

答案3

您可以从 raid 中移除组件驱动器,然后使用“主要写入”标志重新添加它。这将是永恒的改变数组。

将组件驱动器标记为故障:

mdadm /dev/mdX --fail /dev/<component>

从阵列中移除驱动器:

mdadm /dev/mdX --remove /dev/<component>

重新添加带有“write-mostly”标志的驱动器:

mdadm --add /dev/mdX --write-mostly /dev/<component>

与往常一样,您需要根据您的设置调整上面的设备名称,例如mdXmd0<component>sdb2

阵列将重新同步并显示选择为“主要写入”的驱动器的 (W):

# cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sdb2[0](W) sda2[1]
      116896768 blocks super 1.2 [2/2] [UU]
      bitmap: 1/1 pages [4KB], 65536KB chunk

相关内容