Ладно. После обычной очистки мой MDADM RAID5 сообщает о mismatch_cnt = 16. Как я понимаю, это означает, что хотя ни одно устройство не сообщило об ошибке чтения, существует 16 блоков, для которых данные и четность не согласуются.
Вопрос № 1: Можно ли получить список этих блоков?
Вопрос № 2: Предполагая, что № 1 возможен, учитывая, что базовой файловой системой является EXT4, есть ли способ определить, какие файлы связаны с этими блоками?
У меня есть резервные копии на ближней линии, и в идеальном мире я мог бы просто сравнить живой массив с данными резервных копий, чтобы найти любые файлы, которые были незаметно повреждены. Но реальность такова, что резервное копирование 6 ТБ данных будет непомерно дорогим и отнимает много времени. Знание, где искать и что восстанавливать, значительно упростит ситуацию.
(Должен заметить, что я запускаю очистку RAID только с опцией 'check'. Запускать очистку с опцией 'repair' кажется ужасно опасным, потому что MDADM знает только, что данные или четность неверны, но не знает, какие именно. Таким образом, представляется вероятным, что 50% вероятности того, что MDADM угадает и восстанавливает неверные данные. Поэтому я хочу знать, какие файлы потенциально могут быть затронуты, чтобы я мог восстановить их из резервной копии, если это необходимо)
Любые предложения с благодарностью!
dmesg
или / var / log / syslog?icheck
+ncheck
вdebugfs
для идентификации файлов на основе смещения сектора.smartctl -a /dev/sda
и т. Д.), Или используйте любой другой метод, чтобы запустить короткий тест SMART на каждом диске и распечатать полный отчет. Весьма вероятно, что один из них умирает, и для того, чтобы вызвать общую тревогу о состоянии здоровья SMART, требуется серьезный ущерб.Ответы:
Извините, 'check' действительно записывает обратно в массив при обнаружении ошибки - см. Https://www.apt-browse.org/browse/ubuntu/trusty/main/amd64/mdadm/3.2.5-5ubuntu4/file /usr/share/doc/mdadm/README.checkarray
... так что может быть уже слишком поздно собирать данные, которые вы ищете, извините.
В более долгосрочной перспективе стоит отметить, что RAID5 (и 6, и 1) не имеют защиты от бит-гнили, которая, вероятно, является ситуацией, с которой вы столкнулись. Когда данные на одном диске становятся плохими, у них нет никакого способа определить, какая из данных хорошая против плохой. Я бы посоветовал планировать переход на файловую систему, которая проверяет контрольные суммы каждого диска, например, btrfs или zfs.
(RAID-5 действительно не следует использовать в новых развертываниях - и действительно не следует использовать там, где емкость необработанных дисков превышает 2 ТБ каждый - см. Http://www.zdnet.com/article/why-raid-5- перестает работать в 2009 году / )
источник