Communiqué de presse Lyon, le 29 avril 2008
Virtualisation et open source : où en est-on ?
__Rappel historique__
Les premières solutions de virtualisation sont historiquement apparues au sein des gros systèmes mainframe de chez IBM vers la fin des années 60 et au début des années 70. Malgré les avantages apportés par ce type de procédé, ces solutions sont restées cantonnées aux gros systèmes.
Ce n’est que bien plus tard – vers le milieu des années 90 – qu’il s’est popularisé avec l’explosion des performances des PC et l’arrivée des émulateurs de vieilles machines et console en tout genre. Malgré cela, la virtualisation est réservée à un cercle d’initiés jusqu’à la sortie d’un logiciel phare : VMware.
VMWare est à l’origine de l’engouement actuel pour la virtualisation, la prolifération de solutions et l’accélération de son adoption au sein des entreprises.
__Les grandes familles de virtualisateurs__
On distingue :
Chacune des solutions comportent des avantages et des inconvénients.
__Virtualisation par isolation__
Ici, le système va gérer des contextes dans lesquelles les processus de chacune des zones ne pourront accéder qu’à un ensemble limité de processus ainsi qu’à une arborescence limitée (à la façon d’un chroot Unix (1)). Une seule zone sera capable de voir tous les process et toutes les arborescences : la zone principale. Il s’agit de la solution la plus simple techniquement et la moins consommatrice en terme de coût supplémentaire dû à la virtualisation. L’autre gros avantage est la facilité de partager des ressources disques et réseaux avec la zone principale. Sun utilise cette technique pour ses zones/containers Solaris (2). OpenVZ (3) propose cette solution pour les serveurs Linux.
L’inconvénient majeur est l’impossibilité de virtualiser des OS différents de l’OS principal.
__Machine virtuelle complète ou partielle__
A l’opposé des containers, les solutions de virtualisation complète ont l’avantage de pouvoir s’affranchir du matériel. Cette virtualisation du matériel peut-être plus ou moins totale dans le sens où elle peut également inclure le processeur (Qemu (4), bochs, PearPC, émulateur de console, etc.) ou seulement les périphériques (VMware, Qemu + Kqemu ou KVM (5)) l’émulation du processeur se faisant directement sur le processeur de la machine hôte.
Dans ce type de solution la machine virtualisée n’a aucune connaissance de sa situation. Le bénéfice réside dans sa faculté à pouvoir faire fonctionner, sans aucune modification, des systèmes d’exploitation non conçus à l’origine pour la virtualisation. Tout ceci se faisant au prix d’une perte de performance pouvant être gênante (accès disque plus lent, gestion réseau plus consommatrice de ressource CPU) à très impactante (temps de traitement notoirement plus long dans le cas de l’émulation du processeur).
__Hyperviseur__
Face aux problèmes rencontrés par la solution virtuelle complète et par isolation, certains acteurs ont fait le pari de trouver une solution intermédiaire en spécialisant l’OS hôte et les OS invités : on parle ici de para-virtualisation. Les 2 solutions les plus connues sont Xen (projet opensource repris récemment par Citrix (6)) et ESX Server (produit de chez VMware (7)). A remarquer que Microsoft a également prévu une solution à base d’hyperviseur pour Windows Server 2008 (8).
L’avantage de cette démarche est une amélioration des performances. Du côté des inconvénients, l’OS invité doit être conçu pour être utilisé au sein d’un hyperviseur. On peut néanmoins remarquer que dans les dernières versions de Xen, nous ne sommes plus obligés d’avoir un OS capable de gérer la notion d’hyperviseur et donc passer à une virtualisation complète (9).
Autre remarque pour Xen, Sun a annoncé récemment que cette technologie serait supportée sur sa prochaine version de Solaris (10).
On peut également remarquer que comme pour le cas des machines virtuelles complètes, les processeurs récents AMD et Intel (technologie AMD-V et Intel VT) sont capables de prendre en charge une gestion matérielle des machines virtuelles.
__Perspectives d’évolution des solutions opensource__
Actuellement, la solution la plus utilisée en entreprise reste Xen puisqu’il s’agit historiquement de la plus ancienne solution. Malheureusement celle-ci n’est pour l’instant pas encore incluse dans le tronc principal de Linux et son inclusion fait encore l’objet de discussion - voir d’un rejet pur et simple (11).
En effet, il faut plutôt chercher du côté de KVM qui a été inclus dans Linux dès la version 2.6.20 (12). Ce choix a surtout été motivé par sa simplicité comparé à Xen. Ses défauts sont de ne pouvoir supporter que les processeurs récents de chez Intel et AMD et surtout de n’être pour l’instant géré que par une version modifiée de Qemu. A noter qu’à l’avenir, KVM supportera également la notion de para-virtualisation via l’interface virtio (inclus dans la version du kernel Linux 2.6.24 (13)).
A ce propos, virtio est amené à devenir l’interface unique du kernel pour la virtualisation des entrées/sorties. Elle permettra ainsi de mettre en commun les efforts de développement de Xen, KVM ou de toute autre solution de virtualisation à venir.
Enfin, notons l’existence de libvirt (14) qui apporte une couche d’abstraction sur la notion de virtualisation. Cette librairie supporte actuellement Xen, Qemu, KVM et OpenVZ. Elle permettra ainsi de pouvoir s’affranchir des limitations de chacune des solutions et offrir un service commun pour tout le monde.
« Le secteur de la virtualisation est encore dans une phase d’expansion, surtout du côté de l’opensource. Les choses ne sont pas encore figées, mais ce marché n’en est plus à une phase d’expérimentation. Il existe déjà des solutions tout à fait utilisables en entreprise avec notamment les hyperviseurs de chez VMware et Xen ». déclare Yvan, ingénieur chez Simia
(1) : chroot est une commande Unix qui va permettre d’isoler le processus Unix dans une sous-arborescence et de laquelle il ne pourra pas sortir. Cette technique est souvent utilisée pour limiter les accès d’un processus dans le cadre de la sécurisation d’accès.
(2) : Quelques références sur les zones Solaris : http://en.wikipedia.org/wiki/Solaris_Containers http://www.sun.com/bigadmin/content/zones/
(3) : Quelques références sur OpenVZ pour Linux : http://fr.wikipedia.org/wiki/OpenVZ http://openvz.org/
(4) : Page principale de Qemu : http://fabrice.bellard.free.fr/qemu/
(5) : Page Wikipedia de KVM : http://fr.wikipedia.org/wiki/Kernel-based_Virtual_Machine
(6) : Virtualisation : Citrix rachète XenSource, le principal concurrent de VMware : http://www.01net.com/editorial/356395/virtualisation-citrix-rachete-xensource-le-principal-concurrent-de-vmware/
(7) : Page de ESX Server : http://www.vmware.com/products/vi/esx/
(8) : Microsoft lance la première bêta de son hyperviseur Hyper-V : http://www.pcinpact.com/actu/news/40700-microsoft-virtualisation-hyperv-hyperviseur-.htm
(9) : Xen 3.0.3 virtualise sans modification l’OS invité : http://linuxfr.org/2006/10/24/21519.html
(10) : Page sur le support de Xen dans opensolaris : http://opensolaris.org/os/community/xen/ Xen officially in Solaris : http://learningsolaris.com/archives/2005/11/18/solaris10-xen/
(11) : Fedora abandonne Xen : http://linuxfr.org/ IsNotGood/25760.html The plan for Xen kernels in Fedora 9 : http://berrange.com/personal/diary/2007/11/plan-for-xen-kernels-in-fedora-9
(12) : KVM Official in Linux 2.6.20 : http://www.vi411.org/2007/02/06/kvm-official-in-linux-2620.html
(13) : qemu and virtio : http://www.carfax.org.uk/docs/qemu-virtio Sortie du noyau Linux 2.6.24 : http://linuxfr.org/2008/01/25/23529.html
(14) : Page principale de libvirt : http://libvirt.org/ simia allie sa maîtrise des différents systèmes d’informations et sa connaissance du monde de l’Open Source pour optimiser les performances de votre infrastructure informatique. simia met à votre disposition des experts réseau, sécurité et système qui excellent dans les technologies de l’Open Source.
Contact presse Laurent Le Diagon +33 (0)6 62 85 14 97 laurent.le.diagon@simia.fr