Erste Schritte mit dem XEN-Hypervisor

Aus LinuxUser 04/2012

Erste Schritte mit dem XEN-Hypervisor

Return of the Panda

Xen beeindruckt mit hoher Performance und Stabilität beim Virtualisieren von Servern – und ist dabei gar nicht (mehr) so schwer zu handhaben, wie Viele denken.

Mit einem Dienstalter von rund 10 Jahren zählt Xen [1] bereits zu den Veteranen der Servervirtualisierungsszene. Der von vielen IT-Größen von IBM über Oracle bis Citrix geförderte offene Hypervisor hat nicht nur die Open-Source-Servervirtualisierung maßgeblich vorangebracht, sondern war ein wichtiger Technologiemotor für die Ausbreitung von Servervirtualisierung. Gerade im Hosting- und Cloud-Bereich – etwa bei Amazon EC2, Eucalyptus und OpenNebula – ist es äußerst populär und dient zudem kommerziellen Produkten wie Citrix XenServer und XenClient als Motor.

In den letzten Jahren wurde es jedoch in Sachen Popularität von KVM überflügelt. Das liegt unter anderem daran, dass KVM schon sehr frühzeitig Bestandteil des Linux-Kernel wurde und sich somit vergleichsweise einfach installieren und verwalten ließ. Bei Xen dagegen musste man den Linux-Kernel dagegen über Patches mit Xen-spezifischem Code nachrüsten, was auch dazu führte, dass nur wenige Distributionen fertige Pakete bereitstellten.

Xen is back

Linux 3.0 brachte dann für Xen eine Revolution: Seitdem ist der Hypervisor gleichberechtigt mit KVM direkt im Kernel vertreten, was sich aus Nutzersicht mehrfach positiv auswirkt: Die Einrichtung von Xen wird deutlich einfacher, zumal populäre Distributionen wie Ubuntu 11.10 Xen nun wieder in ihre Pakete integrieren und supporten.

Auch wenn sich Xen im Wesentlichen im Server-Umfeld einen Namen gemacht hat, lässt es sich ähnlich wie KVM auch auf einem Desktop-PC verwenden, um für den parallelen Betrieb mehrerer virtueller Maschinen mit Linux- und Windows-Systemen zu sorgen.

Vorsprung durch Technik

Xen ist ausgereift, stabil und leistungsstark. Es bietet hohe Flexibilität und findet sich als Hypervisor in vielen anderen Open-Source-Paketen wieder, zahlreiche Managementtools verfügen über Xen-Unterstützung.

Xen hat alle Funktionen an Bord, die man von einem modernen Hypervisor erwartet, von der detaillierten Konfiguration von Gästen (Speicher, virtuelle CPUs) über dynamische Speicherverwaltung und intelligente Scheduler bis hin zur Live-Migration von Gästen. Geräte am PCI-Bus und an USB-Anschlüssen lassen sich – auch im laufenden Betrieb – an Gäste durchreichen.

Der Umstand, dass Xen im Prinzip auf jeder X86-Hardware läuft und aufgrund seiner Paravirtualisierungstechnik (Abbildung 1) nicht unbedingt auf Virtualisierungsfeatures in der CPU angewiesen ist (unter Verlust der Unterstützung für die Virtualisierung beispielsweise von Windows), ermöglicht auch den Einsatz älterer Hardware als Virtualisierungshost, die dann immer noch gute Performance aufweist.

Abbildung 1: Die erprobte Xen-Architektur gliedert sich in drei Schichten.

Abbildung 1: Die erprobte Xen-Architektur gliedert sich in drei Schichten.

Xen unterstützt aktuelle Prozessoren der x86-, Itanium- und ARM-Familien, als Bare-Metal-Hypervisor virtualisiert es Linux, Windows, Solaris, BSD und einige seltenere Betriebssysteme.

