!!! Xen

[Xen|http://www.cl.cam.ac.uk/research/srg/netos/xen/] ist eine Virtualisierungslösung unter Linux. Es erlaubt, mehrere Betriebssysteme auf einem einzigen Rechner zu betreiben. Hat man einen Prozessor, der Hardware-Virtualisierung unterstützt, können so sogar proprietäre Systeme wie Windows in einer eigenen Domain laufen. Auf normalen Prozessoren benötigt man einen angepassten Kernel für das Gastsystem. Xem ist eine echte Alternative zu UserModeLinux. Es soll viel schneller als dieses sein.

!!Xen unter Debian ETCH

!1. ETCH installieren

!2. XEN Pakete installieren 

Auf einem normalen System reicht folgender Befehl
{{{
aptitude install linux-image-xen-k7 xen-tools xen-utils
}}}
Diese Pakete installieren dann noch einige andere, abhängige. Dazu kann man, wenn man ein System mit Hardware-Virtualisierung (Vanderpool bzw. Pacifica) besitzt, noch ''xen-ioemu'' installieren. JensKapitza kommt dabei z.B. insgesamt auf folgende Pakete:
{{{
aptitude install -r libc6-xen linux-image-2.6-xen-686 linux-image-2.6.17-2-xen-686 \
                    linux-modules-2.6.17-2-xen-686 xen-hypervisor-3.0-unstable-1-i386 \
                    xen-ioemu-3.0-unstable xen-linux-system-2.6.17-2-xen-686 \
                    xen-utils-3.0-unstable-1 xen-utils-common
---------------

aptitute install -r  xen-linux-system-2.6.18-3-xen-686 ist eigentlich ausreichend,
damit ist alles installiert ** xen-tools nicht ** aber der rest läuft

}}}
wer eine GUI will kann sich ja mal [xenman|http://xenman.sourceforge.net] ankucken :

  aptitute install -r xenman (erfordert einen X-Server | es soll aber auch remote gehen)

!3. Rechnerconfig anpassen

In der Datei ''/etc/xen/xend-config.sxp'':
{{{
# diese Zeile nicht kommentieren 
 (network-script network-bridge)
# dafür aber diese
#(network-script network-dummy)
}}}

!4. REBOOT und dann im Grub Anwahl des Xen-Menüpunktes

Jetzt wird der XEN Hypervisor geladen, dieser lädt sodann den Linux-Kernel, der dann als "Dom0" läuft. Dies ist das Linux-System, von dem aus die anderen Domains verwaltet werden. (Jedes virtuelle System nennt man eine "Domain"; die Dom0 ist die Haupt-Domain, die Gastsysteme werden auch als DomU bezeichnet.)

!!Rechner im Rechner (Gastsystem) erstellen

!1. aptitude install xen-tools (wenn noch nicht gemacht)

Bei bedarf die config in ''/etc/xen-tools/xen-tools.conf'' ändern. Am besten mal alles durchsehen. Beispiele für sinnvolle Einstellungen sind:
{{{
# /etc/xen-tools/xen-tools.conf 
dir = /home/xen
debootstrap = 1
size   = 4Gb      # Disk image size.
memory = 128Mb    # Memory size
swap   = 256Mb    # Swap size
# noswap = 1      # Don't use swap at all for the new system.
fs     = ext3     # use the EXT3 filesystem for the disk image.
dist   = etch    # Default distribution to install.
image  = sparse   # Specify sparse vs. full disk images.
}}}

!2. Image erzeugen

Hier müssen jetzt bei __xen-create-image__ nur noch die Parameter angegeben werden, die anders sind als in der ''xen-tools.conf'' eingestellt wurden. Dies ist logischerweise immer der hostname, ggf. die IP usw. Beispiele sind:

{{{
 xen-create-image --hostname testxen1 --debootstrap
 xen-create-image --hostname test1 --size 10Gb --ip 192.168.221.130
}}}

__Ubuntu-Image erzeugen__

Man kann auf einem Debian-Basissystem übrigens auch sehr einfach ein Ubuntu-Gastsystem erzeugen. Dazu benötigt man lediglich die aktuelle Version den Ubuntu-__debootstrap__-Paketes, die man z.B. auf https://wiki.ubuntu.com/DebootstrapChroot bekommt und dann mit {{dpkg -i debootstrap_0.3.3.0ubuntu7_all.deb}} installiert. Dann kann man mit einem Befehl wie dem folgenden ein Ubuntu-System installieren:

{{{
 xen-create-image --memory 512Mb --swap 512Mb --size=10Gb  \
                  --hostname ubuntu --ip 192.168.201.139  \
                  --dist edgy --mirror http://archive.ubuntu.com/ubuntu/
}}}

!3. Xen-Gastsystem starten
{{{
 xm create -c /etc/xen/testxen1.cfg 
}}}

Das "-c" sorgt dafür, daß man sofort auf der Konsole des neuen Systems ist. Hier kommt man mit "Strg-]" (auf einer deutschen Tastatur auch bekannt als {{{"Strg-AltGr-9"}}}) wieder raus. Ohne "-c" startet die Doamin im Hintergrund und kann nun über das Netzwerk erreicht werden. Weitere Befehle, z.B. um eine Domain wieder herunterzufahren etc. ergibt __{{xm help}}__.

__Autostart:__ Wer sein Gastsystem beim hochfahren automatisch starten will, erzeugt ein auto-Verzeichnis und folgenden Link:
{{{
cd /etc/xen
mkdir auto
cd auto
ln -s ../testxen1.cfg testxen1.cfg
}}}

!! Netzwerk

Wer verstehen will, wie das standardmäßig aufgesetzte Bridge-Netzwerk funktioniert und was alle die Devices sollen, sollte http://wiki.xensource.com/xenwiki/XenNetworking lesen.

Auf dieser Seite ganz unten steht auch ein Tip, wie man zwei Bridges erzeugt. Hat man einen Xen-Basisrechner mit zwei Netzwerkkarten, so kann man nun jede Gastdomain individuell mit einer der Netzweerkkarten verbinden, um z.B. eine DMZ abzubilden. Dabei ist es natürlich möglich, daß das Xen-Basissystem in der DMZ gar nicht angesprochen werden kann.

Wer udev im Xen-Gastsystem benutzt aber keine festen Mac-Adressen zuweist, sollte meinen Tip auf [Udev] lesen.

!! Viele Gäste und wenig loop-Devices

Wer mit mehreren Gästen herumtestet, kommt irgendwann an folgende Fehlermeldung:

  Error: Device 2049 (vbd) could not be connected. Backend device not found.

Das ist kein Beinbruch, sondern bedeutet, daß das Loop-Device (das z.B. für Image-Dateien gebraucht wird) im Normalfall nur 8 Dateien gleichzeitig benutzen kann. Dies ändert man leicht beim laden des '''loop'''-Kernelmoduls. Um das am Debianigsten zu machen, erzeugt man eine Datei ''/etc/modprobe.d/xen'' mit dem Inhalt:

  # Konfiguration des Loop-Device zur Arbeit mit Xen und vielen Gastsystemen:
  options loop max_loop=200

Nun hat man einstweilen genug Devices zur Verfügung. ''(Kann mir eigentlich jemand sagen, wie man feststellt, wieviele loop-Devices schon belegt sind?)'' Eigentlich gehörte diese Datei in die Debian-Xen-Pakete (aber was nicht ist, kann ja noch werden...). -- ThomasBayen

!!Links

* [http://www.cl.cam.ac.uk/research/srg/netos/xen/] Xen Homepage
* [http://gentoo-wiki.com/HOWTO_Xen_and_Gentoo]\\
* [http://www.huschi.net/16_185_de.html] - Debian XEN Installation über Backports

;Kategorien: KategorieVirtualisierung