Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


unix-linux:linux-software-raid:after-incorrect-server-shutdown-raid-array-device-name-mdraid-changes-from-md0-to-md127

После аварийного отключения 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

Обсуждение

АлексейАлексей, 15.06.2022 10:34
Всё описанное пробовал, не помогло. Ubuntu 18.04

Моя проблема возникла после замены дисков 160GB>>1000GB
Разделы были:
md0 = sda1+sdb1 - /boot 1GB
md1 = sda2+sdb2 - / 143GB
md2 = sda3+sdb3 - swap 8GB

Стали
md0 = sda1+sdb1 - /boot 1GB
md1 = sda2+sdb2 - / 992GB
md2 = sda3+sdb3 - swap 7,7GB

При изменении размеров удалил swap-разделы и создал заново в конце диска
parted sda
p
rm 3
mkpart primary ext2 992GB -0M # - создать раздел от точки 992GB до конца диска
set 3 lba off # - убрать метку lba с раздела 3.
set 3 raid on # - установить метку raid на раздел 3.
resizepart 2
992GB
q

Потом то же для sdb
Пересоздал md2
mdadm --assemble --update=name --name=2 /dev/md2 /dev/sda3 /dev/sdb3
И подключил на него своп
swapon /dev/md2

В итоге получил проблему с переименованием md2 в md127 при перезагрузке при том что /etc/mdadm/mdadm.conf и fstab в порядке.



При выполнении после переименования массива
update-initramfs -k all -u
выдавал:
W: initramfs-tools configuration sets RESUME=UUID=1c020097-541f-440c-af95-844d539c010a
W: but no matching swap device is available.
I: The initramfs will attempt to resume from /dev/md2
I: (UUID=112f6303-68bb-4f17-8f25-10edc290aab6)
I: Set the RESUME variable to override this.

Проблема ушла после замены UUID старого swap-раздела на новый в файле
nano /etc/initramfs-tools/conf.d/resume
Ваш комментарий:
 
unix-linux/linux-software-raid/after-incorrect-server-shutdown-raid-array-device-name-mdraid-changes-from-md0-to-md127.txt · Последнее изменение: 19.06.2018 13:54 — Алексей Максимов

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki