Gestione risorse CPU host Hyper-V

I controlli delle risorse della CPU host Hyper-V introdotti in Windows Server 2016 o versioni successive consentono agli amministratori hyper-V di gestire e allocare meglio le risorse della CPU del server host tra la partizione "radice", o la partizione di gestione e le macchine virtuali guest. Usando questi controlli, gli amministratori possono dedicare un subset dei processori di un sistema host alla partizione radice. In questo modo è possibile separare le operazioni eseguite in un host Hyper-V dai carichi di lavoro in esecuzione nelle macchine virtuali guest eseguendole in subset separati dei processori di sistema.

Per informazioni dettagliate sull'hardware per gli host Hyper-V, vedere Requisiti di sistema di Windows 10 Hyper-V.

Background

Prima di impostare i controlli per le risorse della CPU host Hyper-V, è utile esaminare le nozioni di base dell'architettura Hyper-V. È possibile trovare un riepilogo generale nella sezione Architettura Hyper-V. Questi sono concetti importanti per questo articolo:

  • Hyper-V crea e gestisce le partizioni di macchine virtuali, in cui le risorse di calcolo vengono allocate e condivise, sotto il controllo dell'hypervisor. Le partizioni forniscono limiti di isolamento sicuri tra tutte le macchine virtuali guest e tra le macchine virtuali guest e la partizione radice.

  • La partizione radice è una partizione di macchina virtuale, anche se dispone di proprietà univoce e privilegi molto maggiori rispetto alle macchine virtuali guest. La partizione radice fornisce i servizi di gestione che controllano tutte le macchine virtuali guest, fornisce supporto per i dispositivi virtuali virtuali per gli utenti guest e gestisce tutte le operazioni di I/O del dispositivo per le macchine virtuali guest. Microsoft consiglia vivamente di non eseguire carichi di lavoro di applicazioni in una partizione host.

  • Ogni processore virtuale (VP) della partizione radice è mappato 1:1 a un processore logico sottostante (LP). Un VP host verrà sempre eseguito sullo stesso LP sottostante. Non esiste alcuna migrazione dei VP della partizione radice.

  • Per impostazione predefinita, gli indirizzi IP in cui vengono eseguiti i VP dell'host possono anche eseguire le VP guest.

  • Un VP guest può essere pianificato dall'hypervisor per l'esecuzione su qualsiasi processore logico disponibile. Anche se l'utilità di pianificazione dell'hypervisor si occupa di prendere in considerazione la località della cache temporale, la topologia NUMA e molti altri fattori durante la pianificazione di una VP guest, alla fine il VP potrebbe essere pianificato in qualsiasi LP host.

Configurazione minima radice o "Minroot"

Le versioni precedenti di Hyper-V hanno un limite massimo di architettura di 64 VP per partizione. Questa operazione viene applicata sia alle partizioni radice che a quella guest. Poiché i sistemi con più di 64 processori logici sono apparsi su server di fascia alta, Hyper-V ha anche evoluto i limiti di scalabilità degli host per supportare questi sistemi più grandi, a un certo punto supportando un host con un massimo di 320 LP. Tuttavia, l'interruzione del limite di 64 VP per partizione in quel momento ha presentato diverse sfide e ha introdotto complessità che hanno reso il supporto di più di 64 VP per ogni partizione proibitivo. Per risolvere questo problema, Hyper-V ha limitato il numero di VP assegnati alla partizione radice a 64, anche se il computer sottostante aveva molti più processori logici disponibili. L'hypervisor continuerà a usare tutti gli indirizzi IP disponibili per l'esecuzione di VP guest, ma la partizione radice è stata fermata artificialmente a 64. Questa configurazione è diventata nota come configurazione "radice minima" o "minroot". I test delle prestazioni hanno confermato che, anche in sistemi su larga scala con più di 64 LP, la radice non ha bisogno di più di 64 VP radice per fornire un supporto sufficiente a un numero elevato di macchine virtuali guest e VP guest, in realtà, molto meno di 64 VP radice è stato spesso adeguato, a seconda del numero e delle dimensioni delle macchine virtuali guest, i carichi di lavoro specifici in esecuzione e così via.

Questo concetto di "minroot" continua a essere utilizzato oggi. Infatti, anche se Windows Server 2016 Hyper-V ha aumentato il limite massimo di supporto dell'architettura per gli indirizzi IP host a 512 LP, la partizione radice sarà comunque limitata a un massimo di 320 LP.

Uso di Minroot per vincolare e isolare le risorse di calcolo host

Con la soglia predefinita elevata di 320 LP in Windows Server 2016 Hyper-V, la configurazione minroot verrà usata solo nei sistemi server molto più grandi. Tuttavia, questa funzionalità può essere configurata su una soglia molto inferiore dall'amministratore host Hyper-V e quindi sfruttata per limitare notevolmente la quantità di risorse della CPU host disponibili per la partizione radice. Il numero specifico di indirizzi IP radice da usare deve naturalmente essere scelto con attenzione per supportare le richieste massime delle macchine virtuali e dei carichi di lavoro allocati all'host. Tuttavia, i valori ragionevoli per il numero di LP host possono essere determinati tramite un'attenta valutazione e monitoraggio dei carichi di lavoro di produzione e convalidati in ambienti non di produzione prima della distribuzione generale.

Abilitazione e configurazione di Minroot

La configurazione minroot viene controllata tramite le voci BCD dell'hypervisor. Per abilitare minroot, da un prompt dei comandi con privilegi di amministratore:

     bcdedit /set hypervisorrootproc n

Dove n è il numero di VP radice.

Il sistema deve essere riavviato e il nuovo numero di processori radice verrà mantenuto per tutta la durata dell'avvio del sistema operativo. La configurazione minroot non può essere modificata in modo dinamico in fase di esecuzione.

Se sono presenti più nodi NUMA, ogni nodo otterrà n/NumaNodeCount processori.

Si noti che con più nodi NUMA, è necessario assicurarsi che la topologia della macchina virtuale sia tale che siano presenti sufficienti indirizzi IP liberi (ad esempio, LP senza VP radice) in ogni nodo NUMA per eseguire i VP del nodo NUMA della macchina virtuale corrispondente.

Verifica della configurazione minroot

È possibile verificare la configurazione minroot dell'host usando Gestione attività, come illustrato di seguito.

Host's minroot configuration shown in Task Manager

Quando Minroot è attivo, Gestione attività visualizzerà il numero di processori logici attualmente assegnati all'host, oltre al numero totale di processori logici nel sistema.