Virtualisation Hyper-V nichée (Nested Hyper-V virtualization)
Depuis les premiers instants ou la virtualisation est apparue, on s’est posé la question si on pouvait virtualiser la virtualisation… Windows 10 et Windows Serveur 2016 proposent enfin cette option. A nous d’inventer les scénarios créatifs pour sa mise en œuvre…
Depuis les premiers instants ou la virtualisation est apparue, on s’est posé la question si on pouvait virtualiser la virtualisation… Windows 10 et Windows Serveur 2016 proposent enfin cette option. A nous d’inventer les scénarios créatifs pour sa mise en œuvre…
En ce qui me concerne, en tant que MCT, le fait de pouvoir désormais réaliser durant les formations Windows Server les exercices d’implémentation, configuration et manipulation de serveurs de virtualisation Hyper-V sans devoir recourir à des installations physiques ou des multi-OS-boots est certainement un scenario intéressant.
De plus, les exercices Hyper-V proposés par Microsoft Virtual Academy (et autre sites Microsoft), pourront désormais tourner entièrement avec les produits Hyper-V et non pas Hyper-V sur VMware (qui propose cette fonction depuis longtemps) !!!
Voici une instruction pas-à-pas de l’implémentation de la virtualisation nichée avec Hyper-V :
Les prérequis :
- Les mêmes besoins hardware au niveau de l’hôte Hyper-V qu’auparavant
- Au moins 4Gb de RAM dans la VM Hyper-V hôte
- L’hôte Hyper-V doit exécuter Windows 10 ou Windows Serveur 2016
- Le VM Hyper-V hôte doit être du même build que l’hôte Hyper-V
- Le VM Hyper-V hôte doit être préparé pour activer la virtualisation nichée
Préparation :
- Note : cet exercice est réalisé sur un Microsoft Surface PRO 3, avec 8Gb de RAM et Windows 10 PRO à l’état de juin 2016
- Télécharger le script PowerShell appelé « Enable-Nested-VM.ps1 » avec l’URL suivant : https://github.com/Microsoft/Virtualization-Documentation/blob/master/hyperv-tools/Nested/Enable-NestedVm.ps1
- Ouvrir PowerShell en tant qu’administrateur et exécuter le script en tapant : Enable-NestedVm.ps1 -VmName
- Le script va effectuer un nombre de validations afin de vérifier que toutes les options sont configurées correctement. Il s’agit des points suivants :
- “ExposeVirtualizationExtensions”
- “DynamicMemoryEnabled”
- “SnapshotEnabled”
- “MacAddressSpoofing”
- “MemorySize”
- En résumé :
- L’état sauvegardé (si présent) sera enlevé
- Si la future VM Hyper-V hôte est en cours d’exécution, elle sera stoppée (afin de pouvoir modifier sa configuration)
- Les extensions de virtualisation seront activées (si pas déjà activées)
- La mémoire dynamique sera désactivée (si activée)
- Le spoofing des adresses MAC sera activé optionnellement. Sinon, les VM nichées ne pourront pas communiquer par le réseau
- La RAM de la VM Hyper-V hôte sera configurée sur 4Gb (si configurée à une valeur inférieure)
Voici la future VM Hyper-V hôte qui montre au moins deux options hors des prérequis :
Voici le script d’activation, la première fois avec les deux points à corriger et la deuxième fois en rapportant que tout est OK.
Un autre script appelé « Check-Nested-VM.ps1 » permet de vérifier si l’hôte Hyper-V et les VM sont prêts pour la virtualisation nichée. Ici on voit que mon portable/tablette Microsoft Surface supporte la virtualisation mais l’un des VMs, non…
…mais la VM “Win10-1” qui a été préparée précédemment, oui !
C’est le moment de démarrer la VM Hyper-V hôte “Win10-1”.
Une fois connectée en tant qu’administrateur à la VM Win10-1, on installe simplement la fonctionnalité « Hyper-V » en passant par « programmes et fonctionnalités ». Après un redémarrage (traditionnel) plus tard, nous obtenons une VM qui est à son tour un hôte de virtualisation Hyper-V désormais.
C’est le moment de créer une nouvelle VM, cette-fois-ci en utilisant la console Hyper-V Manager de Win10-1. Je l’appelle Win10-2. Il ne reste plus qu’à la démarrer et voilà !
Une machine virtuelle s’exécutant sur un hôte de virtualisation (virtuel) qui à son tour s’exécute sur un hôte de virtualisation (physique). Vive le progrès…