Seit Linux 3.0 enthält der Kernel alle für den Betrieb von Xen benötigten Komponenten, und bereits seit Kernel-Version 2.6.23 lassen sich Linux-Gäste ohne Anpassung im sogenannten Paravirtualisierungsmodus betreiben, bei dem die VMs “wissen”, dass sie virtualisiert laufen und über spezielle Treiber den I/O- und Netzwerkverkehr zwischen Domain 0 und DomU abwickeln. Davor war es notwendig, den Kernel der Xen-Gäste mit entsprechenden Patches zu modifizieren.

Sofern der Rechner über CPUs mit Virtualisierungsfunktionen verfügt, kann Xen auch unmodifizierte Gast-Systeme wie Windows betreiben.

Xen im Überblick

Hardware läuft auf fast jeder aktuellen Hardware, auch ohne Virtualisierungsfeatures
Stabilität sehr ausgereift, sehr stabil, verlässliches Release-Konzept, Regressionstests
Architektur an einen spezifischen, älteren Linux-Kernel (seit Xen 4 Kernel 2.6.31, bei Xen 3 2.6.18) gebunden
Paravirtualisierung Modifikationen am Gast-Kernel nötig
Vollvirtualisierung setzt Intel VT/AMD-V voraus
Features mit Xen 4 großer Funktionsumfang, darunter Support für VHD-Dateiformat, integrierte HA-Features, USB-2.0-Direktzugriff
Performance schnell, gute CPU-Performance.
Gastsysteme Linux, Windows, Solaris, *BSD, …
Management mächtige Basis-Werkzeuge, große Auswahl an Tools von Drittanbietern
Enterprise-Lösungen Citrix XenServer, Oracle VM
Zukunftssicherheit recht hoch
Sicherheit hochgradige Gastisolation, Nutzung von Hardware-Sicherheitsfeatures (etwa TPM)

Von Null auf Xen

Mit dem aktuellen Ubuntu 11.10 setzen Sie Xen – auch nachträglich – schnell aufgesetzt. Zunächst installieren Sie die Xen-Pakete und Tools (Listing 1), anschließend starten Sie den Rechner neu und wählen dabei im Bootmenü den Xen-Kernel. Beim folgenden Systemstart bekommen Sie erstmals mit, dass Sie Ihren Rechner grundlegend verändert haben: Was da als startet, ist nicht mehr das gewohnte Linux, sondern der Xen-Hypervisor, gut zu sehen an dessen umfassenden Meldungen.

Listing 1

$ sudo apt-get install xen-hypervisor-4.1-amd64 xen-utils-4.1 xenwatch xen-tools xen-utils-common xenstore-utils
$ sudo apt-get install virtinst virt-viewer virt-manager

Xen ist ein sogenannter Bare-Metal- oder Type-1-Hypervisor, der sich direkt auf der Hardware breit macht und dann Gast-Betriebssystem in einer speziellen virtuellen Maschine, der Domain 0, kurz auch Dom0, startet. Von dieser aus steuern Sie den Hypervisor und die Gastsysteme. Der Dom0 entlocken Sie mit den Kommandos xm info und brctl show einige der Xen-Geheimnisse.

Sehen die Ausgaben der beiden Kommandos ähnlich aus wie in Listing 2, dann läuft der Hypervisor, und auch die Network-Bridge für die Anbindung der Gäste an die Außenwelt ist eingerichtet.

Listing 2

# xm info
host : ubuntu
release : 3.0.0-15-generic-pae
version : #26-Ubuntu SMP Fri Jan 20 17:07:31 UTC 2012
machine : i686
nr_cpus : 2
nr_nodes : 1
cores_per_socket : 2
threads_per_core : 1
cpu_mhz : 2094
hw_caps : bfebfbff:20100800:00000000:00000940:0008e3bd:00000000:00000001:00000000
virt_caps : hvm
total_memory : 3066
free_memory : 128
free_cpus : 0
xen_major : 4
xen_minor : 1
xen_extra : .1
xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
xen_scheduler : credit
xen_pagesize : 4096
platform_params : virt_start=0xffa00000
xen_changeset : unavailable
xen_commandline : placeholder
cc_compiler : gcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3)
cc_compile_by : zulcss
cc_compile_domain : ubuntu.com
cc_compile_date : Tue Oct 11 07:29:23 UTC 2011
xend_config_format : 4
# brctl show
bridge name  bridge id          STP enabled     interfaces
virbr0       8000.000000000000  yes

