Aufsetzend auf meinen vorherigen Blog-Eintrag der sich mit dem Installieren und Einrichten eines Xen4 mit paravirtualisierten Maschine auf einem Debian Squeeze beschäftigte, möchte ich nun zeigen wie man mehr oder weniger hübsch eine HVM bei eingerichtetem Routing erstellen kann. In diesem HowTo setze ich einen lauffähigen Xen4 vorraus.
Installation
Sofern noch nicht geschehen bitte noch das Paket für die HVM Unterstützung für Xen4 installieren:
Erstellen einer VM
Nachdem wir alle benötigten Pakete installiert haben erzeugen wir ein File das unsere HVM später als Festplatte nutzen soll:
Dieser Befehl erzeugt uns im Verzeichnis /home/xen/domians/vserver/ eine Datei mit dem Namen disk.img und einer Größe von 10GB. Sollte eine andere Größe gewünscht sein, so einfach den Wert seek anpassen.
Nun benötigen wir noch eine Installations-CD z.b. die des Debian Squeeze und legen diese in ein Verzeichniss das wir später wiederfinden.
Nachdem wir nun eine Festplatte und eine Installations-CD haben, müssen wir Xen nurnoch dazu bewegen, das er diese beiden in einer HVM begegnen lässt.
Darum erstellen wir in dem Ordner /etc/xen/ eine datei die uns als Konfiguration für eine HVM dienen soll, zur Vereinfachung hier eine Beispiel-Konfiguration von mir: (Einträge die evtl. angepasst werden müssen din fett markiert.
# Kerneleinstellungen
kernel = ‘/usr/lib/xen-4.0/boot/hvmloader’
builder = ‘hvm’
device_model =’/usr/lib/xen-4.0/bin/qemu-dm’memory = ‘1024‘
vcpus = ‘2‘# Laufwerke
disk = [ 'file:/home/xen/domains/vserver/disk.img,ioemu:hda,w','file:/home/xen/debian-6.0.1a-i386-CD-1.iso,hdc:cdrom,r' ]
#disk = [ 'file:/home/xen/domains/vserver/disk.img,ioemu:hda,w' ]# Hostname
name = ‘vserver‘# Networking
vif = [ 'type=ioemu, mac=00:16:3E:46:7B:99, vifname=vif-vserver, ip=188.40.38.125, bridge=eth0' ]# Behaviour
boot = ‘dc’# VNC
vfb = [ 'type=vnc,vnclisten=0.0.0.0,vncunused=0,vncdisplay=1,vncpasswd=passwortvnc' ]
Erschlagen von einer relativ (!) großen Konfigurationsdatei wollen wir uns nun die einzelnen Gruppierungen ansehen:
Kerneleinstellungen:
- kernel, builder und device_model: hierbei sagen wir Xen eigentlich nur, dass die erstellte VM vom Typ HVM sein soll und somit auch die richtigen Komponenten lädt
- memory: hier geben wir an wieviel Arbeitsspeicher dieser VM zugewiesen werden soll
- vcpus: ähnlich wie bei memory weisen wir hier die virtuellen CPUs, also in den meißten Fällen Kerne des Prozessors der VM zu.
Laufwerke: Hier werden unsere beiden erzeugten bzw. heruntergeladenenen Dateien in die VM eingebunden. Der Eintrag vor dem Komma gibt hierbei die Festplatte und der Zweite das Image-File unserer Debian Installations-Cd an und weist ihr verschiedene EInstellungen zu
Hostname: dieser Punkt sollte bereits bekannt sein und gibt der HVM lediglich einen Namen an derer wir sie später wiedererkennen und ansprechen können
vif:
- type: ‘ioemu’ ist in diesem fall nötig, da wir eine HVM und keine normale paravirtualisierten Maschine erstellen und somit auch Laufwerke und Festplatten in gewisser weise emultiert werden müssen
- mac: dies ist die MAC-Adresse welche unsere virtuelle Netzwerkkarte später erhält. Die letzten 3 paare können beliebig verändert werden und es sollten nicht mehrere VMs mit der gleichen MAC läufen.
- vifname: diese einstellung ist notwendig um später das Routing ans laufen zu bekommen, wichtig hierbei ist das man den hostnamen nach diesem muster anfügen sollte: vif-<hostname der hvm>
- ip: die IP die später unsere HVM erhalten soll
- bridge: auch diese EInstellung ist nötg um ein funktionierendes Routing zu erstellen
boot: dieser Parameter gibt die Boot-Reihenfolge, ähnlich wie man es auch im BIOS jedes Rechners einstellen kann an. ‘d’ steht hierbei für die CD und ‘c’ für die Festplatte
vfb: hier richten wir ein das wir später über den Port 5901 eine VNC-Verbindung über den Host zur VM aufbauen können. Das passwort welches hierbei gesetzt wird lautet im Beispiel “passwortvnc”
Nachdem wir unsere VM-Konfiguration erfolgreich erstellt haben erzeugen wir diese wie gewohnt mit:
Nun sollte die VM laufen und bei folgendem Aufruf angezeigt werden:
ACHTUNG: Bis hierhin haben wir zwar ein Netzwerk, doch mit diesem kommen wir nicht ins Internet! Installationen können also nur von CD durchgeführt werden
Das Problem mit dem Routing und der schlechte Workaround
In den aktuellen Xen Utilities ist leider ein Bug der das Routing im ursprünglichen Sinne leider nicht zulässt.
Im wiki von Debian findet man folgenden Workaround: http://wiki.debian.org/Xen#A.22network_routing_for_hvm_guests:.22
Da ich in nächster Zeit versuchen werde ein Script zu schrieben, welches die ganze Sache vereinfacht gehe ich hier nicht nocheinmal auf die Punkte im Wiki ein. Sollte es Probleme geben einfach melden!
Letzte Kommentare