Xen ou comment bidouiller sans risque

dans Veille technologique Samedi 18 novembre 2006, 19:15

C'est à la mode, tout le monde en parle, les fondeurs l'intègrent, les éditeurs d'OS s'y mettent : la virtualisation. Pourquoi, comment, quels avantages, quels inconvénients ? Suivez mon modeste guide...

Un peu de vocabulaire pour commencer

Système d'exploitation hôte
Système initial qui est installé directement sur le matériel et qui gère les systèmes invités.
Système d'exploitation invité
Système déconnecté du matériel physique. Chaque intéraction avec le matériel physique est contrôlé et approuvé par le système hôte.

Différentes méthodes

Il faut tout d'abord distinguer plusieurs méthodes de virtualisation. J'en ai, pour ma part, testé deux : les machines virtuelles et les hyperviseurs.

Les machines virtuelles sont des logiciels du type de QEMU (libre) ou VMware (propriétaire). Ces logiciels émulent du matériel. Le système d'exploitation invité croit dialoguer directement avec le matériel. En fait, la machine virtuelle intercepte les utilisations du matériel pour faire la traduction vers le vrai matériel. J'ai utilisé QEMU et VMWare player, ces deux solutions offrent des performances tout à fait honorable (pour exemple, un Windows XP Pro dans QEMU démarre en moins de 40 secondes).

Les hyperviseurs comme Xen sont, quant à eux, une solution tout à fait différente. Un hyperviseur est un noyau conçu pour faire tourner plusieurs autres noyaux. Le système d'exploitation invité sait qu'il est virtualisé. Son noyau a été modifié pour dialoguer avec l'hyperviseur. Cette solution offre de très bonne performance, meilleure que les machines virtuelles. Néanmoins, l'obligation d'un noyau dédié est très contraignante. Il est par exemple impossible d'installer un système d'exploitation propriétaire comme Windows puisque Microsoft ne fourni pas de noyau pour Xen. J'ai testé Xen avec un noyau Linux (2.6.18) comme noyau hôte et OpenSolaris (build 44) comme noyau invité. OpenSolaris démarre en 25 secondes là ou il mettait tout de même 2 minutes avec QEMU (j'ai encore du mal à m'expliquer cette si grande différence).

Pourquoi virtualiser ?

En tant que (futur) administrateur systèmes et réseaux, il est pratique de pouvoir déployer tout un réseau afin de tester différentes configuration (un serveur NIS, NFS, ...) Seulement, je n'ai pas vraiment la place (ni les moyens, ni l'envie) nécessaire pour installer 5 ou 6 ordinateurs dans mon chez moi. Pourtant, il faut bien...

La solution passe donc par la virtualisation de tous ces postes. Un poste virtuel comme serveur, des postes virtuels comme clients et mon OS à moi intact, ce qui me permet d'avoir un système fiable pour administrer ces machines virtuelles et continuer de surfer sur le web (toujours pratique lorsqu'on a un problème). J'ai par exemple déployé de cette façon un serveur NIS/NFS avec deux clients sans toucher à la configuration de mon système.

Petit comparatif rapide

Le grand intérêt des machines virtuelles est d'être des solutions très peu intrusives et sans danger pour le système. En effet, installer VMWare ou QEMU ne modife en rien le système hôte, si ce n'est par l'ajout d'un module noyau (quoique VMWare est assez imposant). Néanmoins, les performances sont très nettement en retrait sur certains aspects par rapport à un hyperviseur.

Le principal avantage de l'hyperviseur réside dans les très bonnes performances qu'il donne. De plus, si vous avez la chance de posséder un des derniers processeurs d'Intel (avec le flag VT), vous n'avez même plus à vous soucier d'avoir un noyau particulier (on quitte là le domaine des hyperviseurs pour passer vers le domaines de la virtualisation matériel). Néanmoins, installer un noyau qui a pour charge de lancer les autres noyaux n'est pas une opération anodine, il faut un minimum de maîtrise de son système. C'est pour cela que pour débuter, je conseille une machine virtuelle.

Du point de vue des performances, j'ai réalisé un petit test : j'ai installé Solaris 10 en tant que système invité et j'y ai configuré un serveur NFS. Les données de l'export NFS sont stockées sur 3 disques dur en RAID-Z via ZFS (voir le billet précédent). Les mesures sont assez approximatives, je les ai faites avec un simple chronomètre. Les résultats sont tout de même assez significatif :

SolutionTemps de démarrageDébit en écritureDébit en lecture
Solaris 10 sur QEMU110 s.2 Mo/s5 Mo/s
Solaris 10 sur Xen25 s.18 Mo/s18 Mo/s

