Home ORDIX AG             Dienstleistung             Trainingsshop    Kunden / Referenzen Aktuelles    Kontakt
Home  Pfeil  ORDIX News  Pfeil  1/2007  Pfeil  Betriebssysteme
suche: 
Dieser Artikel richtet sich an Berater, Systemadministratoren und Entscheider, die sich mit dem Thema Virtualisierung ausein-
andersetzen möchten.

Glossar

Virtualisierung
Möglichkeit, mehrere Betriebssysteme gleichzeitig auf derselben Hardware auszuführen. Es wird ein kompletter PC mit Hardware und Bios emuliert.
Host (Wirt)
Betriebssystem, das die physische Hardware verwaltet und die Ressourcen verteilt.
Gast (Domain)
Emulierte Betriebssysteme, die zusätzlich zum Host auf derselben Hardware laufen.
Splash Screen
Bild, das anstelle der textbasierten Ausgabe während des Bootens angezeigt wird.
Imaging, Cloning
Verfahren, bei dem ein bestehendes Betriebssystem 1:1 auf ein anderes System übertragen wird.
GUI
Graphical User Interface. Grafische Benutzeroberfläche, die die Arbeit/Administration per Maus ermöglicht.
Framebuffer
Zusätzlicher Chipsatz auf modernen Grafikkarten, der immer mit denselben Befehlssätzen angesprochen werden kann. Dadurch können ohne den "richtigen Treiber" hohe Auflösungen dargestellt werden.

Vergleich der Open Source Lösung XEN mit anderen Virtualisierungslösungen (Teil II)

Virtualisieren mit XEN

In der ORDIX News 3/2006 haben wir bereits über die Virtualisierungslösung XEN berichtet, indem wir diese in einem Überblick mit den kommerziellen Produkten von Microsoft und VMware verglichen haben. Mit diesem Artikel und weiteren Artikeln möchten wir Sie mit XEN vertrauter machen und dabei dem Produkt etwas tiefer unter "die Haube" schauen.

Auswahl eines geeigneten Wirts

Bevor mit der eigentlichen Virtualisierung begonnen werden kann, wird ein geeignetes Wirtsbetriebssystem benötigt. Hierzu eignet sich prinzipiell jedes Linux-System. Doch wer eine aktuelle Distribution (SUSE Linux 10.X, Debian Testing oder Fedora Core 5) nutzt, hat den Vorteil, die Installation ohne Kernelpatch und Kompilierung durchführen zu können.

Hier liegen in der Regel auch schon die Verwaltungstools im entsprechenden Paketformat vor, so dass eine Kompilierung aus dem Quellcode entfallen kann. So liefert z. B. die SUSE Linux Distribution 10.X ein YaST Modul mit, welches das Gastbetriebssystem per GUI automatisch erstellen kann. Bei anderen Distributionen ist mehr Handarbeit gefragt, die Kenntnisse des Paketmanagement-Systems voraussetzt.

Der Gastgeber bereitet sich auf die Gäste vor

Um das Wirtbetriebsystem für XEN vorzubereiten, müssen einige Pakete installiert werden. Das wird mit Hilfe von YaST (siehe Abbildung 1) oder auch auf der Kommandozeile mit dem RPM-Paketmanager erledigt.

Abb. 1: Paketinstallation mit YaST. (vergrößern!)

Der mit dem Paketmanager installierte XEN-Kernel bringt die XEN-Unterstützung und Kernelpatches mit. Alternativ müsste vom vorhandenen Kernel der Quellcode mit zusätzlichen Patches versehen und kompiliert werden. Für den ersten Versuch ist der Weg über die RPM-Dateien einfacher und schneller.

Der XEN-Kernel bootet

Nun ist es an der Zeit, den XEN-Kernel zu booten. Hierzu muss in der Konfigurationsdatei des Bootmanagers ein Eintrag erstellt werden, welcher den XEN-Kernel bootet.

In Abbildung 2 ist ein Beispieleintrag für den Bootmanager GRUB zu sehen. Empfehlenswert ist es, einen zusätzlichen Eintrag zum normalen Kernel zu machen. So kann jederzeit mit oder ohne XEN gebootet werden.

title  Xen 3.0 / XENLinux 2.6 
kernel /boot/xen-3.0.gz dom0_mem=65536
module /boot/vmlinuz-2.6-xen root=/dev/hda1 ro console=tty0
Abb. 2: Bootmanager-Eintrag für den XEN-Kernel.

In der Regel verläuft das unspektakulär: Der Bootvorgang sieht ganz normal aus und auf den ersten Blick startet das Linux-System unverändert. Auffällig erscheint, dass der XEN-Kernel im VGA-Textmodus (siehe Abbildung 3) bootet, und nicht, wie vielleicht gewohnt, ein Splash Screen erscheint. Der Grund hierfür ist, dass XEN nicht das Frame Buffer Device der Grafikkarte nutzen kann und deshalb den VGA-Modus verwendet.

Abb. 3: Boot-Vorgang des XEN-Wirtes.

Die Gäste kommen an

