====== Xen-Installation auf einem Server (Debian) ======
Auf dieser Seite wir die Installation der Virtualisierungssoftware [[xen:Xen]] auf einem Server (unter [[debian:Debian]] Etch) beschrieben. Im Gegensatz zu [[ubuntu:Ubuntu]] (wo übrigens der Xen-Kernel nie so wirklich stabil war) ist bei [[debian:Debian]]
* bei Etch: [[xen:Xen]] in der Version 3.0
* bei Lenny: [[xen:Xen]] in der Version 3.2
enthalten.
Die [[xen:DomUs bzw. Gäste erstellen|Erstellung von (DomU) wurde bereits beschrieben]].
* [[xen:konfiguration#Netzwerk-Anbindung]]
===== Links =====
* [[http://www.howtoforge.de/howto/wie-du-deinen-xen-pae-kernel-mit-mehr-als-4gb-ram-arbeiten-lassen-kannst-debian-etch-mit-grub/|Wie Du Deinen Xen-PAE Kernel Mit Mehr Als 4GB RAM Arbeiten Lassen Kannst (Debian Etch Mit GRUB)]]
===== Installation =====
==== Debian Etch ====
Zuerst müssen wir uns für das richtige Serverpaket (bzw. den richtigen [[linux: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 [[xen:DomUs bzw. Gäste erstellen|Anlegen von Gästen (Dom-U)]] durch Vorlagen für ein paar Systeme und tools erleichtern die [[xen:konfiguration#Netzwerk-Anbindung|Netzwerk-anbindung der Gäste]].
Während der Installation wird auch der Bootmanager [[linux:Bootmanager und Bootprozess#grub|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 [[http://wpkg.org/Running_Xen_with_LILO|lilo läuft nicht ohne einen workaround]] mit [[xen:Xen]].
Die Konfigurationsdatei von [[linux:Bootmanager und Bootprozess#grub|grub]] (''/boot/grub/menu.lst'') enthält jetzt als ersten ([[linux: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:Xen]] |
| ''vmlinuz-2.6.18-5-xen-686'' | das [[xen:Xen]]-[[linux:Kernel]]-Image |
| ''xen-3.0.3-1-i386.gz'' bzw. mit PAE (siehe [[xen: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 [[linux: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: FIXME (bisher nicht integriert?)
* die administrativen Werkzeuge: xen-shell xen-tools xenstore-utils
* optional könnte man die Dokumentation (''xen-docs-3.2'') und ''xenwatch'' 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
FIXME
===== 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.