Installationsleitfaden
Xen 4.x auf Debian GNU/Linux 7.0 „wheezy“
Grundsystem / Wirtsystem / Gastsystem
W. Jennert
März 2013
1 Installation des Grundsystems
1.2
Sonstiges zur Installation von Squeeze
2 Installation des Xen-Wirtsystems (Dom0)
3 Installation/Einrichten von Xen
4 Installation eines Xen-Gastsystems (DomU)
4.3
Erster Start des Gastsystems
4.4
Anpassungen im Xen-Gastsystem
4.5
Autostart des Xen-Gastsystems
4.6
Beseitigen eines Xen-Gastsystems
Um für mich selbst die Installation von Xen 4.0 auf Debian GNU/Linux 7.0 "wheezy rc1“ in ein reales Dateisystem jederzeit wiederholbar zu machen, habe ich diese kurze Anweisung geschrieben. Grundlage war ein Leitfaden für Debian 6.0 „squeeze“ von Stefan Heinrich. Die Basis für diese Anleitung ist, neben vielen anderen Informationen aus dem Internet, http://wiki.debian.org/Xen.
Am Ende der Anleitung sollte auf dem Xen-Debian-Wirtsystem ein Xen-Debian-Gastsystem laufen, weitere Gastsysteme sollten nach dem vorgestellten Schema problemlos eingerichtet werden können.
1 Installation des Grundsystems
Was die Installation von Debian GNU/Linux angeht, so möchte ich darauf nur in so weit eingehen, wie die Installation Besonderheiten wegen Xen aufweist.
Mittlerweile habe ich es mir abgewöhnt, das Betriebssystem in viele Partitionen zu zerlegen. Es ist doch ärgerlich, wenn man in einer Partition an die Grenzen stößt, wobei eine andere Partition noch ausreichend Platz bietet. Für den Xen-Server bedeutet das, eine / Partition und eine Swap-Partition für das Betriebssystem inklusive des Gastsystems und der restliche Platz wird zu einem LVM (alles in einem RAID, wie es sich für einen Server gehört). Die Volumengruppe heißt bei mir "xendata“. Das LVM bleibt aber ohne logische Einheiten; das lassen wir nachher von den Werkzeugen von/für Xen erledigen.
Netinstaller wheezy:
Advanced options – expert install
Guided partitioning
Use entire Disk + LVM + separate /home
Dieses /home wird die 'Data-' Partition für XEN und muss daher hier umbenannt werden (mountpoint /xendata oder wie gewünscht)!
1.2 Sonstiges zur Installation von wheezy
Ansonsten verläuft die (Standard-)Installation im Experten-Modus von einer CD, der Rest kommt vom Spiegelserver. Tasksel wird angewiesen die grafische Oberfläche nicht zu installieren, dafür aber den SSH-Server. Als Bootloader ist Grub zu wählen.
2 Installation des Xen-Wirtsystems (Dom0)
Die /etc/apt/sources.list darf ruhig auf die DVD(s) verzichten, die Adressen im Netz sollten schon eingetragen sein (macht der neue Installer richtig). Außerdem sollte in /etc/default/grub eine Zeile mit folgendem Inhalt eingefügt werden:
Listing 1: /etc/default/grub
GRUB_DISABLE_OS_PROBER = true
Das update-grub kommt zu einem späteren Zeitpunkt; keine Sorge also, weil es hier noch nicht auftaucht.
Das guided partitioning hat die gesamte Festplatte beschlagnahmt, einen kleineren Teil für das Grundsystem, den größeren Teil für /xendata. Diese (logische) Partition muss nun freigegeben werden damit für die XEN-Gastsysteme eigene Partitions erstellt werden können.
Dazu in /etc/fstab den entsprechenden Eintrag entfernen (rauskommentieren), so was wie: # /dev/mapper/xendata …
Die genannte Partition aushängen: umount /dev/mapper/xendata
Die Partition aus LVM löschen:
Lvscan anzeigen lassen
Lvremove /dev/group name/xendata/ löschen
3 Installation/Einrichten von Xen
Nun gilt es die benötigte Software zu installieren:
aptitude install xen-linux-system debootstrap xen-tools vim
Jetzt müssen wir das System veranlassen den Xen-Kernel bevorzugt zu starten. Das passiert mit folgender Eingabe:
mv -i /etc/grub.d/10_linux /etc/grub.d/21_linux
update-grub oder update_grub2
Nun gilt es noch zwei Dateien zu bearbeiten. Dazu die entsprechenden Parameter in den einzelnen Dateien suchen und anpassen.
Listing 2: /etc/default/xendomains
XENDOMAINS_RESTORE = false
XENDOMAINS_SAVE =""
Listing 3: /etc/xen/xend-config.sxp
( network-script 'network-bridge antispoof =yes ')
Das wäre es dann auch soweit. Grub sollte bei einem Neustart nun automatisch das Xen-Wirtsystem starten; pvscan überprüfen (siehe 2.1).
Das hat (inklusive Gastsystem) für einen Test im Intranet, i. e. DHCP-Netzwerk funktioniert, nicht jedoch für eine statische IP-Adresse: siehe 5!
Sollte das Xen-Wirtsystem (die Dom0) ohne Problem gestartet sein, kann es an das Einrichten des Xen-Gastsystems (der ersten DomU) gehen.
Als erstes muss die Konfigurationsdatei für alle folgenden Gastsysteme bearbeitet werden. Hier heißt es genau und gründlich alles durchzulesen, denn eventuell benötigt Ihr andere oder zusätzliche Anpassungen als die im folgenden beschrieben:
Listing 4: /etc/xen-tools/xen-tools.conf
lvm = xendata
size = 40 Gb #Oder wie auch immer …
memory = 1Gb
swap = 2Gb
gateway = 192.168. x.x # Entsprechend Euren Werten anzupassen
netmask = 255.255.255.0
broadcast = 192.168. x .255
bridge = xenbr0
passwd = 1
mirror_wheezy = http://ftp.de.debian.org/wheezy oder anderen mirror
copyhosts = 1
Per folgendem Befehl aus den xen-tools und mit ein wenig Geduld entsteht jetzt das Gastsystem.
xen-create-image --hostname xen1 --ip 192.168.x.x --scsi --vcpus 1 --pygrub --dist wheezy
Ihr müsst hierbei noch ein root-Kennwort vergeben und könnt (mehr oder weniger) beobachten, wie die Partitionen im LVM eingerichtet werden und das Gastsystem eingespielt wird.
4.3 Erster Start des Gastsystems
Neben dem Erstellen der Partitionen und des Debian-Systems, wurde auf dem Wirtsystem auch noch die kleine Datei /etc/xen/xen1.cfg kreiert. Mit Hilfe dieser Datei und dem bereits vorher installierten Paket xen-tools könnt Ihr das Gastsystem starten aber auch noch Änderungen vornehmen. Bitte in der genannten Datei unbedingt überprüfen, ob xvda1 anstatt von sda1 und xvda2 anstelle von sda2 eingetragen sind, außerdem passe ich noch die mac-Adrresse an (wobei die letzte Ziffer bei mir eine durchlaufende Nummer ist).
Listing 5: /etc/xen/xen1.cfg
vif = [ 'ip =192.168.?.? , mac =00:16:3 e :00:00:01 , bridge = xenbr0 ' ]
Gestartet wir nun mit folgendem Kommando:
xm create -c /etc/xen/xen1.cfg
Ohne das -c müsstet Ihr manuell zur entsprechenden Konsole wechseln (siehe 5).
4.4
Anpassungen im Xen-Gastsystem
Das einzige, was noch zu tun übrig bleibt, ist evtl. per dpkg-reconfigure locales die Umgebung anzupassen bzw. überprüfen.
4.5
Autostart des Xen-Gastsystems
Um das Gastsystem bei jedem Start des Servers automatisch mit zu starten, erstellt Ihr bitte ein neues Verzeichnis mit dem Namen auto unter /etc/xen und linkt dort die entsprechende .cfg-Datei hin.
cd /etc/xen
mkdir auto
ln -s /etc/xen/xen1.cfg /etc/xen/auto/
4.6 Beseitigen eines Gastsystems (DomU)
Mittels
Xen-list-images
können die erstellten Gastsysteme gelistet werden.
Xen-delete-image <image name>
Löscht ein Gastsystem, auch die Lvm Einträge und den symbolischen Link.
xm list
Eine Liste der derzeit laufenden Xen-Gastsysteme anzeigen.
xm list
xm console
Wechsel vom Xen-Wirtsystem in ein Xen-Gastsystem; unter der Angabe der ID-Nummer von xm list, hier 1.
xm console 1
xm shutdown
Das Beenden eines Xen-Gastsystems.
xm shutdown 1
xm destroy
Funktioniert ein shutdown nicht, kann man mit diesem Befehl das Xen-Gastsystem zerstören.
xm destroy 1
xm create
Siehe 4.3.
xm mem-set
Ändert die Größe des Speichers während die DomU läuft.
xm mem-set 1 512M
xm vcpu-set
Ändert die Anzahl der zugeordneten VCPUs während die DomU läuft.
xm vcpu-set 1 1
Da nach Beschreibung das Xen-eigene bridging funktionieren kann oder auch nicht, wird empfohlen über die Netzwerkkonfiguration (Datei interfaces) zu ‚bridgen’.
Bei mir hat das Xen-Script nur für DHCP funktioniert, nicht für statische Adressen, so dass folgende Konfiguration zum Tragen kam:
As newer versions of XEN can use the system bridge rather than its own script we need to edit the network configuration to invoke our new bridge. Firstly create our new bridge interface. Replace the IP values with your settings.
vi /etc/network/interfaces
auto
xenbr0
iface
xenbr0 inet static
bridge_ports
eth0 richtigen
Port eintragen
address
172.20.45.1 eigenes
Netzwerk eintragen
netmask
255.255.0.0
network
172.20.0.0
broadcast
172.20.255.255
gateway
172.20.0.1
Reboot und überprüfen.
Nun habt Ihr das erste laufende Xen-Gastsystem auf Eurem Wheezy-Xen-Wirtsystem. Per
tasksel
könnt Ihr jetzt die gewünschten Serverpakete einspielen oder wie gehabt per apt bzw. aptitude oder aus einer Source Programme installieren. Neue Gastsysteme könnt Ihr einfach, eventuell mit angepasster xen-tools.conf-Datei, wie oben beschrieben hinzufügen (siehe 4.2).
Solltet Ihr Probleme haben, so möchte ich auf die folgende Seite verweisen: http://wiki.xensource.com/xenwiki/XenCommonProblems , aber auch auf der zu dieser Internetseite gehörenden Mailingliste wird Euch gerne geholfen werden.
Rechtlicher Hinweis
Der Autor dieser Anleitung ist nicht verantwortlich für die Funktion oder Fehler, der in dieser Anleitung beschriebenen Software. Bei der Erstellung des Textes wurde mit größter Sorgfalt vorgegangen. Trotzdem können Fehler nicht vollständig ausgeschlossen werden. Für fehlerhafte Angaben und deren Folgen wird weder die juristische Verantwortung, noch irgendeine Haftung durch den Autor übernommen.
Diese Dokumentation ist lizenziert unter der Creative Commons Lizenz mit den Bedingungen "Namensnennung - Keine kommerzielle Nutzung - Weitergabe unter gleichen Bedingungen“ in der Version 3.0, ausführlich nachzulesen unter
http://creativecommons.org/licenses/by-nc-sa/3.0/de/legalcode.