ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
* [sisyphus] "partitionable" mdraid & raidstop fix
@ 2013-05-24  6:31 Mike Lykov
  2013-05-24  7:11 ` Mike Lykov
  2013-05-26 18:52 ` Michael A. Kangin
  0 siblings, 2 replies; 5+ messages in thread
From: Mike Lykov @ 2013-05-24  6:31 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussions

Здравствуйте.

Попробовал создать конфигурацию, которая с недавних пор поддерживается ядром и mdraid - так называемый загрузочный partitionable mdraid (по русски это будет "разбиваемый"? как-то неднозначно ;)

использовал virtualbox & altlive-console-p7-x86_64.iso   (14-May-2013 04:04)

сначала пробовал raid10 из 4 дисков - sda sdb sdc sdd, но  extlinux его вроде совсем не умеет, а grub2 вроде как делает вид что умеет, но grub-install /dev/md0 не дает записи в mbr (и соотв, грузиться не начинает - missing operating system). Думаю, что это потому что raid не знает о специальном значении mbr и при попытке его записать пишет эти данные "где-то в массиве" ?
как поставить "только mbr" от grub2 на отдельные диски, чтобы он не пытался писать на них что-то еще (как можно сделать с mbr.bin, идущим в составе extlinux)?

потом попробовал raid1 из дисков sda sdb, тут все прошло дальше - extlinux работает, raid создается, fdisk (или udev?) сам определяет что это mdraid и присваивает новым разделам имена /dev/md0p1, /dev/md0p2 ..

live-install все ставит, кроме загрузчика (extlinux)  - не обошлось без патча
--- ./live-install.orig 2013-05-24 10:08:42.827295631 +0400
+++ ./live-install      2013-05-24 10:08:22.069241333 +0400
@@ -109,5 +109,5 @@

 if echo $BOOT_DEVICE |grep -q /dev/md; then
-       mdadm --detail $BOOT_DEVICE |grep active.*/dev/ |awk '{print substr($7, 1, length($7)-1)}' | \
+       mdadm --detail $BOOT_DEVICE |grep active.*/dev/ |awk '{print $7}' | \
                while read REAL_BOOT_DEVICE; do
                        install_loader $REAL_BOOT_DEVICE

в варианте без патча пытается ставить на /dev/sd /dev/sd, с таким вариантом ставит mbr.bin нормально на /dev/sda /dev/sdb. 
не хватало, кстати, пакета make-initrd-mdadm в той сборке, но это и рядом упоминали что и в других забыли ;)
В общем, в конце-концов это грузится и работает нормально, как с девольным ядром сборки 3.8.12-std-def-alt1, так и с ядром 2.6.32-ovz-el-alt88 (работу по нахождению корня на /dev/md0p1 выполняет initrd, создаваемый make-initrd 0.8.4 по умолчанию -нормально, при наличии соотв. пакета).
Но при установке  2.6.32-ovz-el-alt88, кстати, пытается ставиться grub2... а грузится все равно в результате extlinux - опять куда-то он чего-то не дописывает.

Но теперь осталась последняя вещь, которую надо поправить в пакете startup-0.9.8.38-alt1 : при попытке остановить такой mdraid с корнем на /dev/mdop1 не срабатывает условие в rc.d/scripts/raidstop, которое исключает корневой раздел из остановки, и все время выдается, что попытка остановить еще использующийся raid:
[ "/dev/md0" != "/dev/md0p1" ] || continue

поэтому сюда (в т.ч. и в пакет в сизифе?)  тоже требуется патч, мой вариант:

--- /etc/rc.d/scripts/raidstop.orig     2013-05-24 09:51:47.857672726 +0400
+++ /etc/rc.d/scripts/raidstop  2013-05-24 09:52:09.048291225 +0400
@@ -21,5 +21,5 @@

 for mddev in ${mdlist}; do
-       [ "$mddev" != "$rootdev" ] || continue
+       expr match $rootdev $mddev > /dev/null && continue
        action "Turning off RAID for $mddev:" $raidstop "/dev/$mddev"
 done

И последнее - скажите, как ведет себя загрузочный mdraid обычно? у меня наблюдается такая картина: 
1. сначала все грузится и работает на 2 дисках.
2. останавливаю виртмашину, убираю 1 диск (симуляция нарушения работы, без остановки машины не дает).
3. загрузка останавливается в initramfs, нет корня, mdraid из одного диска в состоянии inactive. можно сделать (в консоли initramfs) mdraid --run /dev/md0, и он станет active, но при след. перезагрузке опять все то же.
4. если загрузиться с livecd, который в процессе сделает mdraid assemble (успешно с одним диском), и не логинясь с livecd перезагрузиться опять с диска - то он загрузится с одним диском нормально (acrive degraded). можно заменить выпавший диск другим.

что чинит сборка mdraid в процессе загрузки livecd и можно то же как-то сделать без livecd, например из консоли initramfs ? это "у всех так", и требуется грузиться с установочного/rescue диска в таком случае?
Или можно как-то сделать, чтобы при пропадании 1 диска сервер просто грузился (в degraded), ведь по сути raid1 на то и нужен? ;)

-- 
Mike


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

* Re: [sisyphus] "partitionable" mdraid & raidstop fix
  2013-05-24  6:31 [sisyphus] "partitionable" mdraid & raidstop fix Mike Lykov
