Восстановление данных с Raid массивов
Рассматривая массивы, мы не можем не упомянуть о RAID контроллерах, которых сегодня великое множество, с разбросом цен от двадцати до нескольких тысяч долларов. Сравнение надёжности – вопрос сложный, но догадаться, что разница в цене «не из пальца высосана», думаю, может каждый.
Контроллеры бюджетного уровня, имеют упрощенный алгоритм работы и восстановления после сбоев, что выражается в большей вероятности потери информации. Дорогие модели заметно надёжнее, алгоритмы обработки ошибок более совершенны, но и они не безупречны.
Вопросы, касающиеся особенностей работы определённых моделей RAID контроллеров, Вы можете задать здесь.
RAID массив не является панацеей от потери информации. Практика показывает, что случаются как сбои в работе контроллера, так и сбои в работе жестких дисков, или же происходит одно вытекающее из другого. В любом случае, полностью полагаясь на надёжность массивов и не позаботившись о своевременном создании резервных копий, Вы рискуете однажды остаться без «надежно хранимой» информации.
Вероятность потери данных можно заметно уменьшить, регулярно отслеживая состояние массива и выполняя профилактические работы, но полностью свести к нулю таким образом её нельзя.
Причины выхода RAID массивов из строя
Наиболее распространённой причиной выхода из строя дисковых массивов является халатность системных администраторов, рассчитывающих на то, что «в одну воронку бомба дважды не падает». Во время работы, например RAID 5, выходит из строя один из дисков. Массив продолжает функционировать, но уже с заметным уменьшением скорости. Системный администратор, заметив сбой в работе накопителя, не очень спешит предпринимать активные действия, т.к. рассчитывает на то, что массив в таком виде еще сможет поработать некоторое время. Это порой оказывается заблуждением.
Если у Вас выходит из строя один из дисков, лучше всего немедленно произвести резервное копирование особо важных данных и потом, заменив один из накопителей, произвести ребилд массива.
Почему пришлось отметить то, что необходимо предварительно произвести бэкап? Потому что при попытке ребилда массива, иногда случается такое, что процесс «зависает». Как правило, это происходит, если в процессе чтения\записи на одном из дисков обнаруживается бэд-блок, и контроллер не может вычитать информацию из сектора. В результате, после длительного и бесполезного ожидания, сервер перегружают. После чего выясняется, что массив полностью «развалился». Зависание в таких случаях, вероятнее всего, связано с некорректной обработкой исключительной ситуации. Как правило, описанное явление более характерно для дешевых моделей контроллеров, но встречается также и при использовании дорогого «железа».
Ещё одной распространённой причиной отказа массивов, является одновременный переход нескольких дисков в режим off-line. Как показала практика, чаще всего это происходит из-за проблем со SMART, или накопления бэд-блоков. Пока их количество не превысит определённого значения, диск работает корректно, но в один прекрасный момент массив перестает запускаться. И вроде бы все хорошо, и диск, судя по звуку, нормально стартует, и контроллером правильно определяется, но вот только непонятно, почему статус у диска off-line, массив не стартует и данные не отдает. Все из-за того, что контроллер не может считать необходимые данные с диска, либо, диагностируя SMART, определяет диск как «мертвый».
Можно привести ещё множество примеров сбоев в работе массивов, но что делать, если таки это свершилось? Информация потеряна, её необходимо восстановить.
Уровни RAID и принципы восстановления данных
Чаще всего сейчас используются массивы уровней 0, 1, 10, 5, 50. В последнее время наблюдается возрастающий интерес к шестому уровню.
Ниже приведена краткая информация о принципах работы массивов.
Восстановление RAID 0 – использование чередующейся записи (страйп).
Строится из двух и более накопителей. Информация записывается на все диски массива блоками определенного (8кб,16кб,32кб,64 кб, 128кб…) размера. Файлы, размер которых один блок, равномерно распределяются по двум или более дискам.
Из-за отсутствия избыточности или дублирования данных, при выходе из строя одного из дисков, восстановить информацию в полном объеме невозможно без использования данных с неисправного накопителя. Исключением будут лишь файлы, размер которых меньше размера блока. Для полноценного восстановления информации в таких случаях необходимо сначала снять данные с неисправного диска, после чего восстанавливать 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 следует отказаться от любой записи на диски. Если Вы точно не знаете, приведут ли определенные действия к утрате информации или нет, то лучше либо проконсультироваться с тем, кто это знает, либо отказаться от их выполнения.