{{tag> citrix xenserver virtualisierung}} ====== Software-Raid mit Citrix XenServer ====== 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. ===== Skriptgestütztes Vorgehen ===== **Ausgangslage:** Das Zielsystem hat zwei identische Festplatten eingebaut, die als Raid-1 genutzt werden sollen. * Zunächst ganz normal XenServer installieren, bis abgefragt wird, welches die "Primary Disk" werden sollen, dort die erste Platte wählen. * Bei der darauf folgenden Frage nach dem "Virtual Machine Storage" alle Optionen daktivieren, so dass kein Virtual Machine Stora angelegt wird. Die damit verbundene Warnung muss abgenickt werden, dann gehts ganz normal weiter. 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. ===== Klonen der Partitionierung und Neustart ===== Nun kann die Partitionierung von Platte 1 auf Platte 2 kopiert werden: ./01-clonedisk-and-reboot Nachdem diesem Vorgang startet der Server neu. ===== Kopieren des Systems auf ein unvollständiges Raid-Array ===== 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]# ===== Wechsel in die Changeroot-Umgebung und erstellen einer initrd mit Raid-Support ===== 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 /]# ===== Kopieren des Systems auf das unvollständige Raid-Array und Neustart von Platte 2 ===== 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. **WICHTIG** Man muss jetzt beim Systemstart **sicherstellen**, dass das System von der **zweiten Platte startet**, nicht von der ersten! //Kontrolle:// Das Root-Dateisystem muss nach dem Neustart ''/dev/md0'' sein [root@magellan ~]# mount /dev/md0 on / type ext3 (rw) [...] ===== Neupartitionierung von Platte 1 und vervollständigen des Raid-Arrays ===== 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 ===== Local Storage hinzufügen ===== ==== Weitere Raid Partition ==== 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 ==== Local Storage in XenServer anmelden ==== pvcreate /dev/md2 xe sr-create type=lvm content-type=user device-config:device=/dev/md2 name-label="Local Storage"