MDADM Суперблок Восстановление

После отключения питания я обнаружил, что RAID 5 Array больше не работает. Я пробовал различные методы для сборки массива, но пока ничего не получалось. Я полагаю, что мне нужно каким-то образом воссоздать суперблоки и UUID, но я не хотел что-то делать, чтобы не потерять кучу данных. Спасибо за прочтение.

cat /etc/mdadm/mdadm.conf:

DEVICE partitions
ARRAY /dev/md0 level=raid5 num-devices=4 metadata=0.90 UUID=fd522a0f:2de72d76:f2afdfe9:5e3c9df1
MAILADDR root

Что нормально. Он должен иметь диски 4x2000GB (sda, sdc, sde, sdd).

cat /proc/mdstat:

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : inactive sdd[1](S)
  1953514496 blocks

unused devices: <none>

Это проблема. Он показывает только один диск в массиве и он также неактивен. Массив также должен содержать sda, sdc и sde. Когда я делаю mdadm --examine /dev/sdd все выглядит хорошо. На других дисках проверка говорит, что нет никакого суперблока RAID на / dev / sdX.

mdadm --examine --scan:

ARRAY /dev/md0 level=raid5 num-devices=4 metadata=0.90 UUID=fd522a0f:2de72d76:f2afdfe9:5e3c9df1

Там нет никакой помощи.

mdadm --assemble --scan -v:

mdadm: looking for devices for /dev/md0
mdadm: no RAID superblock on /dev/sde
mdadm: /dev/sde has wrong uuid.
mdadm: cannot open device /dev/sdd: Device or resource busy
mdadm: /dev/sdd has wrong uuid.
mdadm: no RAID superblock on /dev/sdc
mdadm: /dev/sdc has wrong uuid.
mdadm: cannot open device /dev/sdb5: Device or resource busy
mdadm: /dev/sdb5 has wrong uuid.
mdadm: no RAID superblock on /dev/sdb2
mdadm: /dev/sdb2 has wrong uuid.
mdadm: cannot open device /dev/sdb1: Device or resource busy
mdadm: /dev/sdb1 has wrong uuid.
mdadm: cannot open device /dev/sdb: Device or resource busy
mdadm: /dev/sdb has wrong uuid.
mdadm: no RAID superblock on /dev/sda
mdadm: /dev/sda has wrong uuid.

Отсюда видно, что у меня нет UUID и суперблоков для sda, sdc и sde.

sudo fdisk -l

Disk /dev/sda: 2000.4 GB, 2000397852160 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907027055 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sda doesn't contain a valid partition table

Disk /dev/sdb: 250.1 GB, 250058268160 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488395055 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x353cf669

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              63   476327249   238163593+  83  Linux
/dev/sdb2       476327250   488392064     6032407+   5  Extended
/dev/sdb5       476327313   488392064     6032376   82  Linux swap / Solaris

Disk /dev/sdc: 2000.4 GB, 2000397852160 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907027055 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdc doesn't contain a valid partition table

Disk /dev/sdd: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdd doesn't contain a valid partition table

Disk /dev/sde: 2000.4 GB, 2000397852160 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907027055 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sde doesn't contain a valid partition table

Отсюда видно, что ни один из моих дисков RAID не имеет таблицы разделов или UUID. Самая близкая вещь, которую я нашел к моей проблеме, была эта нить, которая предложила запустить mdadm --create /dev/md0 -v -l 5 -n 4 /dev/sda /dev/sdc /dev/sde /dev/sdd и проверка правильности файловой системы с fsck -fn /dev/md0, Впрочем, первая команда выплюнула mdadm: no raid-devices specified. Я повторил команду, используя sda1, sdc1 и т. Д., Но затем получаю следующее:

mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: super1.x cannot open /dev/sda1: No such file or directory
mdadm: ddf: Cannot open /dev/sda1: No such file or directory
mdadm: Cannot open /dev/sda1: No such file or directory
mdadm: device /dev/sda1 not suitable for any style of array

Если я делаю create и оставляю sda1 как "отсутствующую" переменную в команде, то это просто говорит то же самое для sdc1.

Я уверен, что я делаю это сложнее, чем нужно. Может кто-то с опытом, пожалуйста, помогите мне? Спасибо за ваше время заранее.

* edit * Когда я бегу dumpe2fs /dev/sda я получил:

dumpe2fs 1.41.14 (22-Dec-2010)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          bbe6fb91-d37c-414a-8c2b-c76a30b9b5c5
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype     needs_recovery sparse_super large_file
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              366288896
Block count:              1465135872
Reserved block count:     73256793
Free blocks:              568552005
Free inodes:              366066972
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      674
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Filesystem created:       Wed Oct 28 12:23:09 2009
Last mount time:          Tue Oct 18 13:59:36 2011
Last write time:          Tue Oct 18 13:59:36 2011
Mount count:              17
Maximum mount count:      26
Last checked:             Fri Oct 14 17:04:16 2011
Check interval:           15552000 (6 months)
Next check after:         Wed Apr 11 17:04:16 2012
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:           256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      17e784d8-012e-4a29-9bbd-c312de282588
Journal backup:           inode blocks
Journal superblock magic number invalid!