So läuft das zumindest unter den meisten Linux-Distributionen ab. Ubuntu allerdings kooperiert nicht so reibungslos mit Xen – Näheres dazu finden Sie im Kasten “Xen auf Ubuntu”.

Xen auf Ubuntu

Da die Xen-Pakete von Ubuntu beim Einrichten nicht alles Notwendige erledigen, um einen reibungslosen Lauf des Hypervisors zu gewährleisten, müssen Sie nach der Installation noch an diversen Stellen selbst Hand anlegen.

Zunächst ergänzen Sie in der Konfigurationsdatei des Xen-Daemons /etc/xen/xend-config.sxp die beiden Zeilen, welche für die Verbindungsbereitschaft des Dienstes über Unix-Sockets und die VNC-Passwort-Vergabe zuständig zeichnen:

(xend-unix-server yes)
(vncpasswd 'Passwort')

Unter Ubuntu 11.10 “Oneiric Ocelot” gilt es darüber hinaus das Init-Skript des Xen-Daemons – Sie finden es unter /etc/init.d/xend – um den folgenden Eintrag zu erweitern, da sonst Probleme bei manchen Gastsystemen auftreten:

modprobe xen-gntdev 2>/dev/null || true

In ~/.bashrc fügen Sie die folgende Zeile hinzu, damit der Virt-Manager automatisch die richtige Verbindung zum Hypervisor aufnimmt:

export VIRSH_DEFAULT_CONNECT_URI="xen:///"

Anschließend umgehen Sie durch das Anlegen eines symbolischen Links noch einen kleinen Bug:

$ sudo ln -s /usr/lib/xen-4.1 /usr/lib/xen

Zu guter Letzt sorgt ein Neustart des Rechners dafür, dass die geänderten Einstellungen auch greifen. Abschließend prüfen Sie mittels des Kommandos virsh version, ob alles passt. Die Ausgabe sollte in etwa so aussehen, wie in Listing 3 gezeigt.

Listing 3

# virsh version
Compiled against library: libvir 0.9.2
Using library: libvir 0.9.2
Using API: Xen 3.0.1
Running hypervisor: Xen 4.1.0

Gastgeber und Gäste

Xen ist schon lange in der Szene vertreten, daher bieten eine Reihe wichtiger Linux-Distributionen eine ordentliche, fest integrierte Unterstützung für den Hypervisor. Neben Ubuntu und Debian tut sich hier vor allem Suse hervor – das gilt sowohl für den kommerziellen SLES als auch für OpenSuse.

Die aktuelle OpenSuse 12.1 bringt ganz frische Xen- und Hypervisor-Management-Pakete mit. Dazu zählen Xen 4.1, der Virt-Manager, die Open-VM-Tools die Libvirt. Die Installation erledigen Sie mit einem Klick in YaST entweder bei der Serverinstallation oder auch nachträglich. Nach dem Neustart müssen Sie dabei jedoch darauf achten, den Xen-Kernel auszuwählen, den die Distribution nicht automatisch zum Standard-Kernel macht. Dies holen Sie gegebenenfalls via YaST nach.

Das Einrichten der nötigen Pakete unter einem aktuellen Debian nehmen Sie mit folgenden Kommandos vor:

# aptitude -P install xen-linux-system
# apt-get install xen-qemu-dm-4.0

Das zweite Kommando sorgt dabei für die Unterstützung der Vollvirtualisierung, die Sie zum Beispiel für das Betreiben von Windows-VMs benötigen.

Daneben finden vor allem Fedora-Fans eine gute und konsequente Unterstützung des Xen-Hypervisors in den Paketen der Distribution.

