Auteur:


Date:
29/06/2009

Catégories:
Open-source
Planet-libre
Systeme

Tags:




Installation pas à pas de Xen sous Debian

Le but de ce billet est d'installer un serveur de de virtualisation Xen (Wiki) sur un système GNU/Linux Debian. Ce dernier pourra héberger de manière virtuelle (c'est à dire sur la même machine physique) un nombre important de serveurs, mutualisant ainsi votre hardware.

Installation du serveur Xen

J'ai choisi d'héberger mon serveur de virtualisation Xen (on appelle cette machine le dom0 pour "domaine 0" dans le jargon Xen) sur la machine suivante:

HP Proliant DL145
AMD Optron 64
2 Go RAM
2 disques durs de 80 Go en RAID 1 (LVM)
Système d'exploitation: GNU/Linux Debian Lenny 5

J'ai effectué une installation standard à partir du CD d'installation de la Debian 5.0 en appelant ma machine virt1 et en installant comme seul et unique service le daemon OpenSSH (pour un accès à distance).

Ensuite, il faut procéder à l'installation de Xen et de ses utilitaires:

aptitude install xen-hypervisor-i386 xen-linux-system-2.6.26-2-xen-686 xen-utils xen-tools xen-shell xenwatch xenstore-utils


On configure ensuite le réseau de la manière à transformer notre machine dom0 en bridge. Pour cela, on édite le fichier /etc/xen/xend-config.sxp et on remplace la ligne:

(network-script network-dummy)
par
(network-script network-bridge)


On reboot notre système pour prendre en compte le noyau supportant Xen:

reboot


Configuration du serveur Xen

Nous allons utiliser xen-tools pour administrer nos serveurs virtuels. Pour cela il faut éditer le fichier de configuration (/etc/xen-tools/xen-tools.conf) de la manière suivante (en gras les options à adapter selon votre configuration):

dir = /xen
install-method = debootstrap
size   = 4Gb      # Disk image size.
memory = 128Mb    # Memory size
swap   = 128Mb    # Swap size
fs     = ext3     # use the EXT3 filesystem for the disk image.
dist   = lenny     # Default distribution to install.
image  = sparse   # Specify sparse vs. full disk images.
gateway   = 192.168.29.1
netmask   = 255.255.255.0

passwd = 1
kernel      = /boot/vmlinuz-uname -r
initrd      = /boot/initrd.img-uname -r
mirror = http://ftp.lip6.fr/pub/linux/distributions/debian/
ext3_options   = noatime,nodiratime,errors=remount-ro
ext2_options   = noatime,nodiratime,errors=remount-ro
xfs_options    = defaults
reiser_options = defaults
serial_device = hvc0
disk_device = xvda


On pense également à créer le répertoire qui contiendra les domaines hôtes (/xen dans ma configuration):

mkdir /xen


Installation d'un serveur virtuel

