Installationsleitfaden


Xen 4.x auf Debian GNU/Linux 7.0 „wheezy“

Grundsystem / Wirtsystem / Gastsystem


W. Jennert

März 2013


Inhaltsverzeichnis

1 Installation des Grundsystems

1.1 Partitionierung

1.2 Sonstiges zur Installation von Squeeze

2 Installation des Xen-Wirtsystems (Dom0)

2.1 Anpassungen vorab

3 Installation/Einrichten von Xen

4 Installation eines Xen-Gastsystems (DomU)

4.1 xen-tools.conf

4.2 Xen-Gastsystem erstellen

4.3 Erster Start des Gastsystems

4.4 Anpassungen im Xen-Gastsystem

4.5 Autostart des Xen-Gastsystems

4.6 Beseitigen eines Xen-Gastsystems

5 xm Verwaltungstool

6 Bridging

7 Und jetzt...


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.


1.1 Partitionierung

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)

2.1 Anpassungen vorab

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


Pvscan muss jetzt freien Speicher anzeigen

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!


4 Installation eines Xen-Gastsystems (DomU)

Sollte das Xen-Wirtsystem (die Dom0) ohne Problem gestartet sein, kann es an das Einrichten des Xen-Gastsystems (der ersten DomU) gehen.


4.1 xen-tools.conf

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


4.2 Xen-Gastsystem erstellen

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.


5 xm Verwaltungstool

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


6 Bridging

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.


7 Und jetzt...

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.