Liens connexes

Dépêche modérée par

Dépêche éditée par

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

Posté par simia (). Modéré le 28 avril 2008.
0
Virtualisation par isolation, machine virtuelle complète ou partielle, hyperviseur : état des lieux et perspectives de l'open source.
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.

> Lire la suite (74 commentaires, moyenne: 3).   [dépêche : 7883 caractères]

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 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 (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

À 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 libre repris récemment par Citrix (6)) et ESX Server (produit propriétaire 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 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 (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)).

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

Article rédigé avec la complicité d'Yvan.


(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 (Containers)

(3) : Quelques références sur OpenVZ pour Linux

(4) : Page principale de Qemu

(5) : Page Wikipedia de KVM

(6) : Virtualisation : Citrix rachète XenSource, le principal concurrent de VMware

(7) : Page de ESX Server

(8) : Microsoft lance la première bêta de son hyperviseur Hyper-V

(9) : Xen 3.0.3 virtualise sans modification l'OS invité

(10) : Page sur le support de Xen dans opensolaris
Xen officially in Solaris

(11) : Fedora abandonne Xen
The plan for Xen kernels in Fedora 9 : http://berrange.com/personal/diary/2007/11/plan-for-xen-kern(...)

(12) : KVM Official in Linux 2.6.20

(13) : qemu and virtio
Sortie du noyau Linux 2.6.24

(14) : Page principale de libvirt

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

...

Posté par cosmocat () le 28/04/2008 à 08:26. (lien). Évalué à 6.

patrick_g sort de ce corps!!!!

VirtualBox

Posté par j (page perso, ) le 28/04/2008 à 08:36. (lien). Évalué à 10.

Il manque VirtualBox http://virtualbox.org http://fr.wikipedia.org/wiki/VirtualBox
http://miscellanea.free.fr/vbox/vbox_w2k_cpu.png

Ovirt

Posté par IsNotGood () le 28/04/2008 à 08:47. (lien). Évalué à 5.

Un nouveau projet qui utilise libvirt :
Ovirt : http://ovirt.org/

C'est surtout pour les datacenter.

un bon bouquin sur Xen

Posté par atarakt () le 28/04/2008 à 09:05. (lien). Évalué à 5.

Pour information, voici un bouquin sympa pour ce qui voudrait approfondir leurs connaissances sur Xen ( http://www.wrox.com/WileyCDA/WroxTitle/productCd-0470138114.(...) ).

Je bosse avec en ce moment, et c'est vraiment une mine d'info, je vous le conseille vivement, notamment concernant les possibilités de configuration réseau de la bête qui sont épatantes.


atarakt

Virtualisation par isolation

Posté par jean-philippe gaulier (page perso, ) le 28/04/2008 à 09:46. (lien). Évalué à 5.

Mis à part OpenVZ, il y a l'excellent Vserver disponible directement en patch kernel (compatible grsec) et qui est pas mal utilisé :

http://linux-vserver.org

De mémoire, linuxFr l'utilise aussi, sauf changement de l'architecture.

Au-delà du conteneur, il permet également d'installer différentes distributions clientes sur un hôte simple.

Jails ?

Posté par kimelto () le 28/04/2008 à 10:29. (lien). Évalué à 8.

On parle de chroot, de zones Solaris mais pas des Jails des *BSD.
Ça peut être une bonne solution pour isoler un service sans passer par la case "virtualiser tout un SE" :-)

http://fr.wikipedia.org/wiki/BSD_Jail

Des chiffres

Posté par oops (page perso, ) le 28/04/2008 à 11:28. (lien). Évalué à 5.

>Actuellement, la solution la plus utilisée en entreprise reste Xen
>puisqu'il s'agit historiquement de la plus ancienne solution.

Tu as des chiffres là dessus ?
Parce que du bruit et du marketing oui j'en ai vu beaucoup mais dans la vrai vie j'ai vu des gros parcs de linux-Vserver et d'OpenVZ mais Xen ... bof

Niieeee??

Posté par Samuel Thibault (page perso, ) le 28/04/2008 à 11:30. (lien). Évalué à 6.

`son inclusion fait encore l'objet de discussion - voire d'un rejet pur et simple par certaines distributions (11).'

?!?!?!

Man lire.

Ne PAS lire ce que dit is-not-good, deja, et plutot aller lire le lien chez Fedora: pour fedora 6-8, ils ne feront pas d'effort de portage, mais pour fedora 9, oui:

`Since people seeem to use Xen, we have decided not to drop it :-)

