HowTo: Xen4 HVM mit Routing und Installation von CD/DVD-Image unter Debian Squeeze

 
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:

root@xenhost:$ apt-get install xen-qemu-dm-4.0

 

Erstellen einer VM

Nachdem wir alle benötigten Pakete installiert haben erzeugen wir ein File das unsere HVM später als Festplatte nutzen soll:

root@xenhost:$ dd if=/dev/zero of=/home/xen/domains/vserver/disk.img bs=1k seek=10240k count=1

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. ;)

root@xenhost:$ cd /home/xen/ && wget http://cdimage.debian.org/debian-cd/6.0.1a/i386/iso-cd/debian-6.0.1a-i386-CD-1.iso

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:

root@xenhost:$ xm create /etc/xen/vserver.cfg

Nun sollte die VM laufen und bei folgendem Aufruf angezeigt werden:

root@xenhost:$ xm list

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!

 

Kommentar schreiben

10 Kommentare.

  1. Thanks for the help in this question, I too consider, that the easier, the better …

  2. Отлично это всем пригодиться
    :smile:

    ———————————
    ремонт холодильников

  3. You’re the best! Take care.

  4. Спасибо это вы хорошо сделали что выложили.
    :smile:

  5. truly loved the article added to my favourites

  6. Thank you very much for that astonishing article

  7. I learned a lot from this post, much appreciated! :)

  8. Great article . Will definitely copy it to my blog.Thanks.

Kommentar schreiben


Hinweis - Du kannst dies benutzenHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre user="" computer="" escaped="">