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 <code>/etc/apt/sources.listcode> aufnehmen:
deb http://www.backports.org/debian/ sarge-backports main
Pinning für die benötigten Pakete in <code>/etc/apt/preferencescode> 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: <code>686code> für P4 / Xeon oder <code>K7code> 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 <code>/boot/grub/menu.lstcode>:
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 <code>/etc/xen/xend-config.sxpcode> kontroliert werden, ob <code>(network-script network-bridge)code> (ca. Zeile 73) und <code>(vif-script vif-bridge)code> (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: <code>Peth0code> und <code>vif0.0code> 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 <code>/etc/xen-tools/xen-tools.confcode>. (Hier eine gekürze Fassung)
Es geht vorallem um die richtigen Einstellungen für <code>initrdcode> & <code>kernelcode>, <code>gatewaycode> & <code>netmaskcode> und natürlich, wieviel Resourcen jedes xens haben darf: <code>memorycode> & <code>sizecode> & <code>swapcode>.
# # /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 <code>Strg+]code> 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 <code>xen-toolscode>) kann es sein, daß test.cfg noch einen Ramdisk-Eintrag braucht.
Typisches Symtom sind boot-Probleme des xens.
Einfach in <code>/etc/xen/test.cfgcode> folgend Eintrag einfügen:
ramdisk = '/boot/initrd.img-2.6.16-1-xen-686'
Links:
- Wikipedia über Xen
- Info's über Backports
- Artikel: Debian Sid gets Xen 3.0
- Artikel: Xen from Backports on Debian Sarge