Intereting Posts
Как настроить две письма для двух разных пользователей в Ubuntu условная замена строк на число Удаление нежелательных строк в текстовом файле chmod + w / var / log / messages, похоже, тоже не работает для пользователя root изменять текстовый файл только с одним номером, подлежащим ограничениям Когда выполняются задачи cron? Показывать запущенные процессы без системных процессов Соедините каждую строку файла с определенной переменной во второй команде Фиксирование DPI от .xinitrc странные каталоги на разделе ubuntu 13.10 btrfs Могут ли все OSS для Linux быть построены для работы на ОС на базе Illumos, таких как OpenIndiana? Установка ruby ​​2.1 на Ubuntu 12.04 с использованием приложения ruby-install Какой в ​​настоящее время рекомендуется установить node.js на Debian? Выполнять команды Perl с определенного IP-адреса? Как «забыть» учетные данные пользователя после входа в общий ресурс Windows (samba)

mdadm RAID5 не может быть собран

Вчера я хотел сделать некоторое обслуживание на своем сервере. Я закрываю его, нажимая кнопку питания, которая работает отлично каждый раз.

После того, как сервер все еще закрывался через 10 минут, я назвал его днем ​​и отключил его с помощью кнопки питания. (Я попытался войти в него с помощью ssh, прежде чем отключить его, но служба ssh уже была остановлена).

После обслуживания и перезагрузки сервера я заметил, что мой RAID5, состоящий из дисков 7x 2TB, больше не работает. Он был разделен на два RAID, которые состояли из 5 дисков и 2 дисков в режиме (S) (запасной), неактивный.

Я пробовал mdadm --assemble --scan --run -f который не помог:

 mdadm: Merging with already-assembled /dev/md/128 mdadm: failed to add /dev/sdc1 to /dev/md/128: Invalid argument mdadm: failed to add /dev/sde1 to /dev/md/128: Invalid argument mdadm: failed to RUN_ARRAY /dev/md/128: Input/output error mdadm: No arrays found in config file or automatically 

Казалось, что половина собирает вещи:

 cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md128 : inactive sda1[0] sdg1[6] sdf1[5] sdd1[7] sdb1[1] 9766891962 blocks super 1.2 unused devices: <none> 

Я также попытался переустановить его вручную, используя mdadm --assemble --run /dev/md0 /dev/sd[abcdefg]1 --verbose :

 mdadm: looking for devices for /dev/md0 mdadm: /dev/sda1 is identified as a member of /dev/md0, slot 0. mdadm: /dev/sdb1 is identified as a member of /dev/md0, slot 1. mdadm: /dev/sdc1 is identified as a member of /dev/md0, slot 2. mdadm: /dev/sdd1 is identified as a member of /dev/md0, slot 4. mdadm: /dev/sde1 is identified as a member of /dev/md0, slot 3. mdadm: /dev/sdf1 is identified as a member of /dev/md0, slot 6. mdadm: /dev/sdg1 is identified as a member of /dev/md0, slot 5. mdadm: added /dev/sdb1 to /dev/md0 as 1 mdadm: failed to add /dev/sdc1 to /dev/md0: Invalid argument mdadm: failed to add /dev/sde1 to /dev/md0: Invalid argument mdadm: added /dev/sdd1 to /dev/md0 as 4 mdadm: added /dev/sdg1 to /dev/md0 as 5 mdadm: added /dev/sdf1 to /dev/md0 as 6 mdadm: added /dev/sda1 to /dev/md0 as 0 mdadm: failed to RUN_ARRAY /dev/md0: Input/output error 

Теперь, изучая все диски, mdadm --examine /dev/sd[abcdefg]1 имеет этот вывод, посмотрите на hastebin.com, который для меня выглядит, как будто все в порядке.

