[Comm] root raid частное решение

Aleksey Avdeev =?iso-8859-1?q?solo=5Foboroten_=CE=C1_mail333=2Ecom?=
Вт Май 27 15:54:37 MSD 2003



> -----Original Message-----
> From: community-admin на altlinux.ru [mailto:community-admin на altlinux.ru]On
> Behalf Of Aleksey Avdeev
> Sent: Thursday, May 22, 2003 11:48 AM
> To: community на altlinux.ru
> Subject: Re: [Comm] root raid
>
>
> Борис Ревякин пишет:
> > On Wed, 21 May 2003 12:10:48 +0400
> > "Aleksey Avdeev" <solo_oboroten на mail333.com> wrote:
> >
> >
> >>Michael Shigorin пишет:
> >>
> >>>On Fri, May 16, 2003 at 11:00:00AM +0400, Борис Ревякин wrote:
> >>>
> >>>
> >>>>>http://search.altlinux.ru/?q=root+raid1 по части обсуждения
> >>>>
> >>>>Михаил, обсуждения кое какие и правда есть, но я решения не нашел.
> >>>>Пожалуйста, ткните в решение. Ну _ОЧЕНЬ_ прошу.
> >>>
> >>>
> >>>Оно там было, ищите -- я тоже буду искать, но не сейчас, а
> >>>скоро...
> >>
> >>   Только загрузка на raid1 в ДЕГРАДИРОВАННОМ режиме... Как
> >>загрузить систему с корнем на raid1 в штатном режиме, мне лично -
> >>найти не удалось.
> >>
> >>
> >>>Еще что-то вроде Root-RAID-Boot HOWTO содержало указание на то,
> >>>что стоит делать /boot первым разделом и ставить загрузчик
> >>>(точнее, именно LILO) на него.  В случае для зеркала.
> >>
> >>   При пользовании мини HOWTO "Boot + Root + Raid + Lilo :
> >>Программный Raid" нужно учитывать что подменой корня в Мастере
> >>занимается не linuxrc а кто-то другой (возможно
> >>BusyBox или код в ядре)... А так, подобная схема у меня работала
> >>на ядре 2.4.20-alt5-up, сейчас делаю её же для ядра 2.4.20-alt7-up.
> >>
> >>
> >>>Эх, блин -- на шляпе-то работает...
> >>>
> >>
> >>   ИМХО: В Мастере проблема в том, что автодетект рейда
> >>выполняется ДО загрузки необходимых модулей средствами
> >>linuxrc (помоему, даже до монтирования initrd). При этом, запись
> >>в initrd /sbin/modprobe (бинарник с необходимыми либами, или как
> >>линк на существующий там insmod) и /etc/modules.conf не помогло.
> >>   (depmod -a в контексте initrd - тоже.)
> >
> >
> > Полностью с Вами согласен.
> > Если собрать ядро с md внутрях, то загрузка происходит нормально.
> > Cкажите, что надо править для решения этой проблемы?
> > Уж очень не хочется пересобирать ядра из-за этой фишки. :-(
>
>    Править надо initrd. Пока делаю это примерно так:
>
> 1. $ sudo mkinitrd --with raid1 --pause <initrd-image>
> <kernel-version>
>
> 2. Скрипт выведет имя каталога (у меня /tmp/initrd.*) где он
> создал заготовку образа и предложит нажать на ENTER после
> корректировок.
>
> 3. Я выполнял следующие (от root, всё относительно /tmp/initrd.*):
>
>    а) mkdir proc
>
>    б) ln -s bin sbin
>
>    в) в bin скопировал системные umount и raidstart
>
>    г) в lib - требуемые библиотеки (2 штуки + 2 софт линка на них
> какие именно - непомню: сделано дома)
>
>    д) в etc - /etc/raidtab
>
>    е) в dev - используемые устройства (в моём случаи -
> требующиеся sd* и md*)
>
>    ё) дополнить linuxrc следующим кодом (шаблон):
>
> /bin/mount <опции, устройство> /proc
> /bin/raidstart <md*>
> /bin/umount /proc
>
> 4. Нажать на ENTER :-)
>
>    Разумеется решение не очень красивое (например, umount можно
> реализовать средствами BusyBox). :-( Над болие красивым я
> работаю, но это займёт время, а его - мало.
>

   Поэкспериментировал с ядром 2.4.20-alt7-up. Листинг 
содержимого initrd содержится в прилагаемом файле initrd.ls.gz.

   linuxrc:

**********

#!/bin/sh
/bin/insmod -f /lib/modules/2.4.20-alt7-up/kernel/drivers/md/raid1.o
/bin/insmod -f 
/lib/modules/2.4.20-alt7-up/kernel/fs/reiserfs/reiserfs.o
#/bin/mount -t proc /proc /proc
#/sbin/raidstart /dev/md0 /dev/md1
/sbin/raidstart --all

^^^ Строки эквивалентны. Я не знаю, какой вариант правильнее.

#/bin/cat /proc/mdstat

^^^ Если используется - требуется подключить proc и добавить cat 
и umount в bin (или реализовать их средствами BusyBox).

#/bin/umount proc

**********

   modules.conf:

**********

alias md-personality-3 raid1

**********

   Если существует линк md-personality-3.o -> raid1.o, то 
modules.conf не требуется.

   raidtab:

**********

raiddev /dev/md0
	raid-level	1
	nr-raid-disks	2
	nr-spare-disks	0
	chunk-size	4
	persistent-superblock	1
	device		/dev/hdc3
		raid-disk	0
	device		/dev/hda3
		raid-disk	1
raiddev /dev/md1
	raid-level	1
	nr-raid-disks	2
	nr-spare-disks	0
	chunk-size	4
	persistent-superblock	1
	device		/dev/hdc5
		raid-disk	0
	device		/dev/hda5
		raid-disk	1

**********

   Описание md1 - явная избыточность. Но при его удалении система 
переставала корректно загружаться: Корень цепляла, а всё то, что 
у меня на md1 (том lvm) - нет. Думаю, что что-то я не учёл...

ЗЫ: Приношу извинения за возможный дубль: не вижу в архиве своих 
сообщений. :-(

--

С уважением. Алексей.

----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : initrd.ls.gz
Тип     : application/octet-stream
Размер  : 656 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/community/attachments/20030527/4fbf3380/attachment-0008.obj>
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : linuxrc
Тип     : application/octet-stream
Размер  : 283 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/community/attachments/20030527/4fbf3380/attachment-0009.obj>
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : modules.conf
Тип     : application/octet-stream
Размер  : 29 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/community/attachments/20030527/4fbf3380/attachment-0010.obj>
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : raidtab
Тип     : application/octet-stream
Размер  : 342 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/community/attachments/20030527/4fbf3380/attachment-0011.obj>


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