ALT Linux Community general discussions
 help / color / mirror / Atom feed
From: Grigory Batalov <bga-no-spam@kovgok.ru>
To: community@altlinux.ru
Subject: [Comm] root raid on Master 2.2
Date: Thu, 6 Nov 2003 10:36:54 +0300
Message-ID: <20031106103654.0890407e.bga-no-spam@kovgok.ru> (raw)

  Господа, как правильно организовать software raid с загрузкой
с оного в Master 2.2 ?

  Я перечитал дискуссию "root raid" в community@ и "software
raid" в kernel-devel@ и не нашёл готового рецепта (без миграции
на Сизиф). Поэтому опишу свои настройки; если появятся комментарии,
буду признателен.

  Имеются:
- 5 SCSI дисков
- корзина hot-swap для них
- работающая инсталляция Master 2.2 на /dev/hda

  Было решено создать RAID-5 на 4-х дисках плюс spare на пятом.
В некоторых источниках упоминается, что lilo может грузиться
с RAID-1, поэтому /boot сделан зеркальным.

$ cat /etc/raidtab
raiddev /dev/md0
        raid-level      5
        nr-raid-disks   4
        nr-spare-disks  1
        persistent-superblock   1
        parity-algorithm        left-symmetric
        chunk-size              32
        device                  /dev/sdb2
        raid-disk               0
        device                  /dev/sdc2
        raid-disk               1
        device                  /dev/sdd2
        raid-disk               2
        device                  /dev/sde2
        raid-disk               3
        device                  /dev/sda2
        spare-disk              0

raiddev /dev/md1
        raid-level      5
        nr-raid-disks   4
        nr-spare-disks  1
        persistent-superblock   1
        parity-algorithm        left-symmetric
        chunk-size              32
        device                  /dev/sdb3
        raid-disk               0
        device                  /dev/sdc3
        raid-disk               1
        device                  /dev/sdd3
        raid-disk               2
        device                  /dev/sde3
        raid-disk               3
        device                  /dev/sda3
        spare-disk              0

raiddev /dev/md2
        raid-level      1
        nr-raid-disks   4
        nr-spare-disks  1
        persistent-superblock   1
        chunk-size              32
        device                  /dev/sdb1
        raid-disk               0
        device                  /dev/sdc1
        raid-disk               1
        device                  /dev/sdd1
        raid-disk               2
        device                  /dev/sde1
        raid-disk               3
        device                  /dev/sda1
        spare-disk              0

Для копирования таблиц разделов использовался sfdisk:

$ sudo sfdisk -d /dev/sda
Password:
# partition table of /dev/sda
unit: sectors

/dev/sda1 : start=       63, size=  2056257, Id=fd
/dev/sda2 : start=  2056320, size= 20482875, Id=fd
/dev/sda3 : start= 22539195, size= 49142835, Id=fd
/dev/sda4 : start=        0, size=        0, Id= 0

$ sudo sfdisk -d /dev/sda > table.sda
$ sudo sfdisk /dev/sdb < table.sda
...
$ sudo sfdisk /dev/sde < table.sda

Создание массивов:

$ sudo mkraid /dev/md0
$ sudo mkraid /dev/md1
$ sudo mkraid /dev/md2

md0 - корневой, md1 - /var, md2 - /boot

md* были подмонтированы в /mnt/disk и на них сброшена
работающая версия Master 2.2

Далее отредактированы /mnt/disk/etc/{fstab,lilo.conf}

$ cat /etc/fstab
/dev/md0 / reiserfs notail 1 1
/dev/md2 /boot reiserfs notail 1 2
devpts /dev/pts devpts gid=5,mode=0620 0 0
/dev/cdrom /mnt/cdrom auto user,iocharset=koi8-r,exec,ro,noauto 0 0
/dev/floppy /mnt/floppy auto user,noauto 0 0
proc /proc proc gid=19 0 0
/dev/md1 /var reiserfs notail 1 2

$ sudo cat /etc/lilo.conf
disk=/dev/md0
partition=/dev/md2
boot=/dev/md2
map=/boot/map
install=/boot/boot-bmp.b
vga=normal
default=2420-alt10-smp
lba32
prompt
timeout=50
image=/boot/vmlinuz-up
        label=failsafe
        root=/dev/md0
        initrd=/boot/initrd-up.img
        append=" failsafe"
        vga=normal
        read-only
other=/dev/fd0
        label=floppy
        unsafe