Вот диски, использующие lsblk

 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 1,8T 0 disk └─sda1 8:1 0 1,8T 0 part sdb 8:16 0 1,8T 0 disk └─sdb1 8:17 0 1,8T 0 part sdc 8:32 0 1,8T 0 disk └─sdc1 8:33 0 1,8T 0 part sdd 8:48 0 1,8T 0 disk └─sdd1 8:49 0 1,8T 0 part sde 8:64 1 1,8T 0 disk └─sde1 8:65 1 1,8T 0 part sdf 8:80 1 1,8T 0 disk └─sdf1 8:81 1 1,8T 0 part sdg 8:96 1 1,8T 0 disk └─sdg1 8:97 1 1,8T 0 part 

Используемые жесткие диски не являются лучшими, но они работают. Выход SMART для всех дисков с sda на sdg можно найти на hastebin.com.

Из-за того, что два диска моего RAID5 производят ошибки, я предполагаю, что все данные уже потеряны. …

ИЗМЕНИТЬ 1:

dmesg -T возвращает:

 [Sa Okt 7 15:41:08 2017] md/raid:md128: device sda1 operational as raid disk 0 [Sa Okt 7 15:41:08 2017] md/raid:md128: device sdf1 operational as raid disk 6 [Sa Okt 7 15:41:08 2017] md/raid:md128: device sdb1 operational as raid disk 1 [Sa Okt 7 15:41:08 2017] md/raid:md128: device sdd1 operational as raid disk 4 [Sa Okt 7 15:41:08 2017] md/raid:md128: device sdg1 operational as raid disk 5 [Sa Okt 7 15:41:08 2017] md/raid:md128: not enough operational devices (2/7 failed) [Sa Okt 7 15:41:08 2017] md/raid:md128: failed to run raid set. [Sa Okt 7 15:41:08 2017] md: pers->run() failed ... [Sa Okt 7 15:41:12 2017] md: md127 stopped. [Sa Okt 7 15:41:15 2017] md: md128 stopped. [Sa Okt 7 15:41:20 2017] md: md0 stopped. [Sa Okt 7 15:41:20 2017] md: sdc1 does not have a valid v1.2 superblock, not importing! [Sa Okt 7 15:41:20 2017] md: md_import_device returned -22 [Sa Okt 7 15:41:20 2017] md: sde1 does not have a valid v1.2 superblock, not importing! [Sa Okt 7 15:41:20 2017] md: md_import_device returned -22 

Как я могу восстановить суперблоки?


Я здесь что-то не так?

Почему я получаю:

mdadm: failed to add [...] to [...]: Invalid argument ?

Какой аргумент здесь недействителен?

Как я могу отладить это дальше?

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

Однако это могло произойти: проблема, вероятно, такова:

 Unused Space : before=262056 sectors, after=177 sectors Unused Space : before=262056 sectors, after=177 sectors Unused Space : before=262056 sectors, after=18446744073709289480 sectors Unused Space : before=262056 sectors, after=177 sectors Unused Space : before=262056 sectors, after=18446744073709289480 sectors Unused Space : before=262056 sectors, after=177 sectors Unused Space : before=262056 sectors, after=177 sectors 

Я не могу предложить приятный способ исправить это. Вы должны сделать резервную копию метаданных MD sdc1, а затем посмотреть формат на диске и использовать шестнадцатеричный редактор, чтобы исправить это.

Возможно, вы можете просто скопировать соответствующую часть с dd с одного из других дисков. Вам «просто» нужно выяснить, где находятся эти байты.

Вот что смешно:

  Checksum : 85f67f98 - correct Checksum : 6a4fb921 - correct Checksum : 92db2c10 - correct Checksum : ad5c81b8 - correct Checksum : a657023 - correct Checksum : 6880d6c7 - correct Checksum : c0c31cf - correct 

Поэтому, возможно, исправление метаданных разрушает контрольную сумму. Я не знаю, является ли это реальной проблемой, но в этот момент, вероятно, имеет смысл задать новый вопрос.