[Comm] root raid on Master 2.2

Sergey Vlasov =?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Чт Ноя 6 11:22:10 MSK 2003


On Thu, Nov 06, 2003 at 10:36:54AM +0300, Grigory Batalov wrote:
[skip] 
> initrd для загрузки создавался по мотивам
> http://www.atmsk.ru/index.php?option=faq&task=viewfaq&artid=163
> 
> Использовалась команда:
> $ sudo mkinitrd --with raid5 --with raid1 --pause initrd-2.4.20-alt10-smp.img 2.4.20-alt10-smp
> 
> Для создания дискеты:
> $ sudo mkbootdisk --mkinitrdargs '--with raid1 --with raid5 --pause' 2.4.20-alt10-smp
> 
> Во время паузы и ожидания нажатия ENTER в указанную директорию
> initrd были скопированы:
> 
> /dev/md{0,1,2}
> /dev/sd{a,b,c,d,e}{,1,2,3}
> /etc/raidtab
> /sbin/raidstart
> 
> В linuxrc дописано:
> /sbin/raidstart /dev/md0 /dev/md1 /dev/md2

При таком способе RAID не запустится, если исчезнет первое
устройство, прописанное в raidtab для массива.  Дело в том, что
raidstart фактически использует только первую запись, а остальные
разделы находит само ядро, используя данные из суперблока RAID с
этого устройства.

Для SCSI это не так критично - при исчезновении устройств произойдёт
перенумерация.  Проблема возникнет только в случае, когда само
устройство доступно, но суперблок RAID прочитать не удаётся.  А вот
в случае IDE при отсутствии первого диска система не загрузится.

В mkinitrd из Сизифа используется другой способ запуска RAID - через
ioctl RAID_AUTORUN; в этом случае не нужно указывать устройства -
используется информация, собранная ядром при распознавании
RAID-разделов.  Можно поставить этот mkintrd на Master 2.2 - там нет
лишних зависимостей.  С ядром из Master 2.2 этот способ работает -
только не используйте /dev/md255 (в той версии ядра есть ошибка -
нельзя вызывать RAID_AUTORUN через то устройство md, которое потом
будет использоваться).

> Raidstart в данном случае собирался статически, что позволило
> обойтись без динамических библиотек и уместить initrd на дискету.
> Для пересборки был взят raidtools-0.90-ipl11mdk.src.rpm.
> В specfile добавлено '-static':
> ...
> CFLAGS="$RPM_OPT_FLAGS -static" CXXFLAGS="$RPM_OPT_FLAGS" LDFLAGS="-static" ./autogen.sh
> ...
> 
> Бинарник получается после 
> $ rpmbuild -bi --target i586 raidtools.spec
> в директории ~/tmp/raidtools-buildroot/sbin.
> 
> 
> Несмотря на вышеизложенные действия (где была ошибка?),
> загрузиться со SCSI не удалось. Не оказалось загрузочной
> записи. Поэтому, загрузились с дискеты и сказали поочерёдно
> $ sudo lilo -b /dev/sda
> ...
> $ sudo lilo -b /dev/sde
> После чего стало возможно загружаться сразу с дисков.
> 
> При сбое одного из дисков в массиве предполагается сделать:
> $ sudo raidhotremove /dev/md0 /dev/sdN
> $ sudo raidhotremove /dev/md1 /dev/sdN
> $ sudo raidhotremove /dev/md2 /dev/sdN
> <заменить диск N>
> $ sudo sfdisk -d /dev/sda > table.sda
> $ sudo sfdisk /dev/sdN < table.sda
> $ sudo raidhotadd /dev/md0 /dev/sdN
> $ sudo raidhotadd /dev/md1 /dev/sdN
> $ sudo raidhotadd /dev/md2 /dev/sdN
> $ sudo lilo -b /dev/sdN
> 
> Вопросы:
> 
> 1. Как реагировать на сообщения типа:
> 
> md: invalid raid superblock magic on md2
> md: md2 has invalid sb, not importing!
> (ругается на все md*)

Игнорировать.  Это попытка найти вложенный RAID (например, RAID0, а
внутри - RAID1).

> 2. Чем чревато, что при перезагрузке не размонтируется md0
>    по причине busy, хотя md2 и md1 были только что успешно
>    размонтированы, и как с этим бороться?

Бороться с этим бесполезно - на md0 лежит корневая ФС.  Ничего
страшного в этом нет - ядро при завершении работы автоматически
выполняет останов RAID.

> 3. Есть ли какая-нибудь утилитка, следящая за шиной SCSI и
>    рассылающая письма или мигающая лампочками при сбое диска?

smartmontools (есть в Сизифе, только там initscript новый... надо бы
сделать, как в apache) умеет работать в том числе и со
SCSI-устройствами.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/community/attachments/20031106/05d0bb12/attachment-0002.bin>


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