La virtualisation imbriquée, concept et activation

Aujourd’hui, je vous propose de découvrir la technologie de virtualisation, où de nouveaux usages apparaissent constamment pour repousser les limites. Au cœur de cette évolution se trouve une méthode prometteuse qui attire de plus en plus l’attention : la virtualisation imbriquée (ou nested virtualization en anglais). Dans cet article, je vais tenter de vous expliquer le concept de la virtualisation imbriquée, dévoiler son utilité, quelques cas d’usage, ainsi que ses avantages et inconvénients. Nous allons également voir comment la mettre en place sous la plupart des solutions de virtualisation.

Attention, à l’instar du film Inception qui nous plonge dans des rêves à l’intérieur d’un premier rêve, nous nous apprêtons à faire un voyage au-delà des frontières du matériel physique, là où la virtualisation s’imbrique dans une autre virtualisation.

La virtualisation imbriquée ou nested virtualization qu’est-ce que c’est ?

La virtualisation imbriquée (en anglais nested virtualization), également connue sous le nom de virtualisation de deuxième niveau, est une technique qui permet d’exécuter des hyperviseurs (comme Hyper-V ou Proxmox par exemple) à l’intérieur d’un autre hyperviseur. Cela signifie qu’au lieu d’exécuter un seul niveau de virtualisation (où un hyperviseur gère les machines virtuelles), vous pouvez avoir plusieurs niveaux de virtualisation, avec des hyperviseurs s’exécutant les uns à l’intérieur des autres.

Pour résumer, nous allons exécuter des machines virtuelles (VM) à l’intérieur d’autres machines virtuelles.

Virtualisation classique :

Virtualisation imbriquée :

Sources des illustrations : site de Microsoft

Dans quels cas utiliser la virtualisation imbriquée ?

La virtualisation imbriquée trouve des applications dans divers scénarios, notamment :

  • Le développement : Les développeurs peuvent utiliser la virtualisation imbriquée pour créer des environnements de développement isolés à l’intérieur d’environnements virtuels déjà existants.
  • Pour des tests : Cela vous permet de tester le fonctionnement de certains hyperviseurs avant leurs mises en œuvre réelle, ou de tester une procédure délicate/dangereuse impliquant des hyperviseurs avant de vous lancer sur l’environnement réel.
  • Le Cloud Computing : Les fournisseurs de services Cloud peuvent utiliser la virtualisation imbriquée pour créer des instances de machines virtuelles au sein d’autres instances, offrant ainsi une isolation accrue pour les charges de travail sensibles.
  • L’éducation et la formation : Les environnements de formation virtuelle peuvent bénéficier de la virtualisation imbriquée pour simuler des architectures complexes et permettre aux étudiants d’explorer différentes configurations sans affecter les machines physiques. Cela peut aussi simplifier le travail du formateur/correcteur en ayant une seule machine virtuelle à récupérer par élève.

Les avantages de la virtualisation imbriquée

La virtualisation imbriquée offre plusieurs avantages dont voici quelques exemples :

  • L’isolation renforcée : Chaque niveau de virtualisation offre une couche supplémentaire d’isolation, ce qui permet de mieux protéger les charges de travail et les données sensibles.
  • La flexibilité : La virtualisation imbriquée permet de créer des environnements complexes et personnalisés en imbriquant des hyperviseurs selon les besoins spécifiques de l’utilisateur.
  • L’optimisation des ressources : En utilisant la virtualisation imbriquée, il est possible d’optimiser l’utilisation des ressources matérielles en consolidant plusieurs environnements virtuels sur une seule infrastructure physique.

Les inconvénients de la virtualisation imbriquée

Comme toute solution qui offre des avantages :

  • La complexité accrue : La gestion de plusieurs niveaux de virtualisation peut être complexe et nécessiter une expertise technique plus poussée qu’une simple virtualisation.
  • La performance : Chaque niveau de virtualisation ajoute une surcharge supplémentaire, ce qui peut entraîner une dégradation des performances dans certains cas d’utilisation.
  • Le surcoût : La virtualisation imbriquée peut entraîner des coûts supplémentaires liés à la gestion et à la maintenance des environnements virtuels superposés, au besoin de performance plus accru ou à la consommation plus élevée d’électricité.

