Добрый день,Столкнулся с проблемой. Есть хост, на нем 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 это не прокатывает.
Может кто-нить подсказать, как можно жестко зафиксировать или имена самих дисков, привязав их к серийникам, или диски в составе массива, чтобы не было этой ненужной пересборки массива на ровном месте?
Спасибо
> то ставши при перезагрузке /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и нет никакого перечисления устройств.
А у вас как и зачем?
>[оверквотинг удален]
>> указав в /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 собирать правильный массив, монтировать и перезапускать все службы, которые с ним работают. Ужас
Добрый день.Можно в udev прибить статическией маппинг имен дисков
> Добрый день.
> Можно в udev прибить статическией маппинг имен дисковА как это сделаль на уровне initrd? Автосборка /dev/md127 ведь именно там идет, или я не прав?
> Добрый день,
> Столкнулся с проблемой. Есть хост, на нем 8 дисков. Из них 1
> загрузочный, остальные собраны в raid5 (6+1spare) Недавно обнаружилось, что при перезагрузкеВозможно после правки mdadm.conf нужно initrd пересобрать
>> Добрый день,
>> Столкнулся с проблемой. Есть хост, на нем 8 дисков. Из них 1
>> загрузочный, остальные собраны в raid5 (6+1spare) Недавно обнаружилось, что при перезагрузке
> Возможно после правки mdadm.conf нужно initrd пересобратьЭто первое, что я сделал :) Не помогает пробовал и
dracut -f --mdadmconf
и просто
dracut -f
А если использовать UUID?
> А если использовать UUID?Пробовал, не работает
>> А если использовать UUID?
> Пробовал, не работаетА .... "не работает". Ну тогда да, конечно. Идите, раскладывайте грабли, и начинайте бегать.
Если рейд в процессе загрузки не участвует, то можно в cmdline прописать rd.md=0 rd.dm=0
Тогда мдадм будет собирать рейд уже после монтирования rootfs и читаться будет конфиг с /dev/disk/by-id.
> Если рейд в процессе загрузки не участвует, то можно в cmdline прописать
> rd.md=0 rd.dm=0
> Тогда мдадм будет собирать рейд уже после монтирования rootfs и читаться будет
> конфиг с /dev/disk/by-id.Спасибо за наводку. Попробую на выходных. Похоже, это может помочь :)
> Если рейд в процессе загрузки не участвует, то можно в cmdline прописать
> rd.md=0 rd.dm=0
> Тогда мдадм будет собирать рейд уже после монтирования rootfs и читаться будет
> конфиг с /dev/disk/by-id.Попробовал даже раньше, работает, спасибо :)