URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 96501
[ Назад ]

Исходное сообщение
" mdadm  на centos 6.7"

Отправлено Dmitry R , 14-Мрт-16 02:07 
Добрый день,

Столкнулся с проблемой. Есть хост, на нем 8 дисков. Из них 1 загрузочный, остальные собраны в raid5 (6+1spare) Недавно обнаружилось, что при перезагрузке хоста имена дисков могут произвольно изменяться. Например, тот, который был /dev/sdc вдруг стал /dev/sdd. И если /dev/sdc был загрузочным и не был в массиве, то ставши при перезагрузке /dev/sdd, он по конфигу попал в состав массива. md такого не любит и начинает восстанавливать массив, хотя надобности в этом нет никакой. Казалось бы, проблему можно решить, указав в /etc/mdadm.conf все устройства через путь /dev/disk/by-id/... тем самым жестко зафиксировав состав массива, mdadm это вполне устраивает, но драйвер md, похоже, этого не понимает и начинает автособирать массив при загрузке по своему разумению и собирает его под именем /dev/md127, вместо /dev/md0, как указано в конфиге. Параметр raid=noautodetect в grub.conf для передачи ядру чтобы md не занимался при загрузке автосборкой вообще игнорируется. Как md автособирал массив на старте, так и продолжает собирать что с этим параметром, что без. На убунте такая проблема решалась людьми пересборкой initramfs, но на centos это не прокатывает.

Может кто-нить подсказать, как можно жестко зафиксировать или имена самих дисков, привязав их к серийникам, или диски в составе массива, чтобы не было этой ненужной пересборки массива на ровном месте?

Спасибо


Содержание

Сообщения в этом обсуждении
" mdadm  на centos 6.7"
Отправлено PavelR , 14-Мрт-16 06:29 

> то ставши при перезагрузке /dev/sdd, он по конфигу попал  в состав массива.
> указав в /etc/mdadm.conf все устройства через путь /dev/disk/by-id/... тем самым жестко
> зафиксировав состав массива

В моем mdadm.conf есть только строчки вида

DEVICE partitions
ARRAY /dev/md0 UUID=a30c0e32:010e3fe7:a5e8426b:6d18543c
ARRAY /dev/md1 metadata=1.2 UUID=a30c0e32:010e3fe7:a5e8426b:6d18543d name=aa:1
ARRAY /dev/md3 metadata=1.2 UUID=a30c0e32:010e3fe7:a5e8426b:6d18543e name=aa:3
ARRAY /dev/md4 metadata=1.2 UUID=a30c0e32:010e3fe7:a5e8426b:6d18543f name=aa:4

и нет никакого перечисления устройств.

А у вас как и зачем?


" mdadm  на centos 6.7"
Отправлено Dmitry R , 14-Мрт-16 11:11 
>[оверквотинг удален]
>> указав в /etc/mdadm.conf все устройства через путь /dev/disk/by-id/... тем самым жестко
>> зафиксировав состав массива
> В моем mdadm.conf есть только строчки вида
> DEVICE partitions
> ARRAY /dev/md0 UUID=a30c0e32:010e3fe7:a5e8426b:6d18543c
> ARRAY /dev/md1 metadata=1.2 UUID=a30c0e32:010e3fe7:a5e8426b:6d18543d name=aa:1
> ARRAY /dev/md3 metadata=1.2 UUID=a30c0e32:010e3fe7:a5e8426b:6d18543e name=aa:3
> ARRAY /dev/md4 metadata=1.2 UUID=a30c0e32:010e3fe7:a5e8426b:6d18543f name=aa:4
> и нет никакого перечисления устройств.
> А у вас как и зачем?

Павел, я по ошибке нажал на минус у вашего сообщения, предполагая, что это сворачивание - разворачивание содержимого, походу оказалась, что я вас заминусовал, извините, не хотел.

У меня сейчас так:

DEVICE /dev/sda /dev/sdb /dev/sdg /dev/sdc /dev/sde /dev/sdf /dev/sdh
ARRAY /dev/md0 level=raid5 num-devices=6 spares=1 devices=/dev/sda,/dev/sdb,/dev/sdg,/dev/sdc,/dev/sde,/dev/sdf,/dev/sdh
PROGRAM /root/mdadm-event.sh

В этом случае работает, как повезет, если при перезагрузке имена дисков сохраняются, то все нормально. Если изменяются, то пересобирает.

Пробовал так:

