我有一个包含 3 个磁盘的 RAID 5 阵列(sdb sdc sdd
)
上周末我被提示sdd
失败了。所以更换了驱动器,将其重新添加到阵列中并重建它(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
我也尝试过--force
,结果相同
我还阅读了一些有关通过完全重建来恢复阵列的资料,因此我尝试:
mdadm --verbose --create /dev/md0 --level=5 --raid-devices=3 /dev/sdc missing missing
(sdc
是唯一没有出现故障的驱动器,我打算启动阵列并添加其他 2 个驱动器)
这导致:
mdadm: RUN_ARRAY failed: Input/output error
我的情况确实很糟糕。我需要很多数据,大约 1.2TB,这是最糟糕的情况!
答案1
There is no backup.. This is the problem.
存储重要数据(在任何系统上,无论多么可靠)而没有备份确实是个问题!
由于没有备份,并且经历了 RAID 5 故障模式,没有适当的恢复路径,你现在就是我们英国朋友所说的“右皇家罗杰“(实际上他们可能会使用更丰富多彩的语言)。
此时你有两个选择:
- 哭。
- 联系一家数据恢复公司,解释所发生的事情,并向他们提供一大笔赎金,以尝试进行黑魔法仪式,从故障磁盘的魔爪中提取数据。
(1 和 2 并不互相排斥 - 事实上,当您看到 (2) 的价格时,您可能会做 (1)...)
您可以将此视为一次学习经历,以及一次昂贵的示范课,以说明定期备份和恢复测试的重要性……
答案2
我只是想向大家通报解决方案。
最终我恢复了除 2 个文件之外的所有数据,以下是我所做的
- 安装了良好的驱动器和重建过程中发生故障的驱动器
- 强制 mdadm 创建缺少 1 个驱动器的阵列并设置标志,以便所有磁盘都干净
- 使用 MC(午夜指挥官)开始逐个文件夹复制文件。一旦 mdadm 检测到阵列上的错误,它就会吐出一些错误,mdadm 会从阵列中移除驱动器,从而使阵列无法使用。然后 MC 会给我一个读取错误(太好了,因为我不想让它继续复制损坏的数据)。记下它挂起的文件
- 卸载阵列,停止 mdadm,然后使用 2 个驱动器重新启动,将它们标记为干净
- 跳过卡住的文件。
无论如何,除了 2 个文件外,我能够恢复所有数据。我希望这对遇到这种情况的任何人都有帮助。我也回到了 RAID-1。至少在 RAID-1 中,如果 1 个驱动器有坏扇区,我仍然可以恢复数据,而无需使用 mdadm。
PS-我吸取了教训,并将备份添加到了另一个驱动器。
谢谢大家。
答案3
永远不要在慢速磁盘上使用 raid 5,也不要将其用于软件 raid。除非您拥有一块性能良好的 raid 卡,并拥有自己的缓存和预故障分析功能,否则也不要使用它。