XenServer 5.5 installation on sw radi1

INSTALACJA XENSERVER Z RADID1

Pocili się nad tą, DZIAŁAJĄCĄ wersją:
- Krzysztof Lew
- Marcin Bienek
- Jarosław Freus

Legadna:
Komentarz # OPCJA
Pojawia się tam, gdzie krok nie jest potrzebny do działania xenserver z Raid1. Wystarczy, by rootFS montował się podczas bootowania, czyli interesuje nas tak naprawdę, tylko macierz md0

  1. Kopiujemy tablice partycji z /deb/sda do /deb/sdb

   dd if=/dev/sda of=/dev/sdb bs=512 count=1

  1. Zmiana typu partycji (przypadek z jedną partycją)

   echo -e "\nt\n1\nfd\nw\nx" | fdisk /dev/sdb

  1. Zmiana typu partycji (wiele partycji)

   echo -e "\nt\n1\nfd\nt\n2\nfd\nt\n3\­nfd\nw\nx" | fdisk /dev/sdb # OPCJA

  1. Tworzymy urządzenie md0

   [ -e /dev/md0 ] || mknod /dev/md0 b 9 0
   [ -e /dev/md1 ] || mknod /dev/md1 b 9 1 # OPCJA
   [ -e /dev/md2 ] || mknod /dev/md2 b 9 2 # OPCJA

  1. Tworzymy macierz z jednym dyskiem

   mdadm —create /dev/md0 —level=1 —raid-devices=2 missing /dev/sdb1
   mdadm —create /dev/md1 —level=1 —raid-devices=2 missing /dev/sdb2 # OPCJA
   mdadm —create /dev/md2 —level=1 —raid-devices=2 missing /dev/sdb3 # OPCJA

#Tworzymy filesystem na macierzy md0
   mkfs.ext3 /dev/md0

  1. Montujemy /dev/md0 do /mnt i kopiujemy rsync'iem rootFS  bez /mnt, /sys, /proc, /dev/pts, /dev/shm

   cd / && mount /dev/md0 /mnt && rsync -a —progress —exclude=/mnt —exclude=/sys —exclude=/proc —exclude=/dev/shm —exclude=/dev/pts / /mnt

  1. Tworzymy katalogi dla SYS I PROC w /mnt

   mkdir /mnt/sys && mkdir /mnt/proc

  1. Tworzymy katalog /root/initrd, wchodzimy do niego

   mkdir /root/initrd && cd /root/initrd

  1. Kopiujemy initrd (do katalogu /root/initrd)

   zcat /boot/initrd-`uname -r`.img | cpio -i && cp /lib/modules/`uname -r`/kernel/drivers/md/raid1.ko lib

  1. Modyfikujemy INITRD

   q="echo Waiting for driver initialization."

   sed -r -i "s,^${q}$,\n\necho Loading raid1.ko \ninsmod /lib/raid1.ko\n${q}\n,g" init

   q="resume /var/swap/swap.001"

  1. Tworzymy RAIDAUTORUN DLA /dev/md0

   sed -r -i "s,^${q}$,${q}\necho Running raidautorun\nraidautorun /dev/md0\nraidautorun /dev/md0,g" init
   # Powyższa linijka doda 2x raidautorun /dev/md0, więc sugeruję to: sed -r -i "s,^${q}$,${q}\necho Running raidautorun\nraidautorun /dev/md0,g"

   sed -r -i "s,^${q}$,${q}\necho Running raidautorun\nraidautorun /dev/md1\nraidautorun /dev/md1,g" init # OPCJA
   sed -r -i "s,^${q}$,${q}\necho Running raidautorun\nraidautorun /dev/md2\nraidautorun /dev/md2,g" init # OPCJA

### Sprawdz output /root/initrd/init.  Pownienen być raidautorun dla wszystkich md*, a zwlacza tam gdzie jest rootfs ###
### Jeśli wpisy się dublują, to jeden z nich trzeba usunąć ###

   r=`grep mkroot /root/initrd/init`

   sed -r -i "s|^${r}$|${r/sda1/md0}|g" init

  1. Tworzymy i kopiujemy zmodyfikowany INITRD do /mnt/boot

   find . -print | cpio -o -c | gzip -c > /mnt/boot/initrd-`uname -r`.img

  1. Modyfikujemy /etc/fstab na md0 i sda

   sed -r -i 's,LABEL=root-\w+ ,/dev/md0 ,g' /mnt/etc/fstab
   sed -r -i 's,LABEL=root-\w+ ,/dev/md0 ,g' /etc/fstab

  1. Modyfikujemy extlinux.conf

   sed -r -i 's,root=LABEL=root-\w+ ,root=/dev/md0 ,g' /mnt/boot/extlinux.conf
   sed -r -i 's,root=LABEL=root-\w+ ,root=/dev/md0 ,g' /boot/extlinux.conf

  1. Kopiujemy mbr.bin na /deb/sdb

   cat /usr/lib/syslinux/mbr.bin > /dev/sdb

  1. Reinstalujemy extlinux w /mnt/boot (md0) oraz w /boot (sda)

   cd /mnt && extlinux -i boot/
   cd / && extlinux -i boot/

### SPRAWDź CZY SA TAKIE SAME ###
   diff /boot/extlinux.conf /mnt/boot/extlinux.conf

  1. Skopiuj INITRD do /boot na sda

   cp /mnt/boot/initrd-`uname -r`.img /boot

  1. Wykonujemy sync

   sync

  1. Reboot systemu

   init 6

  1. Zmieniamy typ filesystemu dla dyski sda

   echo -e "\nt\n1\nfd\nw\nx" | fdisk /dev/sda

   echo -e "\nt\n1\nfd\nt\n2\nfd\nt\n3\­nfd\nw\nx" | fdisk /dev/sda # OPCJA

  1. Dołączamy dysk sda do md0

   mdadm -a /dev/md0 /dev/sda1
   mdadm -a /dev/md1 /dev/sda2 # OPCJA
   mdadm -a /dev/md2 /dev/sda3 # OPCJA

  1. Sprawdź postęc sync-owania dysków

   cat /proc/mdstat

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License