Профессиональная лаборатория восстановления данных с цифровых носителей информации

Во всех регионах России и СНГ

8 (495) 369-38-92

Адрес: Москва, Холодильный пер. д.3, к.1
Метро: Тульская
Схема проезда
Главная Восстановление данных RAID Восстановление данных с массива RAID 5 (Striping с чётностью)

Восстановление данных с массива RAID 5 (Striping с чётностью)

Данные страйпируются по всем дискам в массиве, но для каждого страйпа в массиве (один блок страйпа на каждом диске) один блок страйпа резервируется для хранения контрольной суммы, вычисляемой из всех блоков одного страйпа. Массив демонстрирует высокую скорость чтения, но снижение скорости записи из-за необходимости пересчитывать контрольную сумму и записывать её вместе с новыми данными. Для предотвращения узких мест, данные контрольных сумм соответствующих страйпов чередуются с данными во всех дисках массива. Для хранения блоков чётности требуется один диск массива, поэтому доступная ёмкость массива будет меньше суммарной ёмкости всех дисков на ёмкость одного диска – всё равно лучше, чем RAID1, который даёт только 50%.

Схематично это выглядит так:

Восстановление данных с массива RAID 5 (Striping с чётностью)

Данные перед записью разбиваются на страйпы (блоки) по количеству дисков минус 1. Затем, блоки с данными записываются на соответствующие диски, а последним записывается блок с контрольной суммой предыдущих. Положение страйпа с контрольной суммой меняется в соответствии с конкретным вариантом реализации алгоритма RAID5.

Для ускорения восстановления массива после выхода из строя диска в состав массива может быть введён специальный диск «горячей замены» - Hot Spare. Его задача — заменить собой вышедший из строя диск. При его наличии, контроллер автоматически запустит перестроение массива с использованием диска hot spare, что существенно уменьшит время нахождения массива в неустойчивом состоянии. Также hot spare диск может, для удешевления системы хранения, быть назначен для нескольких массивов RAID5, т. к. дисковые сбои достаточно редки и держать на каждый массив свой подстраховочный диск невыгодно.

Восстановление данных с массива RAID5

Если RAID5 приходит в нерабочее состояние и требуется восстановить данные с него, то данный процесс имеет свои особенности по сравнению с другими типами массивов. Из-за того, что массив может длительно работать без одного диска, часто требуется находить актуальную комбинацию дисков для сборки, что при больших объёмах данных представляет собой трудоёмкий процесс. Если, при этом, вышедшие из строя диски имеют механические проблемы, то необходимо их восстановить до состояния возможности создания посекторной копии. Когда копии всех дисков оказываются в наличии, можно приступать к сборке массива и сохранению с него данных на другой носитель. Сборка массива RAID5 существенно сложнее, чем RAID0 из-за наличия дополнительных параметров алгоритма и быстро возрастает с увеличением количества дисков и применения малораспростанённых файловых систем.

Пример восстановления массива RAID5

Почему вообще возможна работа массива без одного диска? Как это достигается?

А возможно это благодаря обратимости логической операции «исключающее ИЛИ» (XOR в английском варианте). Это операция сложения без переноса.

Вот таблица истинности для этой операции (x,y – операнды, z - результат).

x y z
0 0 0
0 1 1
1 0 1
1 1 0


Из таблицы видно, что результат имеет значение 1, если один из операндов есть 1. Данная операция работает одинаково для операндов любой разрядности, т. к. выполняется поразрядно. Допустим, у нас raid5 из трёх дисков. Соответственно, в каждом страйпе у нас будет два блока данных, а третий блок — результат сложения двух предыдущих. Посмотрим это на примере двух байт: 0x45+0x9A=0xDF. Т.о. на первый диск пишется 0x45, на второй — 0x9A, на третий - 0xDF. Полезной информацией здесь является 0x45 и 0x9A, а 0xDF — контрольная информация. Теперь представим, что один диск сломался, допустим, тот, на котором записано 0x45. От полезной информации осталось только 0x9A и контрольные 0xDF. Вот теперь сложим 0xDF+ 0x9A=0x45, т. е. мы получили потерянные данные. В реальном воплощении, всё это превращается в сложную математическую конструкцию по вычислению адресов на дисках в зависимости от размера блока, количества дисков в массиве, способа размещения блоков чётности и т. д. Но сам принцип состоит в использовании операции «исключающее ИЛИ» (XOR) для восстановления потерянных данных.

Пример восстановления массива RAID5 из трёх дисков

Массив в нашем примере представлен не жёсткими дисками, а файлами-образами, но на процесс восстановления это не влияет.