Nach erfolgreichem Start des XEN-Kernels können nun die Gäste installiert oder bestehende per Image- bzw. Cloning-Verfahren auf den Wirt übertragen werden. Insgesamt gibt es drei Möglichkeiten, ein Gastbetriebssystem zu installieren:

  1. Clonen eines bestehenden Rechners mit Unix Bordmitteln, z. B. dd, tar, cpio
  2. Installation mit YaST-Modul: Virtual Machine Management (XEN)
  3. Installation mit rpm-Befehl auf der Kommandozeile in einer Chroot-Umgebung

Bei allen Installationsarten werden die Gäste in eine Verzeichnisstruktur innerhalb des Wirtes, z. B. /xen/xen1/sda1, oder auf eine Festplattenpartition installiert. Aus Gründen der Sicherheit, Performance und Flexibilität ist es ratsam, die Gäste auf eine separate Partition/Festplatte oder ein Logical Volume (LVM) zu legen.

Einstellungssache

Um nun endlich einen Gast ins Rennen zu schicken, ist es notwendig, eine Konfigurationsdatei zur Verfügung zu stellen.

Im Prinzip müssen folgende Angaben gemacht werden:

Abbildung 4 zeigt ein Beispiel für eine Konfigurationsdatei. Die Konfigurationsdateien werden von XEN im Verzeichnis /etc/xen erwartet und tragen normalerweise den Namen des Gastes.

kernel  = "/boot/vmlinuz-xen"
ramdisk = "/boot/initrd-xen"
memory  = 128
vcpus   = 1
name    = "xen1"
disk    = ['file:/xen/xen1/sda1,sda1,w', 'file:/xen/xen1/sda2,sda2,w']
root    = "/dev/sda1 ro"
extra   = ""
nics    = 1
vif     = ['mac=aa:bb:cc:dd:ee:ff, bridge=xen-br0']
dhcp    = "dhcp"
Abb. 4: Konfigurationsdatei für einen Gast.

Die Sache spitzt sich zu

Ist die Konfigurationsdatei erstellt, kann der Gast ins Rennen geschickt werden. Der Befehl xm create –c /Pfad/zur/Konfigurationsdatei startet die virtuelle Maschine. Man sieht sofort das Ergebnis, denn das Gastbetriebssystem, in diesem Fall Linux, bootet und begrüßt uns am Ende des Bootvorgangs mit dem Loginprompt. Die virtuelle Maschine ist sofort mit dem Befehl xm console <Name der virtuellen Maschine> oder über die eingestellte IP-Adresse über das Netzwerk erreichbar.

Ein Kommando für alles

Der eben verwendete Befehl xm ist der zentrale Verwaltungsbefehl für XEN. Im Prinzip kann alles, was mit XEN administrierbar ist, mit diesem Befehl erledigt werden. Beispiele für häufig genutzte Befehle finden Sie in Abbildung 5.

xm listAuflistung aller virtueller Maschinen
xm console <domID>Konsolensitzung am Gast übernehmen
xm mem-set <domID> 256MEinem Gast Memory zuordnen, zur Laufzeit möglich
xm save <domID> <Datei>Sichert den aktuellen Stand des Gastes in die angegebene Datei
xm restore <Datei>Stellt den Zustand aus der angegebenen Datei wieder her
xm <domID> shutdownHerunterfahren eines Gastes
xm vcpu-set <domID> <VCPUs>Zuordnung von CPUs zum Gast, zur Laufzeit möglich
xm –helpÜbersichtliche Hilfe zu allen Befehlen
Abb. 5: Beispiel für häufig benutzte xm-Befehle.

Der xm-Befehl kennt noch viele weitere Optionen zur Verwaltung von XEN. Mit xm –help können diese aufgelistet werden.

Bei den meisten Optionen lässt sich schon anhand des Namens auf die Funktionalität schließen. Und wenn nicht, gibt es auch hierzu eine Manual Page, die über den Befehl man xm aufrufbar ist.

Die Gäste kommen wieder

Der xm create-Befehl startet einen Gast manuell. Um ein automatisches Starten der Gäste beim Booten des Wirtes zu erreichen, müssen zwei Startskripte aktiviert werden. Dies kann entweder von Hand mit symbolischen Links oder unter SUSE und RedHAT (Fedora) mit chkconfig xend on und chkconfig xendomains on erreicht werden. chkconfig ist ein Linux-Befehl unter SuSE- und RedHAT-basierten Distributionen. Mit ihm kann das Startverhalten der Dienste beim Booten sehr einfach geändert werden (siehe Abbildung 6).

chkconfig –list xendAktuellen Status des Dienstes auflisten
chkconfig xend onDienst auf automatisches Starten stellen
chkconfig xend offDienst wird nicht automatisch gestartet
Abb. 6: Der chkconfig-Befehl zum Ändern des Startverhaltens der Dienste beim Booten.

XEN kann mehr - wir berichten weiter

In diesem Artikel haben wir Ihnen die grundlegenden Funktionalitäten von XEN gezeigt. In einer der nächsten ORDIX News möchten wir Ihnen noch mehr zu diesem aktuellen Thema berichten, z. B. wie ein OpenSolaris in den Genuss des Gastes kommt. Außerdem möchten wir Ihnen ein grafisches Frontend für XEN vorstellen und eine Live-Migration von einem System auf ein anderes aufzeigen.

Christian Fertsch (info@ordix.de).