Virtualisierungsumgebung Xen

Aus LinuxUser 06/2007

Virtualisierungsumgebung Xen

Gast-Wirt

Die Virtualisierungsumgebung Xen gehört inzwischen zur Standardausstattung aller großen Distributionen. Was sie alles kann und wie sie funktioniert zeigt der Artikel.

Würde man bereits jetzt nach dem Modewort des Jahres 2007 suchen – es wäre das gleiche wie im letzten Jahr: “Virtualisierung”. Verschiedene Anbieter wie VMware [1], Parallels [2] oder Innotek [3] versuchen, ihre Produkte auf dem Markt zu etablieren und ringen mit immer raffinierteren Techniken um die Gunst der Kunden. Immer häufiger ins Gespräch kommt in letzter Zeit die freie Virtualisierungssoftware Xen [4] als Bestandteil der meisten großen Linux-Distributionen.

Xen, auch als Virtual Machine Monitor (VMM) oder Hypervisor bezeichnet, wurde ursprünglich an der Universität Cambridge zum Virtualisieren von x86-Architekturen entwickelt. Die Software verfolgt dafür zwei verschiedene Konzepte: Paravirtualisierung und native Virtualisierung. Mit der Paravirtualisierung laufen Gast-Betriebssysteme mit beinahe nativer Performance auf klassischen x86-Systemen. Im nativen Virtualisierungsmodus erlaubt Xen auch den Betrieb von Closed-Source-Betriebssystemen wie Microsoft Windows, wobei die Performance allerdings nicht ganz so gut ausfällt wie bei der Paravirtualisierung, die die komplette PC-Hardware emuliert. Beide Varianten erläutert der Artikel später im Detail.

Grundlagen

Xen bietet eine Menge sinnvoller Features. So lässt sich beispielsweise die Größe des Arbeitsspeichers zur Laufzeit einstellen. Die Software ermöglicht auch die unterbrechungsfreie Migration von einem physikalischen Host auf einen anderen, sofern beide Hosts auf das Shared Storage zugreifen können, das die virtuelle Maschine enthält. Ob es sich bei diesem Massenspeicher um ein teures Fiber-Channel-SAN handelt oder um eine vergleichsweise günstige iSCSI-Lösung spielt dabei keine Rolle. Fehlt eine solche Hardware, migrieren Sie die virtuellen Maschinen im Ruhezustand.

Angesichts des immer weiter schrumpfenden Platzes in modernen Rechenzentren bietet Xen eine hervorragende Möglichkeit, um Server zu konsolidieren und als virtuelle Maschinen auf einem Host zu betreiben. Um ein Setup hochverfügbar zu machen, lassen sich virtuelle Maschinen bei einem Ausfall der Hardware einfach auf einem zweiten Host verschieben, der sozusagen als Standby-Maschine arbeitet. Auch Ausfallzeiten wegen Wartungsarbeiten an der Hardware gehören mit Xen der Vergangenheit an: Man migriert einfach die VM für den Zeitraum der Arbeiten auf eine andere physikalische Maschine und startet nach Beendigung der notwendigen Arbeiten wieder auf dem ursprünglichen Host.

Auch der Privatanwender profitiert von der fortschrittlichen Virtualisierungstechnologie. Möchten Sie einfach mal ein neues Betriebssystem testen, eignet sich Xen hervorragend als Basis. Anstatt den kompletten Rechner neu zu installieren, richten Sie einfach eine neue virtuelle Maschine mit der zu testenden Distribution ein, die Sie bei Bedarf wieder löschen. Auch in Sicherheitsbelangen punktet Xen. So ermöglicht es den sicheren Betrieb mehrerer Netzwerkdienste wie Web- oder Fileserver auf einer physikalischen Maschine, da die virtuellen Maschinen und damit die Dienste abgeschottet voneinander in eigenen VMs laufen. In der Vergangenheit wurden solche Services oft gemeinsam auf einem System betrieben, was dazu führte, dass beim Komprimittieren eines Dienstes oft auch die anderen in Mitleidenschaft gezogen wurden.