So the plan is to re-focus 100% of all Xen kernel efforts onto paravirt_ops.'

ESX et paravirtualisation

Posté par Philou Kapouik () le 28/04/2008 à 12:33. (lien). Évalué à 1.

Si je ne m'abuse, ESX est un hiperviseur de virtualisation et non de paravirtualisation comme XEN.

Avec ESX on peut faire tourner un système propriétaire sur une machine ne possédant pas la technologie de virtualisation. C'est pour cela qu'il y a encore une grosse différence de performance entre XEN et ESX (à l'avantage de XEN).

--
Software is like sex: it's better when it's free

k-suite

Posté par bubar () le 28/04/2008 à 12:59. (lien). Évalué à 10.

Dites, Xen ne sera pas également géré au travers de kvm, (bientôt) par hasard ?
Dites, VmWare n' utilise t il pas kvm, (maintenant) par hasard ?
Dites, kvm n' est pas basé sur le travail fait sur kqemu, par hasard ?
Dites enfin, kqemu ce n' est pas l' accélérateur de Qemu ?

Des solutions concurentes, des solutions 'adjacentes', beaucoup d' évolution. L' évolution de ces solutions (vmware donnant dans l' hyperviseur, xen évitant de modifier les guest. Vmware poussant kvm, xen racheté par citrix), finalement kvm intégré upstream au noyau. Les hyperviseurs du monde du RT (rtlinux puis rtai puis xenomai) débarquent sur la virt. (d' ailleurs le patch rt pour blob nvidia n' a pas été intégré au patch xen pour blob nvidia ?, là je m' égare..)

Merci à ceux qui complèterai ce commentaire (très) raccourci de la vie politique des solutions plus ou moins libres pour la para et directe virtualisation. Ce commentaire à l' emporte pièce de raccourcis,

tout ça pour dire :
MERCI Mr Fabrice BELLARD



zou je ->[_]

xen le plus ancien

Posté par Yves-Gaël Chény (page perso, ) le 28/04/2008 à 13:45. (lien). Évalué à 1.

Je ne suis pas convaincu que Xen soit la solution de virtualisation le plus ancienne en logiciel libre.
Qemu est largement plus vieux, non ?

--
Happy Hacking !

virtualisation et 3D

Posté par ndesmoul () le 28/04/2008 à 14:07. (lien). Évalué à 4.

Il y a un point qui n'est pas abordé par ce journal, c'est l'accélération 3D.
Toutes les solutions actuelles permettent d'émuler une machine/OS presque parfaitement mais pour avoir une accélération 3D c'est plus compliqué.

Certes pour les aspects serveurs, on s'en fout mais un utilisateur donné pourrait trouver pleins d'avantages à bénéficier d'accélération graphique dans une machine virtuelle (entre autre pour jouer à des jeux réberbatifs à wine sous un Windows émulé).

VMware semble proposer un support expérimental de DirectX. J'ignore si c'est utilisable.

Un journal parlait de ce sujet https://linuxfr.org//~qdm/24807.html

Dans ce journal je vous invite plus particulièrement à regarder le message de Jux introduisant le projet VMGL qui semble apporter une solution intéressante en permettant une accélération OpenGL (pour le moment limité à du Linux).

La page du projet: http://www.cs.toronto.edu/~andreslc/xen-gl/

En parlant de ça...

Posté par Johan Charpentier (Jabber id, ) le 28/04/2008 à 15:43. (lien). Évalué à 4.

En début d'année il y avait eu un article sympa sur la virtualisation :

http://linuxfr.org//2008/01/12/23557.html
(qui se referait à une étude sur la virtualisation effectuée par la société Bearstech: http://bearstech.com/news/2007-12-7/livre-blanc-sur-la-virtu(...) )

Je le précise car il est, à mon avis, un trés bon complement à cette depêche...

--
Etudiant, utilisateur de LL et membre d'aGeNUx...

VMware ESX hyperviseur ??

Posté par Yves Martin () le 28/04/2008 à 16:07. (lien). Évalué à 1.

Salut,
Pour moi, VMware ESX n'est pas dans la catégorie hyperviseur mais de la virtualisation partielle.
En effet, un OS non modifié pour x86 fonctionne parfaitement dès qu'il supporte l'IDE, le SCSI par BusLogic ou LsiLogic, la carté réseau Amd PCnet32, et les bases du IBM PC AT (clavier/souris PS/2 et écran VGA)

Les "vmware-tools" ne sont pas nécessaires. Ils permettent:
* d'optimiser l'utilisation de l'interface graphique si utilisée - pour un serveur Linux, pas grand intérêt
* d'améliorer la gestion de la RAM - pour éviter de faire swapper à la fois l'OS hôte et la VM dans l'hyperviseur
* pour les anciennes versions 2.5, fournit un driver "vmxnet" pour l'interface réseau spécifique qui améliore les perfs. Depuis la version 3, la carte virtuelle PCnet32 est la seule disponible et est aussi performante que la "vmxnet".

La seule chose qui pourrait être attribuée à un hyperviseur serait la gestion de qualité de service pour l'accès aux resources CPU, disques, bande passante réseau. Mais finalement, ESX n'est qu'un Linux modifié qui fait tourner les VM comme des processus - je ne pense pas qu'il y ait énormément de différence avec VMware workstation d'ailleurs (à part la qualité de service)

Bref, pour moi, ESX ce n'est pas de la para-virtualisation mais de la virtualisation partielle.

ESX paravirtualiseur ?

Posté par guhh () le 28/04/2008 à 17:26. (lien). Évalué à 1.

Il me semble que dansVMware ESX Server on n'a pas besoin de modifier un OS pour le virtualiser !?

[+] article avec bien trop d'erreurs ou d'inexactitudes

Posté par entr0p1e () le 28/04/2008 à 17:42. (lien). Évalué à -5.

C'est vraiment l'un des plus mauvais articles que j'ai vu sur le sujet.

Sérieux, il mélange tellement tout que je pense qu'il faudrait le supprimer.

Tout ce que je peux conseiller, c'est de ne pas s'y fier pour vous faire une opinion sur quelle techno fait quoi et quel est l'état de l'art.

Je suis pas fashion, je sais...

Posté par phentex () le 29/04/2008 à 00:08. (lien). Évalué à 2.

Hmm,... je suis le seul à trouver que le concept même de virtualisation (émulateurs, hyperviseurs) est une aberration monumentale ?
Avoir un OS, qui comme son nom l'indique EXPLOITE une architecture matériel, OK. En avoir plus qu'une...

--
ggggnnnnnnnnnnnnnnnnn (interprétation libre)

La virtualisation de réseaux

Posté par clowncoder () le 29/04/2008 à 00:54. (lien). Évalué à 1.

La virtualisation de machines permet la virtualisation de réseaux, ce qui permet de tester les maquettes logiciels sans avoir les dizaines de machines réelles.
Il manque UML dans les solutions de virtualisations présentés, d'ailleur, je ne connais que celle-là, étant donnée qu'elle me satisfait pleinement pour les manips associés aux réseaux.

Revenir en haut de page