37.2. Domäneninstallation

Die Installation und Einrichtung einer Gastdomäne erfolgt in mehreren Schritten. Im Folgenden wird eine erste Gastdomäne installiert und es werden alle erforderlichen Schritte für den Aufbau einer ersten Netzwerkverbindung durchgeführt.

Um ein Gastsystem zu installieren, müssen Sie ein Root-Dateisystem in einem Blockgerät oder in einem Dateisystem-Image zur Verfügung stellen, das hierfür eingerichtet werden muss. Damit auf dieses System später zugegriffen werden kann, müssen Sie eine emulierte Konsole verwenden oder die Netzwerkverbindung für dieses Gastsystem einrichten. Die Installation von SUSE Linux in ein Verzeichnis wird von YaST unterstützt. Die Hardware-Anforderungen eines solchen Gastsystems sind mit denen einer normalen Linux-Installation vergleichbar.

Domänen können schreibgeschützt gemountete Dateisysteme aller Domänen gemeinsam nutzen, beispielsweise /usr oder /opt. Nutzen Sie nie ein Dateisystem gemeinsam, das mit Schreibrechten gemountet ist. Wenn Daten im Schreibzugriff von mehreren Gastdomänen gemeinsam genutzt werden sollen, greifen Sie auf NFS oder andere Netzwerk- oder Cluster-Dateisysteme zurück.

[Warning]Starten einer Gastdomäne

Stellen Sie beim Starten einer Gastdomäne sicher, dass die Dateisysteme des Gastsystems nicht mehr von einem Installationsprogramm oder von der steuernden Domäne domain-0 gemountet sind.

Zunächst müssen Sie ein Dateisystem-Image erstellen, in dem Linux für das Gastsystem installiert werden kann:

  1. Verwenden Sie folgenden Befehl, um ein leeres, 4 GB großes Image mit der Bezeichnung guest1 im Verzeichnis /var/tmp/ zu erstellen:

    dd if=/dev/zero of=/var/tmp/guest1 seek=1M bs=4096 count=1
  2. Bei diesem Image handelt es sich einfach um eine große, leere Datei, die keine Daten enthält. Damit Daten in diese Datei geschrieben werden können, ist ein Dateisystem erforderlich:

    mkreiserfs -f /var/tmp/guest1

    Der Befehl mkreiserfs meldet, dass es sich hierbei nicht um ein spezielles Blockgerät handelt, und fordert Sie dazu auf, dies zu bestätigen. Geben Sie Y ein und drücken Sie die Eingabetaste, um fortzufahren.

  3. Die eigentliche Installation wird in einem Verzeichnis ausgeführt. Hierzu muss das Dateisystem-Image /var/tmp/guest1 in einem Verzeichnis gemountet sein:

    mkdir -p /var/tmp/dirinstall
    mount -o loop /var/tmp/guest1 /var/tmp/dirinstall
    
[Important]Wichtig

Nach Abschluss der Installation kann das Dateisystem-Image wieder unmountet werden. YaST mountet bei der Installation außerdem das Dateisystem /proc, das ebenfalls wieder freigegeben werden muss:

umount /var/tmp/dirinstall/proc
umount /var/tmp/dirinstall

37.2.1. Installation einer Gastdomäne mit YaST

Zur Installation einer Gastdomäne mit YaST benötigen Sie das zuvor vorbereitete Dateisystem-Image für das neue Gastsystem. Starten Sie YaST und wählen Sie Software+Installation in ein Verzeichnis für XEN.

