Springe zu: Hauptnavigation, Themennavigation, Seiteninhalt, Spezielle Seiten

Xen unter Debian Etch installieren

In diesem Artikel beschreibe ich die Schritte zur Installation von Xen Version 3.0 unter Debian GNU/Linux (Version Etch). Dabei gehe ich auch auf kleine Besonderheiten für Braillezeilen-Benutzer ein.

Installation von Xen

Xen benötigt einen angepassten Kernel. Außerdem werden Tools für die Erstellung und Verwaltung der Gast-Betriebssysteme benötigt. Ich gehe davon aus, dass sich im Computer kein Prozessor mit Virtualisierungs-Unterstützung befindet und die I686-Computerarchitektur verwendet wird. Mit dem folgenden Kommando werden die benötigten Pakete installiert:

aptitude install xen-linux-system-2.6.18-4-xen-686 xen-tools bridge-utils

Anzahl der loop devices erhöhen

Xen wird später die Dateien nicht in einer echten Partition abelegen, sondern dafür eine immer größer werdende Datei auf der Festplatte verwenden. Diese Datei wird über ein loop device als virtueller Datenträger eingebunden (mount). Standardmäßig werden zu wenig loop devices angelegt. Daher ist die Datei /etc/modprobe.d/loop anzulegen und z. B. mit folgender Zeile zu versehen:

options loop max_loop=50

Vorbereiten des Bootmanagers

Bevor man den Rechner neu startet und den Xen-Kernel verwendet, ist der Bootmanager grub anzupassen. Hierzu ist die Konfigurationsdatei /boot/grub/menu.lst mit einem Editor zu bearbeiten. Xen stellt standardmäßig eine Konsole über eine serielle Schnittstelle bereit. Wenn man eine Braillezeile verwendet, die am seriellen Anschluss angeschlossen ist, würde diese bei der Verwendung des Xen-Kernels nicht mehr funktionieren. Daher ist in der Grub-Konfiguration der Parameter console=tty0 durch xencons=off zu ersetzen. Die geänderte Zeile kann danach z. B. so aussehen:

module          /boot/vmlinuz-2.6.18-4-xen-686 root=/dev/hdd9 ro xencons=off

Dieser Parameter deaktiviert die Bereitstellung einer seriellen Xen-Konsole und ermöglicht dem Screenreader den Zugriff auf die seriellen Anschlüsse.

Wer auf Nummer sicher gehen will

Eigentlich sollte beim Neustart des Rechners und dem Laden des Xen-Kernels nichts schief gehen. Mit den folgenden Schritten legt man fest, dass nur beim nächsten Starten der Xen-Kernel geladen wird und beim übernächsten wieder der funktionierende Standard-Kernel. So kommt man spätestens beim übernächsten Reboot wieder an sein funktionierendes System.

Der Parameter default ist auf den Wert saved zu setzen. Bei mir sieht die geänderte Zeile in der Datei /boot/grub/menu.lst so aus:

default         saved

Beim Xen-Kernel editiere ich die savedefault Anweisung so, dass der zweite Kernel im Bootmenü als Standard-Kernel festgelegt wird. Da die Zählweise ja bei 0 beginnt, ist hier also die Zahl 1 zu notieren. Hier mein kompletter Eintrag für den Xen-Kernel:

title           Xen 3.0.3-1-i386-pae / Debian GNU/Linux, kernel 2.6.18-4-xen-686
root            (hd1,8)
kernel          /boot/xen-3.0.3-1-i386-pae.gz
module          /boot/vmlinuz-2.6.18-4-xen-686 root=/dev/hdd9 ro xencons=off
module          /boot/initrd.img-2.6.18-4-xen-686
savedefault     1

Jetzt beende ich den Editor und lege mit dem folgenden Befehl fest, dass der Xen-Kernel (Grub-Zählweise 0) als Default-Kernel verwendet werden soll:

etch:~# grub-set-default 0

Der Rechner kann jetzt neu gestartet werden. Wenn alles funktioniert, wird der Xen kernel geladen. Ob es sich um den Xen Kernel handelt, kann man auf der Konsole mit folgendem Befehl überprüfen:

etch:~# uname -r
2.6.18-4-xen-686

Taucht in der Ausgabe nichts von xen auf, wurde der Xen-Kernel noch nicht gestartet. Hat alles geklappt, ist in der Datei /boot/grub/menu.lst wieder festzulegen, dass standardmäßig der Xen-kernel zu laden ist. Dazu ist die Anweisung default von saved auf 0 zu ändern:

default         0

Vor dem Anlegen des ersten Gastes

