[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