В некоторых нештатных ситуациях может получиться так, что после некорректного завершения работы 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
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