Durch den Support im Kernel laufen alle gängigen Linux-Distributionen wie Debian, Ubuntu, Suse, Fedora, CentOS und so weiter als paravirtualisierte Gäste unter Xen. Verfügen die CPUs über Virtualisierungssupport (AMD-V bzw. Intel VT), klappt auch die Vollvirtualisierung – mit Qemu-Beteiligung für die Grafikausgabe – für eine Vielzahl von Betriebssystemen. Dazu gehören etwa alle Windows-Varianten wie 2000, XP, Vista, Windows Server 2003 und 2008.

Die große Flexibilität im Umgang mit VMs stellt einen großen Vorteil von Xen dar, erweist sich aber manchmal auch als hinderlich: Viele Wege führen hier nach Rom, und nicht jeder taugt für jede Aufgabe und jedes Host- oder Gast-OS. Wir stellen im Folgenden die universellsten Möglichkeiten vor.

Gäste mit Virt-Manager

Das GUI-Tool virt-Manager ist in allen Xen-freundlichen Distributionen vertreten und versteht sich als universelles Steuerungswerkzeug nicht nur für Xen, sondern auch für KVM. Daneben dient es zur grafischen Installation von VMs. Es setzt auf der universellen API Libvirt auf, einem Quasi-Standard, den heute sehr viele Managementtools verwenden.

Nach dem Start von Virt-Manager müssen Sie zunächst den Connect zum Xen-Daemon Xend herstellen. Für die Windows-Installation können Sie auf lokale Installationsmedien zurückgreifen, aber auch auf Online-Repos. Anschließend setzen Sie die gewünschten VM-Parameter, wie etwa RAM und die Anzahl virtueller CPUs, und wählen den Festplattenspeicherort sowie dessen Größe (Abbildung 2). Der Rest läuft vollautomatisch, und sofern alles klappt, startet anschließend die VM und erscheint in der Liste der verwalteten Gäste im Virt-Manager.

Abbildung 2: So funktioniert eine Gast-Installation mit dem Virt-Manager.

Abbildung 2: So funktioniert eine Gast-Installation mit dem Virt-Manager.

Möchten Sie den Installationsvorgang automatisieren, dann setzen Sie anstelle der GUI die CLI-Variante des Virt-Managers namens virt-install ein. Ein Beispielkommando (unter Ubuntu) für die Installation eines Debian “Squeeze” in eine Image-Datei finden Sie in Listing 4. Der Schalter --vnc sorgt hier dafür, dass sich das Gast-Display automatisch in einem VNC-Fenster öffnet (Abbildung 3). Achtung: Falls Sie das Fenster vorzeitig schließen, beendet sich – entgegen der dann angezeigten Meldung – der Installationsvorgang.

Listing 4

# virt-install --connect xen:/// --vnc --name debian6 --ram 256 --disk path=/home/xen/debian6.img,size=3 --location http://ftp.us.debian.org/debian/dists/squeeze/main/installer-amd64/
Starting install...
Retrieving file MANIFEST... | 2.1 kB 00:00 ...
Retrieving file MANIFEST... | 2.1 kB 00:00 ...
Retrieving file vmlinuz... | 8.4 MB 00:07 ...
Retrieving file initrd.gz... | 16 MB 00:14 ...
Creating storage file debian6.img | 3.0 GB 00:00
Creating domain... | 0 B 00:01
Guest installation complete... restarting guest.

Abbildung 3: Die Gast-Installation im VNC-Fenster.

Abbildung 3: Die Gast-Installation im VNC-Fenster.

Für ein Maximum an Flexibilität bei der so wichtigen Speicherverwaltung ist es ratsam, statt der statischen Image-Dateien lieber LVM-Volumes zu verwenden. In Listing 5 finden Sie ein Beispiel für Virt-Install auf Basis eines selbst erstellten logischen Volumes.

Listing 5

# lvcreate -ndeb6 -L40G /dev/vg_deb6
  Logical volume "deb6" created