Так что все еще там. Все еще исследую...

3 ответа

Хлоп! Что за соленье давайте посмотрим, сможем ли мы отсортировать вас. Начиная с резюме ваших дисков и таблиц разделов:

sda - no partition table
sdb - sdb1 [Linux] sdb2 [Linux extended] sdb5 [swap]
sdc - no partition table
sdd - no partition table
sde - no partition table
  1. Ни один из них не помечен как fd Linux raid autodetect, который используется по умолчанию
  2. Вы не используете разделы для организации дискового пространства [0]
  3. Вы, похоже, отформатировали весь диск для ext2/3 и используете весь диск как часть raidset

Последний пункт - то, где я думаю, что ты стал уничтоженным. Начальные скрипты, вероятно, думали, что вы должны быть за fsck, здравомыслие проверило громкость и в процессе уничтожило суперблок MD. dumpe2fs ничего не должен возвращать для томов часть набора RAID.

Возьмите мой RAID, например:

root@mark21:/tmp/etc/udev# fdisk -l /dev/sda

Disk /dev/sda: 640.1 GB, 640135028736 bytes
255 heads, 63 sectors/track, 77825 cylinders, total 1250263728 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000ffc4

Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048  1240233983   620115968   fd  Linux raid autodetect

root@mark21:/tmp/etc/udev# dumpe2fs /dev/sda1
dumpe2fs 1.41.14 (22-Dec-2010)
dumpe2fs: Bad magic number in super-block while trying to open /dev/sda
Couldn't find valid filesystem superblock.

То, что вам вообще удалось воссоздать RAID-набор, чрезвычайно удачно, но это не меняет фундаментальных недостатков вашего развертывания. Это случится снова.

Я бы порекомендовал это:

  1. Сделайте резервную копию всего на этом наборе рейда
  2. Уничтожьте массив и сотрите суперблок md с каждого устройства (man mdadm)
  3. Обнулить эти диски: dd if=/dev/zero of=/dev/sdX bs=1M count=100
  4. Создайте разделы на sda, sdc, sdd и sdf, занимающие 99% диска [0]
  5. Отметьте эти разделы как type fd linux-raid wiki
  6. никогда не форматировать эти разделы с какой-либо файловой системой
  7. Создайте новый RAID 5: mdadm --create /dev/md0 -v -f -l 5 -n 4 /dev/sda1 /dev/sdc1 /dev/sdd1 /dev/sde1
  8. Обновите новый UUID в /etc/mdadm.conf
  9. Жить долго и счастливо

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

[0] Однажды я столкнулся с очень неприятной ошибкой на дисках SATA, которые имели много плохих блоков. После использования инструмента продавца для восстановления диска. Мой когда-то идентичный набор дисков теперь был уникальным, у плохого диска теперь было на несколько блоков меньше, чем до того, как начался низкоуровневый формат, что, конечно, разрушило мою таблицу разделов и препятствовало повторному подключению диска к набору MD RAID.

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

Поэтому я больше никогда не использую весь диск при создании RAID-набора, а вместо этого использую 95-99% доступного свободного пространства при создании раздела, который обычно занимает весь диск. Это также дает вам дополнительную гибкость при замене неисправных членов. Например, не все диски емкостью 250 ГБ имеют одинаковое количество свободных блоков, поэтому, если вы допустите максимальное отклонение с максимальным запасом, то вы можете использовать практически любую марку диска для замены неисправного элемента.

У меня была та же самая проблема прежде, и я не документировал это (и был некоторое время назад).

Я вспоминаю кое-что об использовании e2fsck -b <superblockSector> /dev/sdX и пытается резервное копирование секторов суперблока

Вы также можете взглянуть на TestDisk

Прошло много времени с твоего поста, но я напишу это:

"mdadm: не удается открыть устройство /dev/sdb1: устройство или ресурс занят"

это хорошо проверить

cat / proc / mdstat

Я полагаю, ваш диск подключен к какому-то рейду. / DEV /md126

Если это так, остановить рейд

mdadm --stop /dev/md125

а затем попробуйте собрать ваш рейд / dev / md0

mdadm --assemble --verbose - обновить сводки /dev/md0 /dev/sda3 /dev/sdb3 /dev/sdc3 /dev/sdd3

НО: Более важный вопрос:

НЕ ИСПОЛЬЗУЙТЕ RAID 5 С ДИСКОМ БОЛЬШЕ, ЧЕМ 1,5 ТБ!!!

Неустранимый коэффициент ошибок по битам

Это скорость, с которой накопитель не сможет восстановить данные после применения кодов циклического избыточного кода (CRC) и многократных повторных попыток. Скорость UBE (неустранимая битовая ошибка) обычно указывается равной 1 биту в 10^15 для дисков корпоративного класса (SCSI, FC, SAS) и 1 биту в 10^14 для дисков настольного класса (IDE/ATA/PATA, SATA), (так что каждый ~ 1,7 ТБ)

Так что, если один из ваших дисков выйдет из строя, есть ~55% вероятности, что он НЕ БУДЕТ перестроен (для UBE 10^-14) Удачи...

больше здесь: http://www.raidtips.com/raid5-ure.aspx

Другие вопросы по тегам