Mise en place de la virtualisation imbriquée

Sous Hyper-V

Hyper-V est une plateforme de virtualisation développée par Microsoft. Elle permet de créer et de gérer des machines virtuelles sur des serveurs physiques exécutant le système d’exploitation Windows.

Les prérequis

Sous Hyper-V les prérequis dépendent de votre processeur. La prise en charge de la virtualisation imbriquée sous Hyper-V a été très longtemps réservée aux processeurs Intel, ce n’est plus le cas.

Pour les processeurs Intel

Il faut que votre processeur soit compatible avec la technologie VTx et EPT. La machine physique doit être sous Windows Server 2016 ou plus récent, sinon sous Windows 10 ou plus récent. La configuration de la machine virtuelle doit être en version 8.0 ou supérieure.

Pour les processeurs AMD

Le processeur doit être de la gamme EPIC ou RYZEN ou une gamme plus récente. La machine physique doit être sous Windows Server 2022 ou plus récent, sinon sous Windows 11 ou plus récent. La configuration de la machine virtuelle doit être en version 9.3 ou supérieure.

Activation de la virtualisation imbriquée sous Hyper-V

L’activation de la virtualisation imbriquée sous Hyper-V est très simple. Il suffit d’ouvrir PowerShell en administrateur et de lancer la commande :

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

Pour désactiver la virtualisation imbriquée, il suffit de taper la commande :

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $false

<VMName> doit correspondre au nom de la VM sur laquelle vous souhaitez modifier le statut de la virtualisation imbriquée.

L’activation de la virtualisation imbriquée sous Hyper-V désactive la prise en charge de la mémoire dynamique pour cette machine virtuelle.

Sous Proxmox

Proxmox est une solution de virtualisation open source qui combine la virtualisation basée sur les conteneurs (LXC) et la virtualisation matérielle complète (KVM) dans une plateforme unique.

Sur la version 8.1 (et les suivantes) de Proxmox VE cette fonctionnalité est activée par défaut

Pour que cela fonctionne, il faut définir sur la machine virtuelle le type de processeur sur « Host » via la commande :

qm set <vmid> --cpu host

<vmid> correspond à l’ID de votre VM sous Proxmox

Sinon vous pouvez le faire directement dans la partie Hardware de votre VM.

Sous Vmware ESXi

Vérifiez que la machine virtuelle est compatible avec ESXi 5.1 et les versions ultérieures. Vérifiez si Intel VT-x ou AMD-V est activé dans le BIOS afin que la virtualisation assistée du matériel soit possible. Il faut dans les options du CPU cocher la case: Exposer l’assistance matérielle à la virtualisation au SE invité

VMWare workstation

Dans la partie « Processors », cochez la case « Virtualize Intel VT-x/EPT or AMD-V/RVI ».

Virtualbox

Dans la configuration de la VM Sur la gauche, cliquez sur « Système », puis à droite sur l’onglet « Processeur ». A cet endroit, cochez l’option « Activer VT-x/AMD-V imbriqué » et validez.

Conclusion

En conclusion, la virtualisation imbriquée représente une évolution dans le domaine de la virtualisation, offrant de nouvelles possibilités pour répondre aux défis technologiques et façonner l’avenir de l’informatique virtuelle. Elle offre un potentiel significatif pour répondre aux besoins croissants en matière d’isolation, de flexibilité et d’optimisation des ressources dans divers domaines.

Cependant, son utilisation doit être soigneusement évaluée en fonction des exigences spécifiques de chaque besoin, en tenant compte à la fois des avantages et des inconvénients qu’elle présente.

On l’a vu, mettre en place une solution de virtualisation imbriquée est assez simple.

Mon utilisation personnelle de la virtualisation imbriquée sous Hyper V est de pouvoir isoler un ensemble de machines virtuelles ayant besoin de communiquer entre eux. De faire des simulations d’environnement informatique « complexe »

Sous Proxmox, cela me permet également de faire tourner les quelques VM issues d’Hyper V que je ne peux pas refaire sous Proxmox dans l’immédiat, mais aussi de faire des simulations d’environnement informatique « complexe ».

Sources : Le site de Proxmox et le site de Microsoft