Linux mdadm RAID5 восстановление данных с одного диска не удалось, один диск неисправен
Невероятно, но у меня произошел сбой двух дисков в одном массиве Raid5 в течение двух недель друг от друга. Что означает, что массив мертв. Да да горячие резервы, не ленивые о замене неисправного диска, я знаю. Но давайте пройдем мимо этого.
Данные в некоторой степени подкреплены и не имеют решающего значения, поэтому меня это не особо паникует. Я все еще хотел бы попытаться спасти то, что я могу в любом случае.
Это программный 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".
Тем не менее, я все равно спрошу, и, пожалуйста, сообщите мне, если я ошибаюсь, или вы можете придумать, как извлечь некоторые данные без мгновенного сбоя диска из массива.
1 ответ
От руки попробуйте создать дамп умирающего диска на исправный диск, а затем добавьте исправный диск в массив.