# virt-install -n debian6-r 512 --vcpus=1 -f /dev/vg_deb6/deb6 -l http://ftp.us.debian.org/debian/dists/squeeze/main/installer-amd64/

Eine ähnliche Möglichkeit, die aber unabhängig von irgendwelchen Tools funktioniert, gibt es bei Distributionen, die auf Debian basieren. Diese stellen ein Xen-Gast-Konfigurationsskript bereit, das die Installationsroutine enthält. Die Installation geht damit recht einfach von der Hand (siehe Kasten “Xm-debian-basierte Gastinstallation” und Abbildung 4).

Dabei ermöglicht die Konfigurationsdatei xm-debian.cfg, die Sie in das Verzeichnis /etc/xen legen sollten, über zahlreiche Optionen weitere Anpassungsmöglichkeiten für das Boot-Verhalten, den Speicherplatz, verwendete virtuelle CPUs und die Netzwerkanbindung bereit. Ausführliche Ratschläge dazu finden Sie beispielsweise im Xen-Buch des Autors [2], das im Franzis-Verlag erschienen ist.

Abbildung 4: So sieht eine Gast-Installation via Xm-debian aus.

Abbildung 4: So sieht eine Gast-Installation via Xm-debian aus.

Xm-debian-basierte Gastinstallation

Für eine Installation via Xen-Gast-Installationsskript laden Sie zunächst die benötigten Boot-Dateien vmlinuz und initrd.gz sowie die Konfigurationsdatei xm-debian.cfg herunter. Für Ubuntu 11.10 “Oneiric” (64 Bit) finden Sie diese Dateien auf den Ubuntu-Servern [10].

Nun erstellen Sie eine Image-Datei oder ein LVM-Volume als Festplattenspeicher für die virtuelle Maschine. Anschließend gilt es, die Xen-Gast-Konfigurationsdatei xm-debian.cfg anzupassen – ein Beispiel zeigt Listing 6. Anschließend starten Sie die Installation des Gastes mit dem Befehl aus Listing 7.

Listing 6

bootloader="/usr/lib/xen-4.1/bin/pygrub"  # absoluter Pfad zu pygrub
memory = 256                              # RAM >= 256 MByte
vcpus = 1                                 # Zahl virtueller CPUs
vif = ['']                                # Standard Netzwerkkarte
disk = ['file:/home/xen/disk.img,xvda,w'] # Image spezifizieren

Listing 7

# xm create -f xm-debian.cfg -c install=true install-mirror="http://ca.archive.ubuntu.com/ubuntu" install-arch=amd64 install-method=network

Xen stattet jede Gast-Domain automatisch mit einer virtuellen Ethernet-Netzwerkkarte als Verbindung zur Außenwelt aus. Standardmäßig konfigurieren die Distributionen eine einfache Bridge für alle virtuellen Interfaces, alternativ lassen sich auch Routing und NAT einrichten. In Listing 6 weist der Parameter vif = [''] den Hypervisor an, den Gast über die Default-Schnittstelle anzubinden und die MAC-Adresse automatisch zuzuweisen.

Xen-Tools

Eine sehr populäre und flexible Alternative für das Einrichten von VMs sind die Xen-Tools [3]. Damit lassen sich von der Kommandozeile aus vollautomatisch Debian-, Ubuntu-, Fedora- und CentOS-VMs installieren. Das Tool beherrscht außer dem Download über die Distro-Repositories sowie das Auspacken oder Kopieren bereits vorbereiteter Images. Die Installation des Tools erledigen Sie mit apt-get install xen-tools in Sekunden.

Praktisch alle Optionen lassen sich als Argumente übergeben. Es empfiehlt sich jedoch, wichtige Einstellungen bereits vorab in der Konfigurationsdatei /etc/xen-tools/xen-tools.cfg vorzunehmen (Listing 8).

Listing 8

