Столкнулся со следующей ситуацией. Создаю RAID-группу через mdadm:
vgeniy@micro-gen10plus:~$ sudo lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
[sudo] password for evgeniy:
NAME SIZE FSTYPE TYPE MOUNTPOINT
loop0 61,9M squashfs loop /snap/core20/1434
loop1 61,9M squashfs loop /snap/core20/1405
loop2 44,7M squashfs loop /snap/snapd/15534
loop3 79,9M squashfs loop /snap/lxd/22923
sda 931,5G disk
├─sda1 1G vfat part /boot/efi
└─sda2 930,5G ext4 part /
sdb 2,7T disk
└─sdb1 2,7T ntfs part
sdc 2,7T disk
└─sdc1 2,7T ntfs part
sdd 2,7T disk
└─sdd1 2,7T ntfs part
evgeniy@micro-gen10plus:~$ sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd
evgeniy@micro-gen10plus:~$ sudo mdadm --detail --scan
ARRAY /dev/md/0 metadata=1.2 spares=1 name=micro-gen10plus:0 UUID=8566dba5:1daed0e0:e6cd5d42:6226d071
evgeniy@micro-gen10plus:~$ sudo mdadm --examine --scan
ARRAY /dev/md/0 metadata=1.2 UUID=8566dba5:1daed0e0:e6cd5d42:6226d071 name=micro-gen10plus:0
evgeniy@micro-gen10plus:~$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-5.15.0-39-generic
Вроде бы всё хорошо. Но после перезагрузки том md0 исчезает. Все команды дают пустой вывод
evgeniy@micro-gen10plus:~$ ls /dev |grep md
evgeniy@micro-gen10plus:~$ sudo mdadm --examine --scan
evgeniy@micro-gen10plus:~$ sudo mdadm --assemble --scan
evgeniy@micro-gen10plus:~$ sudo mdadm --detail --scan
evgeniy@micro-gen10plus:~$ sudo mdadm --assemble --scan --verbose
mdadm: looking for devices for /dev/md0
mdadm: No super block found on /dev/sdc (Expected magic a92b4efc, got 00000000)
mdadm: no RAID superblock on /dev/sdc
mdadm: No super block found on /dev/sdd (Expected magic a92b4efc, got 00000000)
mdadm: no RAID superblock on /dev/sdd
mdadm: No super block found on /dev/sdb (Expected magic a92b4efc, got 00000000)
mdadm: no RAID superblock on /dev/sdb
mdadm: No super block found on /dev/sda2 (Expected magic a92b4efc, got 00000476)
mdadm: no RAID superblock on /dev/sda2
mdadm: No super block found on /dev/sda1 (Expected magic a92b4efc, got 00000000)
mdadm: no RAID superblock on /dev/sda1
mdadm: No super block found on /dev/sda (Expected magic a92b4efc, got 00000000)
mdadm: no RAID superblock on /dev/sda
mdadm: No super block found on /dev/loop4 (Expected magic a92b4efc, got 3a23b8f9)
mdadm: no RAID superblock on /dev/loop4
mdadm: No super block found on /dev/loop3 (Expected magic a92b4efc, got 9e3929c1)
mdadm: no RAID superblock on /dev/loop3
mdadm: No super block found on /dev/loop2 (Expected magic a92b4efc, got 87eca499)
mdadm: no RAID superblock on /dev/loop2
mdadm: No super block found on /dev/loop1 (Expected magic a92b4efc, got 3a23b8f9)
mdadm: no RAID superblock on /dev/loop1
mdadm: No super block found on /dev/loop0 (Expected magic a92b4efc, got a6eff301)
mdadm: no RAID superblock on /dev/loop0
Ситуация нестандартная. Может возникнуть при следующем сочетании факторов: вы используете при создании RAID не разделы, а тома (например, не /dev/sdb1, а /dev/sdb). Диск был ранее в использовании и "отформатирован" с разметкой GPT (GUID partition table). Особенности материнской платы, которая зачищает суперблок RAID'а.
Решение достаточно простое. Надо удалить c каждого диска, включаемого в RAID-группу, таблицу разделов GPT командой sgdisk с ключом --zap. В моем случае это выглядит так:
evgeniy@micro-gen10plus:~$ sudo sgdisk --zap /dev/sdb
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.
evgeniy@micro-gen10plus:~$ sudo sgdisk --zap /dev/sdc
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.
evgeniy@micro-gen10plus:~$ sudo sgdisk --zap /dev/sdd
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.
Из хороших новостей. Удаление таблицы GPT можно делать на дисках уже после создания RAID-группы и записи данных в тома, размещенные на ней. Это не приведет... не должно привести к потере данных.
После этого надо пересоздать RAID-группу. И это тоже не должно привести к потере данных:
evgeniy@micro-gen10plus:~$ sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: partition table exists on /dev/sdb
mdadm: partition table exists on /dev/sdc
mdadm: partition table exists on /dev/sdd
mdadm: size set to 2930134016K
mdadm: automatically enabling write-intent bitmap on large array
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
evgeniy@micro-gen10plus:~$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-5.15.0-39-generic
Проверяем, что данные на месте
evgeniy@micro-gen10plus:~$ sudo mount /dev/md0 /media/md0
evgeniy@micro-gen10plus:~$ ls /media/md0/
downloads lost+found query
Для проверки перезагружаем сервер:
evgeniy@micro-gen10plus:~$ sudo reboot
evgeniy@micro-gen10plus:~$ sudo mdadm --detail --scan --verbose
ARRAY /dev/md/0 level=raid5 num-devices=3 metadata=1.2 spares=1 name=micro-gen10plus:0 UUID=8566dba5:1daed0e0:e6cd5d42:6226d071
devices=/dev/sdb,/dev/sdc,/dev/sdd
evgeniy@micro-gen10plus:~$ sudo mdadm --detail --scan
ARRAY /dev/md/0 metadata=1.2 spares=1 name=micro-gen10plus:0 UUID=8566dba5:1daed0e0:e6cd5d42:6226d071
evgeniy@micro-gen10plus:~$ ls /dev |grep md
md
md0
Дополнительные замечания:
- Данные должны сохранится, но резервное копирование никто не отменял.
- Сохранять конфигурацию в /etc/mdadm/mdadm.conf, как рекомендуют в некоторых руководствах, не надо.
- При повторном создании RAID-группы ее идентификатор изменится. Если вы всё же использовали /etc/mdadm/mdadm.conf на предыдущих шагах, и в нем сохранен устаревший идентификатор, то RAID-группа после перезагрузки всё равно создастся. Но устройство этой группы может стать не md0, md127. После удаления из /etc/mdadm/mdadm.conf записи о группе и перезагрузке имя устройства вернется к md0.
Решение найдено тут
Комментариев нет:
Отправить комментарий