Восстановление RAID 5
У вас пропали данные с RAID5 массива? Повреждена конфигурация или файловая система? Сломался контроллер или вышли из строя сразу несколько жестких дисков массива? Случилась другая проблема с данными на RAID5?
Обращайтесь в компанию DATARC — мы профессионально занимаемся восстановлением данных с RAID массивов и систем хранения данных любых конфигураций. У нас есть всё необходимое оборудование, а главное — опыт, который позволяет нам решать любые проблемы от неисправных жестких дисков до поврежденных файловых систем.
Восстановление RAID5 – одна из самых восстребованных наших услуг, так как RAID-массивы 5-го уровня и по сей день остаются, пожалуй, самыми популярными среди владельцев серверов и хранилищ данных. Что ж, они действительно имеют свои преимущества: повышенная производительность, отказоустойчивость, относительно невысокая стоимость дискового пространства. Зачастую достоинства RAID 5 настолько преувеличивают, что считают его хранилищем данных, рабочим сервером и бэкапом – все в одном. А вот это уже ошибка. Именно она и становится предпосылкой к возникновению серьезных проблем, которые будут описаны в этой статье.
Как устроен RAID5
RAID 5 – это набор дисков от 3-х и более, объединенный в единую дисковую систему, где данные пишутся поблочно на все диски. При этом контрольные суммы, обеспечивающие отказоустойчивость RAID5, распределяясь равномерно по всем дискам, пишутся циклически по определенному алгоритму. Все, кто знаком с основами матлогики, наверняка помнят простейшую операцию «сложение по модулю 2» (Исключающее «ИЛИ», XOR). Именно она лежит в основе алгоритма расчета контрольных сумм и позволяет «на лету» пересчитывать содержимое любого отсутствующего диска массива, используя данные и контрольные суммы, хранящиеся на остальных дисках. Суммарно под избыточность расходуется пространство, равное объему одного из дисков RAID5. Соответственно для записи данных будет доступно пространство, равное (n-1)*V, где n – это количество дисков в массиве, а V – объем минимального из них, в Гб. Например, RAID5 на трех дисках по 100 Гб может уместить до 200 Гб данных. RAID5 на 24-х двухтеррабайтниках – это хранилище на 46 Тб. В том и другом случае избыточность равна одному диску. А значит, и продолжать работать массив сможет, если лишится только одного своего участника.
Подобная система реализуется либо с помощью RAID-контроллера (тогда мы говорим об аппаратном RAID5), либо средствами операционной системы – софтовый RAID. В частности большое распространение получили Linux’овые средства RAID, использующиеся во множестве различных внешних сетевых хранилищах.
RAID-массивы 5-го уровня будут отличаться друг от друга:
- Количеством и размером дисков
- Порядком дисков
- Размером блока массива
- Алгоритмом (порядком) записи блоков с данными
- «Узором» контрольных сумм
- Наличием/отсутствием смещений и разрывов в записи данных
- Наличием /отсутствием областей со служебной информацией RAID’а
и прочими деталями.
Специалисты по восстановлению данных:
Причины потери данных на RAID
И все-таки тысячи людей уже столкнулись с потерей данных, на RAID5. Причин тому масса.
Простая «логика»
Во-первых, RAID5 подвержен всем бедам, которые мы называем логическими проблемами: удаление, исчезновение или повреждение файлов/папок, повреждения файловых систем, действие вирусов и так далее. Думаю, всем ясно, что избыточность RAID 5 совершенно никак не уменьшает вероятность таких проблем. Здесь почти нет никакой специфики, связанной с тем, что носителем является RAID5. Почти! Есть исключения, о которых скажу позже. В любом случае, если вы точно знаете причину потери – удалили, поймали вирус, неудачно поэкспериментировали с границами разделов и т.д. – это «логика». И методы решения таких проблем схожи с работой на обычном HDD или даже flash. Можно использовать средства восстановления данных при софтовых проблемах, в том числе и общедоступные, например r-studio. Главное – выполнять все предосторожности:
- Ничего не менять на проблемных разделах, не копировать, не создавать, не редактировать данные, не устанавливать программы (в том числе и для восстановления данных), не запускать checkdisk, fsck и прочих сканирований.
- Данные восстанавливать на другой носитель.
Силы природы: огонь, вода и гравитация
Во-вторых, RAID5 так же, как и любой другой носитель подвержен внешним воздействиям:
Внешние хранилища роняют. Последний пример – такое хранилище, пострадавшее в ходе геологоразведочной экспедиции.
Серверы, бывает, горят. Их тушат, заливают водой. Один из последних примеров – пожар в серверной крупного банка.
Мы его теряем
В-третьих, ломаются RAID-контроллеры. Горят материнские платы с RAID’ом «на борту», «слетают» системы, управляющие софтовым массивом. Иногда может идти речь не о полной поломке оборудования, а о каком-то кратковременном сбое, в результате которого массив «развален», хотя все устройства по отдельности выглядят вполне рабочими.
Человеческий фактор
В-четвертых, мы, люди, иногда можем делать совершенно необъяснимые вещи. Перечислю некоторые действия, на мой взгляд, граничащие с саботажем: вынимаем/переставляем диски массива, сбрасываем конфигурации RAID-массива, удаляем/пересоздаем RAID, «чиним» его checkdisk’ом и так далее. Все это приводит к потере данных.
Классика
В-пятых, пожалуй, классическая ситуация именно для RAID5. Массив теряет более одного участника. При этом не важно, диски действительно выходят из строя или по каким-либо причинам выбрасываются контроллером из RAID’а – получают статус offline. Иногда это может быть из-за нестабильной работы HDD (например, сбой SMART или bad-блоки). Иногда – сбой в работе RAID-контроллера. Диски полностью исправны, и что именно «не понравилось» контроллеру, не ясно. Часто к подобным последствиям приводят внезапные потери питания или скачки напряжения.
Схема работы
Как происходит восстановление RAID5
Для восстановления данных на RAID5 можно избрать один из двух основных путей.
- Самостоятельное восстановление RAID5.
Область применения моих советов по самостоятельному восстановлению довольно узка – я опишу, какими средствами, можно самостоятельно восстановить «развалившийся» RAID5 в случае, если все диски исправны, массив «развалился внезапно», то есть одномоментно, и ваш RAID не содержал жизненно важных данных.
Софтовое восстановление RAID5
Итак, раз все диски исправны, то вам не составит труда подключить их к ПК таким образом, чтобы они отдались в систему как отдельные устройства. То есть мы не используем для этого RAID-контроллеры, а подключаем «напрямую» по SATA/SAS/IDE/FC/SCSI и так далее. Если у вас возникают проблемы на этом этапе, продолжать не стоит.
И действительно, далеко не всегда вы будете обладать необходимыми для этого условиями и оборудованием. Например, одно только подключение 24-х HDD к одному ПК таким образом, чтобы они отдались в ОС отдельными устройствами – не самая простая задача.
Не производите никаких изменений содержимого дисков: не инициализируйте их, не создавайте и не форматируйте разделов, не пытайтесь обратиться к существующим логическим дискам. Лучше всего, чтобы вы подключали не оригиналы дисков, а их посекторные копии. Во-первых, неосторожное изменение содержимого дисков не распространится на исходник. Во-вторых, дальнейшие манипуляции могут происходить в интенсивном, неблагоприятном для диска-исходника режиме. И если предположить, что у него возможны какие-то проблемы со стабильностью работы (например, бэдблоки), вы своими софтовыми экспериментами запросто ухудшите его физическое состояние.
Итак, диски отдались в систему. Теперь с помощью таких программ, как r-studio или UFS-explorer можно эмитировать правильную работу RAID-контроллера и получить доступ к данным. Для этого нужно с помощью этих программ создать виртуальный RAID, в правильном порядке добавить в него необходимые диски и выставить такие свойства как «Алгоритм» и «Размер блока».
Получается, порядок дисков, алгоритм и размер блока нужно знать. Если вам они неизвестны – то следует попытать счастье с программой RAID Reconstructor. Она может помочь найти самые простые алгоритмы и распространенные размеры блока на небольшом количестве дисков с самыми распространенными файловыми системами.
Основная проблема при использовании подобных средств будет заключаться в их негибкости и неуниверсальности. Другими словами, на практике крайне низкий процент RAID5 можно восстановить подобными средствами «в домашних» условиях. Либо RAID Reconstructor не способен в допустимое время правильно определить алгоритм и размер блока, либо такой алгоритм вовсе не запрограммирован в этих утилитах, либо есть особенности (смещения, разрывы и пр.), которые учесть непрофессионалу крайне сложно.
Если данные средства не дали вам доступа к данным, то лучше обратиться к профессионалам.
Аппаратное восстановление RAID5
Этот подход никак иначе, чем шаманским, не назовешь. Он базируется на авантюризме исполнителя, большой удаче и вере в лучшее будущее. Заключается в попытке «обмануть железо» и заставить вернуть утраченный доступ к данным. При этом выполняются примерно следующие шаги:
- Нумерация дисков массива
- Посекторное клонирование всех дисков и последующая работа с клонами
- Подключение дисков к RAID-контроллеру в правильном порядке.
А вот дальше море вариантов. Каждый контроллер может совершенно по-разному реагировать на такие «подлоги». Может, что-то спросить, а может запустить какой-нибудь процесс, ничего не спрашивая. Пожалуй, каждой линейке основных производителей RAID-контроллеров можно было бы посвятить отдельную статью, если бы я хотел описать все возможные тактические удары. Поэтому здесь ограничусь стратегией.
Необходимо либо вернуть массив к прежнему состоянию, добившись того, чтобы клоны были восприняты как родные и никакие настройки массива не слетели, либо пересоздать массив заново, но в точности с теми же настройками. Их нужно знать точно! Не «по умолчанию…», не «наверное, так было», не «позвонили бывшему сисадмину, а он вспомнил…». Любое несоответствие полностью аннулирует все шансы.
При этом очень важно, чтобы при создании массива не уничтожились данные. А именно так и будет в подавляющем большинстве случаев. В общем-то, чтобы знать точно, надо четко представлять принципы работы не только RAID5, а именно этого RAID-контроллера. Иначе процесс вероятностный. И чтобы увеличить вероятность успеха нужно избегать любых действий контроллера над всем массивом. Если контроллер дает такую возможность, не следует проводить инициализации массива. Если ее не избежать, то хотя бы ограничьтесь «быстрой» инициализацией. Также надо быть уверенным, что инициализация не ведется в backgroud’е. Это можно понять по индикации дисков либо из утилиты RAID-контроллера. При этом даже быстрая инициализация зачастую обнуляет значимые области на дисках. По этой причине, отдавшись в систему, такой массив может быть еще и логически разрушенным. Это можно преодолеть либо вернув недостающие сектора на место (мы же работаем с копиями, а у нас еще есть неизмененный оригинал), либо воспользоваться R-studio. Если все прошло удачно – вы получите целые данные. Если же информация не восстановилась или восстанавливается битой, скорей всего где-то допущена ошибка. И время потрачено зря. Но огорчаться не стоит. Все-таки этот исход и был наиболее вероятным. Для того чтобы такую процедуру произвести правильно, все-таки требуются глубокие знания и большой опыт. Без них описанный стратегический план крайне тяжело выполнить без сбоев в каких то тактических мелочах. Если есть подозрения, что именно пошло не так, можно повторить все шаги сначала.
Напомню, что все эти рекомендации по самостоятельному восстановлению RAID5 применимы на практике только в случае, если все диски исправны, массив «развалился» внезапно и ваш RAID не содержал важных данных.
Дело в том, что неисправности одного и более дисков массива, или сбои, растянутые во времени, полностью меняют картину и требуют совершенно иного еще более сложного плана действий.
Ну и конечно, здравомыслящий человек не станет экспериментировать с важными данными. Это уже совершенно точно работа профессионалов. Я искренне убежден, что каждый должен заниматься своим делом. Дело системного администратора или просто ответственного пользователя – не допустить наступления самой проблемы, когда может потребоваться восстановление данных. Думаю, это достигается настройкой автоматического, регулярного резервного копирования на внешние носители и проверкой его выполнения. Если же дошло до восстановления данных, лучшим решением будет обратиться к специалистам соответствующего профиля.
- Восстановление RAID5 в специализированной лаборатории восстановления данных
Так как же будут восстанавливать RAID5 в специализированном сервисном центре? Во-первых, никаких шаманских подходов. То есть исключается сборка на RAID-контроллере.
Парадокс это или нет? Наши специалисты восстановили тысячи RAID-массивов, повидав при этом всякое. И если б сборка на RAID-контроллере была бы единственно доступным вариантом восстановить данные, то и с этой задачей они наверняка бы справились. Помог бы колоссальный опыт и осторожность профессионалов, а также техническая оснащенность лаборатории. Конечно, все диски были бы корректным образом клонированы в посекторные образы. Были бы учтены все особенности работы данного RAID-контроллера, и правильным образом устранены все его деструктивные воздействия на данные. Если бы пришлось, то «тренировались бы на кошках». То есть для изучения особенностей RAID-контроллера собрали бы тестовый RAID5 на других дисках. Аналогичным же образом «развалили» его, а затем восстановили. И, тем не менее, специалисты так не поступают. Да, вероятность того, что даже при таком методе восстановления профессионал что-то испортит, крайне низка. Но, во-первых, она все-таки существует и она больше нуля. Во-вторых, есть другие более безопасные способы восстановления RAID5.
Другой участник этого парадокса – IT-специалист начального или среднего уровня (не специалист по восстановлению RAID), имея в разы меньше шансов на успех, все-таки гораздо более полон оптимизма. И поэтому мы часто видим массивы с такими вот печальными историями.
Итак, мы не станем рисковать и проводить подобные опыты с дисками из RAID-массива с важными данными.
Порядок восстановления RAID5 по шагам:
- Внимательно выслушиваем показания «потерпевшего». Зачастую они очень важны для выдвижения и подтверждения гипотез о составе RAID’а и картины произошедшего.
- Тестируется физическое состояние дисков и определяется круг допустимых операций.
- Исправные диски подключаем к системе, минуя все возможные RAID-контроллеры, исключая какие-либо редактирования их содержимого.
- В HEX-редакторе производится анализ содержимого дисков. Находятся контрольные точки (MBR, boot-сектора, заголовки файловых систем, границы разделов), позволяющие подтвердить или опровергнуть информацию о составе и уровне RAID-массива. Да, бывают ситуации, когда RAID5 на шести дисках оказывается пятидисковым массивом с hot-spare или, например, совокупностью страйпов и зеркал. Мы сталкивались с тем, что RAID5 оказывался просто несколькими независимыми дисками, которые клиент считал разделами своего надежного хранилища. Но бывало и такое, что RAID0 из двух дисков оказывался деградированной пятеркой. То есть RAID5 лишился одного своего участника еще год или два назад и в таком состоянии достался нынешнему владельцу. «Массив из двух дисков, суммарный объем разделов равен сумме дисков. Ну конечно же это страйп!» :)
- Выяснив общую картину пазла, приступаем к его сборке. Конечно, мозаика лучше всего собирается по частям каких-либо структурированных узнаваемых цепочек достаточной длины. Это может быть файловая таблица или данные некоторых типов. Чем больше опыт специалиста, тем больше у него возможностей найти на дисках участки, пригодные к подобному анализу. На этом этапе можно определить величину блоков данных, их порядок следования и «узор» контрольных сумм. Также можно разобраться с наличием смещений и разрывов в размещении данных на HDD.
- Выясняем, достаточно ли нам содержимого исправных дисков. Если нет, то восстанавливаем неисправные. При этом нам важно получить их полный посекторный образ.
- Если теперь всего хватает, то можно приступить к самой софтовой сборке. То есть программными средствами имитируется работа RAID-контроллера по правильному алгоритму, на правильном составе дисков. То есть мы выстраиваем диски в нужном порядке (при этом исключаем лишние), и задаем все параметры алгоритма. Какой софт при этом использовать – не принципиально. Для большей части случаев запросто сгодится все та же R-Studio, позволяющая собрать из одного и того же набора дисков десятки тысяч различных RAID’ов, где правильным будет один.
- Возможно, что даже при всех исправных (или восстановленных) дисках мы можем недосчитаться каких-то блоков данных. Эта «недостача», как правило, имеет циклических характер и является последствием каких-то некорректных процедур: инициализации, Rebuild’ы, пересборки RAID и так далее – неквалифицированные попытки аппаратного восстановления RAID или «неправильное» поведение оборудования в нештатной ситуации. В ряде случаев такие блоки можно получить путем пересчета из определенного набора блоков других дисков. Такие случаи с RAID5 – высшая математика восстановления данных даже для самых опытных специалистов. Для восстановления таких массивов требуется программирование собственных алгоритмов, для обработки данной конкретной ситуации. То есть разработка средств восстановления RAID5 в ряде случаев ведется для восстановления текущего заказа.
Даже среди специализирующихся на восстановлении данных компаний далеко не все справятся с подобными задачами.
- Иногда такие массивы могут поступать в «полуживом» состоянии. То есть после пересборки или ребилда клиент увидел, к примеру, поврежденный раздел или частично поврежденные данные. Это тот самый, обещанный выше, случай, который выделяет «софтовые» проблемы на RAID5, по сравнению с остальными носителями. Особенность таких логических проблем в том, что они вовсе не логические с точки зрения целостности разделов, файлов и папок. Они являются следствием разрушения логики массива. И совершенно недопустимо продолжать работать с таким разделом или пытаться исправлять на нем ошибки какими-то сканирующими утилитами. Единственным шансом в такой ситуации будет признание некорректной сборки массива и обращение к профессионалам. Может, они еще могут что-то исправить.
За 24 года 112 600 клиентов выбрали нас
- Опытные специалисты
- Нас рекомендуют производители
- Знаем RAID лучше производителей
- Прозрачная схема работы
- Настоящая лаборатория
- Нас рекомендуют благодарные клиенты
- Выгодные цены
- Конфиденциальность и полный комплект документов
Классический пример или как не надо делать
К сожалению, иногда «недостачи» нужных блоков нечем возмещать. Самым, пожалуй, классическим примером такой ситуации может служить следующая картина. Пятидисковый RAID5 уже долгое время работает без одного диска. Кстати, очень часто это остается незамеченным. Иногда годами. (Этому диску не обязательно быть неисправным, он просто почему-то выпал из RAID’а) И вдруг после какого-то сбоя (пусть будет скачок напряжения или внеплановая перезагрузка сервера), данные становятся недоступными. Массив развален, хотя все диски «видны». За дело берется системный администратор. Он знает или думает, что знает, как все было собрано. И воссоздает прежнюю картину. То есть «вгоняет» все диски в RAID. Запускается инициализация. В такой ситуации она обязательно запустится. Контроллер может ничего не спрашивать. На выходе получаем убитый раздел: либо неразмеченная область, либо «все как-то некорректно отображается». Во втором случае можно еще и check-disk пустить в дело. Но тут уж и без него достаточно… Что произошло? Один из дисков, сильно устарев, не содержит ничего полезного. А после инициализации и на остальных дисках будет потерян объем, равный еще одному участнику – это произойдет из-за циклической перезаписи «неправильными» контрольными суммами – результат пересборки массива в неверном составе (Пятидисковый RAID5 получил в свой состав устаревшего участника, либо четыре диска из пяти объединились в новый RAID5, но уже на 4-х дисках.).
Полное восстановление данных в такой ситуации теоретически не возможно. Можно лишь бороться за частичный результат. И степень его «частичности» будет зависеть от множества обстоятельств: на сколько «неактуальным» оказался первый выпавший диск, какого типа данные важны, каков размер блока и так далее.
Этот пример можно считать типовым. С подобными ситуациями мы сталкиваемся регулярно. От случая к случаю различными будут лишь уровень массива, количество дисков, некоторые аспекты биографии данного оборудования, некорректные ребилды или инициализации прошли, правильное ли представление у хозяина оборудования о составе и уровне RAID-массива, включены в процесс неактуальные диски или попросту посторонние, например hot-spare и прочее и прочее. Общим здесь является одно – некорректные попытки «самолечения» усугубили проблему. И теперь она либо требует разработки специальных средств или вовсе не решаема.
Я буду рад, если эта страшилка, приведенная под занавес, запомнится читателю статьи. И, возможно, при схожих обстоятельствах удержит от необдуманных действий и позволит сохранить важные данные. Ну и всем без исключения желаю делать backup :)
Вячеслав Мочалов, 8 февраля 2012 года
При копировании материалов активная ссылка на сайт www.datarc.ru обязательна.
Оставьте телефон и менеджер перезвонит Вам