Восстановление Raid HP с двумя вышедшими из строя дисками

Из Сургута прислали на восстановление данных Raid 5 HP массив из 8-ми SAS дисков EG0146FAWHU, где вышли из строя два, и массив после этого перестал работать.

Восстановление Raid HP с двумя вышедшими из строя дисками

После проведения диагностики, необходимых работ по выводу неисправных дисков в технологический режим и считывания со всех дисков посекторных копий в файл образ, встала задача по виртуальной сборке массива. Определив порядок дампов, размер блока, Parity Delay и ротацию, при попытке собрать массив получаем вот такой сообщение:

Data/parameters not plausible for a Raid 5, parity inconsistent, что говорит о не согласующихся блоках в сборке.

Чаще всего выход из строя рэйд-5 массива HP, и не только, происходит следующим образом: ломается один диск и Raid работает в режиме Degraded какое-то, нередко продолжительное, время. Потом ломается второй диск и рэйд «разваливается». В результате, если снять образы со всех участников массива и пытаться виртуально собрать из них итоговый образ Raid, то та или иная часть данных будет разрушена, по причине того, что один диск будет неактуальным.

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

Можно конечно методом перебора провести 8 вариантов сборки, отсортировать данные по дате изменения, выгрузить последние, проверить. Но на это уйдёт масса времени. На помощь приходит такой метод, как энтропийный анализ, суть которого заключается в том, что все участники массива сканируются в произвольном месте, в результате чего строится график уровня энтропии по выбранному размеру блоков, и картина становится очень наглядной.

Не нужно быть Эйнштейном чтоб на этой картинке сразу опознать явно выбивающегося из общей картины участника.

Соответственно вместо такой сборки

Надо использовать вот такую.

Ещё один интересный момент — в MBR был описан только один том, и если строить массив с 0-го сектора, то сборка для второго раздела перестаёт быть валидной.

Первый раздел

Второй раздел

На помощь опять пришёл WinHEX. Переходим на первый сектор неразмеченной области — Unpartitioned space,

поиск по первому сектору с содержимым отличным от 00h, находим MBR, смотрим его смещение на исходном диске

и второй раздел получаем, применив сборку с учётом найденного смещения.