
| 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. |
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.
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.
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.
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:
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.
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. |
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.
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.
| ||||||||||||||||
| 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.
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).
| ||||||
| Abb. 6: Der chkconfig-Befehl zum Ändern des Startverhaltens der Dienste beim Booten. |
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).