Accueil > Archives > Nouvelles du libre > Nouvelles - 2008 > La virtualisation et le libre où en est-on ?

La virtualisation et le libre où en est-on ?

lundi 17 novembre 2008, par LPI Francophonie 3 Enregistrer au format PDF

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 (propriétaire) : VMware, à 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.

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 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). Une seule zone sera capable de voir tous les processus 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. OpenVZ 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

À 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, bochs, PearPC, émulateur de console, etc.) ou seulement les périphériques (VMware, QEMU + KQEMU ou KVM) 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 libre repris récemment par Citrix) et ESX Server (produit propriétaire de chez VMware). A remarquer que Microsoft a également prévu une solution à base d’hyperviseur pour Windows Server 2008.

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.

Autre remarque pour Xen, Sun a annoncé récemment que cette technologie serait supportée sur sa prochaine version de Solaris.

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 libres

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 complètement incluse dans le tronc principal de Linux (c’est juste le mode Guest qui est entré dans le noyau 2.6.23) et son inclusion fait encore l’objet de discussion - voire d’un rejet pur et simple par certaines distributions.

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. 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).

À 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 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.

Source : http://linuxfr.org