Xen über Backports auf Debian Sarge

Einleitung:

Xen ist eine Server-Virtualisierungs-Umgebung. Oder auf Neu(Server)Deutsch: ein vServer-Host-System.
Für Debian-Server gibt es Xen allerdings erst ab unstable/sid. Also nutzen wir backports von Xen und einigen zugehörigen Paketen.

Installation:

Backports in die /etc/apt/sources.list aufnehmen:

deb http://www.backports.org/debian/ sarge-backports main

Pinning für die benötigten Pakete in /etc/apt/preferences setzten:

Package: *
Pin: release a=sarge-backports
Pin-Priority: 200

Package: xen-3.0
Pin: release a=sarge-backports
Pin-Priority: 999

Package: linux-2.6
Pin: release a=sarge-backports
Pin-Priority: 999

Package: xen-tools
Pin: release a=sarge-backports
Pin-Priority: 999

Package: udev
Pin: release a=sarge-backports
Pin-Priority: 999

Package: lsb
Pin: release a=sarge-backports
Pin-Priority: 999

Package: module-init-tools
Pin: release a=sarge-backports
Pin-Priority: 999

Package: grub
Pin: release a=sarge-backports
Pin-Priority: 999

Update der Sourcen und der gepinnten Pakete:

apt-get update && apt-get dist-upgrade

Achtung: bei auftretenden Fehler bitte auf backports.org nachsehen!

Installation der Pakete:
(Beim Xen-Kernel bitte auf die vorhandene CPU achten: 686 für P4 / Xeon oder K7 für Athlon / Opteron.)

# benötigte Basis:
apt-get install grub/sarge-backports
apt-get install makedev/sarge-backports
apt-get install lsb-base/sarge-backports
apt-get install mdadm/sarge-backports
# Xen selbst:
apt-get install xen-hypervisor-3.0-i386 xen-utils-3.0
# Xen-Kernel:
apt-get install linux-image-2.6.16-2-xen-686

Nun geht's rund:
Wir gehen von hotplug auf udev und müssen eine neue initrd erstellen.

dpkg --purge hotplug
apt-get install bridge-utils xen-tools/sarge-backports sysfsutils
mv /lib/tls/ /lib/tls.disabled
cd /boot
mkinitramfs -o /boot/initrd.img-2.6.16-2-xen-686 2.6.16-2-xen-686

Nun muß dem Boot-Loader der Xen-Kernel beigebracht werden.
Dazu bearbeiten wir die /boot/grub/menu.lst:

title Xen 3.0 / XenLinux 2.6-686
kernel /boot/xen-3.0-i386.gz
module /boot/vmlinuz-2.6.16-2-xen-686 root=/dev/md0 ro
module /boot/initrd.img-2.6.16-2-xen-686

Zum Abschluß muß noch die Xen-Config in /etc/xen/xend-config.sxp kontroliert werden, ob (network-script network-bridge) (ca. Zeile 73) und (vif-script vif-bridge) (ca. Zeile 104) eingeschaltet ist.
Ggf. die Zeilen auskommentieren und alle anderen Einstellungen dazu als Kommentar setzen.

Nun noch den Xen-VM beim booten mitstarten lassen:

invoke-rc.d xend restart

...und zum guten Schluß den ganzen Rechner neu booten.
(Daumen drücken nicht vergessen.)

Nach dem Booten einmal die neuen Network-Devices checken: Peth0 und vif0.0 sollten nun vorhanden sein.

brctl show

Erstellen von virtuellen Rechnern (Xens)

Wenn bis hierhin alles geklappt hat, ist das System bereit virtuelle Maschinen einzurichten.
Wir beginnen mit dem erstellen eines passenden Verzeichnisses:

mkdir /home/xen

Dann braucht es ein paar Grundeinstellung in der /etc/xen-tools/xen-tools.conf. (Hier eine gekürze Fassung)
Es geht vorallem um die richtigen Einstellungen für initrd & kernel, gateway & netmask und natürlich, wieviel Resourcen jedes xens haben darf: memory & size & swap.

#
# /etc/xen-tools/xen-tools.conf
#
dir	= /home/xen
size	= 2Gb  
memory	= 128Mb
swap	= 128Mb
fs	= ext3 
dist	= sarge
gateway	= 192.168.1.1
netmask	= 255.255.255.0
passwd	= 1
initrd  = /boot/initrd.img-2.6.16-1-xen-686
kernel	= /boot/vmlinuz-2.6.16-1-xen-686
mirror	= http://ftp.uk.debian.org/debian/

Und nun kann man schon die erste virtuelle Maschine erstellen und starten:

xen-create-image --hostname=test --ip=192.168.1.222 --passwd
cp -par /lib/modules/2.6.16-2-xen-686/ /mnt/xen1/lib/modules/
xm create test.cfg -c

PS: Hier sind wir jetzt auf der Console des neuen xens. Mit Strg+] kommt man wieder zurück zum Host.

Zum Testen loggen wir uns am besten einmal per SSH ein.

Hinweis:

Evtl. (und je nach Version der xen-tools) kann es sein, daß test.cfg noch einen Ramdisk-Eintrag braucht. Typisches Symtom sind boot-Probleme des xens.
Einfach in /etc/xen/test.cfg folgend Eintrag einfügen:

ramdisk = '/boot/initrd.img-2.6.16-1-xen-686'

Links:

Kategorien:

Stichwörter:

debian · sarge · xen · xens · backport · backports · virtuell · image ·