From: Mike Lykov <combr-desktop@yandex.ru> To: ALT Linux Sisyphus discussions <sisyphus@lists.altlinux.org> Subject: [sisyphus] "partitionable" mdraid & raidstop fix Date: Fri, 24 May 2013 10:31:13 +0400 Message-ID: <541481369377073@web19f.yandex.ru> (raw) Здравствуйте. Попробовал создать конфигурацию, которая с недавних пор поддерживается ядром и 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
next reply other threads:[~2013-05-24 6:31 UTC|newest] Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-05-24 6:31 Mike Lykov [this message] 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
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=541481369377073@web19f.yandex.ru \ --to=combr-desktop@yandex.ru \ --cc=sisyphus@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
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