После аварийного отключения Linux Software RAID имя устройства mdraid меняется c md0 на md127

В некоторых нештатных ситуациях может получиться так, что после некорректного завершения работы Linux-системы или при внезапном временном отключении дисков, из которых собран RAID-массив Linux Software RAID (mdraid), имя массива (устройство mdraid) меняется с ранее назначенного, например md0, на имя md127. В этой заметке мы рассмотрим пример того, как исправить эту ситуацию и вернуть прежнее имя RAID-массива.

В нашем примере в системе имеется RAID-массив уровня RAID-6 из 4-дисков. При создании массива, ему было назначено имя md0. После некорректного выключения системы массив изменил своё имя на md127

# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] md127 : active (auto-read-only) raid6 dm-9[2] dm-6[0] dm-1[1] dm-7[3] 4882206720 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUUUUUUUUUU] bitmap: 0/4 pages [0KB], 65536KB chunk unused devices: none

Посмотрим на текущее состояние массива и обратим внимание на идентификатор UUID (он не меняется при смене имени md-устройства):

# mdadm --detail /dev/md127

/dev/md127: Version : 1.2 Creation Time : Mon Nov 28 21:09:22 2016 Raid Level : raid6 Array Size : 4882206720 (4656.04 GiB 4999.38 GB) Used Dev Size : 488220672 (465.60 GiB 499.94 GB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Intent Bitmap : Internal Update Time : Sun Dec 25 14:02:36 2016 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 512K Consistency Policy : bitmap Name : 1 UUID : 3161ebbe:a270f3e8:376f17d0:41130125 Events : 12196 Number Major Minor RaidDevice State 0 253 6 0 active sync /dev/dm-6 1 253 1 1 active sync /dev/dm-1 2 253 9 2 active sync /dev/dm-9 3 253 7 3 active sync /dev/dm-7

Останавливаем текущий массив /dev/md127:

# mdadm --stop /dev/md127

mdadm: stopped /dev/md127

Запускаем массив заново, но уже назначив ему желаемое имя:

# mdadm --assemble --update=name --name=0 /dev/md0 /dev/dm-1 /dev/dm-6 /dev/dm-7 /dev/dm-9
mdadm: /dev/md0 has been started with 4 drives.

Проверяем состояние массива с прежним именем:

# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] md0 : active raid6 dm-1[0] dm-6[1] dm-7[2] dm-9[3] 4882206720 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUUUUUUUUUU] bitmap: 0/4 pages [0KB], 65536KB chunk unused devices: none
# mdadm --detail /dev/md0

/dev/md0: Version : 1.2 Creation Time : Mon Nov 28 21:09:22 2016 Raid Level : raid6 Array Size : 4882206720 (4656.04 GiB 4999.38 GB) Used Dev Size : 488220672 (465.60 GiB 499.94 GB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Intent Bitmap : Internal Update Time : Sun Dec 25 14:02:36 2016 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 512K Consistency Policy : bitmap Name : 0 UUID : 3161ebbe:a270f3e8:376f17d0:41130125 Events : 12196 Number Major Minor RaidDevice State 0 253 5 0 active sync /dev/dm-1 1 253 0 1 active sync /dev/dm-6 2 253 3 2 active sync /dev/dm-7 3 253 4 3 active sync /dev/dm-9

Отредактируем конфигурационный файл mdadm.conf, который используется при старте системы, таким образом, чтобы UUID массива указывал на нужное нам имя (md0). Также обратите внимание на значение name=0 (оно должно соответсвовать тому, что мы указали при перезапуске массива в параметре –name=0 и тому, что мы видим в свойствах массива при выполнении команды mdadm –detail /dev/md0)

# nano /etc/mdadm.conf
mdadm.conf
DEVICE /dev/dm*
DEVICE /dev/mapper/mpath*
ARRAY /dev/md0 metadata=1.2 name=0 UUID=3161ebbe:a270f3e8:376f17d0:41130125
MAILADDR DST-Linux-Administrators@holding.com
MAILFROM KOM-AD01-FS03@holding.com

Пересоберём загрузочный образ системы initial ramdisk, так как в его состав включается файл /etc/mdadm.conf

На CentOS для этого выполним команду:

# dracut --force

После этого перезагружаем систему и убеждаемся в том, что RAID-массив запустился с нужным нам именем устройства (md0).


Дополнительные источники информации:


Проверено на следующих конфигурациях:

Версия ОС Версия mdadm
CentOS Linux release 7.5.1804 (Core) x86_64 v4.0 - 2017-01-09

Автор первичной редакции:
Алексей Максимов
Время публикации: 19.06.2018 13:30