Назад | Перейти на главную страницу

Восстановление данных Linux mdadm RAID5 с одним диском не удалось, один диск вышел из строя

Маловероятно, что у меня вышли из строя два диска в одном массиве Raid5 в течение 2 недель один за другим. Это означает, что массив мертв. Да да hot spares не поленился заменить вышедший из строя накопитель я знаю. Но давайте перейдем к этому.

Данные несколько зарезервированы и не имеют критического значения, поэтому я не особо паникую по этому поводу. Я все равно хотел бы попытаться спасти то, что могу.

Это программный RAID5 с 4 устройствами, настроенный с помощью mdadm. Приводы следующие:

/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 имеет только несколько плохих секторов, я хотел бы верить, что большую часть данных можно восстановить. Когда я собираю массив с помощью

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, рейд становится неактивным, и монтирование не выполняется.

Есть ли способ предотвратить сбой диска mdadm при обнаружении сбойного блока? Какой флаг отладки я могу установить? Что-то? Я понимаю, что некоторые данные будут повреждены, а некоторые чтения завершатся ошибкой.

Я предполагаю, что то, о чем я прошу, невозможно, хотя я не вижу теоретической причины, по которой это должно быть. Устройство RAID может просто сказать ошибку ввода-вывода, как и сам диск. Но я полагаю, что если единственный способ избежать сбоя dd на плохих блоках нормального жесткого диска - это использовать вместо этого другую программу dd_rescue, я вроде как полагаю, что то же самое в конечном итоге будет верно с mdadm, за исключением того, что я сомневаюсь, что есть что-то подобное как «mdadm_rescue».

Тем не менее, я все равно спрошу и, пожалуйста, просветите меня, если я ошибаюсь, или если вы можете придумать способ вытащить некоторые данные без мгновенного сбоя диска из массива.

Не в последнюю очередь попробуйте сделать дамп умирающего диска на исправный диск, а затем добавьте исправный диск в массив.