Xen 3 & HVM

HVM est l'abstraction de Xen concernant la virtualisation matérielle (dispo sur les Intel™ avec VT et les AMD™ avec Pacifica). Cet article se base sur mon expérience avec de l'intel VT, sur un dom0 linux (debian etch).

Installer son dom0

Rien de plus simple :

  • Installer normalement sa distribution
  • Réserver de l'espace “vide” pour les domU

puis

apt-get install sudo less xen-hypervisor-3.0.3-1-i386 xen-utils-3.0.3-1 xen-tools iproute bridge-utils debootstrap bridge-utils libc6-xen xen-linux-system-2.6.18-3-xen-vserver-686 xen-ioemu-3.0.3-1

Préparer la place pour les domU

Comme nous sommes des gens prévoyants, et qu'on se dit qu'on aura peut être besoin de plus de place, on va utiliser LVM, qui permet de retailler les partitions de façon conviviale :)

Pour l'exemple on travaillera sur /dev/sda5 qui est une partition de 200G.
On va y créer un volume physique avec :

pvcreate /dev/sda5

Puis un “volume group” appelé “dom-u”

vgcreate dom-u /dev/sda5

Et maintenant on crée les volumes logiques destinés à recevoir les domUs

lvcreate -n serveur_web --size 25G dom-u
lvcreate -n serveur_ldap --size 20G dom-u
lvcreate -n serveur_mysql --size 50G dom-u

Au passage, la conf réseau (bridgée)

auto br-xen
iface br-xen inet static
        address 192.168.X.Y
        netmask 255.255.255.0
        gateway 192.168.X.Y
        dns-nameservers 192.168.X.Y
        dns-search mon.domaine.com

        bridge_ports eth1
        # optional
        bridge_maxwait 0

Les confs des domU

Voici un fichier de conf typique pour une machine virtuelle HVM :

kernel = "/usr/lib/xen-default/boot/hvmloader"
builder = "hvm"

memory  = "256"

disk = [ 'phy:/dev/dom-u/serveur_web,ioemu:hda,w', 'file:/votre/stuff/etch.iso,hdc:cdrom,r' ]
device_model = '/usr/lib/xen-default/bin/qemu-dm'

name    = 'serveur_web'

vif  = [ 'type=ioemu, bridge=br-xen' ]

vnc=1
vnclisten="<ip du dom0>"
vncunused=0
vncdisplay=1

boot = "dca"

on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'

Pour installer on utilise l’ordre de boot “dca”, mais au premier reboot il faut passer sur “cda” (et accessoirement on pourra enlever le CD)

Constaté avec un domU en debian etch : penser à changer l’interface eth0 en “auto” et pas “allow-hotplug”, sinon apparemment l’interface ne monte pas à tous les coups (saleté).

WARNING Attention, avec l’utilisation du bridge modifier la topologie (up/down d’interface toussa) rend le bridge “inopérant” pendant quelques secondes (15 sec ici). A savoir lorsqu’une VM de prod peut être impactée.

Sur la version 3.0.3 on ne peut pas attacher de console série sur les guest HVM.

Solution de contournement : on peut fixer un display par VM. Pour ça il faut mettre “vncunused=0”, et fixer le display avec “vncdisplay=<entier>”. Selon la doc le numéro de display devrait être fixé automatiquement à l’ID du domaine, mais dans la pratique il n’en est rien.

Références

unix/xen_hvm.txt · Last modified: 2010/01/12 13:29 (external edit)