Herr der Ringe

Wie eingangs erwähnt verwendet Xen zur Virtualisierung zwei unterschiedliche Methoden. Die erste, Paravirtualisierung genannt, erlaubt das Ausführen von Gast-Betriebssystemen mit beinahe nativer Geschwindigkeit. Diese Variante beschränkt sich in erster Linie darauf, Rechnerressourcen wie CPU-Zeit, Speicher oder Netzwerkbandbreite zu verwalten und den verschiedenen virtuellen Maschinen zuzuweisen. Der eigentliche Hypervisor Xen läuft hierbei im Kernel-Mode auf dem sogenannten privilegierten Kernel-Ring 0 (Abbildung 1).

Abbildung 1: Prozesse können auf verschiedenen CPU-Ringen ablaufen, wobei der Hypervisor von Xen den Ring 0 benutzt.

Abbildung 1: Prozesse können auf verschiedenen CPU-Ringen ablaufen, wobei der Hypervisor von Xen den Ring 0 benutzt.

Moderne Prozessoren kennen vier solcher Ringe. Diese lassen sich auch auch als Sicherheitsstufen ansehen, wobei nur aus dem innersten Ring (Ring 0) ein direkter Zugriff auf die Hardware und bestimmte Speicherbereiche möglich ist. Hier läuft üblicherweise auch der eigentliche Betriebssystem-Kernel im Kernel-Mode. Die Ringe 1 und 2 benutzen x86-Architekturen nicht, auf Ring 3 laufen Benutzerapplikationen im User-Mode.

Auf einem Xen-System operiert nun der Hypervisor anstelle des eigentlichen Betriebssystems im Ring 0. Die Gast-Maschinen befinden sich im Ring 1 und müssen jeden privilegierten Zugriff (Systemaufrufe) über den Hypervisor im Ring 0 anfordern. Das erfordert eine Modifikation des Betriebssystem-Kernels des Gasts, weswegen lediglich Systeme mit offenem Quellcode einen paravirtualisierten Betrieb erlauben. Dazu zählen neben Linux auch diverse BSD-Varianten und OpenSolaris. Da Applikationen unverändert im Ring 3 laufen, sind hier keine Eingriffe notwendig, und sie lassen sich ohne Modifikation auf einem Xen-System betreiben. Die hier besprochene, und von Xen angebotene Paravirtualisierung ähnelt vom Arbeitsprinzip dem ESX-Server von VMware.

Bei der zweiten Variante, der nativen Virtualisierung, emuliert Xen die komplette PC-Hardware. Das entspricht in etwa dem Ansatz von VMware Workstation oder Microsofts VirtualPC. Dieser Modus erfordert keine Modifikation am Gast-Betriebssystem, sodass sich beispielsweise auch Microsoft Windows via Xen ausführen lässt – allerdings nur auf Systemen mit Prozessoren, die diese Virtualisierungstechnologie unterstützen. Intel hat diese unter dem Namen “Vanderpool” (IVT) herausgebracht, AMD bezeichnet die entsprechende Prozessorfamilie als “Pacifica” (AMD-V). Ob Ihr Intel-Prozessor den entsprechenden Support mitbringt, stellen Sie mit dem Befehl grep vmx /proc/cpuinfo fest. Bleibt die Ausgabe leer, unterstützt Ihre CPU diese Technologie nicht. Arbeiten Sie mit einem AMD-System, dann verwenden Sie anstelle von vmx den Suchbegriff svm.

Im Gegensatz zur Paravirtualisierung, welche die Ressourcen lediglich verteilt, arbeitet ein nativ virtualisiertes System wesentlich langsamer, da Xen dann sämtliche Hardware-Ressourcen emuliert.

Xen einrichten

Die aktuelle Versionen der gängigen Linux-Distributionen bringen die notwendigen Pakete zum Betrieb von Xen von Hause aus mit, womit sich die im folgenden auf Fedora basierenden Beispiele ebenfalls auf alle anderen Systeme mit Xen-Support übertragen lassen.

