Xen-Installation auf einem Server (Debian)
Auf dieser Seite wir die Installation der Virtualisierungssoftware Xen auf einem Server (unter Debian Etch) beschrieben. Im Gegensatz zu Ubuntu (wo übrigens der Xen-Kernel nie so wirklich stabil war) ist bei Debian
enthalten.
Die Erstellung von (DomU) wurde bereits beschrieben.
Links
Installation
Debian Etch
Zuerst müssen wir uns für das richtige Serverpaket (bzw. den richtigen Kernel) entscheiden, das hängt vor allem von der verwendeten Architektur ab (32 oder 64 Bit):
- für 32Bit (i386):
linux-image-xen-686
hängt vom aktuellsten Xen-Paket auf Kernel 2.6 ab, - für AMD64:
linux-image-xen-amd64
- für vollvirtualisierte Gäste zusätzlich: das Paket
xen-ioemu-3.0.3-1
Ich gehen hier einmal von 32Bit (i386) aus und installiere die nötigen Pakete.
aptitude install linux-image-xen-686 xen-hypervisor-3.0.3-1-i386-pae xen-tools bridge-utils
Die xen-tools
erleichtern das Anlegen von Gästen (Dom-U) durch Vorlagen für ein paar Systeme und tools erleichtern die Netzwerk-anbindung der Gäste.
Während der Installation wird auch der Bootmanager grub konfiguriert (Ausgabe von Etch).
Searching for GRUB installation directory ... found: /boot/grub Searching for default file ... found: /boot/grub/default Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst Searching for splash image ... none found, skipping ... Found Xen hypervisor 3.0.3-1-i386-pae, kernel: /boot/vmlinuz-2.6.18-5-xen-686 Found kernel: /boot/vmlinuz-2.6.18-5-686-bigmem Updating /boot/grub/menu.lst ... done
Der veraltete lilo läuft nicht ohne einen workaround mit Xen.
Die Konfigurationsdatei von grub (/boot/grub/menu.lst
) enthält jetzt als ersten (Kernel-)Eintrag
title Xen 3.0.3-1-i386-pae / Debian GNU/Linux, kernel 2.6.18-5-xen-686 root (hd0,1) kernel /boot/xen-3.0.3-1-i386-pae.gz module /boot/vmlinuz-2.6.18-5-xen-686 root=/dev/md0 ro console=tty0 module /boot/initrd.img-2.6.18-5-xen-686 savedefault
Diese Konfiguration verweist auf der PAE-Version von Xen und liegt auf einem Software-Raid (/dev/md0
).
Die symbolischen Verweise im Wurzelverzeichnis / sollten von update-grub
so aktualisiert worden sein, dass sie auf den Xen-Kernel zeigen:
user@host:/$ ls -l lrwxrwxrwx 1 root root 33 2008-01-22 05:19 initrd.img -> /boot/initrd.img-2.6.18-5-xen-686 lrwxrwxrwx 1 root root 30 2008-01-22 03:41 vmlinuz -> /boot/vmlinuz-2.6.18-5-xen-686
Dateien in /boot
Datei | Funktion |
---|---|
initrd.img-2.6.18-5-xen-686 | Das initrd-Image für Xen |
vmlinuz-2.6.18-5-xen-686 | das Xen-Kernel-Image |
xen-3.0.3-1-i386.gz bzw. mit PAE (siehe Fehlerbehebung) xen-3.0.3-1-i386-pae.gz | der Hypervisor |
Debian Lenny
Wiederum müssen wir uns für das richtige Serverpaket (bzw. den richtigen Kernel) entscheiden:
- für 32Bit (i386): linux-image-2.6-xen-686
- für AMD64:
linux-image-2.6-xen-amd64
- für vollvirtualisierte Gäste zusätzlich: (bisher nicht integriert?)
- die administrativen Werkzeuge: xen-shell xen-tools xenstore-utils
- optional könnte man die Dokumentation (
xen-docs-3.2
) undxenwatch
noch dazu installieren.
Ich gehen hier einmal von 64Bit (AMD64) aus und installiere alle relevanten Pakete.
aptitude install linux-image-2.6-xen-amd64 xen-hypervisor-amd64 xen-shell xen-tools xenstore-utils
Konfiguration des Xen-hosts (Dom0)
Die Konfigurationsdatei /etc/xen/xend-config.sxp
muss angepasst werden. Ein minimale Konfiguration im bridge-Modus wäre:
# -*- sh -*- # # # Xend configuration file. # # ## # To bridge network traffic, like this: # # dom0: fake eth0 -> vif0.0 -+ # | # bridge -> real eth0 -> the network # | # domU: fake eth0 -> vifN.0 -+ # # use # (network-script 'network-bridge antispoof=yes') # # If you are using only one bridge, the vif-bridge script will discover that, # so there is no need to specify it explicitly. # (vif-script vif-bridge) # # Dom0 will balloon out when needed to free memory for domU. # dom0-min-mem is the lowest memory level (in MB) dom0 will get down to. # If dom0-min-mem=0, dom0 will never balloon out. (dom0-min-mem 196) # # In SMP system, dom0 will use dom0-cpus # of CPUS # If dom0-cpus = 0, dom0 will take all cpus available (dom0-cpus 0)
- Es wird also eine Bridge in der Datei eingerichtet, die Dom0 sendet über
vif0.0
ihre Pakete ab. - Die Option
antispoof=yes
bestimmt, dass Gäste nur ihre eigene IP-Adresse verwenden. - Die Zeile
(network-script network-dummy)
sollte zu
# (network-script network-dummy)
auskommentiert werden.
Gäste automatisch starten
Xen stellt bei einem neustart des Systems (z. B. nach Sicherheitsupdates) die laufenden Gäste automatisch wieder her. Will man bei Systemstart nicht laufende Gäste starten, bietet sich einen symbolischer Link im Verzeichnis /etc/xen/auto
an. Dieser Pfad kann in /etc/default/xendomains
angepasst werden.