Восстановление данных с RAID.

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

В опыте принимали участие: корзина с четырьмя дисками Fujitsu MAW3073NC, SCSI-контроллер и ПО — R-Studio и RAID Reconstructor. Прежде всего, благодарствую товарищам предоставившим мне SCSI-контроллер и ПО для опытов. Мир не без добрых людей!

Анамнез говорил лишь то, что сервер вдруг перестал запускаться, а установленный в нём RAID-контроллер внезапно потерял массив.

Adaptec 2130S

Первым шагом в восстановлении данных с любого носителя является снятие образа. Логика тут проста — характер повреждения неизвестен и чтобы не напортачить ещё больше вся дальнейшая работа по восстановлению идёт уже с образом, а носитель лежит в сторонке. На самом деле, множество программ умеют снимать образ с HDD, но поскольку в моём распоряжении только R-Studio и RAID Reconstructor — я снял поочерёдно образы с каждого диска с помощью R-Studio. Процесс интуитивно понятен — правой кнопкой мыши щелкаем по диску и выбираем “Создать образ”.

R-Studio создание образа

В результате у меня получилось 4 несжатых (то бишь, один в один) образа диска, которые теперь можно открыть в том же R-Studio через меню Диск и начать работу.

R-Studio открытие образа для работы

Какой же массив можно создать из 4 дисков по 73 GB? Самым разумным по соотношению отказоустойчивость/объем представляется RAID 5. Итак, создаем виртуальный RAID и мышкой перетаскиваем в него диски по очереди.

R-Studio создание виртуального RAID

Дальнейшая суть операций такова: меняя порядок расположения дисков (вверх/вниз) и параметров RAID нужно добиться того, чтобы наш виртуальный RAID показал содержимое массива. Поскольку у меня о параметрах массива были только догадки — пришлось уповать на Авто определение.

R-Studio автоопределение параметров RAID

К сожалению, нужных смещений RAID найти не удалось. Предполагая, что один диск мог давно выйти из строя, я попробовал добавлять 3 диска + пустой (“Добавить отсутствующий диск”), пробовал различное варианты по 3 диска на случай, если один из четырех дисков работал, как hotspare — всё безуспешно. Также пробовал сканировать массив не смотря на то, что параметры RAID определить так и не удалось. Для этого нужно щелкнуть правой кнопкой мыши на “Виртуальном RAID” и выбрать “Сканировать”. В файловых системах были убрано всё, кроме NTFS — остальное показалось нелогичным на W2k3 сервере. :)

R-Studio сканирование

После сканирования в Виртуальном RAID появилось куча фрагментов:

R-Studio результат сканирования

В каждый из них можно заходить и просматривать данные. Что ж, хоть файловую систему угадал.

R-Studio распознанный RAID

Засада в том, что без определения смещений вся эта куча данных — просто мусор. Восстановить можно только файлы, размер которых не превышает размер кластера.

На арену выходит RAID Reconstructor. По началу он прикидывается, что не знает формата *.dsk, но если при открытии образа в типе файла выбрать All Files, то он запросто их подгружает и работает. Отмечу, что шаги в нём не только интуитивно понятны, но ещё и пронумерованы — промахнуться сложно.

интерфейс RAID Reconstructor

После выбора типа RAID, количества дисков и монтирования образов, нажимаем на Open drive (образы должны быть не заняты другой программой, а RAID Reconstructor должна быть запущена от имени администратора). Затем, во втором шаге выбираем Analyze. В настройках сканирования можно пометить все варианты, а также выбрать начальный сектор, добавить своё значение кластера и количество секторов для тестирования.

RAID Reconstructor определение параметров

К сожалению и тут меня постигает неудача.

RAID Reconstructor

Практически ничего не смысля в структуре файловой системы я решаюсь на отчаянный шаг — возвращаюсь в R-Studio для исследования каждого диска в редакторе дисков. Открыть диск в редакторе — это просто. Нужно всего лишь ткнуть на образе диска в R-Studio правой кнопкой мыши и выбрать “Вьюер/Редактор”, а вот что с ним делать дальше — вопрос посложнее… :)

R-Studio вьюер

Чтобы сделать хоть что-то, я решил попробовать найти Master Boot Record (MBR). В теории, это должно помочь в поиске смещения RAID и определения последовательности дисков. Для этого во Вьюере нужно выбрать поиск и вписать значение 33 C0 8E D0 BC в поле HEX.

поиск MBR

Вот такие результаты получились по четырём дискам:

Master Boot Record

Результаты показались весьма странными и я решил продолжить с поиском загрузочного сектора NTFS. Для этого также через поиск вводим значение eb 52 90 4e 54 46 53 20 20 20 20 в поле HEX.

загрузочный сектор NTFS

На данном этапе я решил прекратить биться головой о стену и включить логику. Выходит так, что данные на дисках совпадают попарно… Ба! Да это же RAID 10!

К слову сказать, в R-Studio восстановить массив у меня не получилось. Возможно  я делал что-то не так, но в виртуальном RAID 10 также не получилось определить смещение, а при попытке создать RAID 0 из пары разных дисков он упорно убеждал, что для Stripe двух дисков мало.

R-Studio ошибка

Однако я уже утвердился в правоте своей догадки и полез в RAID Reconstructor. RAID Reconstructor работает только с двумя типами RAID — RAID 0 и RAID 5. Понятное дело, что RAID 10 — это тот же RAID 0 с зеркалированием, поэтому если взять из него 2 разных диска (в моём случае *0104_00.dsk + *0104_02.dsk, или *0104_01.dsk + *0104_03.dsk), получаем классический RAID 0.

RAID Reconstructor Stripe

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

RAID Reconstructor рекомендует

В третьем шаге остается выбрать вариант восстановления и ткнуть в Copy. Я выбираю восстановление в образ.

RAID Reconstructor восстановление в образ

Через несколько часов образ готов. Проверить его корректность можно с помощью рекомендованного Captain Nemo, причём для проверки хватит и Demo-версии. В Demo есть предпросмотр картинок *.jpg – этого вполне хватит для понимания корректности восстановления. В Captain Nemo нажимаем Image и выбираем свежеиспечённый образ. В панели Mounted Device сразу появляются два новых диска с вполне понятным содержимым.

Captain Nemo

Собственно, данные живы, а уж как с ними дальше поступить — дело десятое. Например, можно вернуться в RAID Reconstructor и залить их сразу на заранее подготовленный HDD, выбрав в третьем шаге Physical Disk. Потом вернуть этот HDD в сервер и вуаля — прокатит, как временное решение до покупки нового RAID-контроллера.

Итог восстановления оказался успешным и, понятное дело, не лишним будет ещё раз напомнить о пользе бэкапов и прочего, но напрашивается и ещё одна мораль: Включать логику лучше в начале процесса — можно хорошо сэкономить время. :)

Запись опубликована в рубрике IT, Главная. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *