ALT Linux Community general discussions
 help / color / mirror / Atom feed
* RE: [Comm] root raid частное решение
@ 2003-05-27 11:54 Aleksey Avdeev
  2003-05-27 13:12 ` Владимир
  0 siblings, 1 reply; 5+ messages in thread
From: Aleksey Avdeev @ 2003-05-27 11:54 UTC (permalink / raw)
  To: community; +Cc: mike, ldv

[-- Attachment #1: Type: text/plain, Size: 4613 bytes --]



> -----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) - нет. Думаю, что что-то я не учёл...

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

--

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


[-- Attachment #2: initrd.ls.gz --]
[-- Type: application/octet-stream, Size: 656 bytes --]

[-- Attachment #3: linuxrc --]
[-- Type: application/octet-stream, Size: 284 bytes --]

[-- Attachment #4: modules.conf --]
[-- Type: application/octet-stream, Size: 30 bytes --]

[-- Attachment #5: raidtab --]
[-- Type: application/octet-stream, Size: 343 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Comm] root raid частное решение
  2003-05-27 11:54 [Comm] root raid частное решение Aleksey Avdeev
@ 2003-05-27 13:12 ` Владимир
  2003-05-28  7:58   ` Aleksey Avdeev
  0 siblings, 1 reply; 5+ messages in thread
From: Владимир @ 2003-05-27 13:12 UTC (permalink / raw)
  To: community

Aleksey Avdeev пишет:

>
>   Поэкспериментировал с ядром 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 



Я из initrd инициализирую только корневой raid, соответсвенно сторока 
имеет вид
/sbin/raidstart /dev/md0

Остальные инициализируются позднее.


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



У меня ни линка, ни записи в 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
>
> ********** 



А у меня в initrd "урезанный" raidtab, с описанием одного устройства (но 
это неважно).


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



Чтобы некорневые raid и сверху lvm грузились требуется правка rc.sysinit
Я писал об этом и жаль, что в дистрибутиве это не сделано (такая правка 
ничего не ломает).
Следует поменять местами секции иницализации raid (она должна находится 
до перемонтирования
корня в режим чтение-запись, где в оригинальном скрипте идет 
иницализация lvm) и секцию lvm
(то есть переместить ее точно туда, где в оригинале секция raid - после 
перемонтирования в чтение-запись).

И еще. Для полной корректности иницализацию lvm следует делать с vgscan, 
у меня это так

# LVM Setting
VGCHANGE=/sbin/vgchange
if [ -x $VGCHANGE ]; then
   if /sbin/vgscan &>/dev/null; then
       action "Setting up LVM:" "$VGCHANGE" -a y
   else
       /sbin/rmmod lvm-mod
   fi
fi

 




-- 
Best regards
Vladimir




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Comm] root raid частное решение
  2003-05-27 13:12 ` Владимир
@ 2003-05-28  7:58   ` Aleksey Avdeev
  2003-05-28 15:43     ` [Comm] " Michael Shigorin
  2003-05-29  7:33     ` [Comm] " Aleksey Avdeev
  0 siblings, 2 replies; 5+ messages in thread
From: Aleksey Avdeev @ 2003-05-28  7:58 UTC (permalink / raw)
  To: community

Владимир пишет:
> Aleksey Avdeev пишет:
> 
>>
>>   Поэкспериментировал с ядром 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 
> 
> 
> 
> 
> Я из initrd инициализирую только корневой raid, соответсвенно сторока 
> имеет вид
> /sbin/raidstart /dev/md0
> 
> Остальные инициализируются позднее.

   Что, на мой взгляд, и правильно! :-) Но у меня не работает... 
:-( Буду разбираться, в чём дело. (ИМХО: скорее всего я что-то не 
учёл.)


>>
>> **********
>>
>>   modules.conf:
>>
>> **********
>>
>> alias md-personality-3 raid1
>>
>> **********
>>
>>   Если существует линк md-personality-3.o -> raid1.o, то modules.conf 
>> не требуется.
> 
> 
> 
> 
> У меня ни линка, ни записи в 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
>>
>> ********** 
> 
> 
> 
> 
> А у меня в initrd "урезанный" raidtab, с описанием одного устройства (но 
> это неважно).
> 
> 
>>   Описание md1 - явная избыточность. Но при его удалении система 
>> переставала корректно загружаться: Корень цепляла, а всё то, что у 
>> меня на md1 (том lvm) - нет. Думаю, что что-то я не учёл...
> 
> 
> 
> 
> Чтобы некорневые raid и сверху lvm грузились требуется правка rc.sysinit
> Я писал об этом и жаль, что в дистрибутиве это не сделано (такая правка 
> ничего не ломает).
> Следует поменять местами секции иницализации raid (она должна находится 
> до перемонтирования
> корня в режим чтение-запись, где в оригинальном скрипте идет 
> иницализация lvm) и секцию lvm
> (то есть переместить ее точно туда, где в оригинале секция raid - после 
> перемонтирования в чтение-запись).
> 
> И еще. Для полной корректности иницализацию lvm следует делать с vgscan, 
> у меня это так
> 
> # LVM Setting
> VGCHANGE=/sbin/vgchange
> if [ -x $VGCHANGE ]; then
>   if /sbin/vgscan &>/dev/null; then
>       action "Setting up LVM:" "$VGCHANGE" -a y
>   else
>       /sbin/rmmod lvm-mod
>   fi
> fi
> 

   Если не ошибаюсь, то я пользуюсь Вашим rc.sysinit (если Вы его 
выкладывали :-)). Спасибо! Правда, после обновлений его 
приходится сливать с новыми стандартными. (Может и загрузка не 
получалась, из-за ошибки при правке? Приду домой - проверю.)

   Правда ИМХО, с vgscan возможно нужно быть осторожнее: 
Автоматическая правка конфигурационных файлов скриптом при КАЖДОЙ 
загрузке потенциально может стать источником проблем при 
восстановлении системы. Но может я и ошибаюсь...

-- 

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




^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Comm] Re: root raid частное решение
  2003-05-28  7:58   ` Aleksey Avdeev