dir = /home/xen
install-method = debootstrap
size = 4Gb   # Disk image size.
memory = 256Mb   # Memory size
swap = 128Mb    # Swap size
# noswap = 1    # Don't use swap at all for the new system.
fs = ext3    # use the EXT3 filesystem for the disk image.
dist = `xt-guess-suite-and-mirror --suite`    # Default distribution to install.
image = sparse    # Specify sparse vs. full disk images.
dhcp = 1   # optional: DHCP-Network für Gast

Unterstützte Distributionen ermitteln Sie mit ls /usr/lib/xen-tools/. Die Installation eines Debian-6-Gastes und dessen anschließenden Start nehmen Sie dann so vor:

# xen-create-image --hostname=debian6 --dist=squeeze --arch=amd64
# xm create -c /etc/xen/debian6.cfg

Achtung: Falls der Kernel des zu installierenden OS keine Unterstützung für das Image-Format XVDA mitbringt, schlägt die Installation fehl. In diesem Fall wechseln Sie mit der Option --scsi auf das sdX-Format, bevor Sie die Installation vornehmen. Liegt ein fertiges Image als TAR-Archiv vor, können Sie es auf ähnlichem Weg mit folgenden Optionen installieren:

# xen-create-image --install-method=tar --install-source=/tmp/image.tar --hostname=domu1 --arch=amd64

Fertige Images für alle gängigen Distributionen finden sich beispielsweise bei Jumpbox [4], Rpath [5], Stacklet [6] und Turnkeylinux [7].

Schäfchen ins Trockene

Haben Sie auf einem der beschriebenen Wege erst einmal eine oder mehrere VMs eingerichtet, können Sie diese sogleich auch benutzen. Auch für das Starten, Stoppen und anderweitige Manipulieren von Gästen gibt es verschiedene Werkzeuge.

Setzen Sie Virt-Manager ein, erledigen Sie diese Aufgaben direkt aus der GUI heraus, wobei die Bedienung weitgehend selbsterklärend ausfällt. Bei Konfigurationsänderungen gilt es zu beachten, dass Sie den jeweiligen Gast in der Regel anschließend neu starten müssen, damit die Änderungen greifen.

Mit virsh steht eine mächtige Kommandozeile zur Verfügung, mit der Sie alle via Libvirt verwalteten Xen-DomUs von der Shell aus verwalten. Haben Sie einen Gast manuell oder mit den Xen-Tools erstellt, greifen Sie zum von Xen mitgelieferten Werkzeug xm (siehe Tabelle “Gast-Steuerung mit Xm”). Aus der Gast-Konsole kehren Sie mit [Strg]+[AltGr]+[**9**] zur Host-Konsole zurück.

Gast-Steuerung mit Xm

xm list alle Gäste mit Status anzeigen
xm create Gast.cfg -c Gast starten mit Verbindung zur Konsole
xm shutdown VM Gast VM herunterfahren
xm console VM mit Gast-Konsole von Gast VM verbinden
xm top Anzeige der Systemauslastung

Windows-Gäste

Xen bietet eine sehr gute Unterstützung für Windows-Gäste. Die Installation verläuft unkompliziert, die Performance erweist sich als gut. Bei der Konfiguration gibt es ein paar spezielle Dinge zu beachten – so muss die CPU beispielsweise über Virtualisierungsunterstützung verfügen. Dies prüfen Sie mittels des Aufrufs:

# xm dmesg | grep -i hvm
(XEN) HVM: ASIDs disabled.
(XEN) HVM: VMX enabled

Die Installation kann dann von DVD oder aus einem Image erfolgen. Zunächst richten Sie nach bewährtem Muster ein Festplatten-Image oder logisches Volume ein. Eine passende Abbilddatei erzeugen Sie beispielsweise mittels:

# dd if=/dev/zero of=/home/xen/xenwin7.img bs=1024k seek=10000 count=0