Hat man den Rechner neu gestartet und den Xen Kernel geladen, befindet man sich in der Xen-Domain 0 und kann man im Grunde mit der Erstellung des ersten Gastes beginnen. Die Domain 0 ist das System, mit dem man neue Domains anlegen und Xen steuern kann. Vorher ist aber z. B. noch festzulegen, dass die Netzwerkschnittstellen über eine Bridge mit der echten Netzwerkkarte des Rechners verbunden werden sollen. Eine Netzwerk-Bridge ist mit einem Switch vergleichbar. Hierzu ist die Konfigurationsdatei /etc/xen/xend-config.sxp zu bearbeiten. Beginnt eine Zeile mit einem # zeichen, wird diese als Kommentar angesehen und nicht verarbeitet. Vor der folgenden Zeile ist das # Zeichen zu entfernen:

# (network-script network-bridge)

Die folgende Zeile ist mit einem Kommentarzeichen zu versehen:

(network-script network-dummy)

Nach dieser Änderung an der Konfigurationsdatei für den Xen Dienst, ist dieser neu zu starten:

etch:~# invoke-rc.d xend restart

Bevor man mit dem Tool xen-create-image einen Gast erstellen kann, ist das Verzeichnis zur Ablage der Dateien der Xen-Gäste anzulegen. In meinem Fall sollen diese unterhalb von /home/xen/ gespeichert werden:

etch:~# mkdir /home/xen

Die Xen Tools, zu denen auch das Programm xen-create-image gehört, werden über die Datei /etc/xen-tools/xen-tools.conf konfiguriert. Hier ist das # zeichen vor der folgenden zeile zu entfernen:

# dir = /home/xen

Auch der zu verwendende Mirror für die Installation eines Debian-Systems ist anzupassen. Die geänderte zeile kann z. B. so aussehen:

mirror = http://ftp.uni-bayreuth.de/linux/Debian/debian/

Man kann festlegen, dass man während der Erstellung eines neuen Systems zur Eingabe des Kennworts für den Benutzer root aufgefordert wird. Hierzu ist das Kommentarzeichen vor der folgenden Zeile zu entfernen:

# passwd = 1

Weitere Standardwerte, wie die Größe der Festplatte, der zu verwendende Arbeitsspeicher oder der Standardgateway, lassen sich in dieser Konfigurationsdatei festlegen.

Es ist sicherzustellen, dass die Angaben für Kernel und Ramdisk richtig gesetzt sind. Unter Etch zeigen diese Werte noch auf einen Kernel aus der Sarge-Distribution. Die beiden Zeilen schauen unter Etch am Ende so aus:

kernel = /boot/vmlinuz-2.6.18-4-xen-686
initrd = /boot/initrd.img-2.6.18-4-xen-686

Einen Gast anlegen

Einen Gast kann man mit dem Tool xen-create-image erstellen. Ihm ist zwingend der Hostname des künftigen Systems zu übergeben. Im folgenden Beispiel soll der Gast 128 MB Arbeitsspeicher und 128 MB Swap-Speicher erhalten. Die Netzwerkinformationen (IP-Adresse, Netzmaske und Standardgateway) werden ebenfalls übergeben. Als Distribution soll etch verwendet werden. Der Aufruf sieht daher wie folgt aus:

xen-create-image --swap 128Mb --memory 128Mb --dist etch \
--ip 192.168.100.222 --netmask 255.255.255.0 --gateway 192.168.100.254 \
--hostname xen01

Wurde der Gast erfolgreich angelegt, ist die Konfigurationsdatei im Verzeichnis /etc/xen zu finden. In unserem Beispiel heißt die Datei xen01.cfg. Gast-Systeme werden in der Xen-Terminologie Domänen genannt. Die Dateien mit den Abbildern von Festplatte und Swap-Laufwerk sind demnach im Verzeichnis /home/xen/domains/xen01/ zu finden und tragen die Namen disk.img und swap.img. Standardmäßig werden die Images im so genannten sparse-Format gespeichert. Das bedeutet, dass z. B. ein 5 GB großes Festplatten-Abbild nicht wirklich 5 GB Plattenplatz belegt. Es benötigt nur den im Gast verwendeten Speicherplatz.

Einen Gast löschen

Möchte man einen eingerichteten Gast wieder löschen, kann man das Skript xen-delete-image verwenden. Der folgende Aufruf würde die Konfigurationsdatei und Images des Gastes mit dem Hostnamen xen01 entfernen:

etch:~# xen-delete-image --hostname=xen01

Datum der Veröffentlichung: Dienstag, 14.08.2007

Nach oben

Diese Seite drucken