Il existe deux types de virtualisation de mémoire : Virtualisation de mémoire selon l'approche logicielle et selon l'approche assistée par le matériel.

La virtualisation introduit un niveau de mappage mémoire supplémentaire. ESXi peut donc gérer la mémoire de manière efficace dans toutes les machines virtuelles. Une partie de la mémoire physique d'une machine virtuelle peut être mappée vers des pages partagées ou vers des pages non mappées ou permutées.

Un hôte gère la mémoire virtuelle sans avoir la connaissance du système d'exploitation invité et sans interférer avec le propre sous-système de gestion de la mémoire du système d'exploitation client.

Pour chaque machine virtuelle, VMM conserve un mappage entre les pages de mémoire physique du système d'exploitation client et les pages de mémoire physique de la machine sous-jacente. (VMware fait référence aux pages physiques de l'hôte sous-jacent sous le nom de pages « machine » et aux pages physiques du système d'exploitation client sous le nom de pages « physiques ».)

Chaque machine virtuelle perçoit un espace de mémoire physique contigu, basé sur le zéro et adressable. La mémoire machine sous-jacente sur le serveur utilisé par chaque machine virtuelle n'est pas nécessairement contiguë.

Pour la virtualisation de mémoire selon l'approche logicielle et selon l'approche assistée par la matériel, les adresses client virtuel-physique sont gérées par le système d'exploitation invité. L'hyperviseur n'est responsable que de la conversion des adresses client physique-machine. La virtualisation de mémoire selon l'approche logicielle combine les adresses client virtuel-machine dans le logiciel et les enregistre dans les tables de pages fantômes gérées par l'hyperviseur. La virtualisation de mémoire selon l'approche assistée par le matériel utilise l'installation matérielle pour générer les mappages combinés avec les tables de pages de l'invité et les tables de pages intégrées gérées par l'hyperviseur.

Le diagramme illustre l'implémentation ESXi de la virtualisation de mémoire.

Figure 1. Mappage de mémoire ESXi


Cette figure illustre l'implémentation de la virtualisation de mémoire.

  • Les cases représentent les pages et les flèches indiquent les différents mappages de mémoire.

  • Les flèches partant de la mémoire virtuelle client vers la mémoire physique client indiquent le mappage conservé par les tables de page dans le système d'exploitation client. (le mappage entre la mémoire virtuelle et la mémoire linéaire pour les processeurs à architecture x86 n'est pas indiqué).

  • Les flèches entre la mémoire physique client et la mémoire de la machine indiquent le mappage conservé par VMM.

  • Les flèches en tirets indiquent le mappage entre la mémoire virtuelle client et la mémoire machine dans les pages de table fantômes et également conservé par VMM. Le processeur sous-jacent exécutant la machine virtuelle utilise les mappages de table de page fantôme.