Почему мой RAID / dev / md1 отображается как / dev / md126? Mdadm.conf игнорируется?

26

Я создал RAID с:

sudo mdadm --create --verbose /dev/md1 --level=mirror --raid-devices=2 /dev/sdb1 /dev/sdc1
sudo mdadm --create --verbose /dev/md2 --level=mirror --raid-devices=2 /dev/sdb2 /dev/sdc2

sudo mdadm --detail --scan возвращает:

ARRAY /dev/md1 metadata=1.2 name=ion:1 UUID=aa1f85b0:a2391657:cfd38029:772c560e
ARRAY /dev/md2 metadata=1.2 name=ion:2 UUID=528e5385:e61eaa4c:1db2dba7:44b556fb

К которому я добавил это /etc/mdadm/mdadm.conf, см. Ниже:

# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#

# by default (built-in), scan all partitions (/proc/partitions) and all
# containers for MD superblocks. alternatively, specify devices to scan, using
# wildcards if desired.
#DEVICE partitions containers

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# definitions of existing MD arrays

# This file was auto-generated on Mon, 29 Oct 2012 16:06:12 -0500
# by mkconf $Id$
ARRAY /dev/md1 metadata=1.2 name=ion:1 UUID=aa1f85b0:a2391657:cfd38029:772c560e
ARRAY /dev/md2 metadata=1.2 name=ion:2 UUID=528e5385:e61eaa4c:1db2dba7:44b556fb

cat /proc/mdstat возвращает:

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md2 : active raid1 sdb2[0] sdc2[1]
      208629632 blocks super 1.2 [2/2] [UU]

md1 : active raid1 sdb1[0] sdc1[1]
      767868736 blocks super 1.2 [2/2] [UU]

unused devices: <none>

ls -la /dev | grep md возвращает:

brw-rw----   1 root disk      9,   1 Oct 30 11:06 md1
brw-rw----   1 root disk      9,   2 Oct 30 11:06 md2

Поэтому я думаю, что все хорошо, и я перезагружаюсь.


После перезагрузки / dev / md1 теперь / dev / md126, а / dev / md2 теперь / dev / md127 ?????

sudo mdadm --detail --scan возвращает:

ARRAY /dev/md/ion:1 metadata=1.2 name=ion:1 UUID=aa1f85b0:a2391657:cfd38029:772c560e
ARRAY /dev/md/ion:2 metadata=1.2 name=ion:2 UUID=528e5385:e61eaa4c:1db2dba7:44b556fb

cat /proc/mdstat возвращает:

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md126 : active raid1 sdc2[1] sdb2[0]
      208629632 blocks super 1.2 [2/2] [UU]

md127 : active (auto-read-only) raid1 sdb1[0] sdc1[1]
      767868736 blocks super 1.2 [2/2] [UU]

unused devices: <none>

ls -la /dev | grep md возвращает:

drwxr-xr-x   2 root root          80 Oct 30 11:18 md
brw-rw----   1 root disk      9, 126 Oct 30 11:18 md126
brw-rw----   1 root disk      9, 127 Oct 30 11:18 md127

Еще не все потеряно

sudo mdadm --stop /dev/md126
sudo mdadm --stop /dev/md127
sudo mdadm --assemble --verbose /dev/md1 /dev/sdb1 /dev/sdc1
sudo mdadm --assemble --verbose /dev/md2 /dev/sdb2 /dev/sdc2

и проверить все:

sudo mdadm --detail --scan возвращает:

ARRAY /dev/md1 metadata=1.2 name=ion:1 UUID=aa1f85b0:a2391657:cfd38029:772c560e
ARRAY /dev/md2 metadata=1.2 name=ion:2 UUID=528e5385:e61eaa4c:1db2dba7:44b556fb

cat /proc/mdstat возвращает:

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md2 : active raid1 sdb2[0] sdc2[1]
      208629632 blocks super 1.2 [2/2] [UU]

md1 : active raid1 sdb1[0] sdc1[1]
      767868736 blocks super 1.2 [2/2] [UU]

unused devices: <none>

ls -la /dev | grep md возвращает:

brw-rw----   1 root disk      9,   1 Oct 30 11:26 md1
brw-rw----   1 root disk      9,   2 Oct 30 11:26 md2

