Восстановление RAID

pesec1Введение

В этой статье написано про восстановление данных с RAID массивов в простых случаях. Для этого используются методы, которым можно обучится не обладая специальными знаниями в этой области, и за короткое время. Случаи, которые можно отнести к сложным, слишком отличаются друг от друга, и требуют индивидуального подхода, поэтому  нет смысла описывать их в рамках одной статьи. Однако, можно обсудить конкретную ситуацию в предназначенном для этой цели разделе форума.

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


Причины выхода RAID  массивов из строя

Наиболее распространённой причиной выхода из строя дисковых массивов является халатность системных администраторов, рассчитывающих на то, что «в одну воронку бомба дважды не падает». Во время работы, например RAID 5, выходит из строя один из дисков. Массив продолжает работать дальше корректно, но уже с заметным уменьшением скорости. Системный администратор, заметив сбой в работе накопителя, не очень спешит предпринимать активные действия, т.к. рассчитывает на то, что массив в таком виде еще сможет поработать некоторое время. Это порой оказывается заблуждением.

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

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

Для избежания подобной ситуации можно также рекомендовать перед ребилдом проверить диски на бэд-блоки.

Ещё одной распространённой причиной отказа массивов, является одновременный переход нескольких дисков в режим off-line. Как показала практика, чаще всего это происходит из-за проблем со SMART, или накопления бэд-блоков. Пока их количество не превысит определённое значение, диск работает корректно, но в один прекрасный момент, массив перестает запускаться. И вроде бы все хорошо, и диск, судя по звуку, нормально стартует, и  контроллером правильно определяется, но вот только непонятно, почему статус у диска off-line, массив не стартует и данные не отдает. Все из-за того, что контроллер при попытке считать необходимые данные из диска не может их считать, либо, диагностируя SMART, определяет диск как «мертвый».

Можно привести ещё множество примеров сбоев в работе массивов, но что делать, если таки это свершилось? Информация потеряна, её необходимо восстановить.
Небольшое отступление

В продаже сейчас можно увидеть массу различного оборудования, которое можно использовать для создания массивов, по ценам от 20 до нескольких тысяч долларов. Сравнение надёжности – вопрос сложный, но догадаться, что разница в цене «не из пальца высосана», думаю, может каждый.

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

Контроллеры бюджетного уровня, естественно менее надежны, так как имеют упрощенный алгоритм работы и восстановления после сбоев, что выражается в большей вероятности потери информации. Дорогие модели, хотя также не идеальны, заметно надёжнее, в том числе и по тому, что алгоритмы обработки ошибок у них более совершенны. Вопросы, касающиеся особенностей работы определённых моделей RAID контроллеров, вы можете задать здесь.

В любом случае, полностью полагаясь на надёжность массивов и не позаботившись о своевременном создании резервных копий, вы рискуете в один прекрасный момент остаться без «надежно хранимой» информации. Вероятность потери данных можно заметно уменьшить, регулярно отслеживая состояние массива и выполняя профилактические работы, но полностью свести к нулю таким образом её нельзя.
Теория: Уровни RAID и принципы восстановления данных

Чаще всего  сейчас используются массивы уровней 0, 1, 10, 5, 50.  В последнее время наблюдается возрастающий интерес к шестому уровню.

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

RAID 0 – использование чередующейся записи (страйп). Строится из двух и более накопителей.  Информация записывается  на все диски массива блоками определенного (8Kб, 16Kб, 32Kб, 64 Kб, 128Kб…) размера. Файлы, размер которых один блок, равномерно «разбрасываются» по двум или более дискам, включённым в массив.

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

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

RAID 1 – использование технологии зеркалирования (зеркало). Строится из двух дисков. Информация на них идентична. В случае выхода из строя одного из дисков массив остается работоспособным.

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

RAID 10 – это объединение уровня 0 с уровнем 1, т.е. два страйпа объединяются в зеркало. В массиве используются минимум 4 диска. Он может остаться работоспособным при выходе из строя одного из составляющих его RAID 0.

При возникновении проблемы, в первую очередь необходимо определить, с чем именно возникли неполадки – с контроллером или с дисками.

Когда проблема на уровне контроллера, Вам следует определить, какие винчестеры являются парами, составляющими страйпы. Здесь важно не перепутать диски, т.к. это приведет к потерянному времени и отсутствию результата. После того, как это станет известно, берётся одна такая пара, и с неё снимается информация таким же образом, как и с самостоятельного RAID 0.

Во время эксплуатации RAID 10, случается и такое, что выходят из строя два диска. Здесь возможны следующие варианты:

1) Оба диска принадлежат к одному страйпу, контроллер корректно обрабатывает исключительную ситуацию, и массив продолжает функционировать нормально.

2) Оба диска принадлежат к одному страйпу, но массив разваливается. В этом случае просто берём исправный страйп, и программно собираем его (об этом ниже).

3) Диски принадлежат к разным страйпам, но в одном из них уцелел первый, а в другом второй накопитель. Попробуйте программно собрать из них RAID 0.

4) Вышли из строя одноимённые диски разных страйпов. Увы 🙁 Один из сломанных дисков придётся отремонтировать, или каким-либо ещё образом снять с него данные. Затем программная сборка.

RAID 5 – массивы с контролем четности. Основным их достоинством которых является распределение блоков информации и контрольных блоков четности по всем дискам массива. Для создания такого массива требуется  минимум три диска. Объём массива равен сумме объёмов составляющих его накопителей, минус один диск. Блоки контроля чётности используются для вычисления недостающей информации при выходе из строя одного из накопителей, составляющих массив. Таким образом, при утрате одного из дисков данные не теряются, и массив может продолжать работу.

К сожалению, случается такое, что после выхода из строя одного накопителя, контроллер неверно обрабатывает исключительную ситуацию и массив перестает корректно работать, либо полностью «падает». Подобный сбой может возникнуть также во время выполняемого после замены диска ребилда. Бывает и такое, что в течении короткого времени после смерти первого диска, выходит из строя ещё один.

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

Расскажу Вам о том, чего не стоит делать,  для того, чтобы окончательно не потерять  данные.

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

Запуск инициализации тоже ни к чему хорошему не приведёт, так что рекомендуется от неё отказаться, а если это не возможно, то использовать только quick init.

Чем еще можно навредить массиву?  Запуском чекдиска или чего-то подобного. А вообще лучше всего помнить, что при потере информации на  RAID следует отказаться от любой записи на диски. Если вы точно не знаете, приведут ли определенные действия к утрате информации или нет, то лучше либо проконсультироваться с тем, кто это знает, либо отказаться от их выполнения.
Способы  и алгоритмы восстановления RAID
Программное восстановление RAID  на примере массивов  0 и 5 уровней

Основным способом восстановления данных с RAID является программная сборка образа массива. Т.е. при помощи программных средств блоки с разных дисков выстраиваются в нужной последовательности.   Порядок блоков в массиве зависит от расположения дисков на каналах и от алгоритма работы самого контроллера.

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

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

Существуют автоматические средства поиска конфигурации и восстановления RAID, такие например, как программа RAID Reconstructor. Если задать в ней уровень массива, то она попытается найти первоначальную последовательность дисков, размер блока и предположить  алгоритм записи информации на диски.

Далее опишу пошаговые действия при  использовании этой утилиты.

Итак, вот перед нами окно запущенной программы:

reconstructor1

Первый шаг необходимый для начала работы – это выбор типа массива, который Вам необходим. Выбор осуществляется в окошке «RAID TYPE».

Задав тип массива для сборки необходимо указать количество дисков в окошке «#drives». После того, как вы укажете  необходимое количество дисков, ниже подсветятся белым несколько полей (их количество будет равняться количеству указанных Вами дисков). Наводим на каждое из подсвеченных окон, кликаем правой кнопкой мыши и выбираем диски, на которых находился массив. После того, как диски выбраны – переходим к пункту «Block size».

Здесь необходимо указать размер блока, если он известен, если нет, то оставляем этот пункт без изменений и смело жмем на «Open drives» и затем сразу на кнопку «Analyze».

Перед Вами появляется новое окно. В случае работы с RAID 0 такое:

reconstructor2

