[sisyphus] Boot from Soft-RAID

Владимир =?iso-8859-1?q?fmfm_=CE=C1_symmetron=2Emsk=2Eru?=
Ср Фев 19 14:34:57 MSK 2003


Sergei Dolmatov пишет:

>On Wed, Feb 19, 2003 at 11:43:57AM +0300, Владимир wrote:
>  
>
>>Sergei Dolmatov пишет:
>>
>>    
>>
>>>On Wed, Feb 19, 2003 at 10:26:25AM +0300, Владимир wrote:
>>>
>>>
>>>      
>>>
>>>>Привет всем.
>>>>
>>>>Sergei Dolmatov пишет:
>>>>
>>>>  
>>>>
>>>>        
>>>>
>>>>>Добрый день!
>>>>>
>>>>>Озаботился загрузкой с software-RAID. Создал initrd с --with=ext2
>>>>>--with=raid1. 
>>>>>
>>>>>    
>>>>>
>>>>>          
>>>>>
>>>>Хотелось бы просто увидеть вывод mkinitrd, запущенного с вашими ключами и
>>>>дополнительным ключиком "-v ". Намного информативней, чем словесное
>>>>описание как что делалось (--with=raid1 - для чего?). Я давно взял за 
>>>>правило,
>>>>без "-v" initrd не создавать, теряется контроль над процессом.
>>>>  
>>>>
>>>>        
>>>>
>>>Вот, примерно:
>>>
>>># mkinitrd -f -vvv --with=ext2 --with=raid1 raid-2.4.19-alt0.8-up.img
>>># `uname -r`
>>>Copying directory tree from /lib/modules/2.4.19-alt0.8-up: done.
>>>Generating module dependencies in /root/tmp/initrd.batPG28543/fakemod: 
>>>done.
>>>Using modules:  kernel/fs/ext2/ext2.o kernel/drivers/md/raid1.o
>>>Contents of linuxrc:
>>>#!/bin/sh
>>>/bin/insmod -f /lib/modules/2.4.19-alt0.8-up/kernel/fs/ext2/ext2.o 
>>>/bin/insmod -f /lib/modules/2.4.19-alt0.8-up/kernel/drivers/md/raid1.o 
>>>Inode count: 47
>>>Image size: 224K
>>>Created image from tree: /root/tmp/initrd.batPG28543/tree --> 
>>>/root/tmp/initrd.batPG28543/img
>>>Created romfs image file
>>>Installed ramdisk into raid-2.4.19-alt0.8-up.img
>>>Ramdisk size: 76K
>>>
>>>--with=raid1 - для загрузки raid1.o, на RAID-1 находится / (c /boot). Если
>>>есть способ подмонтировать корневой раздел без загрузки этого модуля в
>>>initrd (и без пересобирания ядра с встроенной поддержкой raid1) - буду
>>>только рад услышать.
>>>
>>>
>>>      
>>>
>>Теперь надеюсь и вам все ясно? Только с модулями и без инициализации 
>>raid не работает.
>>Попробуйте последовательность:
>>man raidstart, прочтите boot-raid howto, воспользовавшись ключиком 
>>-pause реализуйте
>>полученные знания.
>>    
>>
>
>Если я не ошибаюсь, запуск raid возможен без прямого запуска raidstart
>при применении autodetection, что и было однажды проделано уже. Правда, на
>ядре 2.2.19, из Spring. Надеюсь, что в этом плане в 2.4 ничего сильно не
>изменилось - если я не прав, поправьте меня.
>
>Разделы, на которых располагается md1 (/) - имеют fstype 0xfd (linux raid
>auto), что и определяется ядром, и оно даже пытается запустить этот
>массив.
>
>Или я, все-таки, зря надеюсь на autodetection и должен использовать
>raidstart/raidstop?
>
>Насколько я понимаю механизм autodetection применительно к raid1 - ядро
>при определении дисков и разделов видит 0xfd, понимает, что это raid (как
>он понимает ext2 и прочие), после чего неведомыми мне путями пытается
>запустить этот raid.
>  
>


Как представляется мне, дескриптор 0xfd (после mkraid) включает в себя 
информацию,
которую ранее приходилось выуживать из файла /etc/raidtab (все, что 
меняется, это нет
жесткого требования иметь копию этого файла на initrd, но я с этим не 
экспериментировал
и копию всегда держу) Как без явного raidstart инициализировать raid я 
не знаю.

Что было ранее в Spring сказать не могу (не использовал под raid).
Подозреваю, речь идет о вариации на тему деградированного режима.


>  
>
>>На счет --with=raid1. Попробуйте без него и посмотрите, что нибудь 
>>изменится?
>>Подгрузка модуля происходит из за наличия записи в файле /etc/fstab, но 
>>не из за
>>ключика.
>>
>>Теперь то, что вы будете рады услышать.
>>Есть более простой вариант и я когда то о нем писал. Можно подправить файл
>>/etc/rc.d/rc.sysinit и грузится на soft-raid1 (и только raid1) в 
>>деградированном
>>режиме на модульное ядро и без поддержки raid в initrd "Деградированный"
>>смущать не должно - процесс идет даже более "кошарно".
>>    
>>
>
>"Деградированный" - это при использовании 'failed-disk'?
>  
>


Ну почти. Монтирование корня в режиме только чтение на "половинку" raid
(запись в lilo.conf, и это возможно только для зеркала), далее загрузка 
модуля и
инициализация raid, далее перемонтирование корня в режиме чтение-запись на
полный raid (запись в файле /etc/fstab) Поскольку после монтирования в 
режим
только чтение уже идет отработка rc.sysinit, все "секреты" спрятаны 
именно в нем.
Сценарий с "секретом" я публиковал, сделать его не сложно и самому.
Достаточно переместить секцию инициализации raid из области "после
перемонтирования корня в режим чтение-запись" в область "до ..."
Еще я перемещал секцию инициализации LVM (но в другом направлении и
это уже другая история).


>Попробую уточнить ситуацию, вдруг не совсем ясно выразился.
>
>md1 я сделал, корневой раздел на него перенес. Запускается и работает этот
>массив вполне нормально (если не делать его корневым :). То есть - есть
>корень, скажем, /dev/hda3, с которого создавалось содержимое md1, и
>который сейчас используется как корневой.
>
>В /proc/mdstat видно, что md1 поднят и работает в нормальном режиме.
>
>Теперь, если меня действительно правильно поняли, я совсем перестал
>соображать - при чем тут degrated mode при загрузке с raid1? Насколько я
>знаю, это применяют при создании массива, который будет являться корневым
>(ну и при замене отказавшего диска, конечно).
>  
>

-- 
Best regards
Vladimir





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