@ 2013-05-24  7:11 ` Mike Lykov
  2013-05-26 17:29   ` Sergey
  2013-05-26 18:52 ` Michael A. Kangin
  1 sibling, 1 reply; 5+ messages in thread
From: Mike Lykov @ 2013-05-24  7:11 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussions

> Попробовал создать конфигурацию, которая с недавних пор поддерживается ядром и mdraid - так называемый загрузочный partitionable mdraid (по русски это будет "разбиваемый"? как-то неднозначно ;)
>
> использовал virtualbox & altlive-console-p7-x86_64.iso   (14-May-2013 04:04)

Кстати, попробовал инсталлятор последней беты Кентавра:

altlinux-6.9.9-beta20130522-centaurus-x86_64-ru-install-dvd5.iso (2013-05-22)

Он не умеет создавать такие конфигурации. А именно:
в модуле разбиения дисков, когда на дисках нет разделов, возможность "создать RAID" есть.
в окно создания просто подставляются все найденные элементы (все разделы были бы, но когда их нет, то просто /dev/sda, /dev/sdb). их _можно_ отметить и создать на них RAID, можно потом создать ФС и присвоить точку монтирования, и все это успешно проходит (но разделов поверх md по прежнему нет, и никакой возможности их создать там не дается).

потом ставятся пакеты успешно, а потом настает этап установки загрузчика .. на /dev/md0 без разделов.
И тут grub-install говорит что "невозможно установить встраиваемую часть, хотя это обязательно для raid-установки" (такое же было, когда я пытался размечать диски в cfdisk, который начинает разделы прямо с сектора 1. в отличие от fdisk, который начинает с 2048).

В общем, модуль разбиения просто не готов к такому варианту - это отдельная новая задача, которая потребует времени, и вряд ли (?) будет выполнена к релизу 7.0. Хотя как фича дистрибутива интересная, если другие не умеют (не проверял ;).

-- 
Mike


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

* Re: [sisyphus] "partitionable" mdraid & raidstop fix
  2013-05-24  7:11 ` Mike Lykov
@ 2013-05-26 17:29   ` Sergey
  0 siblings, 0 replies; 5+ messages in thread
From: Sergey @ 2013-05-26 17:29 UTC (permalink / raw)
  To: sisyphus

On Friday 24 May 2013, Mike Lykov wrote:

> В общем, модуль разбиения просто не готов к такому варианту - это 
> отдельная новая задача, которая потребует времени, и вряд ли (?) 
> будет выполнена к релизу 7.0. Хотя как фича дистрибутива интересная,
> если другие не умеют (не проверял ;).   

Не решение, но обход, в некотором роде, описан тут:
http://www.altlinux.org/Создание_и_установка_на_RAID

Раздел "Установка на RAID+LVM"

-- 
С уважением, Сергей
a_s_y@sama.ru


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

* Re: [sisyphus] "partitionable" mdraid & raidstop fix
  2013-05-24  6:31 [sisyphus] "partitionable" mdraid & raidstop fix Mike Lykov
  2013-05-24  7:11 ` Mike Lykov
@ 2013-05-26 18:52 ` Michael A. Kangin
  2013-05-27  4:17   ` Mike Lykov
  1 sibling, 1 reply; 5+ messages in thread
From: Michael A. Kangin @ 2013-05-26 18:52 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussions

24.05.2013 10:31, Mike Lykov пишет:

> live-install все ставит, кроме загрузчика (extlinux)  - не обошлось без патча

mdadm --detail /dev/md0 |grep active.*/dev/ |awk '{print $7}'
/dev/sdb1
/dev/sdd1
/dev/sde1
/dev/sda1

Наверное ставить grub в /dev/sdb1 смысла не имеет.
Я согласен, что substr несколько топорно, но, боюсь, и этот патч не хорош.
Думаю, правильно было бы парсить вывод udevadm info, или спрашивать у
него нужный query.

> --- ./live-install.orig 2013-05-24 10:08:42.827295631 +0400
> +++ ./live-install      2013-05-24 10:08:22.069241333 +0400
> @@ -109,5 +109,5 @@
> 
>  if echo $BOOT_DEVICE |grep -q /dev/md; then
> -       mdadm --detail $BOOT_DEVICE |grep active.*/dev/ |awk '{print substr($7, 1, length($7)-1)}' | \
> +       mdadm --detail $BOOT_DEVICE |grep active.*/dev/ |awk '{print $7}' | \
>                 while read REAL_BOOT_DEVICE; do
>                         install_loader $REAL_BOOT_DEVICE


-- 
wbr, Michael A. Kangin


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

* Re: [sisyphus] "partitionable" mdraid & raidstop fix
  2013-05-26 18:52 ` Michael A. Kangin
@ 2013-05-27  4:17   ` Mike Lykov
  0 siblings, 0 replies; 5+ messages in thread
From: Mike Lykov @ 2013-05-27  4:17 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussions

> Наверное ставить grub в /dev/sdb1 смысла не имеет.
> Я согласен, что substr несколько топорно, но, боюсь, и этот патч не хорош.
> Думаю, правильно было бы парсить вывод udevadm info, или спрашивать у
> него нужный query.

да, проблема в том что оба варианта сделаны для своих частных случаев, которые не работают в других случаях ;) поэтому нужен (как обычно, герой) кто-то, кто обьединит их.


-- 
Mike


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

end of thread, other threads:[~2013-05-27  4:17 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-05-24  6:31 [sisyphus] "partitionable" mdraid & raidstop fix Mike Lykov
2013-05-24  7:11 ` Mike Lykov
2013-05-26 17:29   ` Sergey
2013-05-26 18:52 ` Michael A. Kangin
2013-05-27  4:17   ` Mike Lykov

ALT Linux Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/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 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

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


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