不幸的是mdadm
和mdadm.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
不起作用。
如果您对mdadm
Linux 软件 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>
与往常一样,您需要根据您的设置调整上面的设备名称,例如mdX
。md0
<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