Je vais continuer dans la suite logique des billets précédents. Pour rappel, j’ai précédemment parlé de l’intérêt de la virtualisation, proposé une classification des différents types de virtualisation et puis expliqué plus en détail la virtualisation totale. Je vais donc continuer cette série d’article en vous parlant de virtualisation matériel assistée.
Tout d’abord, le terme de virtualisation matériel assistée semble
assez explicite. On comprend bien qu’il s’agit de virtualisation qui va
être assistée par une fonctionnalité spécifique du matériel. Les détails
du fonctionnement de cette technologie le sont cependant bien moins. Ce
terme est une traduction de l’anglais « Hardware Assisted
Virtualization ». On peut aussi trouver comme autre traduction
« virtualisation assistée par matériel ». Tous ces termes sont cependant
équivalents. Cependant, la virtualisation partielle n’a aucun rapport.
Comme vous pouvez le voir, le schéma
d’architecture ne change que très peu par rapport à la virtualisation
totale. Avec la virtualisation totale, nous parlions de couche
logicielle de virtualisation alors que parlerons plutôt de « Virtual
Machine Monitor » ou VMM dans le cas de la virtualisation matériel
assistée.
Une extension du jeu d’instructions du processeur
Ensuite, il est important de préciser que la virtualisation matériel
assistée n’est pas une technique à part entière. Il s’agit en réalité
d’une extension du principe de virtualisation totale. La principale
modification qui est apportée est l’ajout d’extensions processeur de
virtualisation. Vous en avez surement entendu parlé, je parle bien
d’Intel VT et d’AMD-V. Ces instructions ont été implémentées dans les
processeurs afin de pouvoir améliorer la virtualisation totale. Ces
instructions sont une extension du jeu d’instructions exécutables par le
processeur similairement à SSE ou MMX.
Ces instructions apportent plusieurs améliorations. Tout d’abord, elles créent un anneau
-1 qui sera l’endroit privilégié de l’exécution d’un hyperviseur. Ceci
permet de garder la localisation traditionnelle des anneaux avec le
système d’exploitation présent dans l’anneau 0 et les applications dans
l’anneau 3. Les autres ne sont jamais utilisé à l’exception de quelques
rares cas. J’aurais l’occasion de revenir plus tard sur la notion
d’anneau. Le placement du système d’exploitation dans son anneau
traditionnel permet de simplifier l’accès à certains instructions et
donc de supprimer une partie du travail de la couche de virtualisation.
De plus, elles permettent aux machines virtuelles de gérer leurs propres interruptions
et donc changements de contexte. Ceci évite à la couche logicielle de
virtualisation de devoir les gérer. Egalement, elles permettent au
matériel de gérer directement les zones de mémoire vive (non forcément
linéaires) disponibles au machines virtuelles. Sans les extensions, il
était nécessaire que la couche de virtualisation émule et gère des
zones.
Si vous souhaitez plus d’informations sur ces instructions, je vous invite à consulter la documentation d’Intel disponible ici ou ici.
Au final, les extensions processeur de virtualisation permettent
d’améliorer la technique de la virtualisation totale. Ceci se fait par
l’ajout d’un degré d’intelligence au niveau du matériel qui sera
conscient de l’utilisation d’une couche de virtualisation. La
virtualisation matériel assistée est donc une évolution du principe de
virtualisation totale.
0 Commentaire:
Enregistrer un commentaire