8

В течение последних нескольких недель я проводил много исследований по этой теме - и думаю, что близок к завершению своего выздоровления, насколько это возможно, по крайней мере. Короче говоря, я просто опишу проблему, не заполняя каждую крошечную техническую деталь.

Предположим, у вас есть несколько массивов RAID-5, каждый с 8 дисками, а затем объединены в один логический том LVM. Один из дисков затем умирает в одном из массивов, и во время перестройки вы сталкиваетесь с неисправимой ошибкой чтения на втором диске в этом массиве. И конечно, нет никаких резервных копий.

Я уже выгрузил данные с диска с URE на новый диск, только 5 КБ данных повреждены, все сгруппированы в очень маленькую область диска. Я также предполагаю, что, как только я соберу это MD-устройство, используя копию ddrescue, я умножу размер потери данных на количество дисков без контроля четности в моем массиве (таким образом, потеря данных 35 КБ) как на четность. расчеты для полос с использованием этих блоков будут некорректными.

Я прочитал и понимаю процедуру на http://smartmontools.sourceforge.net/badblockhowto.html, чтобы определить, какие файлы будут повреждены в такой ситуации, но моя проблема состоит в том, чтобы точно определить, какие блоки будут повреждены после MD перестроить, чтобы использовать в качестве входных данных для отладки. Выяснить все смещения, в которых метаданные md и lvm хранят, тоже не будет весело, но я думаю, что справлюсь с этой частью.

Могу ли я просто умножить все свои номера плохих блоков на 7, а затем предположить, что следующие 6 блоков после каждого из них также будут плохими, и затем следовать инструкциям LVM в руководстве, приведенном выше?

И чтобы быть ясным - я не занимаюсь ремонтом или переназначением плохих блоков, как описано в руководстве, я заменил диск и буду позволять md обрабатывать подобные вещи. Я просто хочу знать, какие файлы в файловой системе ext4 были затронуты.

1 ответ1

2

Вы все еще ищете помощь в этом? Один из способов, с помощью которого вы можете найти уязвимые файлы, - это отредактировать файловую систему в /dev /null. Tar будет жаловаться на любой файл, содержащий ошибку. Что-то вроде:

tar cf /dev /null /file /system /to /check

может сделать это для вас.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .