一个驱动器的Linux mdadm RAID5数据恢复失败,一个驱动器失败

不可思议的是,我有两个驱动器在两个星期内在同一Raid5arrays失败。 这意味着arrays已经死亡。 是的是的热备件不懒惰关于更换失败的驱动器我知道。 但让我们移过去。

数据有一定的支持,而不是至关重要的,所以我并不特别恐慌。 我仍然想尽力挽救我所能做的。

这是一个由mdadm设置的4设备软件RAID5。 驱动器如下:

/dev/sde - device 0, healthy /dev/sdf - device 1, first failure, hard failure, totally dead /dev/sdg - device 2, second failure, badblocks reports a few bad sectors /dev/sdc - device 3, healthy 

我想你可以看到我要去哪里。 鉴于SDG只有很less的坏扇区,我想相信大部分数据是可以救救的。 当我重新组装arrays

 mdadm --create /dev/md0 --assume-clean --level=5 --raid-devices=4 /dev/sde missing /dev/sdg /dev/sdc 

我没有得到任何抱怨,设备在降级模式下组装并开始正常工作。 当我尝试安装它时,会出现问题。 只要我跑

 mount -t ext4 /dev/md0 /mnt/raid 

在这个时候检测到坏块,/ dev / sdg出现故障,只有/ dev / sde和/ dev / sdc仍然可用,raid变为非活动状态,挂载失败。

有一些方法可以防止mdadm在检测到坏块后立即使驱动器发生故障吗? 一些debugging标志,我可以设置? 什么东西? 我意识到一些数据将被破坏,一些读取将失败。

我猜我所问的是不可能的,尽pipe我没有看到它需要的理论原因。 RAID设备可能会像驱动器本身那样说I / O错误。 但我认为,如果要避免在一个正常的硬盘驱动器的坏块失败的唯一方法是使用不同的程序dd_rescue,而不是一样的将最终成为真正的mdadm,除非我怀疑有这样的事情作为“mdadm_rescue”。

不过,我仍然会问,如果我错了,或者你可以想办法把一些数据拉出来,而没有立即崩溃的驱动器,请给我启发。

不要手,请尝试将垂死的驱动器的磁盘转储到一个健康的驱动器,然后将健康的驱动器添加到arrays。