Conclusion

Je vous encourage vivement à tester ces solutions si vous devez régulièrement tester des configurations ou si vous souhaitez simplement essayer le dernier système d'exploitation à la mode. J'espère que vous prendrez goût à la virtualisation, plutôt que de redémarrer 10 fois votre ordinateurs.

Commentaires

#1 Sébastien (site, sebastien[at]lecocguen.com), le 19.11.2006 11:15
As tu essayé MacOS X ?
Est-il possible d'utiliser, sous Xen, par exemple XP en système principal, et MacOS X en second système pour travailler tantos sous l'un, tantot sous l'autre, comme on pourrait travailler sur un Mac tantot sous MacOS X, tantot sous MacOS 9 grace à Classic ?
#1.1 Romain LE DISEZ , le 19.11.2006 14:40
Xen, à la base, est un hyperviseur. Il faut donc que le noyau des OS soit modifié pour pouvoir fonctionner. Depuis peu, Xen peut aussi être un moniteur de virtualisation matériel. C'est à dire que le noyau des OS n'a pas besoin d'être modifié. Mais pour cela, le processeur doit supporter la virtualisation (ex : Pentium D). Je n'ai pas ce type de processeur et comme il n'existe pas de noyau de Mac OS X pour Xen, je ne peux rien te dire sur le sujet. Idem pour Windows XP, impossible de trouver un noyau Xen donc je ne peux pas essayer. Cependant, en théorie, il ne devrait pas y avoir de problème avec un processeur compatible avec la technologie Vanderpool de chez Intel (ou Pacifica de chez AMD).

Il y a un petit guide pour installer Windows sur Xen ici :
http://www.xensource.com/files/xen_install_windows.pdf
#2 oliv (site, olivier.refreges[at]gmail.com), le 19.11.2006 14:24
Article très intéressant. Il y juste un petit risque de confusion entre le moment ou tu dis qu'il est impossible d'installer un système propriétaire et le moment ou tu dis qu'avec les nouveaux processeurs intel on le peut... ce n'est donc pas impossible mais ?quot;très peu possible " ;-)
Sinon niquel ;-)
Pour répondre au commentaire de Sébastien au-dessus, je n'ai pas la connaissance d'une version de Xen développée pour tourner au dessus de Windows.. donc XP en système principal je ne pense pas... mais je peux me tromper ;-) (en même temps ça serait dommage de se baser sur un système foireux pour faire tourner d'autres sytèmes ;-) )
#2.1 Romain LE DISEZ , le 19.11.2006 14:47
Tout à fait, le système hôte doit impérativement être adapté à Xen. Donc, Windows c'est en système invité uniquement.

Sinon, même si je partage ton avis sur Windows, on respect les choix des gens oliv. Je sais que mon cher cousin n'est pas un fan de Linux... Personne n'est parfait ;-)
#3 Sébastien (site, sebastien[at]lecocguen.com), le 20.11.2006 09:32
C'est vrai que j'aime franchement pas Linux. Aucune unitée dans le développement, ca part dans tous les sens. Mais j'adore MacOS X, bien homogène, donc ca me rattrape. Et j'ai plus de machines UNIX chez moi que vous deux réunis, alors je dois pas être si mauvais :-D (Au moins 15, rien qu'en balayant les yeux dans mon bureau, donc sans compter ceux qui sont cachés sous des cartons...)
#3.1 Romain LE DISEZ , le 20.11.2006 09:43
Je suis un peu d'accord avec toi. D'ailleurs, ça fait un petit moment que je suis persuadé que Linux va se casser la figure. On peut bidouiller pendant un moment mais il viendra le temps où ils ne maitriseront plus leur archi. Sans compter les récentes nouvelles (la stabilité du noyau est en baisse constante !!!)

Mais en attendant, j'ai pas trouvé mieux dans le sens simplicité/souplesse/évolution. J'attends beaucoup de FreeBSD. Espérons que je ne serais pas déçu...
#3.1.1 Sébastien (site, sebastien[at]lecocguen.com), le 20.11.2006 11:00
Oula, a mon avis, ca doit faire mal a langue d'avouer ca... :-D :-D :-D
#3.1.1.1 Romain LE DISEZ , le 20.11.2006 11:44
Mais nan... Je sais garder un sens critique. Et puis, ça me rassure de voir qu'il y a pire ailleur (au hasard, du coté de chez Redmond...)
L'auteur n'a pas autorisé l'ajout de commentaires pour ce billet.

Recherche rapide

Calendrier

« Juillet 2008
Lun Mar Mer Jeu Ven Sam Dim
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31