DEVICE /dev/disk/by-id/ata-ST2000DL003-9VT166_5YD28AAX /dev/disk/by-id/ata-ST2000DM001-1CH164_Z1E54RST /dev/disk/by-id/ata-ST2000DL003-9VT166_5YD1XRJ1 /dev/disk/by-id/ata-ST2000DL003-9VT166_5YD1K120 /dev/disk/by-id/ata-ST2000DL003-9VT166_5YD1VL37 /dev/disk/by-id/ata-ST2000DL003-9VT166_5YD1PF9B
ARRAY /dev/md0 level=raid5 devices=/dev/disk/by-id/ata-ST2000DL003-9VT166_5YD28AAX,/dev/disk/by-id/ata-ST2000DM001-1CH164_Z1E54RST,/dev/disk/by-id/ata-ST2000DL003-9VT166_5YD1XRJ1,/dev/disk/by-id/ata-ST2000DL003-9VT166_5YD1K120,/dev/disk/by-id/ata-ST2000DL003-9VT166_5YD1VL37,/dev/disk/by-id/ata-ST2000DL003-9VT166_5YD1PF9B
PROGRAM /root/mdadm-event.sh

В этом случае dm автособирает /dev/dm127 при перезагрузке. Чтобы работать, его потом нужно отключать, и уже mdadm собирать правильный массив, монтировать и перезапускать все службы, которые с ним работают. Ужас


" mdadm  на centos 6.7"
Отправлено КуКу , 14-Мрт-16 10:09 
Добрый день.

Можно в udev прибить статическией маппинг имен дисков


" mdadm  на centos 6.7"
Отправлено Dmitry R , 14-Мрт-16 11:15 
> Добрый день.
> Можно в udev прибить статическией маппинг имен дисков

А как это сделаль на уровне initrd? Автосборка /dev/md127 ведь именно там идет, или я не прав?


" mdadm  на centos 6.7"
Отправлено stalker37 , 14-Мрт-16 11:06 
> Добрый день,
> Столкнулся с проблемой. Есть хост, на нем 8 дисков. Из них 1
> загрузочный, остальные собраны в raid5 (6+1spare) Недавно обнаружилось, что при перезагрузке

Возможно после правки mdadm.conf нужно initrd пересобрать


" mdadm  на centos 6.7"
Отправлено Dmitry R , 14-Мрт-16 11:13 
>> Добрый день,
>> Столкнулся с проблемой. Есть хост, на нем 8 дисков. Из них 1
>> загрузочный, остальные собраны в raid5 (6+1spare) Недавно обнаружилось, что при перезагрузке
> Возможно после правки mdadm.conf нужно initrd пересобрать

Это первое, что я сделал :) Не помогает пробовал и
dracut -f --mdadmconf
и просто
dracut -f


" mdadm  на centos 6.7"
Отправлено ALex_hha , 14-Мрт-16 14:35 
А если использовать UUID?

" mdadm  на centos 6.7"
Отправлено Dmitry R , 14-Мрт-16 18:47 
> А если использовать UUID?

Пробовал, не работает



" mdadm  на centos 6.7"
Отправлено PavelR , 15-Мрт-16 06:55 
>> А если использовать UUID?
> Пробовал, не работает

А .... "не работает". Ну тогда да, конечно. Идите, раскладывайте грабли, и начинайте бегать.


" mdadm  на centos 6.7"
Отправлено DeerFriend , 14-Мрт-16 17:34 
Если рейд в процессе загрузки не участвует, то можно в cmdline прописать rd.md=0 rd.dm=0
Тогда мдадм будет собирать рейд уже после монтирования rootfs и читаться будет конфиг с /dev/disk/by-id.

" mdadm  на centos 6.7"
Отправлено Dmitry R , 14-Мрт-16 18:57 
> Если рейд в процессе загрузки не участвует, то можно в cmdline прописать
> rd.md=0 rd.dm=0
> Тогда мдадм будет собирать рейд уже после монтирования rootfs и читаться будет
> конфиг с /dev/disk/by-id.

Спасибо за наводку. Попробую на выходных. Похоже, это может помочь :)


" mdadm  на centos 6.7"
Отправлено Dmitry R , 16-Мрт-16 10:49 
> Если рейд в процессе загрузки не участвует, то можно в cmdline прописать
> rd.md=0 rd.dm=0
> Тогда мдадм будет собирать рейд уже после монтирования rootfs и читаться будет
> конфиг с /dev/disk/by-id.

Попробовал даже раньше, работает, спасибо :)