Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:virtualisierung:virtualisierung:xenserver:software-raid:start]] 

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"
 [[anwenderwiki:virtualisierung:virtualisierung:xenserver:software-raid:start]] anwenderwiki/virtualisierung/virtualisierung/xenserver/software-raid/start.txt · Zuletzt geändert: 2015/09/03 21:52 von 127.0.0.1