From Fedora Project Wiki

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 MultiBoot-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
Wenn das Starten der grafischen Oberfläche beim nächsten Rechnerstart fehlschlägt, sollten sie diese abschalten und im Runlevel 3 (Kommandozeilenmodus) weiterarbeiten.

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.

Beachten Sie, dass das Netzwerk fr die Gastsysteme intern 'gebrückt' wird. Das bedeutet, dass sie eine IP-Adresse aus dem gleichen Netzwerkbereich wie das Hostsystem benötigt. Wenn Ihr Netzwerk über einen DHCP-Server verfügt, müssen Sie sicherstellen, dass er entsprechend konfiguriert ist. Sie können dieses Verhalten durch editieren der /etc/xen/xend-config.sxp ändern.

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)] .

  1. 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.
  2. Wieviel RAM (in MB) soll für das Gastsystem reserviert werden? Beachten Sie, dass eine Installation mit weniger als 256 MB nicht empfohlen wird.
  3. 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.
  4. 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.
  5. 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:

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 .

Fußnoten