KsI-wiki online documents

Lenny raid

Материал из Ksimute

Перейти к: навигация, поиск

Возникает иногда такая ситуация:
Купили сервер в загранице. Инженеры у провайдера могут поставить только стандартный дистрибутив на один из дисков.
Т.е. никакого софтверного рэйда и т.п.
Зато в случае возникновения сбоев могут заменить нужный диск.

Соответственно заказываем сервер с lenny.
swap буду держать в файле. он в моих задачах практически не используется. Нет желание выделять под него партишн.

Что портировано со старту:

    Device Boot      Start         End      Blocks   Id  System
 /dev/hda1   *           1        9636    77401138+  83  Linux
 /dev/hda2            9637        9729      747022+   5  Extended
 /dev/hda5            9637        9729      746991   82  Linux swap / Solaris
 /dev/hdс1   *           1        9729    78148161   fd  Linux raid autodetect


В планах
2 диска в зеркале.
hda,hdc

остальные будут LVM файлохранилище.

 #aptitude install mdadm

Выбираем какие массивы стартовать - all
aptitude ругается несколькими варнингами на

 W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.
 W: mdadm: no arrays defined in configuration file.

Ерунда, счас создадим.

также aptitude апдейтит initrd update-initramfs: Generating /boot/initrd.img-2.6.26-2-686


 #mdadm --create /dev/md0 -l mirror --raid-devices=1 /dev/hdс1 --force
 # mkfs.ext3 /dev/md0

Монтируем папку, копируем систему создаем папки mnt,proc,sys,tmp

 home-gate:/mnt# mkdir /mnt/md0
 home-gate:/mnt# mount /dev/md0 /mnt/md0

правим fstab /dev/md0 / ext3 defaults 0

Правим /boot/grub/menu.lst

 [...]
 default         0
 fallback        2
 [...]

По умолчанию загрузится первое ядро (нумерация начинается с 0) Если не загрузится, загрузится 2-е. Это перестраховка на случай если raid не поднимется.

Смотрим какие ядра есть ядреные :) Копируем нужное, ставим первым, правим root=/dev/hda1 на root=/dev/md0 Вот так эта секция у меня выглядит

 title           Debian GNU/Linux, kernel 2.6.26-2-686 raid hd2
 root            (hd2,0)
 kernel          /boot/vmlinuz-2.6.26-2-686 root=/dev/md0 ro quiet
 initrd          /boot/initrd.img-2.6.26-2-686
 
 title           Debian GNU/Linux, kernel 2.6.26-2-686 raid hd0
 root            (hd0,0)
 kernel          /boot/vmlinuz-2.6.26-2-686 root=/dev/md0 ro quiet
 initrd          /boot/initrd.img-2.6.26-2-686
 
 
 title           Debian GNU/Linux, kernel 2.6.26-2-686
 root            (hd0,0)
 kernel          /boot/vmlinuz-2.6.26-2-686 root=/dev/hda1 ro quiet
 initrd          /boot/initrd.img-2.6.26-2-686

3-е ядро уберу когда массив поднимется. и построится. update-initramfs - может и не нужен, его aptitude делал, но лучше не рисковать.

 # update-initramfs -u
 update-initramfs: Generating /boot/initrd.img-2.6.26-2-686
 W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.

Устанавливаем grub в /dev/hdc, на всякий случай в hda тоже пропишем, но по идее RTFM это не обязательно, хотя когда сервер далеко, лучше перестраховаться.

 #grub
 
 grub> root (hd0,0)
  Filesystem type is ext2fs, partition type 0x83
 
 grub> setup (hd0)
 
 grub> root (hd2,0)
  Filesystem type is ext2fs, partition type 0xfd
 
 grub> setup (hd2)
  Checking if "/boot/grub/stage1" exists... yes
  Checking if "/boot/grub/stage2" exists... yes
  Checking if "/boot/grub/e2fs_stage1_5" exists... yes
  Running "embed /boot/grub/e2fs_stage1_5 (hd2)"...  17 sectors are embedded.
 succeeded
  Running "install /boot/grub/stage1 (hd2) (hd2)1+17 p (hd2,0)/boot/grub/stage2 /boot/grub
 /menu.lst"... succeeded
 Done.
 
 grub> quit

Ну а дальше как обычно:

sync && PRAY :) :) && REBOOT && CRY :) :) :)


т.е.

 #reboot

Заработало. Ух... Выдохнули...

Сносим партишны на /dev/hda, строим Linux Raid Autodetect, добавляем в raid, ждем синхронизации, прописываем grub, бутаемся, радуемся.

подрастим наш массив до 2-х и более дисков

#mdadm --grow --raid-devices=2 /dev/md0
#mdadm --add /dev/md0 /dev/hda1

правим grub
прописываем, бутаемся.

иногда возникают проблемы с добавлением диска в массив после партирования.
blockdev --rereadpt не помогает
parted тоже.

прописываем grub (чтобы на hdc ядро брал на hda его больше нет.)
бутаемся. добавляем диск.

И система на рэйде... После синхронизации дисков финальный grub

 default         0
 fallback        1
 
 title           Debian GNU/Linux, kernel 2.6.26-2-686 raid hd2
 root            (hd0,0)
 kernel          /boot/vmlinuz-2.6.26-2-686 root=/dev/md0 ro quiet
 initrd          /boot/initrd.img-2.6.26-2-686
 
 title           Debian GNU/Linux, kernel 2.6.26-2-686 raid hd0
 root            (hd2,0)
 kernel          /boot/vmlinuz-2.6.26-2-686 root=/dev/md0 ro quiet
 initrd          /boot/initrd.img-2.6.26-2-686


 grub> root (hd0,0)
 grub> setup (hd0)
 grub> root (hd2,0)
 grub> setup (hd2)

Done. Resolved.