Ou comment mettre un hyperviseur dans un hyperviseur...
Le fonctionnement de l'hyperviseur Hyper-V est de se placer entre le matériel et le système d'exploitation afin d'offrir le maximum de performance aux serveurs virtuels qu'il fait fonctionner grâce à un accès direct au matériel pour ces machines virtuelles. Il arrive toutefois que nous ayons beson de disposer d'une machine virtuelle jouant le rôle de machine virtuelle (pour des tests notamment) et cela n'est pas prévu par défaut.
Cependant, il est possible de modifier la gestion du processeur utilisé par la machine virtuelle pour lui faire changer son comportement et faire en sorte que la machine virtuelle puisse à son tour devenir un hyperviseur. Mais quel est le but de cette manoeuvre ? A la base pour gérer les conteneurs, puis permettre l'utilisation de VMs pour d'autres tests tels que les SAN virtuels par exemple.
Il y a quelques prérequis pour que ce fonctionnement soit possible :
Get-VMProcessor -VMName <nom_de_la_VM_cible> | FL *
La liste des extensions devrait afficher le paramètre ExposeVirtualizationExtensions = True
.
Si ce n'est pas le cas, il suffit de faire, toujours avec PowerShell :Set-VMProcessor -VMName <nom_de_la_VM_cible> -ExposeVirtualizationExtensions $true
Vous pouvez dorénavant installer Hyper-V dans votre VM et obtenir un hyperviseur dans une VM...
Si vous n'arrivez pas à exécuter les commandes décrites ci-avant, c'est probablement que vous n'avez pas Hyper-V installé sur votre machine...