• AgoraVox sur Twitter
  • RSS
  • Agoravox TV
  • Agoravox Mobile

Accueil du site > Actualités > Technologies > Virtualisation et open source : où en est-on ?

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

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/


Moyenne des avis sur cet article :  5/5   (18 votes)




Réagissez à l'article

15 réactions à cet article    


  • O.Z.Acosta 28 avril 2008 10:38

    Très bon article, a noter que Vmware est associé a Micro$oft par le developement de windows 2008 server ( essaie de virtualisation de Microsoft => min 4Go de ram ).

    Cependant Xen est maintenant inclue dans tous les noyaux linux et a été acheté par Suse lui même possédé par Novel. Cette solution semble être la plus novatrice, la plus performante et la plus libre.( elle a été choisie par mes dirigeants et est en cours d’installation ).

    La virtualisation est très utile pour certains services : DNS, domaines ( authentification ),surpervision mais reste très difficile a appliquer pour les applications necesitants de gros accés disques tel que les grosses bases de données et les proxys.

    A noter aussi que si la virtualisation est assez libre, les logiciels d’administrations eux ne sont pas libre.

    Sur les differentes solutions proposées seule celle de micro$oft semble venir d’une autre planete, mais virtualisé du Windows a partir de Windows semble leur seule préocupation.

     

    Z

     

     


    • Marc 28 avril 2008 22:45

      "Xen est maintenant inclue dans tous les noyaux linux".

      Pour être précis, Xen n’est pas directement inclus de base dans le noyau, mais peut être installé simplement par l’ajout de modules au noyau (un package d’installation de ces modules est prévu pour Open Suse, Fedora ou encore Mandriva).


    • Forest Ent Forest Ent 28 avril 2008 11:57

      Je suis bien désolé, mais en tant que lecteur grand public non initié, j’ai peur de ne pas avoir saisi l’enjeu du débat. Ca sert à quoi, la "virtualisation" ? J’ai vaguement cru comprendre qu’il s’agissait de faire tourner plusieurs OS en même temps. Est-ce bien cela ? A quoi cela servirait-il ? Est-ce que ça a quelque chose à voir avec les "wrappers" qui permettent de faire tourner des programmes windows sous linux, genre wine ou ndiswrapper ?


      • tmd 28 avril 2008 12:59

        Oui. C’est bien cela : faire tourner plusieurs OS en même temps sur un seul ordinateur.

        A quoi cela sert-il ?

        • A séparer les fonctions d’un serveur. Au lieu d’avoir un seul OS qui offre des services de base de données, de serveur Web et de courrier électronique, chacun de ces services tourne dans son OS virtuel. Le gain est la sécurité au cas, où l’un des services serait attaqué.
        • A tester les programmes sur plusieurs OS. Pour tester les programmes sur différents OS, il faut avoir plusieurs machines, ou une machine qui peut utiliser différents OS les uns après les autres, ou enfin une machine qui peut faire fonctionner différents OS en même temps, et ainsi réaliser ces tous ces tests en même temps.
        • A économiser de l’énergie. Un PC consomme quelques centaines de watts. Et il passe 90% du temps à ne rien faire. Si on peut faire fonctioner plusieurs OS sur un seul PC, c’est toujours ça d’économisé !

      • SciFi SciFi 28 avril 2008 13:08

        @Forest

        La virtualisation permet de s’affranchir des ressources matérielles.

        Un exemple simple : la Java VM pour exécuter des applets. L’applet s’exécutera sur tout système disposant d’une JVM, sans qu’il soit nécessaire de recompiler le code.

        Je connais des équipes de développement qui utilisent VMWare pour raccourcir et sécuriser le cycle de développement d’un socle technique pour PC (i.e. un OS, des logiciels métier, des applications diverses, des paramétrages particuliers, etc.). Ce socle technique se traduit par un CD ou un DVD prêt à l’emploi, adapté au métier en question. Evidemment, au cours de ces développements, il peut y avoir des erreurs. Afin d’être sûr que ces erreurs n’auront pas de conséquence dans la version finale, il faut repartir d’un état antérieur valide. Sans VM, cela signifie réinstaller l’OS, effectuer toutes les opérations jusqu’au point d’erreur et adopter une autre stratégie, ce qui est très long et fastidieux. Avec une VM, il suffit de sauvegarder un état et de reprendre le développement à partir de cette sauvegarde.

        Techniquement, ils installent un OS (Windows par exemple) dans une machine virtuelle. Cette installation produit un simple fichier contenant le système installé, qu’ils peuvent personnaliser à volonté. Au travers de la VM, ils peuvent voir l’OS comme s’il était installé sur un PC (bureau, exploration de fichiers, logiciels installés, etc...). Au lieu de réinstaller complètement un PC, ils suffit qu’ils copient un fichier pour repartir d’un état donné.

        La virtualisation a également des intérêts en exploitation. Je connais une société qui, dans le passé, a multiplié les serveurs pour faire fasse aux problèmes de montée en charge de leurs applicatifs (des dizaines de milliers d’utilisateurs et de nouvelles applications régulièrement). Au fur et à mesure que de nouvelles applications sont développées, les serveurs peuvent être sous-dimensionnés. La virtualisation des serveurs permet de réaffecter des espaces en fonction des évolutions, sans qu’il soit nécesaire de changer les serveurs.

        On troque une architecture matérielle physique rigide, contre une architecture virtuelle plus souple, au prix d’un compromis avec la vitesse d’exécution. Lorsque l’on utilise correctement ces technologies, les résultats sont malgré tout largement acceptables.

         


      • foufouille foufouille 28 avril 2008 13:39

        ca peut servir pour les "vieux" logiciels qui ne tourne plus sous xp et qui n’ont plus de support.

        les vieux jeux dos qui tourne sous dosbox. l’emulation de materiel specifique aussi genre un vieux qui ne fonctionne pas avec les OS proprietaires recent.

        ds les entreprises je suppose qu’il s’agit d’acceder a des fichiers/sauvegardes qui ne sont plus supporter. ca doit couter moins cher qu’un nouveau logiciel ou driver

        aussi ds la gestion d’un reseau compose d’ordi different


      • Olivier 28 avril 2008 13:09

        vous oubliez que AIX (l’UNIX de IBM) propose la virtualisation depuis plusieurs années, grâce à une couche hyperviseur.

         

        Le grand interet de la virtualisation est de ne pas multiplier les ordinateurs physiques. On peut ainsi faire fonctionner jusqu’à une centaine de systèmes d’exploitation sur un seul serveur physique.

        Par exemple le IBM P595 avec ses 64 processeurs est conçu pour cela. On peut affecter une fraction de puissance de chaque processeur physique surpuissant à un système d’exploitation.


        • foufouille foufouille 28 avril 2008 13:42

          les 64 processeur c’est pas donne.......c’est combien le prix ?


        • foufouille foufouille 28 avril 2008 17:34

          vu que je trouve pas le prix ca doit etre super eleve comme les gros serveur SUN. genre 1 000 000 de dollar avec 16 puces......faut vraiment en avoir besoin

          j’aimerai bien mettre mon nez dedans pour voir l’interieur......


        • Olivier 28 avril 2008 19:03

          ce type de serveur cote effectivement plusieurs millions de $ (ou d’€) . Il y en a plus que vous l’imaginez.


        • foufouille foufouille 28 avril 2008 22:59

          pour avoir foiner un peu en 96, il semble me me souvenir qu’un sparc coutait 6M de dollard en 89. on parle plutot de mainframe la......j’aimerais qd meme mettre mon dedans ds 10 ou 20a qd ils seront a la poubelle.......


        • Yvance77 28 avril 2008 14:29

          Bon article. Mais il est vrai que pour la quasi totalite des gens cela n’apportera rien. L’user de base, veut de la bureautique, se taper de la zik et voir aussi youtube ou de la video point final.

          Je suis comme d’autres attache a l’usage de Virtualbox pour tester des distros Linux ( Suse dernierement) ou pour voir le futur d’une autre version exemple les diverses alphas d’Hardy Heron.

          A peluche


          • foufouille foufouille 28 avril 2008 14:56

            mais si ca peut servir. l’auteur est juste entrer ds les details

            l’utilisateur peut avec un emulateur eviter de racheter son logiciel prefere.

            de plus cette technique va evoluer et devenir peut etre transparente. les systemes de multi-boot sont tres chiant. reboot pour changer de systeme. install a faire ds l’ordre. incompatibilite de certains systemes de fichiers. problemes de partitions

            si ca devenait integre plus de probleme


          • Yvance77 28 avril 2008 22:18

            @ fouille

            "de plus cette technique va evoluer et devenir peut etre transparente. les systemes de multi-boot sont tres chiant. reboot pour changer de systeme"

             

            Oui ce serait un reve, mais pour le moment on y est pas encore. On ne peut pas couper le multi boot pour l’instant, sur avec doze que l’on garde pour les jeux et Nux pour tout le reste.

            Pour moi la grande etape prochaine de la virtualisation, c’est justement d’emuler parfaitement un XP ou Vista pour avoir les jeux. Le probleme majeur reside a ce jour du cote des Direct X. C’est par la virtualisation que l’essor de Linux va ce faire a mon sens.

             

            A peluche


          • foufouille foufouille 28 avril 2008 22:35

            emuler doze ou vista.........faut pas rever ca consomme toute les ressources et est instable

            directx est proprietaire. c’est ce qui plait aux editeur. ca leur evite de corriger les bug

            opengl c’est moins courant. il faudrait plutot qu’il conprenne qu’un bon soft ne sera pas voler en open source mais sera ameliore

             

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






Les thématiques de l'article


Palmarès