[Sysadmins] P7: Проблема с softRAID при старте системы
Alex Moskalenko
mav на elserv.msk.su
Чт Авг 8 13:58:21 MSK 2013
Здравствуйте.
Столкнулся с проблемой запуска массива softRAID на p7.
Исходные данные:
- p7, обновленный с t6 (OpenVZ HN)
- ядро 2.6.32-ovz-el-alt100
- 6 жестких дисков SATA с разделами следующей конфигурации:
/dev/sda1 2048 2099199 1048576 82 Linux своп / Solaris
/dev/sda2 * 2099200 10487807 4194304 fd Автоопределение
Linux raid
/dev/sda3 10487808 976773167 483142680 fd Автоопределение
Linux raid
/dev/sdb1 2048 2099199 1048576 82 Linux своп / Solaris
/dev/sdb2 * 2099200 10487807 4194304 fd Автоопределение
Linux raid
/dev/sdb3 10487808 976773167 483142680 fd Автоопределение
Linux raid
/dev/sdc1 2048 943720447 471859200 83 Linux
/dev/sdd1 2048 943720447 471859200 83 Linux
/dev/sde1 2048 943720447 471859200 83 Linux
/dev/sdf1 2048 943720447 471859200 83 Linux
- конфигурация программного RAID (в рабочем состоянии):
Personalities : [raid1] [raid10]
md10 : active raid10 sdf1[1] sde1[2] sdd1[3] sdc1[0]
943715968 blocks super 1.2 64K chunks 2 near-copies [4/4] [UUUU]
bitmap: 21/450 pages [84KB], 1024KB chunk, file: /_bitmap_md10
md1 : active raid1 sda3[0] sdb3[1]
483142592 blocks [2/2] [UU]
md0 : active raid1 sda2[0] sdb2[1]
4193216 blocks [2/2] [UU]
unused devices: <none>
- содержимое mdadm.conf
MAILADDR root
PROGRAM /sbin/mdadm-syslog-events
DEVICE partitions
AUTO -all
ARRAY /dev/md0 metadata=0.90 UUID=4d0cfd09:8028bd31:6a6c0f79:2a1fd6e4
ARRAY /dev/md1 metadata=0.90 UUID=81d13c13:3eafcfa6:6114a8e3:33388138
ARRAY /dev/md10 metadata=1.2 bitmap=/_bitmap_md10 name=10
UUID=984b5bcc:e24a00fc:e605dba0:46495932
- установленные пакеты:
make-initrd-lvm-0.8.5-alt1
make-initrd-0.8.5-alt1
make-initrd-devmapper-0.8.5-alt1
startup-0.9.8.38-alt1
mdadm-3.2.6-alt1
md0 - корень системы, md1 и md10 - LVM PVs.
При загрузке системы md0 и md1 собираются и запускаются автоматически
ядром в initrd. Монтируется корень. Далее появляется сообщение о
невозможности запустить массивы RAID с предложением подождать минуту или
попасть в шелл. При этом состояние массивов следующее:
Personalities : [raid1]
md10 : inactive sdf1[1](S) sde1[2](S) sdc1[0](S) sdd1[3](S)
1887432704 blocks super 1.2
md1 : active raid1 sda3[0] sdb3[1]
483142592 blocks [2/2] [UU]
md0 : active raid1 sda2[0] sdb2[1]
4193216 blocks [2/2] [UU]
unused devices: <none>
Команда mdadm --assemble --scan (вызываемая из
/etc/rc.d/scripts/raidstart) возвращает 2 (недостаточно устройств для
старта массива), что и вызывает сообщение о невозможности запустить
массивы RAID.
При этом, если выполнить mdadm --run /dev/md10 - массив стартует
(правда, без bitmap'а).
Если выполнить mdadm --stop /dev/md10; for i in c d e f; do mdadm
--incremental /dev/sd${i}1 --offroot; done - массив md10 успешно
стартует, причем с bitmap'ом. Команда mdadm --icnremental ... --offroot
взята из правила udev 64-md-raid.rules.
Выполнение mdadm --stop /dev/md10; mdadm --assemble --scan также
приводит к успешному запуску массива.
Прошу помочь разобраться в этой проблеме.
Я не понимаю, почему сборка массива udev'ом, выполняемая при уже
смонтированном корне (/etc/mdadm.conf и /_bitmap_md10 уже доступны), в
итоге дает неактивный массив, а все те же команды, выполненные вручную,
отрабатывают как ожидается. Единственная мысль - udev все делает слишком
"параллельно", из-за чего при инкрементальном добавлении устройств в
массив mdadm всегда считает, что не все устройства еще добавлены, и в
результате не запускает массив.
PS Ранее в той же конфигурации, но на p6, никаких проблем с запуском
md10 не наблюдалось - система стартовала в штатном режиме.
--
WBR, Alex Moskalenko
Подробная информация о списке рассылки Sysadmins