Bei FC6 kommt das RPM Paket kernel-xen zum Einsatz. Es enthält unter anderem den eigentlichen Hypervisor Xen, der direkt beim Systemstart aufgerufen und gestartet wird. Den notwendige Eintrag für die Bootloaderdatei /boot/grub/menu.lst sehen Sie in Listing 1. Diese Konfiguration lädt den knapp 300 KByte kleinen Hypervisor Xen und kümmert sich anschließend um die Verteilung der Rechnerresourcen.

Listing 1
title Fedora Core (2.6.20-1.2933.fc6xen)
root (hd0,0)
kernel /xen.gz-2.6.20-1.2933.fc6
module /vmlinuz-2.6.20-1.2933.fc6xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.20-1.2933.fc6xen.img

Die erste virtuelle Maschine, die unter dem Namen Domain 0 läuft, stellt dann das auf dem realen Rechner installierte Host-System dar. Diese VM dient lediglich als Managementsystem für weitere virtuelle Maschinen und sollte möglichst schlank ausfallen: Gelingt es einem Angreifer, diese Domäne zu kompromittieren, sind alle weiteren Domänen ebenfalls betroffen. Daher läuft an Netzwerkdiensten hier maximal ein SSH-Server, sodass sich die Maschine auch remote verwalten lässt. Die Xen-Terminologie unterscheidet zwischen privilegierten und unprivilegierten Domänen in den Betriebssysteme ablaufen. Während Domäne 0 die privilegierte Domäne darstellt, laufen alle zusätzlich installierten virtuellen Systeme in einer unprivilegierten Domäne.

Nach dem Start des Management-Systems der Domäne 0 und einem Login als Root ermöglicht das Tool xm aus dem Xen-RPM-Paket das Verwalten bereits bestehender Systeme (starten, stoppen oder modifizieren). Auch das dynamische Verändern der Ressourcen erledigen Sie damit. Die Tabelle “Die wichtigsten Xm-Argumente” zeigt einen Überblick über die Xm-Optionen und deren Bedeutung. Der Aufruf von xm list zeigt zu diesem Zeitpunkt nur die Domäne 0 an:

Name     ID Mem VCPUs State  Time(s)
Domain-0 0  747 1     r—– 84.6

Die wichtigsten Xm-Argumente

Verwenden Sie die aufgeführten Argumente wie folgt: xm Argument.
Argument Bedeutung
console Domänen-ID Erlaubt den direkten Zugriff auf die Textkonsole der genannten Domäne.
create [-c] Domänen-Name Startet anhand der gleichnamigen Konfigurationsdatei die virtuelle Maschine. Die Option -c stellt direkt eine Verbindung zur Textkonsole der virtuellen Machine her.
shutdown Domänen-ID/Name Fährt die virtuelle Maschine sauber herunter. Möchten Sie alle laufenden Maschinen stoppen, erreichen Sie das mit der Option -a.
list Listet alle gestarteten Domänen auf. Die einzelnen Spalten geben Auskunft über Domänennamen und -ID, den zugewiesenen Speicher, die Anzahl der zugewiesen virtuellen CPUs, den Status sowie die Laufzeit der Machine.
mem-max Domänen-IDRAM Hierüber legen Sie den maximalen Speicher fest, den Sie Ihren Maschine zuweisen können.
mem-set Domänen-IDRAM Setzt den zur Verfügung stehenden Speicher für die genannte Domäne.
migrate Domänen-ID/NameHost [-l] Migriert die genannte virtuelle Maschine auf einen anderen physikalischen Host. Dazu stoppt Xen die VM zuerst und startet sie dann auf dem Zielsystem wieder. Durch den Schalter -l migrieren Sie die Maschine ohne Unterbrechung. Allerdings sind dafür bestimmte Voraussetzungen notwendig, die Sie im Xen-Benutzerhandbuch nachlesen.
pause Domänen-ID/Name Hält die Maschine an. Die Ressourcen der Maschine werden allerdings nicht wieder freigegeben.
unpause Domänen-ID/Name Aktiviert die Machine wieder.
save Domänen-ID/NameStatus-Datei Speichert den Zustand der Maschine in der genannten Datei und stoppt die VM anschließend.
* restore Status-Datei Startet die Maschine erneut anhand der Statusdatei.
vcpu-set Domänen-ID/NameVCPUs Weist der genannten Maschine eine bestimmte Anzahl von virtuellen CPUs zu.

