Восстановление данных из поврежденного массива RAID 5E

В данной статье рассмотрен комплекс мероприятий, необходимый для восстановления данных из отказавшего массива RAID 5E (c диском горячей замены). Вкратце задача восстановления данных с поврежденного RAID массива уровня 5Е выглядит следующим образом:

 

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

2. Определить LBA диапазон жестких дисков, включенных в RAID массив (Определение наличия смещений, разрывов).

3. Установить очередность использования жестких дисков в массиве RAID контроллером (порядок ротации блока четности) и построить матрицу порядка использования жестких дисков.

4. Определить резервный накопитель в массиве и установить, было ли на него произведено пересоздание данных(rebuild) отказавшего диска на основании XOR сложения содержимого остальных дисков после выхода из строя одного из дисков массива. Определить, имели ли место последующие отказы дисков, и выяснить их неактуальность для массива.

5. Создание посекторной копии проблемного, но актуального для массива жесткого диска, вышедшего из строя последним с последующим отказом массива RAID 5E.

6. Создание посекторной копии массива на одиночный накопитель либо на другой массив для предоставления возможности клиенту доступа к файлам.

 

Принимая за основу тезисы, написанные выше, стоит рассмотреть подробнее устройство RAID 5E и методики его восстановления.
Для того, чтобы перейти к каким-либо операциям сбора массива, необходимо определить размер блока чередования данных между дисками, который использовал RAID контроллер. Наиболее удобная методика определения размера блока чередования данных, используемого RAID контроллером, заключается в следующем: нахождение некоторых структур файловой системы (в случае FAT32 – это часть FAT таблицы, в случае NTFS – это часть MFT, в случае Ext2, Ext3, Ext4 – таблица дескрипторов), выполнение анализа непрерывности фрагмента структуры, на основании чего определяется размер блока. При отсутствии элементов файловой системы проводится анализ данных со всех жестких дисков массива, в процессе обнаруживаются фрагменты популярных типов файлов (jpg, doc, xls, avi и т.п.), при анализе которых можно определить размер непрерывного фрагмента и тем самым определить размер блока чередования данных.

 

Некоторые RAID контроллеры могут неполностью использовать LBA диапазон жестких дисков для данных пользователя и резервировать некую его небольшую часть для своих служебных данных. Варианты резервирования области для служебных данных контроллера могут быть различными в зависимости от производителя контроллера и идеологии его микропрограммы; это может быть некоторая область от начала LBA диапазона, может быть ровно в середине LBA диапазона, может быть область с конца LBA диапазона (в последнем случае наличие служебных данных ничем не усложняет сбор RAID массива). В этих случаях производится поиск загрузочных секторов, таблиц разделов, различных структур файловых систем и прочих данных, на основании местоположения которых можно точно установить наличие смещений от начала LBA диапазона. Смещения в середине LBA диапазона обнаруживаются после построения карты порядка чередования дисков, по характерному смещению данных во второй половине массива по отношению к файловой системе.
Следующий шаг – это построение матрицы порядка использования дисков в массиве. В случае RAID 5E размерность матрицы данных будет равна количеству дисков массива минус два по горизонтали и количеству дисков массива минус один по вертикали. К примеру, для массива RAID 5E из 7 дисков размерность матрицы порядка использования дисков будет 5х6. Как видно из таблицы ниже, для данных используются только 5 дисков в каждой строке. Обозначение Parity – это расположение блока четности. Обозначение Hot-Spare – диск горячей замены.

 

HDD 1 HDD 2 HDD 3 HDD 4 HDD 5 HDD 6 HDD 7
1 2 3 4 5 Parity Hot-Spare
6 7 8 9 Parity 10 Hot-Spare
11 12 13 Parity 14 15 Hot-Spare
16 17 Parity 18 19 20 Hot-Spare
21 Parity 22 23 24 25 Hot-Spare
Parity 26 27 28 29 30 Hot-Spare

 

В RAID 5E при отказе одного из дисков на основании содержимого остальных дисков и блока четности контроллер может пересоздать содержимое отказавшего диска на диск «горячей замены». В большинстве случаев полноценные контроллеры выполнят эту операцию без остановки работы массива и незаметно для пользователей массива.
Например, в случае отказа HDD 3 контроллер выполнит перестроение поврежденного диска (Rebuild) на основании XOR сложения содержимого исправных дисков на диск горячей замены (Hot-Spare) HDD 7.

 

