Creazione delle VM e scelta della generation

Hyper-V è il role di virtualizzazione di Windows Server 2022/2025; richiede una CPU con supporto alla virtualizzazione hardware (Intel VT-x o AMD-V) e SLAT. Puoi installare il role completo (hypervisor + management tools) oppure i soli strumenti di gestione per amministrare host remoti. All’atto della creazione la scelta più vincolante è la generation, perché non è modificabile in seguito.

La generation 1 usa firmware BIOS, emula hardware legacy (controller IDE per il boot, adattatore di rete legacy) e supporta guest sia a 32 sia a 64 bit: è la scelta per sistemi operativi datati o per la massima compatibilità. La generation 2 usa firmware UEFI, avvia da SCSI, supporta solo guest a 64 bit e abilita funzioni moderne: Secure Boot, virtual TPM (vTPM) per BitLocker e le shielded VM, boot volume oltre 2 TB su GPT, PXE boot su adattatore standard e hot-add delle NIC. Per qualunque scenario di security (shielded VM, encryption) serve la generation 2.

Dynamic memory e gestione delle risorse

Dynamic memory permette all’host di assegnare RAM ai guest in base al carico reale, abilitando un moderato overcommit. I parametri chiave sono Startup RAM, Minimum RAM, Maximum RAM, il memory buffer e il memory weight (priorità quando l’host è sotto pressione). Lo Smart Paging interviene solo al riavvio del guest quando la Startup RAM richiesta supera il Minimum e non c’è memoria fisica disponibile, appoggiandosi temporaneamente al disco: va posizionato su storage veloce.

Non tutti i workload traggono beneficio dalla dynamic memory: applicazioni che gestiscono internamente la propria memoria (alcuni database) sono spesso configurate con memoria fissa. La dynamic memory richiede inoltre integration services aggiornati nel guest.

Checkpoint: standard vs production

I checkpoint catturano lo stato di una VM per poter tornare indietro. I production checkpoint (default da Windows Server 2016) usano VSS nei guest Windows (o il file system freeze su Linux) per produrre uno snapshot application-consistent, equivalente a un backup: non salvano lo stato della memoria in esecuzione. Sono la scelta corretta per carichi di produzione come domain controller e database.

Gli standard checkpoint catturano anche lo stato di memoria e dei processi in esecuzione, utili in lab e debugging, ma non garantiscono consistenza applicativa. In entrambi i casi il checkpoint crea dischi differenziali AVHDX che crescono nel tempo: i checkpoint non sostituiscono un backup e non vanno mantenuti a lungo, pena degrado di performance e consumo di spazio.

Virtual switch, networking e nested virtualization

Il virtual switch ha tre tipi: external (collegato a una NIC fisica, dà accesso alla rete fisica e all’host), internal (comunicazione fra le VM e con l’host, senza uscita fisica) e private (solo fra le VM sullo stesso host, isolate da host e rete esterna). Sul singolo vNIC configuri VLAN ID, bandwidth management, MAC statico o dinamico, MAC address spoofing (necessario per NLB e per il traffico delle VM annidate) e, per bassa latenza, SR-IOV.

La nested virtualization consente di eseguire Hyper-V dentro una VM (lab, container con isolamento Hyper-V, WSL2 in VM). Va esposta l’estensione di virtualizzazione al processore del guest con Set-VMProcessor -ExposeVirtualizationExtensions $true; con nested attivo il resize della memoria a runtime e la dynamic memory sono limitati, e per far comunicare le VM interne serve abilitare il MAC address spoofing sul vNIC oppure usare la NAT.

Trappole tipiche d’esame

  • Serve Secure Boot o vTPM su una VM → soluzione: crea la VM come generation 2; la generation non è convertibile dopo la creazione, quindi una gen 1 va ricreata.
  • Backup application-consistent di un domain controller via checkpoint → soluzione: usa un production checkpoint (VSS), non lo standard che salva lo stato memoria e rischia inconsistenza/USN rollback.
  • VM che devono comunicare solo tra loro, isolate dall’host → soluzione: virtual switch di tipo private; l’internal include invece anche l’host.
  • Hyper-V dentro una VM non si avvia → soluzione: esponi le virtualization extensions al vCPU e abilita il MAC address spoofing per la rete delle VM annidate.
  • Workload che gestisce la propria memoria va lento con dynamic memory → soluzione: assegna memoria statica; la dynamic memory conviene su carichi variabili, non su tutti.
  • Checkpoint tenuti per settimane, disco pieno → soluzione: i checkpoint non sono backup; i dischi AVHDX crescono e vanno uniti (merge) rimuovendo il checkpoint.