use*_*205 5 software-raid mdadm
我在这里寻求一些建议。我有一台运行 Ubuntu 14 的弗兰肯机器,几年前我添加了一个四驱动器 RAID6,但遇到了问题。长话短说,其中两个驱动器插入了已失效的 PCI 卡。可能是硬件布局不好,但现在为时已晚。我重新连接了两个丢失的驱动器,它们又出现了。但是,数组无法组装并出现错误:
mdadm: /dev/md0 assembled from 2 drives - not enough to start the array while not clean - consider --force.
Run Code Online (Sandbox Code Playgroud)
我正在阅读,这篇文章说如果事件计数相距太远不要使用武力。在我的情况下是 300772 到 309。所以,相距有点远。它说强制组装最接近的,然后添加其他的。
因此,假设 sdb 和 sdc 是事件计数为 300772 的好事件,而 sdd 和 sde 是事件计数为 309 的坏事件。我应该强制组装 sdb 和 sdc。然后做一个标准的添加和增长?像这样:
mdadm --assemble --force /dev/md0 /dev/sdb1 /dev/sdc1
mdadm --add /dev/md0 /dev/sdd1
mdadm --grow /dev/md0 --raid-devices=3
mdadm --add /dev/md0 /dev/sde1
mdadm --grow /dev/md0 --radid-devices=4
Run Code Online (Sandbox Code Playgroud)
在重新增长阵列之前是否需要缩小阵列?
这看起来是一个安全的举动吗?
提前致谢
我想说你不需要增加数组。它会自动知道应该有 4 个驱动器。只需添加缺少的即可:
mdadm --assemble --force /dev/md0 /dev/sdb1 /dev/sdc1
# At this point I would test /dev/md0! mount, fsck, etc. (before destroyng the content of the other two disks.)
mdadm --add /dev/md0 /dev/sdd1
mdadm --add /dev/md0 /dev/sde1
Run Code Online (Sandbox Code Playgroud)
但有一点要注意。IMO Raid6 对于 4 个驱动器来说没有多大意义。我会使用 Raid10,它应该性能更好,并提供与 Raid6 相同的大小和冗余。
因此,您可以创建一个新的(降级的)Raid10,将旧的 raid 复制到新的 raid 并重建。
mdadm --assemble --force /dev/md0 /dev/sdb1 /dev/sdc1
mdadm --create /dev/md1 --level=10 --raid-devices=4 missing missing /dev/sdd1 /dev/sde1
dd if=/dev/md0 of=/dev/md1 bs=4M
mdadm -S /dev/md0
mdadm --add /dev/md1 /dev/sdb1
mdadm --add /dev/md1 /dev/sdc1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4395 次 |
| 最近记录: |