Virtuelle Maschinen installieren

Am einfachsten gelingt die Installation von neuen, virtuellen Systemen mit dem Tool virt-install, das Sie mit dem RPM-Paket python-virtinst auf dem Rechner einrichten. Dieses Programm erzeugt eine Konfigurationsdatei mit dem Namen der Domäne im Ordner /etc/xen, die Xm im Anschluss zum Verwalten der Domäne verwendet. Zum Anlegen einer neuen Domänen-Konfigurationsdatei mit Virt-install gilt es, einige Informationen mit den entsprechenden Argumenten beim Aufruf anzugeben. Die wichtigsten davon zeigt die Tabelle “Die wichtigsten Virt-install-Argumente”.

Das folgende Beispiel erklärt die Online-Installation eines neuen RHEL5-Systems (Red Hat Enterprise Linux 5) in einer virtuellen Maschine. Das funktiniert gleichermaßen mit anderen Systemen, sofern diese den notwendigen Xen-Support mitbringen.

Die benötigten Installationdateien für die RHEL5-Installation liegen in unserem Beispiel auf einem FTP-Server mit der IP-Adresse 192.168.0.1 im Verzeichnis /pub. Anstelle des FTP-Servers kann auch ein HTTP- oder NFS-Server als Installationsquelle dienen. Der Name der Domäne heißt rhel5, die virtuelle Maschine wird in einer 5 GByte großen Image-Datei in der Domäne 0 abgelegt und bekommt 256 MByte Speicher zugewiesen. Der entsprechende Aufruf von Virt-install sieht wie folgt aus::

virt-install -p -n rhel5 -r 256 -f /var/lib/xen/images/rhel5.img -s 5 -l ftp://192.168.0.1/pub/

Danach startet das Setup des Betriebssystems wie gewohnt. Nach dem Abschluß der Installation starten Sie das System mit dem Aufruf xm create rhel5. Ein erneuter Aufruf von xm list zeigt nun das neue System:

Name        ID Mem VCPUs State   Time
Domain-0     0 747 1     r—–  88.0
rhel5        1 256 1     -b—-   0.5

Die wichtigsten Virt-install-Argumente

Sie verwenden diese Argumente wie folgt: virt-install Argument.
Argument Bedeutung
-n Name Weist der neuen Domäne einen Namen zu.
-r RAM Bestimmt die Größe des RAMs.
--vcpus Anzahl Bestimmt, wie viele virtuelle CPUs die neue Maschine bekommen soll.
-f Image-Datei Bestimmt den Namen der Image-Datei für die virtuelle Maschine. Die Datei sollte sich unter /var/lib/xen/images/ befinden, da es sonst Probleme mit aktiviertem SELinux geben kann. Die Datei benötigt den SELinux-Context xen_image_t. Im Zweifelsfall lässt sich dieser mittels chcon -t xen_image_t Image-Datei neu setzen.
-s GByte Bestimmt die Größe der Image-Datei in GByte.
-p Installiert die virtuelle Maschine als paravirtualisiertes Gastsystem.
-l Location Bestimmt den Installationsserver/Pfad. Gültige Angaben sind nfs://Host/Pfad, ftp://Host/Pfad und http://Host/Pfad.
--vnc Startet einen VNC-Server und erlaubt damit die Installation auch im Grafik-Modus.
--nographics Führt die Installation im Textmodus aus.

