У меня проблемы с mdadm после перезагрузки, я не могу собрать /dev/md0 .

Я работаю над Debian Wheezy.

Я сделал следующие шаги:

sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sd[b-e]
cat /proc/mdstat
sudo mdadm --readwrite /dev/md0
sudo mdadm --detail --scan >> /etc/mdadm/mdadm.conf
echo check > /sys/block/md0/md/sync_action
sudo pvcreate /dev/md0
sudo pvdisplay
sudo vgcreate vgraid6 /dev/md0
sudo lvcreate -l 100%FREE -n lvHD vgraid6
sudo mkfs.ext4 -v /dev/vgraid6/lvHD

Здесь все работает успешно.

После монтирования RAID я мог использовать его, создавать файлы, получать к нему доступ с других компьютеров ...

Теперь возникает проблема:

После перезагрузки сервера (перезагрузите сейчас) RAID больше не существует, /dev/md0 пропал.

Сначала я проверил /etc/mdadm/mdadm.conf:

# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#
#DEVICE partitions containers
...
CREATE owner=root group=disk mode=0660 auto=yes
MAILADDR root
ARRAY /dev/md0 metadata=1.2 name=media:0 UUID=cb127a0b:ad4eb61d:e0ba8f82:db4b062d

После того, как я попробую:

$ mdadm --stop --scan
$ mdadm --assemble --scan

или же:

$ sudo  mdadm --assemble /dev/md0 /dev/sd[b-e]
    mdadm: Cannot assemble mbr metadata on /dev/sdb
    mdadm: /dev/sdb has no superblock - assembly aborted


$ sudo  mdadm --examine /dev/sd[b-e]
/dev/sdb:
   MBR Magic : aa55
Partition[0] :   4294967295 sectors at            1 (type ee)
/dev/sdc:
   MBR Magic : aa55
Partition[0] :   4294967295 sectors at            1 (type ee)
/dev/sdd:
   MBR Magic : aa55
Partition[0] :   4294967295 sectors at            1 (type ee)
/dev/sde:
   MBR Magic : aa55
Partition[0] :   4294967295 sectors at            1 (type ee)

Демон mdadm работает (ps aux | grep mdadm)

пусто /proc /mdstat

$ cat /proc/mdstat
Personalities :
unused devices: <none>

В чем дело?

2 ответа2

12

Причина двоякая:

  • Ваш (новый) mdadm.conf не читается ко времени сборки массивов.

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

    Таким образом, чтобы сделать эту работу, после обновления конфига, запустите

    # update-initramfs -u
    

    чтобы обновить initramfs.

  • Ваше устройство RAID не обнаруживается и не собирается автоматически при загрузке.

    Чтобы обеспечить это, измените типы разделов-участников на 0xfd (автоопределение Linux RAID) - для таблиц разделов в стиле MBR или на 00FD (то же самое) для GPT. Вы можете использовать fdisk или gdisk , соответственно, чтобы сделать это.

    mdadm запускается при загрузке (вне initramfs), сканирует доступные разделы, считывает блоки метаданных со всех типов 0xfd собирает и запускает все устройства RAID, на которые он способен. Для этого не требуется копия обновленного mdadm.conf в образе initramfs.

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

0

Спасибо за ответ.

Я уже пытался обновить initranfd, но безуспешно.

С вашим вторым советом я исправляю проблему:

создать раздел на каждом диске, используя:

gdisk /dev/sd[b-e] \n \ \fd00\w\y

создать mdadm на разделе либо на устройстве (отметьте 1 в конце)

sudo mdadm --create --verbose /dev/md0 --level=6 --assume-clean --raid-devices=4 /dev/sd[b-e]1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .