weidner/computer/linux/xen/

Eine Ubuntu 14.04 Xen DomU aufsetzen

Vor einiger Zeit hatte ich in einem anderen Artikel beschrieben, wie ich eine Xen-DomU mit Ubuntu 12.04 und Ubuntu 12.04 als Unterbau aufsetze.

Inzwischen ist die nächste Ubuntu LTS Version 14.04 schon eine ganze Weile verfügbar, so dass es Zeit wird für eine aktualisierte Anleitung.

Diese Anleitung beruht im Wesentlichen auf der Beschreibung im Xen Community Wiki, ergänzt um persönlichen Erfahrungen.

Hier ist nur das Einrichten einer DomU beschrieben, das Aufsetzen der Dom0 folgt in einem anderen Artikel.

Ubuntu Netboot-Image besorgen

Als erstes besorge ich mir ein Netboot-Image, um das Betriebssystem in der DomU zu installieren. Dieses lege ich an zentraler Stelle ab, damit ich es bei anderen Installationen wiederverwenden kann.

$ sudo mkdir -p /var/lib/xen/images/ubuntu-netboot/trusty14LTS
$ sudo cd /var/lib/xen/images/ubuntu-netboot/trusty14LTS
$ ARCHIV="http://ftp.halifax.rwth-aachen.de/ubuntu/dists/trusty/main"
$ sudo wget $ARCHIV/installer-amd64/current/images/netboot/xen/vmlinuz
$ sudo wget $ARCHIV/installer-amd64/current/images/netboot/xen/initrd.gz

Damit sind die Vorbereitungen für alle Ubuntu 14.04 DomU erledigt. Was folgt, muss ich für jede einzelne DomU tun.

Betriebssystem auf der DomU installieren

Als erstes schaffe ich Platz für die DomU. Ich verwende LVM2 für die Partitionen der DomU und habe für die Xen-DomU die LVM-Volume-Group xendomu reserviert. Mit lvcreate stelle ich Platz für die Root-Partition bereit. Dann lege ich eine provisorische Konfigurationsdatei an, die ich so nur zum Installieren des Betriebssystems verwende.

$ sudo lvcreate -L 8G -n ubuntutest /dev/xendomu
$ sudo vim /etc/xen/ubuntutest.cfg

Die Konfigurationsdatei sieht für das Testsystem etwa so aus.

name = "ubuntutest"
memory = 512
disk = ['/dev/xendomu/ubuntutest,raw,xvda,rw']
#
# Bei Ubuntu 12.04 als Dom0 sieht die Zeile anders aus:
# disk = ['phy:/dev/xendomu/ubuntutest,xvda,rw']
#
vif = [' ']
kernel = "/var/lib/xen/images/ubuntu-netboot/trusty14LTS/vmlinuz"
ramdisk = "/var/lib/xen/images/ubuntu-netboot/trusty14LTS/initrd.gz"
extra = "debian-installer/exit/always_halt=true -- console=hvc0"

Die DomU wird mit dem Kernel und der InitRD des Netboot-Images gestartet, die ich vorher geholt habe. Das Netzwerkinterface habe ich nicht spezifiziert, so dass es entsprechend den Default-Einstellungen in einem separaten virtuellen LAN mit DHCP und NAT auf dem Host angeschlossen wird. Diese DomU starte ich mit xm create und hole mir dabei gleich die Konsole mit der Option -c.

$ sudo xm create -c ubuntutest.cfg

Nun kann ich das System mit dem Ubuntu-Installer installieren und die benötigte Software (auf jeden Fall den SSH-Server) einrichten.

Einrichtung abschließen

Wenn ich mit der Installation des Betriebssystems fertig bin, halte ich die VM an und kann die Xen-Konfiguration anpassen.

$ sudo vim /etc/xen/ubuntutest.cfg

Dort trage ich nun das Folgende ein:

name = "ubuntutest"
bootloader = "pygrub"
extra = "root=/dev/xvda1"
memory = 512
vcpus = 2
vif = ['mac=00:16:3e:7a:75:66,bridge=xenbr1']
disk = [ '/dev/xendomu/ubuntutest,raw,xvda,rw' ]

Da die Maschine keinen direkten Kontakt zum Netzwerk des Xen-Hosts haben soll, schließe ich das virtuelle Netzwerkinterface an eine Bridge an, die keinen direkten Kontakt zu einer echten Netzwerkschnittstelle hat. Die MAC-Adresse der DomU lege ich explizit fest, um via DHCP eine definierte Adresse zuweisen zu können. Natürlich verwende ich für jede VM eine andere MAC-Adresse.

Anstelle von Kernel- und Ramdisk-Parametern verwende ich jetzt pygrub zum Starten der Maschine, das sich die notwendigen Informationen von der Root-Partition holt und sich um alles weitere kümmert.

Ich starte die Maschine wieder, diesmal ohne Konsole.

$ sudo xm create ubuntutest.cfg

Schlussbemerkungen

Da ich in der ursprünglichen Konfiguration keine Bridge verwendet habe, nimmt Xend die Standardkonfiguration: ein virtuelles LAN mit NAT. Weil zu dieser Zeit sowieso nur der Installer läuft, ist das nicht tragisch. Will ich jedoch das Netz bereits bei der Installation so wie im späteren Einsatz haben, kann ich das auch gleich in die Konfigurationsdatei schreiben.

Updates

2016-01-08

Bei der initialen Konfiguration für Xen müssen 512 MB RAM bereitgestellt werden, sonst bricht die Installation aus Speichermangel ab.

Bei Ubuntu 12.04 als Xen-Dom0 sieht die Konfiguration für den Plattenplatz etwas anders aus als bei Ubuntu 14.04 als Dom0.

Posted 2015-07-29
Tags: