> Tech > La para-virtualisation

La para-virtualisation

Tech - Par iTPro - Publié le 07 mars 2013
email

La para-virtualisation doit modifier l’OS invité. Une VM para-virtualisée fournit des API spéciales nécessitant des modifications d’OS substantielles dans les applications utilisateur.

La para-virtualisation

La dégradation des performances constitue un problème critique d’un système virtualisé, et personne n’a envie d’utiliser une VM nettement plus lente qu’une machine physique.

Vous pouvez insérer la couche de virtualisation à différents emplacements dans la pile logicielle d’une machine. Toutefois, la para-virtualisation essaie de réduire la consommation de ressources processeur de la virtualisation et, ainsi, d’améliorer les performances en modifiant uniquement le noyau de l’OS invité. Lorsque les OS invités sont para-virtualisés, ils sont assistés par un compilateur intelligent, qui remplace les instructions d’OS non virtualisables par des hyperappels.

Le processeur x86 traditionnel propose quatre ring d’exécution des instructions : ring 0, 1, 2 et 3. Plus le numéro du ring est petit, plus le privilège de l’instruction exécutée est élevée. L’OS est chargé de gérer le matériel et les instructions privilégiées à exécuter sur le ring 0, tandis que les applications de niveau utilisateur s’exécutent en ring 3. Le meilleur exemple de para-virtualisation est KVM (Kernel-Based VM).

Lorsque le processeur x86 est virtualisé, une couche de virtualisation est insérée entre le matériel et l’OS. Selon la définition de ring x86, la couche de virtualisation doit aussi être installée en ring 0. Différentes instructions au niveau du ring 0 peuvent provoquer des problèmes. Toutefois, lorsque le noyau de l’OS invité est modifié pour la virtualisation, il ne peut plus s’exécuter directement sur le matériel.

Même si la para-virtualisation réduit la consommation de ressources processeur, elle induit d’autres problèmes. Premièrement, sa compatibilité et sa portabilité peuvent être mises en doute, car elle doit aussi prendre en charge l’OS non modifié. Deuxièmement, le coût de la gestion des OS para-virtualisés est élevé, car ils pourraient nécessiter de conserver les modifications de noyau d’OS.

Enfin, les avantages de la para-virtualisation en termes de performances peuvent varier considérablement selon la charge. Par rapport à la virtualisation complète, la para-virtualisation est relativement aisée et plus pratique. Le principal problème de la virtualisation complète tient aux performances médiocres de la conversion binaire et il est difficile d’accélérer cette dernière. Par conséquent, de nombreux produits de virtualisation emploient l’architecture de para-virtualisation. Les produits populaires Xen, KVM et VMware ESX en constituent de bons exemples.

KVM est un outil de para-virtualisation assisté par le matériel, lequel améliore les performances et gère les OS invités non modifiés tels que Windows, Linux, Solaris et d’autres variantes Unix. Il s’agit d’un système de para-virtualisation Linux, faisant partie du noyau de Linux version 2.6.20. Le noyau Linux existant assure la gestion de la mémoire et les activités d’ordonnancement. KVM effectue le reste et constitue donc un outil plus simple que l’hyperviseur qui contrôle toute la machine.

A la différence de l’architecture de virtualisation complète, laquelle intercepte et émule les instructions privilégiées et les instructions sensibles au moment de l’exécution, la para-virtualisation gère ces instructions au moment de la compilation. Le noyau d’OS invité est modifié afin de remplacer les instructions privilégiées et sensibles par des hyperappels à l’hyperviseur ou au VMM. Xen est un exemple de ce type d’architecture.

Les instructions privilégiées sont implémentées par des hyperappels à l’hyperviseur. Une fois les instructions remplacées par des hyperappels, l’OS invité modifié émule le comportement de l’OS invité original. Sur un système Unix, un appel système inclut une interruption ou une routine de service. Les hyperappels appliquent une routine de service dédiée dans Xen.

Ces nombreux types d’architecture de virtualisation ont chacun leurs atouts et faiblesses spécifiques. Examinez ces aspects afin d’appliquer l’architecture la plus appropriée à votre environnement.

Adapté de « Distributed and Cloud Computing: From Parallel Processing to the Internet of Things » (Syngress, éditions Elsevier), Par Kai Hwang, Jack Dongarra et Geoffrey Fox.

Illustration : MSDN

Téléchargez gratuitement cette ressource

Guide de Services Cloud Managés

Guide de Services Cloud Managés

Accélérer votre transformation digitale, protéger et sécuriser vos environnements Cloud avec les offres de support, d'accompagnement et de services managés. Découvrez le TOP 3 des Services Managés pour accompagner la transformation de vos environnements Cloud, gagner en agilité et en sécurité dans un monde d'incertitudes.

Tech - Par iTPro - Publié le 07 mars 2013

A lire aussi sur le site

Revue Smart DSI

La Revue du Décideur IT