From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, SPF_PASS,SUBJECT_FUZZY_TION autolearn=ham version=3.2.5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1369377073; bh=bN649ROkaCVsTWN+W/qQyoY2R5u1uCVOwzz5GjMZVKo=; h=From:To:Subject:Date; b=DR1GOG7+I4KD+sAd64MDoZic2WNKjUxnhoW3VpdneEqXaTgEz1Imrh8QoAuLk0jNI 0nMX/tJGi9VQ0lXdLOmljX282i+ft5XBZpQGulU1sm3EgaBZdmK2aa3jTqGwLsfT+w +TXbFRqgCOYeps02C3sCIEK7lRkvBzYNmDC9vDoA= From: Mike Lykov To: ALT Linux Sisyphus discussions MIME-Version: 1.0 Message-Id: <541481369377073@web19f.yandex.ru> X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Fri, 24 May 2013 10:31:13 +0400 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=koi8-r Subject: [sisyphus] "partitionable" mdraid & raidstop fix X-BeenThere: sisyphus@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Sisyphus discussions List-Id: ALT Linux Sisyphus discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 May 2013 06:31:21 -0000 Archived-At: List-Archive: List-Post: Здравствуйте. Попробовал создать конфигурацию, которая с недавних пор поддерживается ядром и 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