Xen 3.4.1 installieren

Der ursprüngliche Artikel beschrieb die Installation von Xen 3.x auf einem Debian etch System. Mittlerweile ist lenny draußen und Xen schon in der Version 3.4.1. Somit habe ich das HowTo ein klein wenig angepasst. Ich gehe von einem minimalen, frisch installierten Debian lenny aus. Dieses Howto richtet sich hauptsächlich an Leute mit ein wenig Linux-Erfahrung, es handelt sich also nicht um ein copy and paste howto. Zwischenschritte, wie z.B. das Entpacken der Sourcen, habe ich ausgelassen.
Mittlerweile ist Xen 3.4.2 erschienen, dieses Howto ist an einigen Stellen entsprechend angepasst.Falls noch nicht geschehen, müssen einige Pakete und Abhängigkeiten erfüllt werden.

apt-get install binutils bcc bzip2 cpp cpp-4.1 gcc gcc-4.1 libc6-dev libglib2.0-0 libssl-dev linux-libc-dev libgcrypt11-dev mc psmisc python-dev python2.4-dev screen zlib1g-dev make mercurial gawk libncurses5-dev patch gettext x11proto-core-dev pciutils-dev pkg-config bridge-utils iproute texinfo

Die jeweils aktuellen Sourcen gibt es bei xen.org, zur Zeit ist es die Version 3.4.2.

Nach dem Auspacken der Sourcen kompilieren wir direkt die Tools. Wer kein PAE benötigt, kann den Schalter entsprechend weg lassen.  Ich habe hier noch den Parameter KERNELS übergeben, da ich für dom0 und die domUs gerne separate, optimierte Kernel verwenden möchte.
Hinweis: Aktuell hatte ich ein paar Fehlermeldungen beim kompilieren. Nachdem ich das Kernel-Paket passend zu Xen 3.4.2 gezogen und den Symlink /usr/src/linux darauf gesetzt habe, war der Fehler Geschichte.

make -j4 XEN_TARGET_X86_PAE=y world KERNELS="linux-2.6-xen0 linux-2.6-xenU"
make -j4 XEN_TARGET_X86_PAE=y install KERNELS="linux-2.6-xen0 linux-2.6-xenU"

Wenn das ganze fehlerfrei durchgelaufen ist, können wir die Konfiguration der Kernel vornehmen.

make linux-2.6-xen0-config CONFIGMODE=menuconfig
make linux-2.6-xenU-config CONFIGMODE=menuconfig

… und die Kernel bauen und installieren.

make -j 4 linux-2.6-xen0-build
make -j 4 linux-2.6-xen0-install

Je nach Kernelkonfiguration benötigen wir noch eine initrd.

mkinitramfs -o /boot/initrd.img-2.6.18.8-xen0 2.6.18.8-xen0

Nachdem die voran gegangenen Schritte erfolgreich durchgelaufen sind, kann jetzt grub aktualisiert werden. Die Konfiguration sollte auf jeden Fall überprüft und ggf. um xen-spezifische Parameter ergänzt werden.

update-grub

Noch den automatischen Start des Xen-Dienstes aktivieren.

update-rc.d xend defaults

Hoffen, daß alles geklappt hat, beten und …

reboot

Falls der Server nach dem reboot nicht erreichbar ist, kann dies sehr viele Ursachen haben. Entweder, er kann das Filesystem garnicht einhängen oder – wie aktuell bei mir passiert – muß eine udev-Regel angepasst werden, weil er eth0 in eth1 umgenannt hat und der Server von außen somit nicht erreichbar war.

Sinnvoll ist auch die Installation der Xen-Tools.
Für derenInstallation werden noch ein paar zusätzliche Pakete benötigt.

apt-get install debootstrap perl perl-modules libtext-template-perl libconfig-inifiles-perl

Das Debian-Paket gibt es auf dem FTP-Server von Debian.

wget http://ftp.de.debian.org/debian/pool/main/x/xen-tools/xen-tools_3.9-4_all.deb

Installieren …

dpkg -i xen-tools_3.9-4_all.deb

Nun können auf recht einfache Weise neue Gastinstanzen erstellt werden.

xen-create-image --fs=ext3 --passwd --dist=lenny --lvm=<VOLGROUP> --swap=2GB --size=10GB --mac=<MAC> --ip=<IP> --gateway=<GATEWAY-IP> --hostname=<HOSTNAME> --netmask=255.255.255.248 --memory=1024MB --kernel=/boot/vmlinuz-2.6.18.8-xenU

In der erzeugten config müssen noch bei Bedarf die Kernel/initrd angepasst werden.

Kernel path    :  /boot/vmlinuz-2.6.18.8-xen0
Initrd path    :  /boot/initrd.img-2.6.18.8-xen0

3 Kommentare
  1. Bender
    Bender sagte:

    Hallo

    Ich habe alles wie oben beschrieben gemacht. Es hat alles wunderbar geklappt. Nur nach dem reboot hat udev eth0 in eth1 unbenannt. Den Gast (Debian Lenny) habe ich deswegen noch nicht restellt. Wie bringe ich udev bei das es eth0 (hat feste Lan-IP) so lässt wie es ist.

    Danke

  2. Andre
    Andre sagte:

    In der /etc/udev/rules.d/XXX_persistent-net.rules wird mitels der MAC-Adresse die Schnittstelle festgelegt.
    Dort die MAC-Adresse der Netzwerkkarte eintragen und mit eth0 bennennen, z.B.
    # device: eth0
    SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="ZZ:AB:CD:EF:GH:IK", NAME="eth0"

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.