Virtualisation et open source : où en est-on ?
Virtualisation par isolation, machine virtuelle complète ou partielle, l’hyperviseur : le point complet sur la virtualisation et les perspectives d’évolution des solutions open source.
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 tous genres. 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 :
- la virtualisation par isolation,
- la machine virtuelle complète ou partielle,
- l’hyperviseur.
Chacune des solutions comporte des avantages et des inconvénients.
Virtualisation par isolation
Ici, le système va gérer des contextes dans lesquels les processus de chacune des zones ne pourra 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 deux solutions les plus connues sont Xen (projet open source 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 open source
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’open source. 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.
Article rédigé avec la complicité d’Yvan, ingénieur chez Simia - www.simia.fr
(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
(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/
15 réactions à cet article
Ajouter une réaction
Pour réagir, identifiez-vous avec votre login / mot de passe, en haut à droite de cette page
Si vous n'avez pas de login / mot de passe, vous devez vous inscrire ici.
FAIRE UN DON