Nous allons commencer par ajouter un nouveau serveur virtuel (que l'on appelle domU pour "domaine Users" dans le jargon Xen) à notre configuration. Cette action se fait de manière très simple grâce à la commande suivante (attendre quelques minutes):

# xen-create-image --hostname=servvirt1.mondomaine.com --size=10Gb --swap=512Mb --ip=192.168.29.171 --memory=256Mb --dist=lenny --arch=i386 --role=udev
General Information
--------------------
Hostname       :  servvirt1.mondomaine.com
Distribution   :  lenny
Partitions     :  swap            512Mb (swap)
/               10Gb  (ext3)
Image type     :  sparse
Memory size    :  256Mb
Kernel path    :  /boot/vmlinuz-2.6.26-2-xen-686
Initrd path    :  /boot/initrd.img-2.6.26-2-xen-686


Networking Information
----------------------
IP Address 1   : 192.168.29.171 [MAC: 00:16:3E:8B:F0:9E]
Netmask        : 255.255.255.0
Gateway        : 192.168.29.1

Xen va alors créer un serveur virtuel disposant d'un disque de 10 Go, d'un taille de swap de 512 Mo et d'une mémoire de 256 Mb. L'adresse IP de ce nouveau serveur virtuel sera 192.168.29.171. Le mot de passe root du système vous sera demandé en fin d'installation.

Un fichier de configuration dédié a ce nouveau serveur a été généré: /etc/xen/servvirt1.mondomaine.com.cfg

Gestion du serveur virtuel

Démarrage du serveur virtuel

Pour lancer le serveur virtuel préalablement créé, il faut saisir la commande:

xm create /etc/xen/servvirt1.mondomaine.com.cfg


Vous pouvez alors vous connecte dessus en SSH:

ssh root@servvirt1.mondomaine.com


Pour automatiser le démarrage de ce serveur virtuel (domU) au lancement de votre serveur hôte (dom0), il faut créer le lien suivant:

ln -s /etc/xen/servvirt1.mondomaine.com.cfg /etc/xen/auto/host1.cfg


Cette commande permet de séquencer le lancement des serveurs domU dans un certain ordre. Cela peut être utile si le service hébérgé sur un serveur virtuel dépend d'un autre...

Autres commandes utiles à l'administration de vos serveurs virtuels

Pour arrêter un serveur virtuel:

xm shutdown servvirt1.mondomaine.com


Pour voir la liste des serveurs virtuelles lancées:

# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0  1765     2     r-----    106.7
servvirt1.mondomaine.com 1   256     1     -b----      2.6


Liste des serveurs virtuels créés:

# xen-list-images
Name: servvirt1.mondomaine.com
Memory: 256
IP: 192.168.29.171


Occupation des ressources en temps réel:

xentop


Pour rendre prioritaire un serveur virtuel par rapport à un autre, nous allons utiliser les options du gestionnaire d'allocation des ressources ("Credit scheduler", par défaut dans la version Xen 3.0).
Par exemple, si nous avons deux serveurs virtuels servvirt1 et servvirt2 (domU) hébérgés sur notre serveur hôte (dom0) et que nous souhaitons donner deux fois plus de temps CPU à servvirt2, il suffit de saisir la commande suivante:

xm sched-credit -d servvirt2.mondomaine.com -w 512

PS: par défaut, un serveur virtuel à un poids de 256.

La liste des poids des serveurs virtuels peut être obtenue grâce à la commande:

# xm sched-credit
Name                                ID Weight  Cap
Domain-0                             0    256    0
servvirt1.mondomaine.com 1    256    0
servvirt2.mondomaine.com 1    512    0


Les commandes xm sched-credit sont à lancer (par exemple dans un script shell) au démarrage du serveur hôte.

Conclusion

Xen et la virtualisation en général est un très bon moyen, dans cette période de crise, d'optimiser au mieux les ressources hardware disponibles. Il est bien sûr possible de créer autant de serveurs virtuels que possible sur notre serveur hôte (dans les limites de performances souhaités au niveau des domU).

Quelques sources utiles à la rédaction de ce billet:

  • http://howto.landure.fr/ Lone Wolf

    Bonjour,

    Il est possible d’aller beaucoup plus loin avec Xen tools. C’est particulièrement utile pour créer des machines virtuelles préconfigurées (sauvegardes, mises à jours, logwatch, etc). En créant un rôle adapté à votre configuration par défaut, il est possible de gagner beaucoup de temps par la suite.

    J’ai ainsi écrit un guide d’installation de Xen comprenant la mise en place d’un rôle pour Xen tools, et quelques outils annexes pour effectuer les mises à jour sur tous les DomU facilement.

    http://howto.landure.fr/gnu-linux/debian-4-0-etch/installer-et-configurer-xen-sur-debian-4-0-etch

    Si ce la peut vous aider dans votre découverte de Xen :D .

    Bonne continuation.

  • http://www.armetiz.info/ Armetiz

    Coucou,
    J’avais installé XEN Sur un Proliant ML 350 jusqu’à ce que je m’aperçois que mon processeur ne supportait pas la paravirtualisation. Pas de bol pour moi, et réinstallation de VMWare.

  • http://www.le-livret-jeune.fr Olivier – livret jeune

    L’hébergeur OVH est en ce moment très axé sur la virtualisation pour les serveurs dédiés. Cet article tombe à pic pour que je puisse les tester.

  • http://www.lyrixx.info Greg

    Oulalala, merci beaucoup, c’est un très bon article.
    Par contre, j’ai deux question :
    est-ce qu’on peut utiliser le son dans les dom u ?
    Est-ce que ca fonctionne avec ubuntu serveur ?

  • http://blog.nicolargo.com NicoLargo

    @greg: oui pour le serveur Ubuntu
    pour le son, pas de réponse définitive mais je dirais plutôt non… imagines que plusieurs domU diffuse du son en //…

  • http://www.lyrixx.info Greg

    Merci,
    Pour le son en fait, je ne sais pas du tout, mais j’aimerais bien que ce soit possible, car en fait j’aimerais me faire une petit serveur pour l’année prochaine, avec plein de domU dedans ! et avec un serveur de son ;) …. Mais bon, Xen a quand meme l’air un peu compliqué, donc je pense que je resterais sur un dédié “normale” lol

  • http://www.aventica.com Thibeau

    bonjour nicolas j’ai un petit soucis. mon entreprise ou je suis me demande d’installé un serveur dédié pour qu’il puisse héberger ses sites web. et des serveurs mutualisés. je suis entre le marteau et l’enclume comment dois commencer tout cela aide stp!. est ce que tu as deja utilisé proxmox pour créer tes serveurs virtuels?
    merci bien

  • http://www.inforeseau.net Julien Desrochers | Inforeseau

    Bonjour Thibeau

    Si je peux me permettre de te donner quelques conseille je te dirais que il te faut en tout premier un plan de match sur les priorité de entreprice. Pour ma part un setup comme celui que tu dois concevoir doit dépendre aussi de vos installation, de vos désir présent mais aussi des désir futur ( il faut penser plus vite que nos client ou gestionnaire!! ). Dans ton cas je pense que en tout premier lieu je ferais :

    1- Installation des serveurs de virtualisation tout en pensant a un système de redondance!

    2- Installation de ton architecture virtuelle + apprendre a la maitriser

    3- Montage des tes vm pour ton hébergement web

    Procédé a des test et si concluant implante
    Mair je lesserais indépendant ce qui est relier a la prodction de entreprise vs celle des client il seras simplement de cloner tes main et de reproduire tes serveur client affin de faire ton hosting de vm!

    Pour des présision fais moi signe si je peux t,aider sa me feras plaisir!

  • http://na Fred

    patatrac mon CPU intel semble parent pauvre ou alors j’ai merdu mon sources.list :(
    je trouve que les AMD en package :( ((

  • Pingback: Xen sous Debian | Blog d'Azenor

  • Pingback: Liens en vrac du 8 mai 2013 | {Ma Bulle Du Net}