Anschließend legen Sie eine Konfigurationsdatei wie in Listing 9 an. Der Start erfolgt dann mit xm create win.cfg und die Gast-Konsole sollte sich in einem VNC-Fenster öffnen. Die Option boot weist den Gast an, zunächst vom optischen Medium zu starten, damit Sie die Installation vornehmen können. Nach erfolgter Installation ändern Sie den Wert von dc auf c. Bereitet die Maussteuerung Probleme, hilft oft der zusätzliche Parameter usbdevice='tablet'.

Listing 9

kernel = "hvmloader"
builder='hvm'
memory = 1014
name = "win7"
vcpus=2
vif = [ 'mac=00:16:3e:06:bd:c5,bridge=virbr0' ]
disk = [ 'file:/home/xen/xenwin7.img,hda,w', 'phy:/dev/hdb,hdc:cdrom,r' ]
boot="dc"
on_poweroff = 'destroy'
on_reboot  = 'restart'
on_crash   = 'restart'
device_model = '/usr/lib/xen/bin/qemu-dm'
opengl=1
vnclisten="0.0.0.0"
vncpasswd=''
stdvga=0
keymap='de'
shadow_memory = 20
acpi = 1
apic = 1
sdl=0
vnc=1
vncconsole=1
serial='pty'
timer_mode = 2
viridian = 1

Damit läuft dann der Windows-Gast schon munter vor sich hin. Bei genauerem Hinsehen stellt man allerdings fest, dass die Festplatten- und Netzwerk-Performance noch zu wünschen übrig lassen. Dies liegt daran, dass Xen diese Schnittstellen mittels Qemu emuliert. Abhilfe schaffen paravirtualisierte Xen-Treiber für Windows. Solche gibt es etwa bei Meadowcourt.org [8] erhältlich, allerdings in nicht signierter Form. Glücklicherweise stellt die Univention GmbH in Bremen signierte Treiber als fertig installierbare MSI-Pakete zur Verfügung, die sich mit einem Klick im jeweiligen Gast installieren lassen, um dann wahre Wunder in Sachen Performance zu bewirken [9]. Sie finden beide Varianten der Treiber auch auf der Heft-DVD zu dieser Ausgabe.

Tweaking und Tuning

Nichts ist so gut, dass es sich nicht noch verbessern ließe. Das gilt auch für Xen, das Sie noch an einigen Stellen tunen können. So versucht Xend beispielsweise beim Herunterfahren des Rechners, die laufenden DomUs zu speichern. Das kostet viel Zeit und Platz und funktioniert obendrein nicht immer zuverlässig. Um Xen dieses Verhalten abzugewöhnen, ändern Sie in der Datei /etc/default/xendomains die folgenden Einträge wie gezeigt:

XENDOMAINS_RESTORE = false
XENDOMAINS_SAVE = " "

Die Aktualisierung der Uhrzeit übernimmt der Xen-Hypervisor für paravirtualisierte Gäste ganz problemlos. Dafür setzen Sie im Gast einfach:

echo 1 > /proc/sys/xen/independent_wallclock

Sollen Gäste beim Hochfahren des Rechners automatisch mitgestartet werden, genügt dazu ein Symlink zur jeweiligen Konfigurationsdatei (Listing 10).

Listing 10

# cd /etc/xen
# mkdir auto
# ln -s /etc/xen/xen1.cfg /etc/xen/auto/

Management-Lösungen

Wollen Sie mehrere Server mittels Xen virtualisieren und womöglich ein ganzes Orchester von virtuellen Maschinen dirigieren, finden Sie dafür in der Open-Source-Community eine Vielzahl nützlicher Werkzeuge vor (diemeist auch andere Hypervisoren wie KVM unterstützen):

  • Convirture (ehemals ConVirt, ehemals XenMan) verwaltet Pools von Xen- und KVM-Servern parallel unter einer grafischen Weboberfläche (Abbildung 5).
  • Bei oVirt handelt es sich um eine Libvirt-basierende Web-GUI für das Management virtualisierter Server.
  • Das brandneue webbasierte Zentific, noch im Alpha-Stadium befindlich, verwaltet Gäste unter Xen, KVM und VMware.
  • Das von Google stammende Ganeti verwaltet ganze Virtual-Server-Cluster.
  • Enomaly dient als Cloud-Computing-Plattform für KVM und Xen
  • OpenQRM arbeitet als Data-Center-Management Plattform mit Xen, KVM, VMware und Linux VServer als Basis für virtualisierte Server.
  • Die Cloud-Plattformen OpenStack und Eucalyptus (beide Open Source) unterstützen auch Xen.

