Xen#

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

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