Antoine Benkemoun

05 Août, 2009

La paravirtualisation

Posté par Antoine dans la catégorie Etudes|Libre|Virtualisation|Xen

tech-presentation-2Je vais continuer et finir la série d’articles présentant les différents types de virtualisation. J’ai déjà eu l’occasion de proposer une classification des différents types de virtualisation et de parler de la virtualisation totale ainsi que de la virtualisation matérielle assistée. Je vais continuer en vous parlant de paravirtualisation. J’ai déjà eu l’occasion d’évoquer la notion de paravirtualisation dans la présentation de Xen que j’avais faite il y a quelques temps.

L’idée de base des précédents types de virtualisation était de faire croire au système d’exploitation qu’il s’exécutait sur une machine physique alors que ce n’était pas le cas. Cette technique est la technique la plus évidente lorsqu’on essaye de virtualiser des systèmes d’exploitation principalement propriétaires ce qui est le cas de VMWare par exemple. Il s’agit d’une méthode qui permet de centraliser toutes les fonctionnalités de virtualisation dans un seul endroit, à savoir la couche de virtualisation. L’inconvénient de cette méthode est que la couche de virtualisation devient rapidement très lourde avec la quantité croissante du nombre de fonctionnalités à implémenter.

La paravirtualisation adopte une vision radicalement différente. Au lieu de chercher à faire croire aux systèmes d’exploitation qu’ils s’exécutent sur une machine physique, il est possible d’adapter le système d’exploitation à la couche de virtualisation. Ceci n’aurait bien évidemment pas été possible sans la présence de logiciels libres…

virtus

La paravirtualisation vise donc à modifier les systèmes d’exploitation pour communiquer avec un hyperviseur au lieu de communiquer avec une machine physique. Sur ce blog, je parlerais d’hyperviseur au sens de Xen ou d’Hyper-V. VMWare parle d’hyperviseur à tord et à travers mais il ne s’agit pas, selon moi, d’un vrai hyperviseur. En réalité, il s’agit d’un système d’exploitation hôte déguisé.

L’hyperviseur au sens de la paravirtualisation est en contact direct avec le matériel physique. Il est l’intermédiaire exclusif entre le matériel et les systèmes d’exploitation. Lorsqu’on se trouve donc dans un système de paravirtualisation, il n’y a plus de notion de système d’exploitation invité et de système d’exploitation hôte. Tous les systèmes d’exploitation sont virtualisés dans le sens où ils disposent d’un noyau adaptés à la couche de virtualisation. Tous les systèmes d’exploitation ne seront pas égaux pour autant, il est possible de donner des accès spécifiques à différents systèmes d’exploitation.

Les systèmes d’exploitation communiquent avec l’hyperviseur via des API de communication. Ces API de communication remplacent les traditionnels appels systèmes. Chaque couche de virtualisation dispose donc de sa propre API. Pour adapter un système d’exploitation à un hyperviseur, il faut donc intégrer son API au noyau. Cela explique en partie le passage en GPL des pilotes Hyper-V de Microsoft.

Au final, la paravirtualisation est une technique particulièrement innovante qui présente une approche plus efficace de la virtualisation. Les avantages de cette technique sont une perte de performance largement réduite par rapport à une virtualisation totale. L’inconvénient majeur est qu’il est nécessaire d’adapter les systèmes d’exploitation pour chaque couche de virtualisation. Afin de résoudre ce problème, il est possible de coupler paravirtualisation et virtualisation matérielle assistée comme dans Xen.

7 Commentaires to "La paravirtualisation"

1 | Steve

août 5th, 2009 at 11 h 25 min

Avatar

Bonjour, je trouve ton site bien fait néanmoins je note quelques irregularités concernant VMware et je te trouve même quelques fois un peu trop virulant même.
Je ne parlerai ici que de VMware dans sa version ESX, qui à bien son Hyperviseur à lui.
Contrairement à ce que tu dis d’ESX le service console (Red Hat) et Vmkernel (Hyperviseur) fonctionnent au même niveau et ce détail à son importance.
Autre détail , on ne fait pas du ssh sur l’Hyperviseur mais sur le service console.
Donc dire que VMware parle à tort et à travers d’Hyperviseur, essaye de te renseigner :)
A t’entendre Xen c’est le meilleur produit et VMware ne sait pas faire de virtualisation?