Mit dem Aufruf xm console rhel5 greifen Sie auf die Konsole der neuen Domäne zu und mdelden sich mit dem bei der Installation festgelegten Benutzerdaten an. Das Tool Virt-manager aus dem gleichnamigen RPM-Paket ermöglicht einen grafischen Überblick über alle bereits gestarteten Domänen. Über diese GUI starten Sie zudem für jedes System eine grafische Konsole, mit dem Sie ein grafisches Login in die virtuelle Machine erhalten (Abbildung 2).

Abbildung 2: Der virtuelle Maschinenmanager Informiert über den aktuellen Ressourcenverbrauch der gestarteten VMs.

Abbildung 2: Der virtuelle Maschinenmanager Informiert über den aktuellen Ressourcenverbrauch der gestarteten VMs.

Auch die Installation eines neuen virtuellen Systems über die grafische Oberfläche ermöglicht dieses Programms. Die notwendigen Informationen dafür sind identisch mit denen von Virt-install auf der Kommandozeile (Abbildung 3).

Abbildung 3: Auch bei der Installation neuer VMs hilft der virtuelle Maschinen Manager mit einer grafischen Oberfläche.

Abbildung 3: Auch bei der Installation neuer VMs hilft der virtuelle Maschinen Manager mit einer grafischen Oberfläche.

Mit Xm verwalten Sie das soeben erzeugte System aus der Domäne 0 heraus. So erhöht der Aufruf xm mem-set 512 rhel5 beispielsweise den zur Verfügung stehenden Speicher auf 512 MByte. Über xm save rhel5 stoppen Sie die Maschine und starten diese mit xm restore rhel5 wieder. xm migrate --live rhel5 host ist für eine Live-Migration der Machine auf einen anderen Host zuständig. Wie beschrieben funktioniert das jedoch nur bei paravirtualisierten VMs. Zum Herunterfahren der VM geben Sie xm shutdown rhel5 ein. Anstelle des Domänennames (in unserem Beispiel rhel5) kann bei allen Cm-Befehlen auch die Domänen-ID stehen, die xm --list anzeigt.

Die oben gezeigte Installation verwendet die Default-Einstellungen: So ist das installierte System beispielsweise über eine Bridge mit der Netzwerkkarte eth0 aus der Domäne 0 verbunden und hat somit direkten Zugang zum gleichen Netzwerk, in dem sich auch der Host befindet. Über die Xen-Konfigurationsdatei /etc/xen/xend-config.sxp (Listing 2) ändern Sie diese Einstellung. Xen erlaubt auch das Erstellen komplexer Routing-Varianten. Alternativ zur verwendeten Image-Datei aus unserem Beispiel, in der die virtuelle Maschine in der Domäne 0 erzeugt wird, verwenden Sie eine eine komplette physikalische Partition oder ein Logical Volume aus der Domäne 0.

Nähere Informationen dazu und allen anderen Konfigurationsmöglichkeiten finden Sie im Xen-Handbuch unter /usr/share/doc/xen-version/. Möchten Sie sich die Installationsarbeit einer virtuellen Maschine sparen, laden Sie aus dem Netz ein fertiges Xen-Image verschiedener Distributionen wie Suse Linux, Ubuntu oder Debian herunter ([5],[6]).

Listing 2
# /etc/xen/xend-config.sxp (Beispiel)
name = "rhel5"
memory = "256"
disk = [ 'tap:aio:/var/lib/xen/images/rhel5.img,xvda,w',]
vif = [ 'mac=00:16:3e:71:a5:8d, bridge=xenbr0', ]
vnc=0
vncunused=1
#uuid = "154cde6d-42b0-c2b7-7f52-bfaa2f44c1a9"
bootloader="/usr/bin/pygrub"
vcpus=1
on_reboot   = 'restart'
on_crash    = 'restart

Fazit

Mit Xen hält eine Großrechnertechnologie zum Nulltarif auf Ihrem heimischen PC Einzug. Wenn Sie sich von der zunächst kompliziert erscheinende Konfiguration nicht abschrecken lassen, bietet die Virtualisierungssoftware sowohl im privaten wie auch im professionellen Bereich viele interessante Möglichkeiten und viel Platz für eigene Experimente.

LinuxUser 06/2007 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
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben