Retour d’expérience sur la virtualisation sous Linux : XenServer, Xen, KVM…

8

Posted by florian | Posted in Logiciels Libres | Posted on 01-03-2010

Étiquettes : , , , , , , , , ,

((/public/news/.serv_virt_t.jpg|Serveur Virtualisation Linux|L|Serveur Virtualisation Linux, mar. 2010))Récemment, j’ai échangé avec des amis sysadmins sur les différentes technos disponibles en matière de virtualisation sous Linux. Voici mon (rapide) retour d’expérience en ce qui concerne les solutions que j’ai eu l’occasion de tester : XenServer, Xen OSE (Open Source Edition) et KVM…

* __XenServer__ : ** ++les plus++ : solution « out of the box », globalement assez simple à prendre en main, support Citrix disponible ** ++les moins++ : c’est un peu piège dans le sens où c’est compliqué de revenir sur une autre solution ensuite (non compatible avec Xen open source), distribution imposée, nécessité de bidouiller pour faire certaines choses (raid, drbd …), le manager ne tourne que sous Windows, ne s’intègre pas avec libvirt, non comptible avec les managers Xen OSE type OpenXenCenter, support onéreux ** __Mon avis__ : solution à privilégier à court/moyen terme sur une grosse infra si on a les moyens de s’offrir le support, qu’on n’a pas besoin de libvirt pour faire du cloud (notamment avec Enomaly ou OpenNebula) et qu’on n’envisage pas de migrer à plus ou moins long terme sur du Xen OSE ou du KVM * __Xen OSE__ : ** ++les plus++ : déployable facilement sur Debian, techno mature et éprouvée bien sûr, bien supportée par la communauté ** ++les moins++ : n’est plus officiellement supporté par Ubuntu depuis pas mal de temps (hyperviseur dispo dans les paquets mais pas le noyau, il faut compiler maison), ne tire pas parti de toutes les fonctionnalités et optimisations des CPU récents ** __Mon avis__ : solution à privilégier à court terme sur une infra ne comportant pas de matériel récent, notamment pour du paravirtualisé (encore que dans ce cas-là linux-vserver est plus rapide, mais c’est un autre débat) * __KVM__ : ** ++les plus++ : semble arrivé à maturité (vm Win2k8 sur LVM+DBRD très sollicitée pendant 72h sans soucis, c’était pas vrai il y a 1 an …), en avance sur Xen sur l’exploitation des fonctionnalités / optimisations des CPU récents, poussé par plusieurs grosses boites (Ubuntu, Redhat, etc), géré nativement par le noyau Linux, s’intègre avec libvirt ** ++les moins++ :  »’peut-être » encore un peu jeune, logiciels de management graphique pas encore du niveau du manager Xen ** __Mon avis__ : solution à privilégier sur une infra avec du matos récent (i7, nehalem…), en particulier si on peut tirer parti de libvirt avec Enomaly, OpenNebula ou si on n’a pas de besoins très évoluées niveau management shell et graphique (virsh, virt-manager…) __ »Du côté des performances… »__%%% Toutes les technos se valent à peu près maintenant, sauf sur du matos récent où il semble que plus ça va aller et plus KVM va tirer son épingle du jeu. __ »Un mot sur libvirt… »__%%% Virt-manager est clairement moins fourni que le manager de Citrix Xen mais ça permet de gérer les interfaces réseaux, le stockage et les vm. Personnellement, je n’ai pas besoin de plus… « virsh » et surtout l’API de libvirt permettent d’imaginer faire une interface sur mesure sans trop de difficulté (m’enfin c’est toujours pareil, faut du temps…). Enfin, libvirt simplifie considérablement la création de {{vm}} en ligne de commande via virt-install (plutôt pour du hvm) et vmbuilder (vm Linux optimisées pour la virtualisation). __ »Un mot sur drbd… »__%%% Qu’on se le dise : comme expliqué dans les docs Redhat, les gars de libvirt ont collaboré étroitement avec les gars de Linbit (drbd). Ainsi, la live migration marche avec drbd (+ du lvm au-dessus pour faire des snapshots et de façon générale faciliter la gestion de l’espace disque). Vous allez me dire qu’ « oui mais faut du OCFS2 là-dessus, c’est nul, ça bouffe des ressources, c’est pas fiable, etc ». Ben non, la gestion des locks semblent être gérées par libvirt, pas besoin de FS distribué par-dessus. Eh ouais. __ »Mon choix »__%%% Voilà près de 2 mois que j’exploite un serveur à base de Xeon Nehalem avec 12 Go de RAM ECC qui tourne sur une Ubuntu 9.10 (64 bits) + KVM + libvirt, que j’administre à distance via Virt-manager, que je viens d’upgrader en 0.8.3 (oui, il faut le compiler à l’ancienne…). Les vms sont hétérogènes : du Windows 2008 Serveur 64 bits, du Debian, du Ubuntu… C’est stable, on a l’impression d’être sur un Virtualbox local, sauf que non, c’est du remote, et ça tourne vite. Très vite. Si vous avez des questions sur ce joli monde de la virtualisation, n’hésitez pas à me contacter ou à l’inverse, à me faire part de vos retours d’expérience…

Commentaires (8)

Yep,

Merci, ce post tombe à point nommé ; de même que ton invitation pour toute question et retours d’expérience.

J’ai testé XenServer 5.5 updated 2 et je suis assez déçu de la stabilité, de la complexité et du prix de la solution pour obtenir des garanties et faire du vdi.

Je souhaite utiliser KVM pour parvenir à de meilleurs résultats.

Je viens du monde Windows (que je supporte de – en -) et j’ai dans l’idée de réaliser un projet de mémoire CNAM (6 à 9 mois / 10h par jours) pour me faire à l’Open Source.

Le projet se déroulera dans une PME répartie sur 2 sites (éloignement de 5km) utilisant Windows XP et Mac OS sur moins d’une dizaine de poste ainsi qu’un serveur de fichier Synology DS509+.

Je souhaiterai :

1) virtualiser tous les postes pour qu’ils fassent du vdi en interne, et si possible à distance

2) utiliser drbd entre les 2 sites comme support du plan de reprise d’activité en cas de sinistre

3) quelques tâches annexes pour qu’à la fin du projet le SI tourne rond (sécurité, messagerie, etc.)

Pour y parvenir, l’entreprise me demande :

> d’acheter le matériel nécessaire (serveurs, etc.)

> concevoir l’architecture (réseau, réplication, accès distant, etc.)

> implémenter, documenter, recetter et assurer un peu de suivi

= une gestion de projet de A à Z

Comme je suis un peu newbee mais condamné à réussir, je souhaiterai profiter de conseils et pouvoir échanger avec d’autres afin de croiser nos retours d’expériences.

Par exemple les questions que je me pose actuellement sont :

– Quels serveurs choisir pour héberger jusqu’a 10 machines virtuelles XP aux performances quasi natives pour les utilisateurs ? (j’ai des prix chez DELL)

– le vdi est-il efficace, fiable et simple d’utilisation via KVM utilisé avec le protocole SPICE de RedHat ?

– drbd est-il efficace, fiable et simple d’utilisation entre 2 sites distants de 5 km (ligne ADSL classique) ? Est-ce la meilleure solution ?

– etc.

Bref, je serai heureux de partager mes avancées, et j’aurai juste besoin de quelques recommandations de manière ponctuelle 😉

En vous remerciant par avance,

Dans l’attente,

++

PS : j’ai essayé d’utiliser la rubrique contact du site qui semble poser un problème de CAPTCHA :\

Salut Sam,

Merci de ta contribution !

Je suis un peu overbooké ces jours-ci, ma réponse sera donc assez brève, quite à la compléter plus tard !

Concernant le format des disques virtuels : VDI est le format Virtualbox, sur KVM tu devras choisir entre qcow2, raw et LVM (même si d’autres formats sont supportés, seuls ceux-là sont à considérer d’après mon expérience).
Malgré tous les tutos et autres howtos que tu trouveras ça et là et qui l’utilise, je te déconseille qcow2. Ca fera l’objet d’un post un de ces quatre je pense 😉
Reste raw et LVM. C’est un peu le même principe : ce sont des « formats » non compressés, à partir desquels on peut à peu près se débrouiller en cas de pépin (gare à Murphy).
Pour ma part j’ai opté pour LVM, pour au moins ces avantages-là : flexibilité liée à la gestion sous forme de volumes logiques, stabilité du support de LVM par KVM (depuis peu, mais c’est désormais un fait, autant en profiter), intégration dans Virtual-manager, snapshots LVM (facilite la création des backups).
Petite astuce : voir du côté de « kpartx » pour monter sur le dom0 les partitions crées dans un disque virtuel créé sur du LVM.

Côté hardware, si tu as un budget serré mais que tu ne souhaites pas néanmoins sacrifier la qualité et les performances, je te conseille d’aller voir du côté de Supermicro. J’ai investi récemment dans du serveur à base de processeur Xeon Nehalem avec beaucoup de RAM (configuration que je te recommande pour faire tourner ta dizaine de VM), je m’en tire pour nettement moins cher (de l’ordre de 20/30%) qu’une configuration Dell équivalente, avec carte IPMI avec KVM over LAN plutôt qu’une DRAC.
Le problème avec Supermicro, c’est de trouver un revendeur fiable. Je bosse avec un depuis quelques années, si tu veux ses coordonnées contacte-moi en « privé » (j’essaie de résoudre le pb de captcha sous 24h).

DRBD : tu peux y aller les yeux fermés, en LAN comme en WAN, mais ne néglige pas les tests (du genre débrancher l’alim d’un serveur à chaud, puis rebrancher) avant de mettre en prod !
Attention quand même à bien choisir le protocole (A, B ou C). En gros : plutôt C (avec gestion des locks) en LAN, plutôt A en WAN (au détriment des locks en écriture, donc légères pertes possibles, surtout si la bande passante est faible, ce qui est ton cas).
Un bémol supplémentaire : si tu prévois d’avoir beaucoup de trafic, vu que tu es sur un simple ADSL, ton DRBD risque d’avoir besoin de pas mal de RAM : il faut bien qu’il stocke les datas avant de les envoyer, au compte-gouttes dans ton cas, à l’autre serveur. Donc prévois des tests de montée en charge pour voir quelles sont les limites.

Enfin, le monde est petit : je dois moi aussi soutenir un mémoire CNAM, en juin ou en novembre selon mes avancées sur un projet qui inclue à la fois du dév, de la gestion de projet et de l’archi réseau/systèmes (dont ces aspects lié à la virtualisation). Peut-être qu’on pourra échanger plus étroitement sur le sujet afin de monter en compétence.

On reste en contact 😉

Florian

En fait le captcha fonctionne bien, je viens de faire plusieurs tests concluants. Je te laisse mon email, au besoin : florian -at- cathala -point- org

Yep,

Merci pour la rapidité de ta réponse 🙂

[ VDI ]

Je me suis mal exprimé en parlant de « vdi », je voulais parler de de « virtual desktop infrastructure »; soit comment accéder à sa machine virtuelle à distance en obtenant des perfomances identiques à celle d’une machine locale.

Aujourd’hui les principaux protocoles que je connais pour cela sont :

Microsoft RDP (Remote Desktop Protocole) : http://fr.wikipedia.org/wiki/Remote

Citrix ICA (Independant Computer Acces) : http://fr.wikipedia.org/wiki/Indepe

RedHat SPICE (Simple Protocol for Independent Computing Environments) : http://www.redhat.com/virtualizatio

Pour faire simple, en fonction des qualités de chacun, on obtient plus ou moins de fluidité, sécurité, complexité, etc.

[ HARDWARE ]

Oki doki, je prends bonne note de tes conseils et on pourra s’échanger devis et bon tuyaux ; j’ai un rdv demain matin avec le M. de chez DELL.

[ CNAM ]

Avec grand plaisir, on peut monter une équipe dès que j’aurai validé le sujet (1 mois) 😉

Pour le reste, je prends contact avec toi asap directement via e-mail.

Encore merci

Et à bientôt 🙂

++

Bonjour,

Merci bcp pour ce retour d’expérience 🙂
Je dois faire un choix de techno entre Xen et KVM.

Serait-il possible d’avoir ton avis « actualisé » depuis la publication de cet article ?

Merci par avance pour ta réponse !
Turtle

Bonjour,

J’envisage de me tourner d’ici la fin de l’année vers la distribution Proxmox VE, qui intègre KVM et OpenVZ ainsi qu’une interface web de management très pratique.
Ce qui me plait c’est que ça permet d’avoir de la full virt (pour les VM clients) avec KVM et de la paravirt pour les VM à usage interne avec OpenVZ, ce qui permet d’économiser pas mal de ressources (surtout en mémoire, voir plus loin).

Concernant libvirt, j’en reviens un peu car ça ne supporte pas tout un tas de choses, du moins dans la version fournie en natif sur Ubuntu 9.10 / 10.04, comme tout simplement le restart d’une VM… Pour info, Proxmox ne l’utilise pas.

Enfin concernant KVM sur Ubuntu, ce qui m’embête franchement c’est le non support du memory ballooning, c’est à dire la possibilité de réduire dynamiquement la mémoire allouée par les VM quand celles-ci n’utilise pas toute la mémoire.
Il y a des astuces pour le faire fonctionner (script wrapper qui ajoute –balloon à l’appel de qemu), mais c’est « sale »…

Voilà pour mon feedback réactualisé 😉

Je referai probablement un post quand Proxmox VE 2.0 sera releasé et que j’aurai passé ça en production.

Florian

Merci Florian pour ton feedback !

Je vais me pencher sur Proxmox 🙂

@Turtle : « you’re welcome » 🙂

Ecrire un commentaire