Soft RAID pro XenServer 5.0+
nainstalovat XenServer bez tvorby jakékoliv repository
Zkopírovat partition table
dd if=/dev/sda of=/dev/sdb bs=512 count=1
Nastavit flagy oddílů na fd = raid autodetect
echo -e "\nt\n1\nfd\nt\n3\nfd\nw\nx" | fdisk /dev/sdb
Vytvořit raid nody s kontrolou jestli existují
[ -e /dev/md0 ] || mknod /dev/md0 b 9 0 [ -e /dev/md1 ] || mknod /dev/md1 b 9 1
Vytvořit samotná raid1 pole jen s jedním diskem
mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/sdb1 mdadm --create /dev/md1 --level=1 --raid-devices=2 missing /dev/sdb3
Pokud už máme existující repository, tak musíme udělat tento krok pvcreate /dev/md1 volume_group=`vgscan | grep VG | awk -F \„ '{print $2}'` vgextend $volume_group /dev/md1 pvmove /dev/sda3 /dev/md1 # If this is a fresh install, then there won't be any data to move vgreduce $volume_group /dev/sda3
Vytvořit filesystem a zkopírovat na něj obsah
mkfs.ext3 /dev/md0 cd / && mount /dev/md0 /mnt && rsync -a --progress --exclude=/sys --exclude=/proc --exclude=/dev/shm --exclude=/dev/pts / /mnt mkdir /mnt/sys mkdir /mnt/proc
Nastavit bootování na něj
sed -r -i 's,LABEL=root-\w+ ,/dev/md0 ,g' /mnt/etc/fstab
Vytvořit initrd
mkdir /root/initrd && cd /root/initrd zcat /boot/initrd-`uname -r`.img | cpio -i cp /lib/modules/`uname -r`/kernel/drivers/md/raid1.ko lib
Zeditujeme init soubor
q="echo Waiting for driver initialization." sed -r -i "s,^${q}$,\n\necho Loading raid1.ko module\ninsmod /lib/raid1.ko\n${q}\n,g" init q="resume /var/swap/swap.001" sed -r -i "s,^${q}$,${q}\necho Running raidautorun\nraidautorun /dev/md0\nraidautorun /dev/md1,g" init r=`grep mkroot /root/initrd/init` sed -r -i "s|^${r}$|${r/sda1/md0}|g" init
zkopírujeme init ramdisk do /boot na RAIDu
find . -print | cpio -o -c | gzip -c > /mnt/boot/initrd-`uname -r`.img sed -r -i 's,LABEL=root-\w+ ,/dev/md0 ,g' /mnt/etc/fstab sed -r -i 's,root=LABEL=root-\w+ ,root=/dev/md0 ,g' /mnt/boot/extlinux.conf
Nastavíme bootování
cat /usr/lib/syslinux/mbr.bin > /dev/sdb cd /mnt extlinux -i boot/
Pokud se to dělá vzdáleně, a nemůžeme fyzicky prohodit disky, tak
cp /mnt/boot/extlinux.conf /boot/ cp /mnt/boot/initrd-`uname -r`.img /boot
Nakonec odmountujeme disk
cd ; umount /mnt || umount /dev/md0 sync
vypnout server, prohodit disky abysme nabootovali z toho nove prirpaveneho a pak
echo -e "\nt\n1\nfd\nt\n3\nfd\nw\nx" | fdisk /dev/sdb
Přidat disky do pole
mdadm -a /dev/md0 /dev/sdb1 mdadm -a /dev/md1 /dev/sdb3
Vytvořit repository
xe sr-create content-type=user type=lvm shared=false device-config:device=/dev/md1 name-label="RAID1 Repository"
Zdroje:
http://www.toddsmith.org/wordpress/uncategorized/configure-xenserver-50-free-for-software-raid-1/
http://dmit.lv/xs50raid/XenServer-on-RAID.txt