вручную создать только для чтения RAID5 на Linux

Вопрос или проблема

У меня был массив хранения AXS-6320 с 8 жесткими дисками по 1 Тб (RAID5). Внезапно он перестал распознавать массив и видит только отдельные диски. Я боюсь, что создание нового массива с нуля приведет к обнулению всех данных. (В его консоли управления, конечно, есть опция восстановления, но она не дала положительных результатов).

Я установил все 8 HDD на ПК с Linux. Они обозначены как sda до sdh. Проблема в том, что эта система НЕ имеет суперблока в каком-либо распознаваемом формате.

root@PartedMagic:~# mdadm --examine -e imsm /dev/sda           
mdadm: no IMSM anchor on /dev/sda
mdadm: Failed to load all information sections on /dev/sda
root@PartedMagic:~# mdadm --examine -e ddf /dev/sda 
mdadm: no DDF anchor found on /dev/sda
root@PartedMagic:~# mdadm --examine -e 1 /dev/sda
mdadm: No super block found on /dev/sda (Expected magic a92b4efc, got 00000000)
mdadm: No super block found on /dev/sda (Expected magic a92b4efc, got d08ec033)
mdadm: No super block found on /dev/sda (Expected magic a92b4efc, got 00000000)

То, что у него есть, это:

root@PartedMagic:~# dd if=/dev/sda skip=1 count=1 |hexdump -C
00000000  24 52 61 69 64 53 44 24  08 00 00 00 08 00 00 00  |$RaidSD$........|
00000010  0a 5f 0e 03 f6 b2 f6 b2  f6 b2 f6 b2 f6 b2 f6 b2  |._..............|
00000020  f6 b2 f6 b2 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000030  00 00 00 00 09 23 0e 2a  13 2c 0a 23 11 23 13 28  |.....#.*.,.#.#.(|
00000040  0a 1f 0a 1e 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000050  00 00 00 00 02 00 00 00  00 00 00 00 00 00 00 00  |................|
00000060  00 54 6a 74 00 00 00 00  52 61 69 64 20 53 65 74  |.Tjt....Raid Set|
00000070  20 23 20 30 30 20 20 20  00 00 00 00 00 00 00 00  | # 00   ........|
00000080  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
---
root@PartedMagic:~# dd if=/dev/sdh skip=1 count=1 |hexdump -C
00000000  24 52 61 69 64 53 44 24  08 00 00 00 08 00 00 00  |$RaidSD$........|
00000010  ce 01 00 00 00 00 f6 b2  f6 b2 f6 b2 f6 b2 f6 b2  |................|
00000020  f6 b2 f6 b2 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000030  00 00 00 00 00 00 0e 2a  13 2c 0a 23 11 23 13 28  |.......*.,.#.#.(|
00000040  0a 1f 0a 1e 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000050  00 00 00 00 07 00 00 00  02 00 00 00 02 00 00 00  |................|
00000060  00 54 6a 74 00 00 00 00  52 61 69 64 20 53 65 74  |.Tjt....Raid Set|
00000070  20 23 20 30 30 20 20 20  00 00 00 00 00 00 00 00  | # 00   ........|
00000080  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

Похоже,
0[8] – это сигнатура,
x08[4] – количество дисков
x10[4] – какой-то серийный номер
x54[4] – идентификатор диска

сканируя диск дальше, я нашел фактический сектор раздела по смещению x41000

root@PartedMagic:~# dd if=/dev/sda skip=520 count=1 |hexdump -C 
00000000  33 c0 8e d0 bc 00 7c 8e  c0 8e d8 be 00 7c bf 00  |3.....|......|..|
00000010  06 b9 00 02 fc f3 a4 50  68 1c 06 cb fb b9 04 00  |.......Ph.......|
00000020  bd be 07 80 7e 00 00 7c  0b 0f 85 0e 01 83 c5 10  |....~..|........|
00000030  e2 f1 cd 18 88 56 00 55  c6 46 11 05 c6 46 10 00  |.....V.U.F...F..|
00000040  b4 41 bb aa 55 cd 13 5d  72 0f 81 fb 55 aa 75 09  |.A..U..]r...U.u.|
00000050  f7 c1 01 00 74 03 fe 46  10 66 60 80 7e 10 00 74  |....t..F.f`.~..t|
00000060  26 66 68 00 00 00 00 66  ff 76 08 68 00 00 68 00  |&fh....f.v.h..h.|
00000070  7c 68 01 00 68 10 00 b4  42 8a 56 00 8b f4 cd 13  ||h..h...B.V.....|
00000080  9f 83 c4 10 9e eb 14 b8  01 02 bb 00 7c 8a 56 00  |............|.V.|
00000090  8a 76 01 8a 4e 02 8a 6e  03 cd 13 66 61 73 1c fe  |.v..N..n...fas..|
000000a0  4e 11 75 0c 80 7e 00 80  0f 84 8a 00 b2 80 eb 84  |N.u..~..........|
000000b0  55 32 e4 8a 56 00 cd 13  5d eb 9e 81 3e fe 7d 55  |U2..V...]...>.}U|
000000c0  aa 75 6e ff 76 00 e8 8d  00 75 17 fa b0 d1 e6 64  |.un.v....u.....d|
000000d0  e8 83 00 b0 df e6 60 e8  7c 00 b0 ff e6 64 e8 75  |......`.|....d.u|
000000e0  00 fb b8 00 bb cd 1a 66  23 c0 75 3b 66 81 fb 54  |.......f#.u;f..T|
000000f0  43 50 41 75 32 81 f9 02  01 72 2c 66 68 07 bb 00  |CPAu2....r,fh...|
00000100  00 66 68 00 02 00 00 66  68 08 00 00 00 66 53 66  |.fh....fh....fSf|
00000110  53 66 55 66 68 00 00 00  00 66 68 00 7c 00 00 66  |SfUfh....fh.|..f|
00000120  61 68 00 00 07 cd 1a 5a  32 f6 ea 00 7c 00 00 cd  |ah.....Z2...|...|
00000130  18 a0 b7 07 eb 08 a0 b6  07 eb 03 a0 b5 07 32 e4  |..............2.|
00000140  05 00 07 8b f0 ac 3c 00  74 09 bb 07 00 b4 0e cd  |......<.t.......|
00000150  10 eb f2 f4 eb fd 2b c9  e4 64 eb 00 24 02 e0 f8  |......+..d..$...|
00000160  24 02 c3 49 6e 76 61 6c  69 64 20 70 61 72 74 69  |$..Invalid parti|
00000170  74 69 6f 6e 20 74 61 62  6c 65 00 45 72 72 6f 72  |tion table.Error|
00000180  20 6c 6f 61 64 69 6e 67  20 6f 70 65 72 61 74 69  | loading operati|
00000190  6e 67 20 73 79 73 74 65  6d 00 4d 69 73 73 69 6e  |ng system.Missin|
000001a0  67 20 6f 70 65 72 61 74  69 6e 67 20 73 79 73 74  |g operating syst|
000001b0  65 6d 00 00 00 63 7b 9a  00 00 00 00 00 00 00 00  |em...c{.........|
000001c0  02 00 ee ff ff ff 01 00  00 00 ff ff ff ff 00 00  |................|
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|

похожие сектора в sdb-sdg равны нулю, и sdh содержал точную копию sda, так что я предполагаю, что это контрольная сумма, и это “ra” стиль. Из другого подобного контроллера я думаю, что размер страйпа составляет 64k, но, конечно, это можно проверить.

Как я понимаю, mdadm –build может создавать только массивы RAID0-1, есть ли какой-то драйвер для ручного создания RAID5 БЕЗ попыток восстановления/исправления чего-либо или создания метаданных, просто чтения секторов и, возможно, сигнала “ПЛОХО” в случае ошибки контрольной суммы?

Ответ или решение

создание массива RAID5 с доступом только для чтения в Linux — это сложный процесс, особенно в ситуации, когда суперблоки недоступны или повреждены. В сценарии, который вы описали, ваши диски RAID5 потеряли видимость в сетевом массиве AXS-6320. Причиной этого может быть сбой контроллера, физическое повреждение или другие аппаратные проблемы. Важно помнить, что RAID5 уже с первого шага направлен на обеспечение устойчивости к отказам и приемлемого уровня защиты данных, однако отсутствие суперблоков усложняет восстановление.

Теория (Theory)

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

Пример (Example)

Ваш случай: у вас 8 дисков по 1 ТБ, и вы пытаетесь восстановить массив RAID5 с нулевой конфигурацией суперблоков. Использование команд mdadm --examine на каждом диске не обнаруживает суперблоки, что указывает на отсутствие метаданных, которые помогли бы в автоматической реконфигурации массива.

Команда dd указывает на то, что вы обнаружили некоторые маркеры, такие как сигнатура $RaidSD$ и предполагаемую структуру идентификаторов и номеров дисков. Однако, это не является стандартной метаданной RAID5, и требует более глубокого анализа или вмешательства экспертов.

Применение (Application)

В данном контексте идейно неправильным будет пытаться использовать mdadm --build для создания нового массива RAID5, так как этот инструмент рассчитан на другие уровни RAID. Вместо этого ручное восстановление требует более глубокой работы с физическим представлением данных на дисках.

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

  2. Идентификация Параметров RAID:

    • Определите конфигурацию stripe size, вероятнее всего 64k, если ваш контроллер настроен таким образом.
    • Выясните порядок расположения дисков по паритету и данным, так как диски идентифицируются в определённой последовательности.
  3. Использование Низкоуровневых Инструментов:

    • Инструменты, такие как dd и hexdump, могут пригодиться для извлечения небольших фрагментов данных напрямую с физических секторов диска.
    • Например, вы сможете вручную реконструировать первое соглашение (расположение партий блока), чтобы понять, как данные распределяются между дисками.
  4. Алгоритмы Восстановления:

    • Если контент по частям может быть извлечён, используйте доступные алгоритмы для проверки данных на предмет ошибок и восстановления. Например, программы для анализа паритета RAID существуют и могут помочь в проверке и восстановлении данных без необходимости ремапа.
  5. Поддержка: Консультация с профессионалами, имеющими опыт работы в области восстановления данных RAID, в какой-то момент может быть неизбежной, если данные критически важны.

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

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

Оцените материал
Добавить комментарий

Капча загружается...