Les bénéfices de Dynamic Memory dans Hyper-V

Le nouveau mécanisme d'allocation dynamique de la mémoire ajouté par Microsoft dans le SP1 d'Hyper-V R2 assure une affectation optimale des ressources mémoire du serveur hôte aux VM en fonction de leurs besoins. A condition toutefois de comprendre son mécanisme de fonctionnement et de paramétrer correctement les contraintes des différentes VM.

La virtualisation améliore la façon dont les administrateurs IT affectent la mémoire à leurs serveurs. Grâce aux nouvelles technologies de gestion de la mémoire en environnement virtuel, il est désormais possible d’allouer de la mémoire supplémentaire à une machine virtuelle (VM) qui est à court de ressources. Il est ainsi possible d’améliorer les performances, mais aussi d’accroitre la flexibilité d’administration des VM.

Avec la mémoire dynamique, l’allocation de mémoire devient la responsabilité de l’hyperviseur.

Jusqu'à tout récemment, la technologie de virtualisation de Microsoft, Hyper-V, n’offrait que des fonctions d’allocations mémoire basique et contraignait les administrateurs à allouer de la mémoire de façon statique aux VM.

La nouvelle fonctionnalité de mémoire dynamique, lancée avec le Service Pack 1 d’Hyper-V R2, libère les administrateurs de ce fardeau. Avec Dynamic Memory, Hyper-V devient capable de gérer la mémoire disponible comme un pool unique et de l’allouer dynamiquement aux VM. Et ce, de façon optimale, au plus près de leurs besoins. Grâce à ces capacités d’allocation dynamique de la mémoire, les machines virtuelles peuvent fonctionner plus efficacement et avec plus de souplesse.

Pourquoi utiliser la technologie Hyper-V de la mémoire dynamique ?

Dans Hyper-V R2 SP1, il existe deux méthodes pour allouer de la mémoire aux VM. La première, «à l’ancienne», consiste à attribuer à chaque VM une quantité statique de mémoire. La seconde consiste à gérer la mémoire de façon dynamique. Dans ce cas, il revient à l’hyperviseur d’allouer dynamiquement la mémoire. Une telle automatisation pourrait en inquiéter certains mais dans la pratique la technologie est une aubaine pour les administrateurs.

Car ces derniers ont toujours été plus ou moins obligés de deviner combien de RAM devait être installée dans un serveur. Un processus qu’ils ont jusqu’alors largement reproduit avec les VM. Or nul n’est mieux placé que le noyau pour savoir de quelle quantité de mémoire a besoin chaque VM et à quel moment. C’est justement sur cette base qu’Hyper-V effectue ses allocations de mémoire.

Une allocation dynamique encadrée par un ensemble de contraintes

Evidemment, le mécanisme d’allocation dynamique de la mémoire d’Hyper-V s’appuie sur un ensemble de contraintes imposées par l’administrateur, qui lui permettent de maintenir un contrôle sur l’attribution de la mémoire. La définition de ces contraintes est simple : pour chaque VM, il convient d’indiquer la quantité de mémoire pour le démarrage, ainsi que la mémoire maximale (jusqu’à 65 Go) qui pourra être attribuée à une VM. Il faut aussi indiquer la priorité d’allocation de mémoire en fonction des VM, de façon à garantir que les machines les plus critiques seront celles qui se verront allouer en priorité la mémoire disponible.

Une fois cette configuration effectuée, Hyper-V se charge de faire évoluer dynamiquement la mémoire disponible pour chaque VM en fonction des besoins réels. Il est à noter que si une VM a besoin de 4 Go pour démarrer mais qu’ensuite sa consommation retombe à 2 Go, les 2 Go non utilisés pourront être réalloués dynamiquement à d’autres machines virtuelles. La valeur minimale de démarrage n’est donc pas le minimum de mémoire qui sera en permanence allouée à une VM, mais bien le minimum de mémoire vive nécessaire au démarrage de la VM.

hyper v

Le paramètrage de Dynamic Memory dans Hyper-V

L’utilisation de la fonction de mémoire dynamique d’Hyper-V, si elle facilite la vie au quotidien, ne supprime pas totalement le besoin de surveiller l’allocation mémoire. Il peut ainsi arriver que dans une VM, une application défaillante consomme de la mémoire de façon irrationnelle et qu’il faille limiter son maximum alloué, sous peine de mettre en péril le fonctionnement d’autres VM.

Notons pour terminer que le processus de mémoire dynamique de Microsoft est différent de celui de VMware au sens où il n’effectuera jamais de surallocation de mémoire. La somme des quantités de mémoire allouées aux différentes VM ne peut donc en aucun cas dépasser la mémoire vive physique totale du serveur (ce que permet la technologie de VMware au prix toutefois d’une notable dégradation des performances liées à l’utilisation du swap disque). Enfin, Hyper-V ne propose pas non plus de mécanisme de compression de mémoire, un mécanisme présent dans VMware ESX depuis la version 4.1.

En savoir plus sur le web :

Implémenter et configurer Dynamic Memory (en anglais)

Pour approfondir sur Virtualisation de serveurs

Close