Wie viele „professionelle“ Virtualisierungslösungen unterstützt XenServer die native Installation auf einem Software-Raid nicht. Man kann bei der Installation jedoch mit einigen Klimmzügen das System auf ein Software Raid verschieben.
Ausgangslage: Das Zielsystem hat zwei identische Festplatten eingebaut, die als Raid-1 genutzt werden sollen.
Nach dem Reboot Hilfsskripte holen und auspacken:
wget https://github.com/ironiemix/xenserver-scripts/archive/master.zip -O xenserver-scripts.zip unzip xenserver-scripts.zip cd xenserver-scripts-master/software-raid/
Nun muss man kontrollieren, ob die Platten wirklich /dev/sda und /dev/sdb heißen. Wenn nicht muss man die Devices in der Datei makeraid.conf entsprechend anpassen.
Nun kann die Partitionierung von Platte 1 auf Platte 2 kopiert werden:
./01-clonedisk-and-reboot
Nachdem diesem Vorgang startet der Server neu.
Jetzt kann man mit dem Skript 02-prepare-chroot
cd xenserver-scripts-master/software-raid ./02-prepare-chroot
aus den Partitionen auf der zweiten Platte ein unvollständiges Raid-Array erzeugen lassen. Anschließend wird das System von der ersten Platte auf das neue Array kopiert.
Das Ende der Ausgaben sollte in etwa so aussehen:
[...]
„/boot/extlinux/menu.c32“ -> „/mnt/boot/extlinux/menu.c32“
„/boot/extlinux/gfxboot.c32“ -> „/mnt/boot/extlinux/gfxboot.c32“
„/boot/extlinux/vpdtest.c32“ -> „/mnt/boot/extlinux/vpdtest.c32“
„/boot/extlinux/memdisk“ -> „/mnt/boot/extlinux/memdisk“
„/boot/extlinux/hdt.c32“ -> „/mnt/boot/extlinux/hdt.c32“
done.
Modifying /mnt/etc/fstab... done.
Mounting /dev/ sysfs and proc to changeroot ... done.
/boot is device /dev/md0
0+1 Datensätze ein
0+1 Datensätze aus
440 Bytes (440 B) kopiert, 0,031085 Sekunden, 14,2 kB/s
Now type
chroot /mnt
on the command line and execute part3 of the scripts!
[root@magellan xenserver-sw-raidscripts-master]#
Man folgt den Anweisungen des letzten Skripts:
chroot /mnt ./03-in-the-chroot
Das Ende der Ausgaben sollte etwa so aussehen:
[...] Adding module scsi_dh_emc Adding module scsi_dh_hp_sw Adding module scsi_dh_rdac /sbin/mdadm.static -> /tmp/initrd.oB7941/bin/mdadm /sbin/mdmon.static -> /tmp/initrd.oB7941/bin/mdmon /etc/mdadm.conf -> /tmp/initrd.oB7941/etc Fixing root filesystem info in /boot/extlinux.conf Installing extlinux... boot/ is device /dev/md0 Warning: The kernel is still using the old partition table. The new table will be used at the next reboot. The operation has completed successfully. Leaving chroot. Please execute 04-finish to finish the process [root@magellan /]#
Man wechselt übers home ins Skriptverzeichnis und führt 04-finish aus:
cd cd xenserver-scripts-master/software-raid ./04-finish
Das System startet nochmals neu.
Kontrolle: Das Root-Dateisystem muss nach dem Neustart /dev/md0 sein
[root@magellan ~]# mount /dev/md0 on / type ext3 (rw) [...]
Nun kann man die Partitionen der ersten Platte mit dem Skript 05-reclone dem Raidverbund zuschlagen.
cd cd xenserver-scripts-master/software-raid ./05-reclone
Anschließend resynced das Raid:
cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda2[2] sdb2[0]
4193216 blocks [2/1] [U_]
resync=DELAYED
md0 : active raid1 sda1[2] sdb1[0]
4193216 blocks [2/1] [U_]
[================>....] recovery = 83.6% (3509312/4193216) finish=0.2min speed=42560K/sec
Zunächst muss eine weitere Partition auf den Platten erzeugt und zu einem Raid zusammenefügt werden.
Hierzu erstellt man mit dem Befehl gdisk auf /dev/sda und /dev/sdb eine dritte Partition mit dem Typ FD00.
gdisk /dev/sda
Dann n für New, Vorgaben übernehmen, um den restlichen Speicherplatz der Platte auszunutzen, Typ auf FD00 setzen und mit w speichern, analog auf /dev/sdb
Jetzt muss der Rechner neu gestartet werden, um die Partitionierungen zu übernehmen, nach dem Neustart erzeugt man das Raid mit dem Befehl
mdadm --create /dev/md2 --level=1 --metadata=0.90 --raid-devices=2 /dev/sda3 /dev/sdb3
pvcreate /dev/md2 xe sr-create type=lvm content-type=user device-config:device=/dev/md2 name-label="Local Storage"