Daneben gibt es als Closed-Source-Lösung die in mehreren Jahren gereifte XenServer-Suite von Citrix, die umfassende Werkzeuge und Enterprise-Features im Paket mitbringt – in der Basisversion übrigens auch kostenlos.

Fazit

Xen ist cool. Es eignet sich vielleicht nicht besonders gut für den Desktop, aber dafür wurde es auch nicht gebaut. Sein Schwerpunkt liegt auf der Virtualisierung von Servern aus, und hier erledigt es seine Aufgabe auf verschiedensten Distributionen gleichermaßen gut und leistungsfähig, für Linux- wie für Windows-Gäste. Auch wenn die Lernkurve bei der Bedienung steiler ausfällt als bei Virtualisierungslösungen wie KVM oder Virtualbox, ernten Sie ein sehr stabiles und flexibles System – und finden sich damit in bester Gesellschaft, gerade in den Zeiten von Cloud und Konsorten. 

Glossar

Hypervisor

Ein solcher Virtual Machine Monitor (VMM) stellt eine Umgebung für virtuelle Maschinen bereit. Man unterscheidet zwischen Typ-1-Hypervisoren, die ohne weitere Software direkt auf der Hardware laufen (“bare-metal”), und Typ-2-Hypervisoren, die auf ein Betriebssystem aufsetzen.

Domain

Xen unterscheidet zwischen dem ersten Gast-OS, auf dem es läuft und das als Verwaltungsinstanz dient (Domain 0, Dom0), und den weiteren Gästen (DomU).

Vollvirtualisierung

Hier bietet eine virtuelle Maschine eine in jeder Beziehung komplett simulierte Hardware-Umgebung an, was sich nur durch eine Kombination von Virtualisierungssoftware und entsprechend befähigter Hardware erreichen lässt. Die entsprechende CPU-Technologie heißt bei den beiden Branchenführern Intel VT beziehungsweise AMD-V.

LVM

Logical Volume Manager. LVM ermöglicht, logische Partitionen (Logical Volumes, LV) zu bilden, die sich auch über mehrere Festplatten erstrecken können und sich jederzeit dynamisch verändern lassen.

Infos

[1] Xen-Homepage: http://xen.org

[2] Xen-Buch: A.Radonic/F.Meyer/Th.Halinka, “Xen 3.2 aufsetzen, konfigurieren, betreiben”, 2. Auflage, Franzis-Verlag 2008, ISBN 978-3772372476, http://www.virtu-os.de/

[3] Xen-Tools: http://xen-tools.org

[4] Jumpbox VM-Images: http://jumpbox.com

[5] Rpath VM-Appliances: http://www.rpath.org/search?type=Products&search=xen

[6] Stacklet VM-Images: http://stacklet.com/downloads/templates/xen3

[7] Turnkeylinux VM-Images: http://www.turnkeylinux.org/

[8] Windows-Gast-Treiber: http://meadowcourt.org/downloads/

[9] Univention-Windows-Treiber: http://wiki.univention.de/index.php?title=Installing-signed-GPLPV-drivers

[10] Download xm-debian.cfg (“Oneiric”): http://ca.archive.ubuntu.com/ubuntu/dists/oneiric/main/installer-amd64/current/images/netboot/xen/

Der Autor

Andrej Radonic befasst sich seit Jahren mit Virtualisierungstechnologien und ist Verfasser des Buches “Xen 3.2 aufsetzen, konfigurieren, betreiben”.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 04/2012 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben