пятница, апреля 17, 2009

Как установить CentOS 5.3 на софтверный Partitionable RAID1

  1. Установить CentOS используя стандартный инсталлятор на диск sda. При разбивке диска оставить немного места (хотя бы один юнит) в самом хвосте диска незанятым.
  2. Загрузиться с диска в Rescue режим. Систему не искать и не монтировать.
  3. Собрать рейд:
    mdadm --create --level=1 --raid-devices=2 /dev/md_d0 /dev/sda missing
  4. Воткнуть /dev/sdb в получившийся рейд, чтобы он ребилдился:
    mdadm --add /dev/md_d0 /dev/sdb
    Убедиться, проверив /proc/mdstat, что рейд стал ребилдиться.
  5. Смонтировать руками систему в состояние, пригодное для chroot и сделать chroot:
    mkdir /mnt/sysimage
    mount /dev/md_d0p1 /mnt/sysimage
    mount -o bind /dev /mnt/sysimage/dev
    mount -o bind /selinux /mnt/sysimage/selinux
    mount -t proc none /mnt/sysimage/proc
    mount -t sysfs none /mnt/sysimage/sys
    chroot /mnt/sysimage
  6. Подготовить систему к тому, что она будет жить на рейде.
    Сначала сделать /etc/mdadm.conf:
    mdadm --examine --scan > /etc/mdadm.conf
    В результирующем файле заменить /dev/md0 на /dev/md_d0
    Отредактировать /etc/fstab, заменить там монтирование по LABEL на явное монтирование устройств типа /dev/md_d0p1, ...
    Отредактировать /etc/grub.conf, заменить root=LABEL=... на root=/dev/md_d0p1
  7. Пропатчить mkinitrd, патч взять здесь:
    cd /sbin
    cp mkinitrd mkinitrd.dist
    patch -p0 < /tmp/mkinitrd-md_d0.patch
  8. Запрещаем обновлять mkinitrd, для этого в /etc/yum.conf дописываем exclude=mkinitrd*
  9. Делаем новый initrd:
    cd /boot
    mv initrd-2.6.18-128.el5.img initrd-2.6.18-128.el5.img.bak
    mkinitrd /boot/initrd-2.6.18-128.el5.img 2.6.18-128.el5
  10. Проверяем /proc/mdstat, как только рейд собрался - можно нажимать Ctrl-D до упора, пока система не перезагрузится.
Готово. Теперь система будет грузиться с partitionable RAID1, отремонтировать который гораздо проще, чем обычный не partitionable RAID.
Comments: Отправить комментарий

<< Home

This page is powered by Blogger. Isn't yours?