Итак, еще раз, я думаю, что все хорошо, и я перезагружаюсь.


Опять же, после перезагрузки / dev / md1 - это / dev / md126, а / dev / md2 - это / dev / md127 ?????

sudo mdadm --detail --scan возвращает:

ARRAY /dev/md/ion:1 metadata=1.2 name=ion:1 UUID=aa1f85b0:a2391657:cfd38029:772c560e
ARRAY /dev/md/ion:2 metadata=1.2 name=ion:2 UUID=528e5385:e61eaa4c:1db2dba7:44b556fb

cat /proc/mdstat возвращает:

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md126 : active raid1 sdc2[1] sdb2[0]
      208629632 blocks super 1.2 [2/2] [UU]

md127 : active (auto-read-only) raid1 sdb1[0] sdc1[1]
      767868736 blocks super 1.2 [2/2] [UU]

unused devices: <none>

ls -la /dev | grep md возвращает:

drwxr-xr-x   2 root root          80 Oct 30 11:42 md
brw-rw----   1 root disk      9, 126 Oct 30 11:42 md126
brw-rw----   1 root disk      9, 127 Oct 30 11:42 md127

Что мне здесь не хватает?

mmorris
источник

Ответы:

26

Я нашел ответ здесь, RAID начинается с md127 вместо md0 . Короче говоря, я выбрал свои определения /etc/mdadm/mdadm.conf из:

ARRAY /dev/md1 metadata=1.2 name=ion:1 UUID=aa1f85b0:a2391657:cfd38029:772c560e
ARRAY /dev/md2 metadata=1.2 name=ion:2 UUID=528e5385:e61eaa4c:1db2dba7:44b556fb

чтобы:

ARRAY /dev/md1 UUID=aa1f85b0:a2391657:cfd38029:772c560e
ARRAY /dev/md2 UUID=528e5385:e61eaa4c:1db2dba7:44b556fb

и побежал:

sudo update-initramfs -u

Я далеко не эксперт в этом, но мое понимание таково ...

Ядро собрало массивы до наступления обычного времени сборки массивов. Когда ядро ​​собирает массивы, оно не использует mdadm.conf. Поскольку разделы уже были собраны ядром, обычная сборка массива, использующая mdadm.conf, была пропущена.

Вызов sudo update-initramfs -uговорит ядру снова взглянуть на систему, чтобы выяснить, как ее запустить.

Я уверен, что кто-то с лучшими знаниями исправит меня / уточнит это.

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

sudo update-initramfs -k all -u
mmorris
источник
3
Да, на самом деле это воссоздает initrd для ядра и включает файлы конфигурации, относящиеся к конфигурации MD-RAID. Это означает, что во время создания устройств ядро ​​будет знать, как назвать их в соответствии с вашими настройками. Хороший улов. +1 ... кстати: заметил, что это тоже объясняется в связанной теме форума.
0xC0000022L
Эй, этот ответ решил проблему медленной инициализации RAID в моей системе Arch Linux. Для загрузки массива RAID0 во время загрузки потребуется 5 секунд. После изменения mdadm.conf, как описано, и запуска mkinitcpio, это занимает незначительное время!
rep_movsd
Не удалось загрузить Ubuntu 12.04 (Mint 13) без этого. Я даже не смог заставить свою корневую ФС смонтировать из оболочки initramfs. При монтировании было множество ошибок dm-linear и ошибок «bad superblock». Я также переименовал мое устройство md0 в 0, а устройство md1 в 1. Я не знаю, было ли это также необходимо.
cmcginty
6
sudo update-initramfs -u

было все, что мне нужно, чтобы это исправить. Я ничего не редактировал в /etc/mdadm/mdadm.conf.

ajaaskel
источник
0

Мне удалось воспроизвести проблему следующим образом:

Когда «Software Updater» спросил, хочу ли я обновить пакеты (включая базу Ubuntu »и ядро, я ответил:« ОК. Вновь установленное ядро ​​использовало настройки текущего ядра / системы. Затем я создал массив. Обновилось только текущее работающее ядро ​​». с новыми настройками RAID. После перезагрузки новое ядро ​​ничего не знало о рейде и присвоило ему имя md127!

Ангелос Василиу
источник