И так, дано: файлы Raid_53_1, Raid_53_2​ Raid_53_3. Для восстанволения необходимо определить: размер блока страйпа, порядок дисков (файлов) в массиве, способ размещения чётности на дисках (left synchronous, right synchronous, left asynchronous, right asynchronous и пр). Т.е. по сравнению с RAID0, где нужно было определить только последовательность и размер блока, RAID5 содержит существенно больше требующих определения параметров.

Для упрощения этой задачи существуют разные программные средства, как общедоступные, так и специализированные, например PC3000RAID Edition. Мы воспользуемся для примера самыми, пожалуй, популярными для данных целей программами: RAID Reconstructor для определения параметров массива и R-Studio для его сборки.



Автоматическое определение параметров массива


Запускаем программу, в списке RAID type выбираем RAID5, количество дисков #drives ставим равным количеству дисков массива — 3. Далее, указываем пути к нашим файлам: нажимаем на троеточие рядом со строкой Drive#, выбираем Select Image и указываем на нужный файл. Остальные параметры можно не трогать. Когда все файлы выбраны, нажимаем Open drives, потом – Analyze. Откроется окно предварительного анализа массива.


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

После прохождения теста, откроется окно с результатами.


Начальным определён сектор 0, размер блока 128 секторов. Далее, будет определяться распределение чётности (Parity rotation). Для этого программа будет анализировать количество секторов, указанное в поле Number of sectors to probe. Для увеличения точности определения параметров это число стоит увеличить. Мы его увеличим в 10 раз. Потом жмём Next для запуска анализа.

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


Что ж, тут нам повезло. Программа остановилась на одном варианте, что даёт высокую вероятность успеха. Определён порядок дисков — 3,1,2, размер блока 64KB и порядок чётности — forward (right synchronous). Теперь остаётся собрать массив и скопировать данные.

Сборка массива в R-Stidio

Запускаем программу и открываем в ней наши образа.


Меню File, Open Image file, удерживая Ctl, выбираем наши файлы, жмём открыть. Файлы будут добавлены в дерево устройств, как диски.

Далее, создаём виртуальный массив. В меню Create выбираем пункт Create Virtual Block Raid & Autodetect. Появится новое устройство Virtual Block RAID. Теперь в него нужно добавить наши диски. Добавлять лучше сразу в той последовательности, которая определена на предыдущем шаге.


Кликаем правой кнопкой мыши на нужном диске, в контекстном меню выбираем Add to RAID, выбираем наш Virtual Block RAID.

Теперь нужно указать определённые ранее параметры массива.


В поле RAID type выбираем RAID5, Block order – right synchronous, Block size – 64KB. Затем жмём Apply и видим наш собранный массив. Жмём на нём правой кнопкой мыши и в контекстном меню выбираем Open Drive Files.

Вот наша информация.


Теперь проверим, как восстановилось. Ищем файл в два-три раза больше размера блока массива и пробуем открыть. Вот подходящий файлик.


Порядка 300КБ. Что в нём? Правый клик — Preview.


Открывается нормально, без каких-либо артефактов на изображении, значит массив собран правильно и можно сохранять данные. Если известно, что массив какое-то время работал без одного диска, то из виртуальной сборки этот диск необходимо исключить. Идём в параметры Virtual Block RAID, выбираем в списке дисков тот, который необходимо исключить и жмём Remove. Удалим, допустим, второй диск.


Но на двух дисках мы не сможем собрать RAID5. Для замещения выбывшего элемента массива на его место нужно поставить т. н. missing disk, нажав соответствующую кнопку. А кнопками Move Up и Move Down устанавливаем его в нужное место.


После удаления диска у нас поменялись параметры массива. Возвращаем прежние значения и жмём Apply. Открываем собранный массив, видим, что объём данных не изменился и структура каталогов без повреждений. Попробуем открыть что-нибудь. Вот этот файл, на пример, порядка 300КБ, вполне годится.




Как видно, всё работает, как обещано теорией.

Кому лень читать, можно посмотреть видео с этим примером и краткими текстовыми комментариями.
 
Восстановление данных
Мы - официальные партнеры WD
Последние отзывы
  • От Конько Юлия Николаевна
    Благодарю всех специалистов данной клаборатории, которые не только восстановили целый Терабайт важно... Подробнее...
  • От Кожин Н.К.
    Перестала считываться флэш-карта фотоаппарата на которой остались фотографии декабрьского отдыха в т... Подробнее...
  • От Легошин Владимир Владимирович
    Добрый день! По своей глупости и дурости сломал жесткий диск ноутбука... А там как обычно говорят: В... Подробнее...
RSS
Оборудование