@ 2003-05-28 15:43     ` Michael Shigorin
  2003-05-29  7:33     ` [Comm] " Aleksey Avdeev
  1 sibling, 0 replies; 5+ messages in thread
From: Michael Shigorin @ 2003-05-28 15:43 UTC (permalink / raw)
  To: community

On Wed, May 28, 2003 at 11:58:14AM +0400, Aleksey Avdeev wrote:
> >Я писал об этом и жаль, что в дистрибутиве это не сделано
> >(такая правка ничего не ломает).
> Если не ошибаюсь, то я пользуюсь Вашим rc.sysinit

http://altlinux.ru/mailman/listinfo/devel-kernel/, please!

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Comm] root raid частное решение
  2003-05-28  7:58   ` Aleksey Avdeev
  2003-05-28 15:43     ` [Comm] " Michael Shigorin
@ 2003-05-29  7:33     ` Aleksey Avdeev
  1 sibling, 0 replies; 5+ messages in thread
From: Aleksey Avdeev @ 2003-05-29  7:33 UTC (permalink / raw)
  To: community; +Cc: Michael Shigorin, ldv

Aleksey Avdeev пишет:
> Владимир пишет:
> 
>> Aleksey Avdeev пишет:
>>
>>>
>>>   Поэкспериментировал с ядром 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 
>>
>>
>>
>>
>>
>> Я из initrd инициализирую только корневой raid, соответсвенно сторока 
>> имеет вид
>> /sbin/raidstart /dev/md0
>>
>> Остальные инициализируются позднее.
> 
> 
>   Что, на мой взгляд, и правильно! :-) Но у меня не работает... :-( Буду 
> разбираться, в чём дело. (ИМХО: скорее всего я что-то не учёл.)
> 
> 
>>>
>>> **********
>>>
>>>   modules.conf:
>>>
>>> **********
>>>
>>> alias md-personality-3 raid1
>>>
>>> **********
>>>
>>>   Если существует линк md-personality-3.o -> raid1.o, то modules.conf 
>>> не требуется.
>>
>>
>>
>>
>>
>> У меня ни линка, ни записи в 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
>>>
>>> ********** 
>>
>>
>>
>>
>>
>> А у меня в initrd "урезанный" raidtab, с описанием одного устройства 
>> (но это неважно).
>>
>>
>>>   Описание md1 - явная избыточность. Но при его удалении система 
>>> переставала корректно загружаться: Корень цепляла, а всё то, что у 
>>> меня на md1 (том lvm) - нет. Думаю, что что-то я не учёл...
>>
>>
>> Чтобы некорневые raid и сверху lvm грузились требуется правка rc.sysinit
>> Я писал об этом и жаль, что в дистрибутиве это не сделано (такая 
>> правка ничего не ломает).

   Просмотрел я эту правку, оказывается... С ней - всё работает с 
поднятием в initrd ТОЛЬКО md0. Правил initrd следующим образом:

1. cd dev; rm hd[ac]5 md1

2. в raidtab убил всё относящиеся к md1

3. в linuxrc строку "/sbin/raidstart --all" ОСТАВИЛ.

   В таком виде всё работает.

>> Следует поменять местами секции иницализации raid (она должна 
>> находится до перемонтирования
>> корня в режим чтение-запись, где в оригинальном скрипте идет 
>> иницализация lvm) и секцию lvm
>> (то есть переместить ее точно туда, где в оригинале секция raid - 
>> после перемонтирования в чтение-запись).
>>
>> И еще. Для полной корректности иницализацию lvm следует делать с 
>> vgscan, у меня это так
>>
>> # LVM Setting
>> VGCHANGE=/sbin/vgchange
>> if [ -x $VGCHANGE ]; then
>>   if /sbin/vgscan &>/dev/null; then
>>       action "Setting up LVM:" "$VGCHANGE" -a y
>>   else
>>       /sbin/rmmod lvm-mod
>>   fi
>> fi
>>
> 
>   Если не ошибаюсь, то я пользуюсь Вашим rc.sysinit (если Вы его 
> выкладывали :-)). Спасибо! Правда, после обновлений его приходится 
> сливать с новыми стандартными. (Может и загрузка не получалась, из-за 
> ошибки при правке? Приду домой - проверю.)
> 
>   Правда ИМХО, с vgscan возможно нужно быть осторожнее: Автоматическая 
> правка конфигурационных файлов скриптом при КАЖДОЙ загрузке потенциально 
> может стать источником проблем при восстановлении системы. Но может я и 
> ошибаюсь...
> 

-- 

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




^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2003-05-29  7:33 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-05-27 11:54 [Comm] root raid частное решение Aleksey Avdeev
2003-05-27 13:12 ` Владимир
2003-05-28  7:58   ` Aleksey Avdeev
2003-05-28 15:43     ` [Comm] " Michael Shigorin
2003-05-29  7:33     ` [Comm] " Aleksey Avdeev

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git