И в случае работы с RAID 5 вот такое:

reconstructor3

Итак, перед нами находится окно, в котором будут задаваться параметры поиска последовательности дисков, размера блока, и, если мы собираем RAID 5, parity rotations.

Обладание информацией о том, на каком контроллере был создан массив, какой был использован алгоритм записи информации на диски, а также знание размера блока, поможет сэкономить время. Для этого требуется исключить ненужные параметры в окошках «Block size» и «Parity rotations». Но если вы ничего из этих параметров не знаете, то лучше всего все оставить без изменений и нажать кнопку «Next», тем самым предоставив утилите возможность  разобраться самостоятельно.

После того, как  вы нажмете на кнопку, программа начнет просчитывать всевозможные варианты и попытается выдать Вам наиболее верный, хотя в случаях, когда разрушения массива довольно сильны, результат может быть не совсем точным.  Если после того, как реконструктор провел анализ,  внизу появилась надпись «Recommendation: choose entry 1», можно вздохнуть спокойно. Правильный алгоритм найден.

Дальше вариантов может быть несколько. Либо переписать образ массива в файл, либо записать его на диск или массив, либо создать файл виртуального образа  и продолжить его разбор в утилите Captain Nemo, Get Data Back или DiscEditor. Что конкретно предпринять – решать Вам.

Еще, как вариант, используя знания о расположении дисков, алгоритме записи и размере блока, можно  восстановить RAID, используя  программу под названием UFS Explorer. Руководство по использованию данного продукта можно найти в документации к нему.

Когда массив собран правильно, и файловые системы на нём не имеют логических повреждений, Вы можете получить доступ к данным стандартными способами. В частности, если образ скопирован на жесткий диск, будет достаточно подключить его к компьютеру и перезагрузить ОС (если не поддерживается горячее подключение).

Напоминаю, что изложенным выше способом можно восстановить RAID только в самых простых случаях. Описание сложных ситуаций выходит за рамки данной статьи, да и не подразумевает использование неспециалистами. Например, у Вас может не получится восстановить RAID описанным методом  в случае, когда контроллер записывает в начало диска конфигурационную информацию. Не указав программе количество секторов, занятых служебными данными, можно получить неверный результат автоматического подбора конфигурации массива. Эти конфигурационные блоки являются индивидуальными для каждой модели контроллера, и точно узнать их размер можно только исследовав содержание начальных секторов.
Аппаратное восстановление RAID

Альтернативой созданию образа может быть аппаратная сборка.   Сразу скажу, что без знания алгоритма работы контроллера, либо без наличия резервной копии абсолютно всех дисков массива, пользоваться этим «шаманским методом» категорически не рекомендуется, т.к. можно внести такие изменения на диски, в результате которых вы уже не получите данных, даже обратившись к специалистам. Приведённая здесь информация даётся скорее в ознакомительных целях, чем в качестве руководства к действиям.

Так вот, метод заключается в том, что массив пересоздается на контроллере заново, с полностью аналогичными прошлой конфигурации параметрами.  Учтите, что если при создании будет запущен ребилд, то шансов что ваши данные уцелеют очень немного. Некоторые модели контроллеров после создания нового массива автоматически выполняют инициализацию, что также может привести к необратимой потере данных.

Если все диски массива были исправны, то есть вероятность того, что без каких-либо дополнительных действий вы вновь получите доступ к информации. Также не исключено, что придется еще поработать такими утилитами как R-Studio, Get Data Back либо чем-то аналогичным.

В  случаях с рэйдами пятого уровня, когда один из дисков неисправен, можно создать массив с заменой диска на аналогичный исправный. Когда массив будет создан (ребилд не проводить!), после запуска операционной системы, этот диск нужно будет отключить «в горячую». В результате, опять же, Вы можете получить доступ к своим данным сразу, либо посредством использования программ для логического восстановления информации.
Заключение

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

(источник: http://www.rusdoc.ru/)

Дополнительно можно прочесть интересную статью  http://itband.ru/ “пока гром не грянет” где описывается использование утилиты Runtime RAID Reconstructor.

Надеюсь, это ни вам ни мне не пригодиться….  🙂