Contents:
Über Xen
Xen ist ein Open Source-System für virtuelle Rechner. Mehr Informationen ber Xen selbst finden Sie auf http://wiki.xensource.com/xenwiki/ und der Xen -Seite von Fedora.
Fedora verwendet die 3.0.x-Xen-Linie. Xen 3.0.0 wurde im Dezember 2005 freigegeben und ist inkompatibel mit den Gastsystemen der Vorgängerversion 2.0.
Einführung
Das Aufsetzen von Xen und den Gastsystemen ist unter Fedora Core 5 wesentlich einfacher als es noch unter Fedora Core 4 war. Hier ist eine kurze Aufstellung dessen was nötig ist, um Xen als Host- und Gastsystem zu konfigurieren.
Systemanforderungen
- Ihr System muss den Bootloader GRUB verwenden - den Standardbootloader von Fedora[[FootNote(Das ist notwendig, weil eigentlich zunächst der Xen-Hypervisor geladen wird, der wiederum den Linux-Kernel startet. Dazu nutzt er den Multi
Boot-Standard.)]
- Ausreichend Speicherplatz für die Gastsysteme. Eine Fedora-Minimalkonfiguration nur mit Kommandozeile benötigt ca. 600 MB Speicherplatz, ein Standard-Desktop erwartet 3 GB.
- Im Allgemeinen sollten Sie mit 256 MB RAM pro Gastsystem rechnen. Im Wesentlichen liegt das an den Speicherplatzanforderungen während der Installation und wird sich hoffentlich im Laufe der Zeit verringern.
- Derzeit werden sowohl x86- als x86_64-Systeme untersttzt
Konventionen
Befehlen, die Root-Privilegien voraussetzen, ist ein '#' vorangestellt. Um in den Root-Modus zu wechseln, geben Sie als normaler Nutzer 'su' ein und nachfolgend das Root-Passwort. Alternativ können Sie auch andere Systeme wie 'sudo' verwenden, wenn Sie das eingerichtet haben.
Installieren der Xen-Software
Beim Installieren von Fedora Core 5 können Sie angeben, dass Xen installiert werden soll, indem Sie 'xen0' zur Kernel-Kommandozeile hinzufgen. Das stellt sicher, dass der Xen-Kernel und die zugehörigen Pakete installiert werden.
Wenn Fedora Core 5 bereits installiert ist, weisen Sie die Installation des Xen-Kernels mit dem folgenden Kommando an:
Das installiert das geforderte Paket einschließlich der Abhängigkeiten. 'kernel-xen0' enthält den Kernel für das Xen-Hostsystem (domain 0
) und den Hypervisor. Außerdem wird das 'xen'-Paket installiert, das die Programme und Werkzeuge für die Interaktion mit dem Hypervisor bereitstellt.
Wenn Sie das getan haben, sollte /boot/grub/grub.conf
einen Eintrag zum Booten des 'xen0'-Kernels enthalten. Dieser ist aber noch nicht der Standard-Kernel beim Booten.
Um GRUB beizubringen, dass standardmäßig der 'xen0'-Kernel geladen werden soll, editieren Sie /boot/grub/grub.conf
entsprechend.
default=0
Das ist ein Beispiel der /boot/grub/grub.conf
mit einer init 3
-Option, um im Runlevel 3 zu starten:
default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Fedora Core (2.6.15-1.29_FC5hypervisor) root (hd0,0) kernel /xen.gz-2.6.15-1.29_FC5 module /vmlinuz-2.6.15-1.29_FC5xen0 ro root=/dev/VolGroup01/LogVol00 init 3 module /initrd-2.6.15-1.29_FC5xen0.img
Die Xen-Ausstattung unter Fedora Core nutzt VNC, um eine grafische Oberfläche zur Verfügung zu stellen, auf die lokal oder von entfernten Systemen zugegriffen werden kann. Installieren Sie das vnc
-Paket auf dem Rechner, den Sie zur Administration von Xen nutzen wollen.
Das stellt den vncviewer
-Client zur Verfgung.
Xen aktivieren
Wenn Sie den Rechner mit der GRUB-Option xen-hypervisor
neu gestartet haben, sollte der Kernel für das Xen-Hostsystem laufen[[FootNote(Um das zu pürfen, geben Sie 'uname -r
' ein. Der Name des angezeigten Kernels sollte 'xen0' enthalten)] . Außerdem sollte der Dienst Xen bereits laufen. Um zu testen das Xen erfolgreich gestartet wurde, geben Sie folgendes Kommando ein:
Die Domain-0 (das Xen-Hostsystem) sollte laufen.
Aufsetzen eines Gastsystems
Die folgenden Instruktionen setzen eine einfache Fedora-Installation als Xen-Gastsystem auf.
Building a Fedora Guest System
Fedora Core 5 unterstützt die Installation von Xen-Gastsystemen mittels Anaconda, allerdings sind ein paar Fehler bekannt. Das Xen-Paket enthält ein Skript zum Starten der Installation eines Gasts. Es wird aufgerufen mit:
Es werden noch ein paar Daten bezüglich der zu installierenden virtuellen Maschine gestellt[[FootNote(Diese können auch ber die Kommandozeile zur Verfgung gestellt werden. Starten Sie das Skript mit der Option --help
fr Details)] .
- Welchen Namen hat die virtuelle Maschine? Dieser wird für die Anzeige in den verschiedenen xm-Kommandos und für die Domain-Konfigurationsdatei in
/etc/xen
verwendet. - Wieviel RAM (in MB) soll für das Gastsystem reserviert werden? Beachten Sie, dass eine Installation mit weniger als 256 MB nicht empfohlen wird.
- Welchen Pfad und welchen Dateinamen wollen Sie für den Gast verwenden (z. B. /home/joe/xenbox1)? Diese wird dem Gast als komplettes Dateisystem zur Verfgung gestellt.
- Wie groß soll diese Datei in GB sein sofern sie nicht bereits existiert? Der Wert hängt davon ab, was Sie alles installieren wollen. 4 GB sind eine sinnvolle Größe für eine Standard-Installation.
- Von wo aus wird installiert? Das ist der Pfad zu den Fedora Core 5-Installationsdateien im anaconda-Format. NFS, FTP und HTTP werden unterstützt. Beispiele:
- nfs:mein.nfs.server.com:/pfad/zur/installation/
- http://mein.http.server.com/pfad/zur/installation/
- ftp://mein.ftp.server.com/pfad/zur/installation
Wenn Sie an dieser Stelle einen Fehler bekommen 'The privileged domain did not balloon!', sollten Sie bereits existierende VM (virtuelle Maschinen) verkleinern, um mehr Speicher für die neue VM zur Verfügung zu haben. Um beispielsweise die dom0 so zu verändern, dass sie nur noch 256 MB RAM verwendet, geben Sie ein:
xm mem-set 0 256
Wenn Sie die existierenden Domains verkleinert haben, sollten Sie das xenguest-install.py -Skript starten können.
Danach wird der zu installierende Kernel und initrd (Initialisierungs-RAM-Disk) aus dem angegeben Pfad geladen und das Installationsprogramm startet.
- Wenn die Fragen beantwortet sind, sollte der Standard-Textbildschirm von anaconda erscheinen, der Sie nach Installationssprache und Tastaturlayout fragt.
- Konfigurieren Sie das Netzwerk wir für ein normales System.
- Nun sind können Sie das Gastsystem installieren. Das können Sie entweder im Textmodus oder grafisch via VNC tun.
Installation im Grafikmodus via VNC
- Wählen Sie den Start von VNC
- Geben Sie ein Passwort für die sichere VNC-Übertragung ein oder kein Passwort für eine offene Verbindung
- Es werden die Informationen zum VNC-Server angezeigt. Verbinden Sie sich mit diesem mit einem Client Ihrer Wahl (entweder von dieser oder einer anderen Maschine).
- VNC zeigt Ihnen nun die normale grafische Oberfläche der Fedora-Installation an. Fahren Sie mit der Installation Ihres Xen-Gastsystemes fort.
- Anmerkung
- Das xvda-Gerät ist die beim install-script.py -Skript eingegebene Datei. Sie wird dem Gast als Festplatte angezeigt, nicht nur als Partition. Sie können sie wie eine normale Festplatte partitionieren oder mittels LVM verkleinern. Vor der ersten Benutzung müssen Sie sie partitionieren und während der Installation formatieren.
Nach der Installation
Wenn sich das Installationprogramm beendet, können Sie Ihr Gastsystem mit dem folgenden Kommando einschalten:
foo ist dabei der von Ihnen vergebene Name für das Gastsystem. '-c' weist der VM eine Konsole zu. Eine Vielzahl weiterer Befehle steht zur Verfgung.
zeigt eine Liste der möglichen Kommandos an.
zeigt an, womit Ihre VMs beschäftigt sind - ganz ähnlich der Ausgabe von top.
beendet das Gastsystem, wobei 'foo' der Name des Systems ist.
speichert den Status des Gastsystems 'foo' in der Datei /root/foo.restore
.
stellt den abgespeicherten Status wieder her.
Domains beim Rechnerstart automatisch laden
Wenn Sie Ihre Gastsysteme beim Rechnerstart laden wollen, stellen Sie bitte sicher, dass xendomains
automatisch gestartet wird, und legen die Xen-Konfigurationsdateien für die gewünschten Domains im Verzeichnis /etc/xen/auto/
ab.
xendomains
wird mit den folgenden Kommandos automatisch gestartet:
Fehlerbehebung
Wenn während der Xen-Installation Fehler auftreten, helfen Ihnen die Angaben zweier Logdatien auf dem Hostsystem weiter. /var/log/xend.log
enthält neben grundlegenden Informationen auch die gleichen Angaben, die Sie auch mit 'xm log
' erhalten wrden. Leider sind diese Nachrichten sehr kurz und enthalten nur wenige weiterführende Hilfe. Die folgenden Angaben stammen vom Versuch, eine Domain mit einem laufenden NetBSD/xen-Kernel zu erzeugen:
[2005-06-27 02:23:02 xend] ERROR (SrvBase:163) op=create: Error creating domain:(0, 'Error') Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvBase.py", line 107, in _perform val = op_method(op, req) File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvDomainDir.py", line 71, in op_create raise XendError("Error creating domain: " + str(ex)) XendError: Error creating domain: (0, 'Error')
Die zweite Datei, /var/log/xend-debug.log
enthält üblicherweise wesentlich detailliertere Angaben. Der Versuch, den NetBSD/xen-Kernel zu installieren führt zu folgender Ausgabe:
ERROR: Will only load images built for Xen v3.0 ERROR: Actually saw: 'GUEST_OS=netbsd,GUEST_VER=2.0,XEN_VER=2.0,LOADER=generic,BSD_SYMTAB' ERROR: Error constructing guest OS
Wenn Sie Fehler anzeigen wollen oder Hilfe beim Xen-Setup benötigen, sollten Sie immer diese beiden Dateien Ihrer Nachricht beifügen.
Frage: Ich versuche den xend-Dienst zu starten, aber nichts passiert. xm list
zeigt Folgendes an:
Error: Error connecting to xend: Connection refused. Is xend running?
Alternativ dazu gebe ich xend start
ein und bekomme den folgenden Fehler:
ERROR: Could not obtain handle on privileged command interface (2 = No such file or directory) Traceback (most recent call last): File "/usr/sbin/xend", line 33, in ? from xen.xend.server import SrvDaemon File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvDaemon.py", line 21, in ? import relocate File "/usr/lib/python2.4/site-packages/xen/xend/server/relocate.py", line 26, in ? from xen.xend import XendDomain File "/usr/lib/python2.4/site-packages/xen/xend/XendDomain.py", line 33, in ? import XendDomainInfo File "/usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 37, in ? import image File "/usr/lib/python2.4/site-packages/xen/xend/image.py", line 30, in ? xc = xen.lowlevel.xc.xc() RuntimeError: (2, 'No such file or directory')
Antwort: Sie haben Ihren Hostrechner mit einem Kernel ohne xen-Hypervisor gestartet. Ja, das ist mir auch beim Testen passiert! :)
Sie müssen entweder den xen-Hypervisor-Kernel beim Booten auswählen oder tragen ihn in der GRUB-Konfigurationsdatei /boot/grub/grub.conf als Standardkernel ein.
Hilfe erhalten
Wenn der letzte Abschnitt Ihnen nicht bei Ihrem Problem weiterhelfen konnte, schauen Sie bei Red Hat Bugzilla nach, ob es bereits eine Fehlermeldung zu Ihrem Problem unter Xen in FC5 gibt. Das Produkt ist "Fedora Core" und die Komponente ist "Kernel" fr Fehlermeldungen zum xen0-Kernel oder "xen" fr Fehlermeldungen zu den zu Xen gehörigen Werkzeugen. Diese Fehlermeldungen enthalten hilfreiche Hinweise von anderen Xen-Testern und beschreiben oft, wie man diese Fehler umgeht.
Allgemeine Xen-Angelegenheiten und ntzliche Informationen enthält die Xen-Projekt-Dokumentation und Mailinglistenarchive .
Zu guter Letzt gibt es noch zu Themen rund um die Fedora-Xen-Unterstützung auf der Fedora-Xen-Mailingliste .