24.10 Installation von Gastsystemen 

Gastsysteme können auf physische Partitionen oder in Image-Dateien installiert werden. In beiden Fällen haben Sie die Wahl zwischen der Verwendung fertiger System-Images und der manuellen Installation eines Gastsystems. Bei der Installation auf physischen Partitionen empfiehlt sich die Verwendung von evms. Das schafft nicht nur mehr Übersicht, sondern ermöglicht auch Snapshots von Partitionen der Gastsysteme, so dass eine besonders einfache Wiederherstellung möglich ist.
Gast-Linux auf einer virtuellen Maschine installieren
Es gibt grundsätzlich zwei Möglichkeiten, ein Gastsystem zu installieren:
- in ein eigenes reales Dateisystem
- in eine Image-Datei im Dateisystem des Xen-Wirtsystems
In ein eigenes reales Dateisystem installieren
Ist auf der Festplatte noch Platz für weitere Partitionen, können Sie ein Linux für eine virtuelle Maschine ganz normal von einer bootfähigen CD in diese freien Bereiche installieren. Der Bootmanager darf allerdings nicht in den MBR geschrieben werden, da ja Xen das virtuelle Linux startet, nicht GRUB. Für weitere VMs kann das so von CD installierte System kopiert werden.
Um ein /-Dateisystem-Image mit 1 GB und ein Swap-Image mit 256 MB zu erzeugen, müssen Sie Folgendes eingeben:
mkdir /var/images dd if=/dev/zero of=/var/images/vm1disk bs=1024k count=1024 dd if=/dev/zero of=/var/images/vm1swap bs=1024k count=256 mkfs.ext3 /var/images/vm1disk && mkswap /var/images/vm1swap
Mit count=''Zahl'' wird die Größe des Images im MB definiert. Das erstellte Image binden Sie in das Unix-Dateisystem mit
mkdir /mnt/disk mount -o loop /var/images/vm1disk /mnt/disk
ein. Nun kann ein Betriebssystem in die Image-Datei kopiert werden. Ich möchte im Folgenden Debian als virtuelle Maschine einrichten. Hierzu nutze ich debootstrap. Das Programm debootstrap muss natürlich auf dem Xen-System installiert werden:
sudo apt-get install debootstrap
Nach der Einbindung eines Images in das Dateisystem wird z. B. ein Debian-Linux installiert mit:
debootstrap --arch i386 sarge /mnt/disk http://debian.tu-bs.de/debian/
Hierbei passen Sie die Quelle mit http:// eigenen Wünschen entsprechend an.
Vorlage
Ist das Image nun erfolgreich erzeugt worden, kann es als Vorlage für weitere virtuelle Maschinen (VM) dienen. Für eine neue VM wird diese Datei einfach kopiert und angepasst. Dazu wechseln Sie bitte zunächst aus Sicherheitsgründen in eine chroot-Umgebung:
chroot /mnt/disk /bin/bash
Anschließend passen Sie den neuen virtuellen PC über die folgenden Dateien an:
/etc/hostname => Hostnamen eintragen /etc/network/interfaces => Netzwerk konfigurieren, z. B. auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.11 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 /etc/apt/sources.list => Quellen anpassen /etc/fstab => Dies z. B. anpassen wie folgt: /dev/sda1 / ext3 errors=remount-ro 0 1 /dev/sda2 none swap sw 0 0 proc /proc proc defaults 0 0
Wie bei dem Xen-Hostsystem müssen Sie auch auf dem Gastsystem TLS deaktivieren:
mv /lib/tls /lib/tls.disabled
Nun gehen Sie aus der chroot heraus und entfernen das Image aus dem Dateisystem:
exit umount /mnt/disk
Nach dem Starten der VM brauchen Sie nur noch die Debian-Grundkonfiguration durchzuführen:
base-config
VM starten
Die Beispiel-Konfigurationsdatei /etc/Xen/xmexample1 müssen Sie kopieren und anschließend an die eigene Umgebung anpassen. Hier sehen Sie ein Beispiel für die Einträge:
kernel = "/boot/vmlinuz-2.6.12-XenU" ## RAM-Speicher-Zuweisung (in Megabyte) für die neue Domain memory = 128 ## Name des virtuellen Servers name = "Xenvm1" ### Liste von zugewiesenen Partitionen oder Image-Dateien ## Eintrag für das oben genannte debootstrap-Beispiel mit Image. disk = [ 'file:/var/images/vm1disk,sda1,w', 'file:/var/images /vm1swap,sda2,w' ] ## Beispiel für reale Partitionen #disk = [ 'phy:hda7,sda1,w', 'phy,sda2,w' ] root = "/dev/sda1 ro"
Um eine VM starten zu können, muss, falls er nicht schon läuft, der Xen-Dämon Xend gestartet werden:
Xend start
Wenn die Konfigurationsdatei z. B. Xenvm1 genannt wurde, kann die VM mit
xm create -c Xenvm1 vmid=1
gestartet werden. Das -c bewirkt, dass man nach dem Start der VM gleich auf ihrer Konsole landet. Die Boot-Meldungen sollten beim create über den Bildschirm laufen, und abschließend sollte der Login-Prompt erscheinen.
VM automatisch starten
Um virtuelle Maschinen automatisch nach einem Reboot des Xen-Hostsystems zu starten, muss die Konfigurationsdatei in das korrekte Verzeichnis /etc/Xen/auto verlinkt werden. Für eine Beispiel-Konfigurationsdatei mit Namen Xenvm1 ist Folgendes einzugeben:
ln -s /etc/Xen/Xenvm1 /etc/Xen/auto/