From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Thu, 6 Nov 2003 10:36:54 +0300 From: Grigory Batalov To: community@altlinux.ru Message-Id: <20031106103654.0890407e.bga-no-spam@kovgok.ru> Organization: OAO "Kovdorsky GOK" X-Mailer: Sylpheed version 0.8.8 (GTK+ 1.2.10; i586-alt-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 8bit Subject: [Comm] root raid on Master 2.2 X-BeenThere: community@altlinux.ru X-Mailman-Version: 2.1.3 Precedence: list Reply-To: community@altlinux.ru List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Nov 2003 07:36:58 -0000 Archived-At: List-Archive: List-Post: Господа, как правильно организовать 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 и рассылающая письма или мигающая лампочками при сбое диска? -- Григорий Баталов, группа техподдержки ОАО "Ковдорский ГОК"