image=/boot/vmlinuz-2.4.20-alt10-up
        label=2420-alt10-up
        root=/dev/md0
        read-only
        optional
        vga=normal
        append=" "
        initrd=/boot/initrd-2.4.20-alt10-up.img

image=/boot/vmlinuz-2.4.20-alt10-smp
        label=2420-alt10-smp
        root=/dev/md0
        read-only
        optional
        vga=normal
        append=" "
        initrd=/boot/initrd-2.4.20-alt10-smp.img

Про disk=? и partition=? вычитано здесь:
http://www.tldp.org/HOWTO/Boot+Root+Raid+LILO-3.html#ss3.1
Не уверен, насколько это правильно или необходимо.
Затем было сказано 'lilo -r /mnt/disk'.

initrd для загрузки создавался по мотивам
http://www.atmsk.ru/index.php?option=faq&task=viewfaq&artid=163

Использовалась команда:
$ sudo mkinitrd --with raid5 --with raid1 --pause initrd-2.4.20-alt10-smp.img 2.4.20-alt10-smp

Для создания дискеты:
$ sudo mkbootdisk --mkinitrdargs '--with raid1 --with raid5 --pause' 2.4.20-alt10-smp

Во время паузы и ожидания нажатия ENTER в указанную директорию
initrd были скопированы:

/dev/md{0,1,2}
/dev/sd{a,b,c,d,e}{,1,2,3}
/etc/raidtab
/sbin/raidstart

В linuxrc дописано:
/sbin/raidstart /dev/md0 /dev/md1 /dev/md2

Raidstart в данном случае собирался статически, что позволило
обойтись без динамических библиотек и уместить initrd на дискету.
Для пересборки был взят raidtools-0.90-ipl11mdk.src.rpm.
В specfile добавлено '-static':
...
CFLAGS="$RPM_OPT_FLAGS -static" CXXFLAGS="$RPM_OPT_FLAGS" LDFLAGS="-static" ./autogen.sh
...

Бинарник получается после 
$ rpmbuild -bi --target i586 raidtools.spec
в директории ~/tmp/raidtools-buildroot/sbin.


Несмотря на вышеизложенные действия (где была ошибка?),
загрузиться со SCSI не удалось. Не оказалось загрузочной
записи. Поэтому, загрузились с дискеты и сказали поочерёдно
$ sudo lilo -b /dev/sda
...
$ sudo lilo -b /dev/sde
После чего стало возможно загружаться сразу с дисков.

При сбое одного из дисков в массиве предполагается сделать:
$ sudo raidhotremove /dev/md0 /dev/sdN
$ sudo raidhotremove /dev/md1 /dev/sdN
$ sudo raidhotremove /dev/md2 /dev/sdN
<заменить диск N>
$ sudo sfdisk -d /dev/sda > table.sda
$ sudo sfdisk /dev/sdN < table.sda
$ sudo raidhotadd /dev/md0 /dev/sdN
$ sudo raidhotadd /dev/md1 /dev/sdN
$ sudo raidhotadd /dev/md2 /dev/sdN
$ sudo lilo -b /dev/sdN

Вопросы:

1. Как реагировать на сообщения типа:

md: invalid raid superblock magic on md2
md: md2 has invalid sb, not importing!
(ругается на все md*)

2. Чем чревато, что при перезагрузке не размонтируется md0
   по причине busy, хотя md2 и md1 были только что успешно
   размонтированы, и как с этим бороться?

3. Есть ли какая-нибудь утилитка, следящая за шиной SCSI и
   рассылающая письма или мигающая лампочками при сбое диска?

-- 
Григорий Баталов,
группа техподдержки
ОАО "Ковдорский ГОК"


             reply	other threads:[~2003-11-06  7:36 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-11-06  7:36 Grigory Batalov [this message]
2003-11-06  8:22 ` Sergey Vlasov
2003-11-06  9:28   ` Grigory Batalov
2003-11-06 10:18     ` Sergey Vlasov
2003-11-06 11:42       ` Grigory Batalov
2003-11-06 12:16         ` Sergey Vlasov
2003-11-10 12:13           ` Grigory Batalov
2003-11-06 10:18 ` Aleksey Avdeev

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=20031106103654.0890407e.bga-no-spam@kovgok.ru \
    --to=bga-no-spam@kovgok.ru \
    --cc=community@altlinux.ru \
    /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 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