XEN - OpenSource Virtualisation

Création de l'article : 15/11/2008
Mise à jour : 22/11/2008

Travaillant beaucoup avec VMWARE j'ai décidé de tester XEN qui semble être un concurent très sérieux à VMWARE.

XEN est donc une solution de virtualisation très similaire à VMWARE ESX à la différence des performances comme
on peux le voir ici :

http://www.cl.cam.ac.uk/research/srg/netos/xen/performance.html

XEN par contre est plus exigeant que VMWARE au niveau de l'installation et il n'est pas forcément compatible avec des OS
propriétaire (cela dépend du processeur de la machine hôte).

Mise en place de la machine hôte (ici une CENTOS 5.2 :))  

RPM à installer (yum install):

kernel-xen
virt-manager
xen

kernel-xen
kernel-xen-devel
kernel-headers
kernel-devel

Création d'un réseau virtuel :

Le fichier XML suivant est créé :

<network>
<name>virbr1</name>
<uuid>98361b46-1582-acb7-1643-85a412626e70</uuid>
<forward dev='wlan0'/>
<bridge name='virbr1' stp='on' forwardDelay='0' />
<ip address='10.100.100.1' netmask='255.255.255.0'>
<dhcp>
<range start='10.100.100.100' end='10.100.100.110' />
</dhcp>
</ip>
</network>

Ici on créé un bridge sur l'interface WLAN0 car la machine hôte dispose d'une carte PCI WIFI.

virsh net-create /hosting/xenservers/network.xml

Pour démarrer cette interface automatiquement on peux créer un lien symbolique :

ln -s /hosting/xenservers/virbr1_network.xml /etc/libvirt/qemu/networks/autostart/virbr1_network.xml

Création & installation de la machine virtuelle :

La commande virt-install permet de lancer et de créer une nouvelle machine ayant des problèmes
avec l'installation HTTP sur les serveurs officiels j'ai finnalement créé un mirroir sur ma machine !

virt-install --network network:virbr1 -p --os-variant=centos5 -r 256 -f /hosting/xenservers/iluxmailvsr1/diskfile -n iluxmailvsr1 --nographics --keymap=fr -l http://10.100.100.1/centos52/i386/ -d

Cette commande lance la machine virtuelle et provoque la création d'un fichier de configuration : /etc/xen/iluxmailvsr1

Là magie ! dans une console PUTTY je lance l'installation de ma machine virtuelle linux !

On peux ensuite afficher l'activité des machines virtuelles avec la commande : xm top

 

Résultats des course :

On peux alors lancer la VM :

La commande est :

xm create -c iluxmailvsr1

Je sais .... c'est pas très logique comme nom mais ca marche comme ca avec XEN !

On ouvre une console dessus :

xm console iluxmailvsr1

La machine virtuelle se lance depuis putty en se connectant sur la machine hôte :)

Configuration de la machine virtuelle :

Sur la machine hôte :

On vient ajouter le démarrage automatique de la machine :

[root@xenserver xen]# ln -s /etc/xen/iluxmailvsr1 /etc/xen/auto/iluxmailvsr1

On peux vérifier que tout est ok :

[root@xenserver xen]# service xendomains restart
[root@xenserver xen]# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 747 1 r----- 46.3
iluxmailvsr1 2 256 1 ------ 1.6

La machine s'est bien lancée toute seule ;)

Sur la machine virtuelle :

/etc/resolv.conf
nameserver 10.100.100.1

/etc/sysconfig/network-scripts/ifcfg-eth0
# Xen Virtual Ethernet
#DEVICE=eth0
#BOOTPROTO=dhcp
HWADDR=00:16:3E:23:9A:B5
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.100.100.2
NETMASK=255.255.255.0
GATEWAY=10.100.100.1

Affiche & configuration du réseau de la VM :

La commande brctl nous permet ici d'afficher les ponts réseaux disponibles :

[root@xenserver ~]# brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.000000000000 yes
virbr1 8000.feffffffffff yes vif5.0

Ensuite il nous reste a publier le service web par iptables par exemple :

[root@xenserver ~]# iptables -t nat -I PREROUTING -p tcp -d 192.168.0.20 --dport 80 -j DNAT --to-destination 10.100.100.2

Et voilà notre petite machine prête !
Bon courage avec XEN :)

 

Annexe

Tutorial pour utilser XEN avec CENTOS : http://www.howtoforge.com/centos_5.0_xen
Tutorial sur le site de CENTOS : http://wiki.centos.org/HowTos/Xen/InstallingCentOSDomU

Site officiel : http://www.xen.org

 

© Bastien Barbe 2008