2 | Antoine

août 5th, 2009 at 11 h 31 min

Avatar

Bonjour,

De ce que j’ai compris de VMWare, tu as un système d’exploitation hôte qui joue le role « d’hyperviseur ». Ca semble aussi coller avec ce que tu dis (VMkernel et console au même niveau). Le VMkernel est un processus (ou assimilé tel que) du système d’exploitation hôte.

Dans le cas de Xen, l’hyperviseur est un niveau (anneau pour être plus précis) en dessous des OS et il est tout seul sur ce niveau.

Je ne dis pas que VMWare ne fait pas de virtualisation. Je dis que VMWare ne fait pas de paravirtualisation. VMWare est un excellent produit et le plus adapté pour un déploiement en entreprise vu toutes ces fonctionnalités, je n’ai jamais dit le contraire.

3 | Steve

août 5th, 2009 at 11 h 47 min

Avatar

Merci de ta réponse,
Je n’avais pas bien interprété tes propos, ils sont maintenant clarifiés. :)
En fait VMKernel c’est le noyau, il n’a pas besoin d’OS Hote pour être installé, l’installation du RED HAT est la pour nous permettre de manager l’Hyperviseur.
Donc VMware pour moi c’est de la Paravirtualisation.

4 | Marc

août 7th, 2009 at 11 h 21 min

Avatar

Bonjour,

À ma connaissance (et pour avoir eu la chance d’administrer des machines vmware esx ces 3 derniers mois) VMKernel n’est pas un noyau mais un ensemble de modules ou d’ajouts au noyau linux, d’ailleurs au lancement de vmware esx on voit très bien (après le chargement du noyau, des modules et d’udev de mémoire) le chargement de vmkernel.

Qui plus est la « paravirtualisation » made in vmware esx n’est possible que pour les linux à partir du noyau 2.6.20 quelque chose (ce qui élimine d’office un certain nombre d’os et même de distributions linux).

Service console est aussi un module qui rend accessible via ssh un certain nombre de commandes (esx-***) et les commandes bash de base.

Conclusion vmware gère plus ou moins la paravirtualisation et la full virtualisation à la kvm, donc il y a, à mon sens, forcément système hôte.

Personnellement, sans le cacher, j’ai ma préférence pour xen en ce qui concerne la paravirtualisation ;).

Bonne journée.
Marc.

5 | Marc

août 7th, 2009 at 11 h 22 min

Avatar

Je précise que la version d’esx que j’ai utilisé est la 3.5 ;).

6 | Nicolas

août 11th, 2009 at 17 h 17 min

Avatar

Pour ceux que le sujet intéresse, l’université polytechnique de Valencia (UPV en espagne) développe un hyperviseur utilisant la para-virtualisation. (Cet hyperviseur n’est pas un OS et ne tourne pas dans un OS mais chaque partition peux contenir un OS différent compilé pour fonctionner au sein de l’hyperviseur).

http://www.xtratum.org/index.html

Pour l’instant il est utilisé principalement sur des processeurs à base de sparc pour le domaine du spatial.
Mais il doit pouvoir être porté sur des x86 (les premières versions tournaient à l’origine sur x86)

Nicolas

7 | Cdric

août 27th, 2014 at 19 h 42 min

Avatar

Bonjour,

Ton article est pas mal mais au final je suis intrigué. Surtout par ton schéma. Si je regarde l’illustration de droite, on a :

– matériel : qui fait office de serveur

– hyperviseur : vSphere 5.5, XenServer, Hyper-V

– Les VMs

En regardant l’autre schéma, cela donne :

– matériel : mon serveur ou station de travail

– Système d’exploitation : Win 7, Win 8 ou Win Server 2k15

– logiciel : Virtualbox, Workstation

– VM

Donc en gros la virtualisation totale se schématise comme un logiciel de virtualisation et la para c’est avec les hyperviseur de niveau 1, c’est ça ?

Ajoutez votre commentaire

A propos de ce blog

Ce blog a pour objectif de partager des informations avec tous les internautes. Comme indiqué dans le titre, je traiterais de différrents sujets gravitant autour de la sécurité informatique, de la virtualisation, de la l'administration système et du réseau.