XenServer auf externen USB Laufwerk

Skills

Zusammenfassung

Eine XenServer Testumgebung aufzubauen scheitert in der Regel an der fehlenden Hardware. Da eine XenServer Installation ein 64Bit System mit Intel-VT oder AMD V voraussetzt, fallen die „alten“ Maschinen die man noch so rumstehen hat als Testsystem raus. Aber selbst eine aktuelle Maschine scheitert daran, dass der XenServer die komplette Platte benutzt und somit kein Dualboot mit einem anderen Betriebssystem möglich ist. Wenn man jetzt ein aktuelles Notebook (z.B. Lenovo T61) als XenServer installiert, ist erstmal das eigentlich Betriebssystem weg. Bisher war das zwar auch kein Problem in dem man von seinem System ein Image gezogen hat. Wenn man jetzt aber sein Laptop wieder zum arbeiten braucht, ist das zurückspielen des Images aber auch keine wirklich Lösung.

Leider lässt sich der XenServer nicht auf externen USB Platten installieren, so die Aussage von Citrix. Mit einem Trick und der folgenden Anleitung geht es aber doch.

Voraussetzungen

Um überhaupt von der nachfolgenden Anleitung zu profitieren muss der verwendete Rechner natürlich gewisse Mindestvoraussetzungen erfüllen.

  • 64 bit System
  • AMD V oder Intel-VT (z.b. Lenovo T61)
  • Unterstützung von USB Boot

Wenn diese Voraussetzungen erfüllt sind, können wir mit der Installation loslegen.

Folgende Schritte macht ihr auf eigene Gefahr, ich übernehme keine Haftung für Schäden oder Datenverlust jeglicher Art.

Prozedur

Zu erst (nachdem VT und Boot von USB eingeschaltet sind) müssen wir die Bootreihenfolge im BIOS ändern.

  1. CD/DVD Laufwerk
  2. USB
  3. interne HDD

Ich würde die interne Festplatte komplett im BIOS abschalten. Was nicht da ist, kann nicht überschrieben werden.

  • Die XenServer CD ins Laufwerk legen und mit angeschlossenem USB Laufwerk starten.
  • Sofort beim booten des Rechners ins Bootmenu gehen und das CD Laufwerk auswählen
  • Wenn die CD bootet (gleich nach dem Willkommen…) F2 für Advanced Setup Options drücken.
  • Am Prompt dann „shell“ eingeben und Enter drücken
  • Wenn der Bootvorgang fertig ist, müssen wir das USB Laufwerk vorbereiten und einen temporären Ordner anlegen (das USB Laufwerk sollte das einzige angeschlossene Laufwerk sein, deshalb sda).
mkdir /tmp/sda
  • Danach können wir die erste Partition des Laufwerks mounten.
mount -t ext3 /dev/sda1 /tmp/sda
  • Jetzt müssen noch die sys/block Treiber kopiert werden, wofür wir uns erstmal die Rechte erteilen müssen.
chmod -R 664 /sys/block
  • Nun folgt der eigentliche Kopiervorgang.
cp -R /sys/block/ /tmp/sda/sys/block/

Eventuelle I/O Fehlermeldungen können ignoriert werden.

  • Als nächstes noch root etwas umbiegen.
chroot /tmp/sda
  • In den Boot Ordner auf das USB Laufwerk wechseln
cd /boot
  • An dieser Stelle müssen wir die vorhandene initrd Datei umbenennen (unsere neue bekommt den gleichen Namen)
mv initrd-2.6.18-53.1.13.el5.xs4.1.0.254.273xen.img ∠
initrd-2.6.18-53.1.13.el5.xs4.1.0.254.273xen.img.old
  • Und jetzt eine neue initrd Datei erstellen
mkinitrd --with-usb initrd-2.6.18-53.1.13.el5.xs4.1.0.254.273xen.img  ∠
2.6.18-53.1.13.el5.xs4.1.0.254.273xen

An dieser Stelle bootet unser XenServ schon vom USB Laufwerk. Einfach rebooten und das USB Laufwerk im Bootmenü auswählen. Wenn der Server erfolgreich startet, werden trotzdem diverse Fehlermeldungen der Post-Install Skripts ausgegeben. Diese Skripte versuchen ein lokales Repository für XenServer VM's anzulegen. Aber kein Problem, dass machen wir nachfolgend manuell.

  • Zuerst melden wir uns mal am Server an und schauen was wir da so an Partitionen haben.
fdisk -l
  • Das Ergebnis sollte in etwa so aussehen.
Disk /dev/sda: 73.3 GB, 73372631040 bytes
255 heads, 32 sectors/track, 17562 cylinders
Units = cylinders of 8160 * 512 = 4177920 byte

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         981     4002464   83  Linux
/dev/sda2             982        1962     4002480   83  Linux
/dev/sda3            1963       17562    63648000   83  Linux
[root@FRAEQGDD2006 ~]#
  • Wie man sehen kann ist sda3 die Partition mit dem meisten Platz und somit genau der Ort auf dem wir unsere virtuellen Maschinen ablegen wollen. Um das einzurichten, benötigen wir erstmal die UUID.
cat /etc/xensource-inventory |grep "INSTALLATION_UUID"
  • Die Ausgabe sieht dann so aus:
[root@FRAEQGDD2006 ~]#cat /etc/xensource-inventory |grep "INSTALLATION_UUID"
INSTALLATION_UUID='484ed447-6137-476b-9f65-6dfc073d0ad9'
[root@FRAEQGDD2006 ~]#
  • Jetzt können wir ein neues SR anlegen (machen wir gleich in EXT anstatt LVM)
xe sr-create content-type="localSR" host-uuid=484ed447-6137-476b-9f65-6dfc073d0ad9 ∠
type=ext device-config-device=/dev/sda3 shared=false name-label="Local USB SR"

Das war alles. Die weitere Konfiguration kann jetzt über das XenCenter (von einer anderen Maschine) oder über die CLI erfolgen. Wenn man jetzt sein lokal installierte Betriebssystem benötigt, reicht ein Reboot aus und man kann per Bootmenü zwischen lokaler und USB Platte wählen (nicht vergessen diese wieder im BIOS zu aktivieren ;-))

Wie man noch weitere Einstellungen am Local SR machen kann, steht unter anderem hier.

Ich übernehme natürlich keine Gewährleistung für irgendwelche Datenverluste.

xenserver/testumgebung.txt · Zuletzt geändert: 22.01.2011 - 16:31 von Thomas Krampe
Sie befinden sich hier: Willkommen im Xenmaster WikiCitrix XenServerXenServer auf externen USB Laufwerk