在重build时,mdadm RAID 5在2个驱动器中失败

我有一个3磁盘的RAID 5arrays( sdb sdc sdd

上个周末,我被提示说sdd失败了。 所以更换了驱动器,把它加回到arrays中,让它重build(1.5TB)

它停在约64%的错误,发现sdb也失败了。

我把sdd映像到一个新的驱动器( ddrescue )和sdb到一个新的驱动器( ddrescue )上。

sdb的副本只有3MB才能复制。 sdb有更多的问题(请注意,我不能得到一个新的驱动器,所以我的图像驱动器实际上大于1.5TB)

试图重新组装以前的驱动器:

 mdadm -A /dev/md0 /dev/sdb /dev/sdc /dev/sdd 

发生错误:

 mdadm: no recogniseable superblock on /dev/sdb 

我也尝试过 – 同样的结果

我也做了一些阅读有关恢复数组完全重新build设,所以我试过:

 mdadm --verbose --create /dev/md0 --level=5 --raid-devices=3 /dev/sdc missing missing 

sdc是唯一没有失败的驱动器,我打算让arrays启动并添加其他2个驱动器)

这导致:

 mdadm: RUN_ARRAY failed: Input/output error 

我真的在一个不好的地方听到。 我需要大量数据,大约1.2TB的东西,这是最坏的情况!

There is no backup.. This is the problem.

没有备份存储重要数据(在任何系统上,不pipe多么可靠)确实是这个问题!

没有备份,并且经历了没有适当恢复path的RAID 5故障模式,现在我们的英国朋友会称之为“ Right Royally Rogered ”(实际上他们可能会使用更丰富多彩的语言)。


在这一点上你有两个select:

  1. 哭。
  2. 联系数据恢复公司,解释发生了什么事情,并向他们交付王位赎金,试图通过黑暗的魔法仪器从故障磁盘的离合器中提取数据。

(1和2不是相互排斥的 – 事实上,当你看到(2)的价格时,你可能会做(1)…)

你可以考虑这是一个学习经验,并定期备份和恢复testing的重要性昂贵的对象的教训…

我只是想更新每个人的解决scheme。

最终结果我把所有的数据都拿回来,除了两个文件,这就是我所做的

  • 在重build期间安装好的驱动器和失败的驱动器
  • 强制mdadm创build1个驱动器丢失的arrays,并设置标志,以便所有的磁盘都是干净的
  • 使用MC(午夜指挥官)开始按文件夹复制文件夹。 一旦mdadm检测到arrays上的错误,它会吐出一些错误,mdadm会从arrays中删除驱动器,从而使数组无法。 MC会给我一个阅读错误(完美,因为我不希望它应对腐败的数据)。 记下挂上的文件
  • 卸载arrays,停止mdadm,然后用2个驱动器再次重新启动,标记为干净
  • 跳过文件卡住了。

无论如何,我能够恢复除2个文件的所有数据。 我希望这可以帮助任何人进入这种情况。 我也回到了RAID-1。 至less在RAID-1中,如果1个驱动器有坏扇区,我仍然可以恢复数据而不必使用mdadm。

PS – 我已经吸取了教训,并将备份添加到另一个驱动器。

谢谢大家。

切勿在慢速磁盘上使用RAID 5,也不要在软件RAID上使用它。 也不要使用它,除非你有一个像样的突袭卡自己的caching和失败前分析。