Windows Server 2016: Introduzione ad Hyper-V Nested Virtualization

Windows Server

Una delle più importanti feature introdotte in Windows Server 2016 TP4 è la Nested Virtualization, che consente di creare un ambiente Hyper-V all’interno di un altro Hyper-V. Ad oggi esiste un solo scenario supportato per questa tecnologia e si tratta degli Hyper-V Container, per isolare e separare i processi tra Host Container e Containers stessi.

Dal mio punto di vista, un altro interessante scenario è il seguente: creare host Hyper-V separati all’interno di una solo host fisico. Un Service Provider potrebbe offrire un intero hypervisor in gestione, senza esporre l’hardware reale. Non sarei stupito se in un futuro vedessi questa cosa all’interno di Microsoft Azure.

La Nested Virtualization è presente, come detto, all’interno di Windows Server 2016 TP4 ma anche all’interno di Windows 10!

Prima di iniziare con il deployment, ricordate le seguenti cose:

  • Sono necessari 4GB di RAM per la VM
  • Host e VM devono avere la stessa build, almeno build 10565
  • In questo momento è supportato solo Intel VT-x

Quindi, dopo aver creato la vostra macchina virtuale, aprite una sessione PowerShell dall’host di virtualizzazione e lanciate questo cmdlet:

Invoke-WebRequest https://raw.githubusercontent.com/Microsoft/Virtualization-Documentation/master/hyperv-tools/Nested/Enable-NestedVm.ps1 -OutFile C:\Enable-NestedVm.ps1

Eseguite il file scaricato, inserendo il nome della VM che volete attivare in modalità Nested:

C:\Enable-NestedVm.ps1 -VmName “MyNestedHost”

Lo script andrà ad eseguire i seguenti passaggi:

  • Disattivazione della memoria statica
  • Impostazione della RAM a 4GB
  • Attivazione estensioni virtuali
  • Attivazione MAC Address Spoofing
  • Una volta eseguita l’operazione potrete entrare nella macchina virtuale ed attivare il ruolo Hyper-V tramite i seguenti cmdlets:

Add-WindowsFeature RSAT-Hyper-V-Tool -IncludeAllSubFeature
Enable-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V -Online

Dopo un paio di riavvi, la VM sarà pronta per far girare altre macchine virtuali al suo interno – figura 1.

2015_12_01_NestedVirtualization-01

Figure 1 – Nested Virtualization

Tutto bello ma ricordate che ad oggi esistono dei bug/limitazioni:

  • Hosts con il Device Guard attivo non possono esporre le estensioni di virtualizzazione
  • Hosts con il Virtualization Based Security (VBS) attivo non possono esporre le estensioni di virtualizzazione
  • No Dynamic Memory
  • No Memory Resize
  • No Checkpoints
  • No Live Migration
  • No Save/Restore della VM

Direi che è tempo di testare la nuova Nested Virtualization.

Scarica Windows Server 2016