Beim YaST-Modul für die Installation in einem Verzeichnis gibt es verschiedene Optionen, die Sie nach Bedarf anpassen können:

  • Ziel-Verzeichnis: /var/tmp/dirinstall

    Mit dieser Option können Sie den Mountpunkt des zu verwendenden Dateisystem-Images festlegen. In der Regel kann die Standardeinstellung übernommen werden.

  • YaST und SuSEconfig nach dem ersten Systemstart ausführen: Ja

    Setzen Sie diese Option auf Ja. Beim ersten Start des Gastsystems werden Sie zur Eingabe eines root-Passworts und eines ersten Benutzernamens aufgefordert.

  • Image erstellen: Nein

    Bei dem Image, das mithilfe dieser Option angelegt wird, handelt es sich einfach nur um ein tar-Archiv mit dem Installationsverzeichnis. Dies ist in diesem Zusammenhang nicht sinnvoll.

  • Software

    Wählen Sie die Art der durchzuführenden Installation aus. Jede der Standardeinstellungen sollte zu einem brauchbaren Ergebnis führen.

Klicken Sie auf Weiter, um mit der Installation zu beginnen. Abhängig von der Anzahl der Pakete kann die Installation eine Weile dauern. Nach Abschluss der Installation müssen Sie die tls-Bibliotheken verschieben:

mv /var/tmp/dirinstall/lib/tls /var/tmp/dirinstall/lib/tls.disabled 

Xen nutzt einen der in domain-0 installierten Kernel, um die Gastdomäne zu starten. Wenn das Gastsystem netzwerkfähig sein soll, müssen die Module dieses Kernels auch für das Gastsystem verfügbar sein.

cp -a /lib/modules/$(rpm -qf --qf %{VERSION}-%{RELEASE}-xen \ /boot/vmlinuz-xen) /var/tmp/dirinstall/lib/modules 

Nach der Installation muss das Dateisystem-Image unmounted werden, um Dateisystemprobleme zu vermeiden:

umount /var/tmp/dirinstall/proc
umount /var/tmp/dirinstall/ 

Prinzipiell wäre es möglich, spezielle Kernel für domain-0 einerseits und die Gastsysteme andererseits zu erstellen. Der Hauptunterschied besteht jedoch in den Hardwaretreibern, die für die Gastsysteme nicht erforderlich sind. Da diese Treiber modular sind und nicht für die Gastsysteme verwendet werden, liefert SUSE nur einen Kernel für beide Tasks.

37.2.2. Einrichten eines Rettungssystems als Gastdomäne

Am schnellsten gelangt man zu einem lauffähigen System, indem man ein vorhandenes Root-Dateisystem verwendet, beispielsweise das Rettungssystem von SUSE Linux. Hauptsächlich müssen das Kernel-Image und die Gerätetreiber der virtuellen Block- und Netzwerkgeräte in diesem Image ausgetauscht werden. Diese Aufgabe wird durch das Skript mk-xen-rescue-img.sh vereinfacht, das Sie unter /usr/share/doc/packages/xen/ finden.

Der Nachteil bei der Verwendung der Rettungssystem-Methode zum Erstellen eines Root-Dateisystems besteht darin, dass das Ergebnis keine RPM-Datenbank umfasst, weshalb Sie nicht einfach Pakete mithilfe von RPM hinzufügen können. Positiv ist hingegen, dass das resultierende System zwar relativ schlank ist, jedoch über praktisch alle Komponenten verfügt, die Sie zum Einrichten eines Netzwerks benötigen.

Zum Ausführen des Skripts mk-xen-rescue-img.sh benötigen Sie zumindest das Verzeichnis mit dem Rettungsimage und ein Zielverzeichnis für das neue Image. Standardmäßig befindet sich das Verzeichnis auf der Boot-DVD im Verzeichnis /boot.

cd /usr/share/doc/packages/xen
./mk-xen-rescue-img.sh /media/dvd/boot /usr/local/xen 64

Der erste Parameter des Skripts ist das Verzeichnis mit dem Rettungsimage. Der zweite Parameter ist das Zielverzeichnis für die neue Imagedatei. Optionale Parameter sind die Festplattenspeicher-Anforderungen der neu erzeugten Gastdomäne und die zu verwendende Kernel-Version.

Das Skript kopiert nun das Image an den neuen Speicherort, ersetzt den Kernel und verschiedene Kernel-Module und deaktiviert das tls-Verzeichnis des Systems. Abschließend generiert es eine Konfigurationsdatei für das neue Image unter /etc/xen/.