恢复已经在降级模式下运行的RAID-5(丢失了第二个磁盘)

这是愚蠢的,这是以前发生的,我想出了如何解决这个问题,这很好。

我在Ubuntu 7.10服务器上运行RAID-5中的4个500GB SATA驱动器。 其中一个磁盘发生故障(实际上我认为它是热插拔磁带盒中的一个连接器),并且在findreplace的硬盘驱动器或进一步诊断问题时,它已经从三个磁盘中运行。

现在,在你进一步阅读之前,不,我没有备份,信息不是非常重要,只是很好。

无论如何,有一次,我有一些HW打嗝,也许权力出去了什么,我有问题恢复arrays。 这不是一个磁盘失败,这是另一回事。

我能够简单地加回第二个“失败”的磁盘,几分钟后,我又恢复正常运行了。 也许我必须运行某种文件系统检查,我不知道。

我花了几个小时,如果不是几天,就去弄清楚如何去做,然后忘记了。

问题的关键在于,如果我在sdb,sdc和sdd上运行mdadm –examine,sdd认为它仍然是数组的一部分,但是在sdb和sdc的超级块信息中,它将sdd列为已删除。

sda是很久以前失败的磁盘,它被正确地列在所有的故障中。

TIA。 有问题的服务器不在互联网上,因此不可能将C&P的各种命令输出到论坛上。

我知道,现在很多人可能认为我是个笨蛋,或者更糟。 不过,我记得有一次,我想出了一系列的命令来运行,这是一个相当简单的过程,它很好。

如果驱动器没有真正的失败,而是暂时不可用,或由于其他原因不同步,您可以尝试强制联机,忽略每个成员的更改号码/时间戳。

通过这样做,您可能会损坏数据,特别是如果您不知道哪个驱动器最后脱机 – 但听起来您没有多lessselect。

阅读在mdadm手册页中使用–force选项的各种方法。

如果其中一个驱动器实际上发生了故障,另一个驱动器不同步,那么您仍然可以将在线提供的raid作为发生故障的驱动器的设备ID“ – missing”,并加上–force选项。 这应该开始袭击作为退化。

RAID5是否应该从双磁盘故障中恢复? 我认为这不应该。 你正在寻找的可能是热删除和热添加驱动器到RAIDarrays的命令。

mdadm --remove /dev/md0 /dev/sdX mdadm --add /dev/md0 /dev/sdX 

如果其他人失败了,你可以使用raidextract: http : //www.chiark.greenend.org.uk/~peterb/linux/raidextract/

你可以这样做:

 mdadm --stop /dev/md0 mdadm --assemble --force /dev/md0 /dev/sdX /dev/sdY... 

只记得给驱动器在他们最初的创build和相同的条纹大小等相同的顺序。此外,我build议先成像驱动器。

你可以试试mdadm --create /dev/md0 --level=5 --raid-devices=4 missing /dev/sd{b..d}

我从LinuxQuestions线程和Ubuntu线程调整

谢谢您的帮助。 我试着明确指出要组装的成员,我会得到像“缺less:设备找不到”

所以我尝试了一下数组的开始,它像一个魅力。 不需要记住设备的顺序或类似的东西。