Gemeinschaft / Debian Lenny paravirtualisiert unter Citrix XenServer

Friday, January 15th, 2010 | Administration, Linux

Native Virtualisierung

Gemeinschaft ist eine Asterisk Distribution der Firma Amooma GmbH. Die Virtualisierung eines Asterisk-Servers bietet sich durch die typischerweise geringe Hardwareanforderung und das Bedürfnis nach hoher Verfügbarkeit geradezu an. Zumindest wenn man davon ausgeht, dass man ein Mediagateway für die Umsetzung IP <> ISDN verwendet. Die Virtualisierung einer PCI-Karte ist keine wünschenswerte Aufgabe, das macht keinen Spaß!

Citrix XenServer ist in einer kostenlosen Version auch für den kommerziellen Einsatz nutzbar. Mit der Software erhält man eine ausgereifte Virtualisierungslösung out of the box.

Paravirtualisierung

In diesem Artikel wird erklärt, wie man eine vollständig virtualisierte Linux Distribution in ein paravirtualisiertes System überführt. Gemeinschaft nutzt ein Debian Lenny; die Vorgehensweise unterscheidet sich nicht grundlegend zu anderen Distributionen.

  1. Für die Installation der VM muss “Other install media” als Template und der Gemeinschaft Installer als ISO-Image ausgewählt werden.
  2. Nach der Installation werden die XenServer Tools und der XenServer Kernel installiert. Dazu die CD mounten oder den Inhalt über scp auf die VM kopieren:
    dpkg -i Linux/xe-guest-utilities_5.5.0-458_i386.deb
    dpkg -i Linux/debian-generic/linux-image-2.6*
  3. Mit der Paravirtualisierung wird sich das Blockdevice der Festplatte von hda in xvda ändern. In /etc/fstab und /boot/grub/menu.lst die entsprechenden Vorkommnisse ändern. Die Datei /etc/fstab ist selbsterklärend, in menu.lst an der folgende Stelle:
    title Debian GNU/Linux, kernel 2.6.29-xs5.5.0.14
    root (hd0,0)
    kernel /boot/vmlinuz-2.6.29-xs5.5.0.14 root=/dev/xvda1 ro quiet
    initrd /boot/initrd.img-2.6.29-xs5.5.0.14
  4. Wahrscheinlich wird im XenCenter der login prompt nicht mehr erscheinen, in der Datei /etc/inittab tty1 durch hvc0 ersetzen:
    # Format:
    # :::
    #
    # Note that on most Debian systems tty7 is used by the X Window System,
    # so if you want to add more getty's go ahead but skip tty7 if you run X.
    #
    1:2345:respawn:/sbin/getty 38400 hvc0
  5. Die VM mit poweroff herunterfahren.

Unter der Konsole des XenServers wird die eigentliche Virtualisierungsmethode umgestellt. Das muss übrigens nicht zwingend auf dem Pool Master durchgeführt werden.

  1. Jeder VM ist einer UUID zugeordnet, diese kann mit dem Kommando xe vm-list herausgefunden werden.
  2. Jetzt folgt die eigentliche Umstellung der Virtualisierungsmethode:
    xe vm-param-set uuid=<uuid> HVM-boot-policy=""
    xe vm-param-set uuid=
    <uuid> PV-bootloader=pygrub
    xe vm-param-set uuid=
    <uuid> PV-args="-- quiet console=hvc0"
  3. Die virtuelle Festplatte ist noch nicht zum Booten bereiten. Für die Aktivierung wird die VBD-UUID benötigt, das Kommando xe vm-disk-list uuid=<uuid> liefert eine Liste der Blockdevices:
    Disk 0 VBD:
    uuid ( RO) : <vb-uuid>
    vm-name-label ( RO): Other install media (1)
    userdevice ( RW): 0
    Aktivierung des Blockdevices:
    xe vbd-param-set uuid=<vb-uuid> bootable=true

Fertig! Viel Glück mit der Umsetzung.

Tags: , ,

8 Kommentare to Gemeinschaft / Debian Lenny paravirtualisiert unter Citrix XenServer

yamac
March 10, 2010

moin, welche CD meinst du in punkt 2).
Auf der Citrix-installation-CD sowie auf der Linux-tools-Cd befinden sich keine Linux Ordner

mfg
yamac

infogurke
March 11, 2010

Ich meine xs-tools.iso. Einfach über die Console dem DVD Drive zuordnen.

Gruß
Martin

Uwe
March 23, 2010

Hallo,
meine fstab:
# /etc/fstab: static file system information.
#
#
proc /proc proc defaults 0 0
/dev/mapper/gemeinschaft-root / ext3 errors=remount-ro 0 1
/dev/xvda /boot ext2 defaults 0 2
/dev/mapper/gemeinschaft-swap_1 none swap sw 0 0
/dev/hdd /media/cdrom0 udf,iso9660 user,noauto 0 0

Beim Start gibts einen Fehler, dass xvda nicht vorhanden sei.

meine inittab:
1:2345:respawn:/sbin/getty 38400 hvc0
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6

die Schritte unter Punkt 5. gingen ohne Fehler.
Das Resultat beim Neustart:

0.108102] PCI: Fatal: No config space access function found
[ 0.283483] isapnp: Write Data Register 0xa79 already used
[ 0.293835] i8042.c: No controller found.
[ 0.294800] IO APIC resources could be not be allocated.

Was mache ich falsch?

Gruß Uwe

infogurke
March 23, 2010

Bist du sicher, dass der Xen Kernel ausgeführt wird?

Bei mir ist es der folgende Kernel, inzwischen nutze ich XenServer 5.5 Update 2:

[ 0.000000] Linux version 2.6.29-xs5.5.0.15 (root@chocky-2) (gcc version 4.3.
2 (Debian 4.3.2-1.1) ) #1 SMP Wed Nov 11 12:18:17 UTC 2009

Gruß
Martin

Uwe
March 23, 2010

Ich nutze auch die neueste Version. Nach dem installieren der Tools, startet laut Anzeige der Konsole der von Dir gepostete Kernel. Das jedoch bereits ohne mein Zutun, sprich Eintrag in die menu.lst. Das Script scheint das selbst zu bewerkstelligen.

Uwe

Infogurke
March 23, 2010

Ja der Kernel ändert die grub.conf.

Kannst du mal die komplette menu.lst posten?

Interessant wäre auch ein Screenshot von der Fehlermeldung beim Booten, kannst Mr das auch per Mail schicken.

Gruß
Martin

Uwe
March 25, 2010

Ich habe eine Mail an die Adresse im Impressum geschickt.

Gruß

Uwe

Phil
June 9, 2010

Hallo,

macht denn der Asterisk unter Xen keine Timing-Probleme? In der Vergangenheit liefen virtualisiert ja teilweise die Ansagen in falschen Tempo ab.

Gruß
Phil