HDD 1 HDD 2 HDD 3 HDD 4 HDD 5 HDD 6 HDD 7
1 2 Исключен 4 5 Parity 3
6 7 Исключен 9 Parity 10 8
11 12 Исключен Parity 14 15 13
16 17 Исключен 18 19 20 Parity
21 Parity Исключен 23 24 25 22
Parity 26 Исключен 28 29 30 27

 

После выполнения перестроения данных на диск горячей замены, настоятельно рекомендуется заменить неисправный диск в массиве, чтобы сохранить его прежнюю отказоустойчивость. Если же замена диска не будет произведена, то RAID 5E после перестроения данных поврежденного диска на диск горячей замены по своей структуре будет представлять обычный RAID 5 из 6 накопителей без диска горячей замены. Рассмотрим дальнейшее развитие проблемы, когда произойдет отказ еще одного из дисков, например HDD 6.

 

HDD 1 HDD 2 HDD 3 HDD 4 HDD 5 HDD 6 HDD 7
1 2 Исключен 4 5 Исключен 3
6 7 Исключен 9 Parity Исключен 8
11 12 Исключен Parity 14 Исключен 13
16 17 Исключен 18 19 Исключен Parity
21 Parity Исключен 23 24 Исключен 22
Parity 26 Исключен 28 29 Исключен 27

 

В этих случаях RAID массив сохранит свою работоспособность, но работа будет осуществляться в аварийном режиме. Недостающие данные, которые были на отказавшем диске, компенсируются за счет XOR сложения содержимого оставшихся дисков массива. К примеру в первой строке все блоки данных доступны (1,2,3,4,5). Во второй строке отсутствует блок №10. Его содержимое получается на основании XOR сложения блоков 6,7,8,9, Parity. Для остальных строк в данном примере получение недостающих данных аналогично второй строке посредством XOR сложения всех имеющихся блоков с данными в строке с блоком четности.

 

Если в данном случае не принимать никаких мер, то при отказе еще одного из дисков массива RAID 5E произойдет остановка его работы и пользовательские данные будут недоступны.

 

При восстановлении данных с отказавшего RAID массива необходимо учитывать, что содержимое двух дисков, отказавших ранее, будет неактуальным, и по этой причине они не должны участвовать в сборе массива. Для корректного сбора массива необходимо восстановить содержимое последнего отказавшего диска (в зависимости от степени его повреждения и вида повреждения выполнить необходимые операции для создания посекторной копии и в дальнейшем использовать ее для сбора массива) и выполнить определение порядка дисков. Рассмотрим частный случай, когда на RAID массиве использовалась файловая система NTFS, и наша задача определить порядок использования дисков (и соответственно порядок ротации блока четности, вариантов которой не так и мало). Для установления первого блока матрицы 5х6 мы производим поиск partition table, GPT, т.е. таблицы где описаны разделы, содержащиеся в массиве. Далее, исходя из записей таблицы разделов, имеем представление о местоположении загрузочного сектора раздела в матрице порядка использования блоков. Определив, на каком жестком диске он расположен, вписываем нужный диск в соответствующую позицию. Используя информацию загрузочного сектора, получаем позицию расположения MFT и MFT Mirror; после расчета их позиций в матрице порядка использования дисков выполняем их поиск по дискам массива и вписываем нужные номера дисков в матрицу. Далее анализируем фрагмент MFT, ищем индексные записи для описанных в нем директорий и дополняем матрицу до полного заполнения. В случае, который мы начали рассматривать, матрица порядка дисков будет следующей:

 

HDD 1 HDD 2 HDD 7 HDD 4 HDD 5
HDD 1 HDD 2 HDD 7 HDD 4 HDD 6 (XOR)
HDD 1 HDD 2 HDD 7 HDD 5 HDD 6 (XOR)
HDD 1 HDD 2 HDD 4 HDD 5 HDD 6 (XOR)
HDD 1 HDD 7 HDD 4 HDD 5 HDD 6 (XOR)
HDD 2 HDD 7 HDD 4 HDD 5 HDD 6 (XOR)

 

Данные HDD 6 с учетом того что он вышел из строя ранее, чем произошла остановка работы RAID массива, необходимо компенсировать за счет XOR сложения всех остальных участников массива.

 

Если никаких проблем с файловой системой вследствие отказа массива RAID 5E не обнаруживается, то можно перейти к финальному этапу и создать полный образ всего RAID массива на отдельный накопитель или на другой RAID массив, либо произвести копирование необходимых файлов на другой носитель. Если проблемы имеют место, то предварительно стоит выполнить их анализ и определиться с методикой устранения.

 

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

 

 

Павел Янчарский

 

Перепечатка материалов разрешена только с указанием активной ссылки на оригинал статьи

Поделиться
|