[devel] RAID support in mkinitrd

Илья Евсеев =?iso-8859-1?q?ilya=5Fevseev_=CE=C1_mail=2Eru?=
Вт Сен 20 21:32:16 MSD 2005


   Всем привет!
Я собираюсь добавить в mkinitrd загрузку с RAID-устройств.
Для каждого шага (кстати, не упустил ли я что-нибудь?)
есть несколько вариантов, из которых надо выбрать оптимальный.

Первый шаг: определить список md-устройств для запоминания в $raiddevices
и их драйверов для вызова findmodules.
Варианты:
а) как в RHEL: все из /proc/mdstat
б) как в MDK: $rootdev, а также...
   + если rootfs находится на LVM - то входящие в LVM-том диски
   + если md-устройство состоит из других md-устройств, то эти md-устройства
Какой из них правильнее?
Я склоняюсь ко второму (за исключением LVM, который подождёт до лучших времён).

Второй шаг: создание md-устройств на $IMAGE.
Варианты для способа создания:
а) размещение цикла с mknod в $IMAGE/linuxrc
б) цикл с "cp -a /dev/$dev $IMAGE/dev/" в mkinitrd
Какой лучше?
У меня такое впечатление, что это без разницы.

Варианты для списка создаваемых устройств:
а) всё то же самое, что есть в /dev/md*
б) как в MDK: только то, что есть в $raiddevices

Третий шаг: создание $IMAGE/etc/mdadm.conf:
а) скопировать из /etc/mdadm.conf
б) как в MDK:
    echo "DEVICE partitions" >| $IMAGE/etc/mdadm.conf
    for dev in $raiddevices; do mdadm -D -b $dev | grep '^ARRAY' >> $IMAGE/etc/mdadm.conf; done

Четвёртый шаг: добавление команды запуска
RAID-устройств в $IMAGE/etc/linuxrc:
а) mdassemble
б) mdadm -A -s
в) for dev in $raiddevices; do raidautorun /dev/$dev; done
С mdadm и mdassemble более-менее ясно.
А вот raidautorun (aka busybox) - где он среди них по оптимальности?

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

С уважением,
Илья Евсеев



Подробная информация о списке рассылки Devel