Modalità di compatibilità del processore in Hyper-V

Si applica a: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2, Hyper-V Server 2019, Hyper-V Server 2016, Hyper-V Server 2012 R2

Hyper-V offre la modalità di compatibilità del processore, una funzionalità introdotta per la prima volta in Windows Server 2008 R2. La modalità di compatibilità del processore consente di spostare una macchina virtuale in esecuzione o di salvare lo stato tra host di virtualizzazione che usano generazioni diverse di processori. Questa funzionalità funziona disabilitando molte funzionalità del processore moderne, che possono influire sulle prestazioni delle macchine virtuali. Questo documento fornisce informazioni dettagliate sulla modalità di compatibilità del processore per Hyper-V.

Quando usare la modalità di compatibilità del processore

La modalità di compatibilità del processore è applicabile a qualsiasi scenario di mobilità delle macchine virtuali che non comporta il riavvio della macchina virtuale. Tra cui la migrazione in tempo reale delle macchine virtuali, il salvataggio e il ripristino e i checkpoint di produzione.

Le macchine virtuali non possono essere migrate in tempo reale o salvate e ripristinate tra host di virtualizzazione che usano processori di produttori di CPU diversi. Ad esempio, non è possibile spostare le macchine virtuali in esecuzione o lo stato salvato da un host con processori Intel a un host con processori AMD. Se in questo caso è necessario spostare una macchina virtuale, la macchina virtuale deve prima essere arrestata, quindi riavviata nel nuovo host.

Se si prevede di spostare le macchine virtuali senza riavviarle, tra host di virtualizzazione che possono usare generazioni diverse di processori, è necessario abilitare la modalità di compatibilità del processore. Ad esempio, si abiliterebbe la modalità di compatibilità del processore per garantire che sia possibile eseguire la migrazione in tempo reale delle macchine virtuali tra nodi del cluster che usano set di funzionalità del processore diversi. È anche possibile usare la modalità di compatibilità del processore per salvare una macchina virtuale e ripristinarla in un computer host con un set di funzionalità del processore diverso rispetto all'host di origine.

Perché è necessaria la modalità di compatibilità del processore

Le estensioni ISA (Instruction Set Architecture) sono ottimizzazioni e funzionalità introdotte dai produttori di processori. Queste funzionalità spesso migliorano le prestazioni o la sicurezza usando hardware specializzato per un'attività specifica. Ad esempio, molte applicazioni multimediali usano le funzionalità del processore per velocizzare i calcoli vettoriali. Queste funzionalità sono raramente necessarie per l'esecuzione delle applicazioni; aumentano semplicemente le prestazioni.

Il set di funzionalità disponibile in un processore varia a seconda della creazione, del modello e dell'età. I sistemi operativi e il software dell'applicazione enumerano in genere il set di funzionalità e le funzionalità del processore del sistema al primo avvio. Il software non prevede che le funzionalità del processore disponibili cambino durante la loro durata, e questo non può mai verificarsi durante l'esecuzione in un computer fisico perché le funzionalità del processore sono statiche.

Tuttavia, le funzionalità di mobilità delle macchine virtuali consentono di eseguire la migrazione di una macchina virtuale in esecuzione a un nuovo host di virtualizzazione. Se il software nella macchina virtuale ha rilevato e avviato l'uso di una particolare funzionalità del processore e viene spostato in un nuovo host di virtualizzazione che non dispone di tale funzionalità, è probabile che il software abbia esito negativo. Ciò potrebbe comportare l'arresto anomalo della macchina virtuale.

Per evitare questi errori, Hyper-V esegue controlli "pre-anteprima" ogni volta che viene avviata una migrazione in tempo reale di una macchina virtuale o un'operazione di salvataggio/ripristino. Questi controlli confrontano il set di funzionalità del processore disponibili per la macchina virtuale nell'host di origine con il set di funzionalità disponibili nell'host di destinazione. Se questi set di funzionalità non corrispondono, l'operazione di migrazione o ripristino viene annullata.

Funzionamento della modalità di compatibilità del processore

La modalità di compatibilità del processore garantisce che il set di funzionalità del processore disponibili per le macchine virtuali in un set diverso di host di virtualizzazione corrisponda presentando solo un set limitato di funzionalità del processore alla macchina virtuale. La modalità di compatibilità del processore nasconde i set di istruzioni del processore più recenti, in genere quelli introdotti negli ultimi 10 anni. Tuttavia, nascondere queste funzionalità significa che il sistema operativo guest e il software dell'applicazione non possono sfruttare questi miglioramenti del set di istruzioni del processore.

Per un elenco completo delle funzionalità nascoste per la modalità di compatibilità del processore, vedere la sezione 5.2.11 nella specifica funzionale principale di Hypervisor.

Processor compatibility mode hides newer processor instructions sets for smooth VM migrations between host servers

Ramifications of using processor compatibility mode (Ramifications of using processor compatibility mode)

È difficile quantificare gli effetti generali sulle prestazioni della modalità di compatibilità del processore. La perdita di prestazioni dipende principalmente dal carico di lavoro in esecuzione nella macchina virtuale. Alcuni carichi di lavoro non saranno interessati, mentre altri mostreranno una differenza notevole. Il software che si basa principalmente sulle ottimizzazioni hardware (ad esempio crittografia, compressione o calcoli a virgola mobile intensivi) avrà un impatto maggiore.

Nell'esempio seguente viene descritto il modo in cui la crittografia AES è interessata dall'uso della modalità di compatibilità del processore e ne esistono molte altre. Se si è interessati all'impatto sulle prestazioni della modalità di compatibilità del processore, è consigliabile confrontare le prestazioni del carico di lavoro delle macchine virtuali con la modalità di compatibilità del processore abilitata e disabilitata.

Esempio: crittografia AES

Un esempio di operazione interessata dalla modalità di compatibilità del processore è la crittografia AES (una forma comune di crittografia). Molti nuovi processori Intel e AMD includono un'estensione ISA che accelera AES usando l'hardware. Intel sostiene che questa ottimizzazione offre un miglioramento delle prestazioni da 2 a 3 volte, con alcune implementazioni che offrono un guadagno di 10 riduzioni. Per altre informazioni, vedere Intel Advanced Encryption Standard Instructions.)

Le applicazioni che crittografano o decrittografano una grande quantità di dati traggono vantaggio da questa funzionalità del processore, quindi disattivarla abilitando la modalità di compatibilità del processore influirà sulle prestazioni di queste operazioni specifiche.

Uso della modalità di compatibilità del processore

Esistono concetti importanti da comprendere quando si usa la modalità di compatibilità del processore in Hyper-V:

  • È possibile eseguire la migrazione delle macchine virtuali solo tra host di virtualizzazione che usano processori dello stesso produttore.

  • È necessario arrestare la macchina virtuale prima di abilitare o disabilitare la modalità di compatibilità del processore.

  • La modalità di compatibilità del processore non è necessaria per gli spostamenti di macchine virtuali che comportano l'arresto e il riavvio della macchina virtuale.

  • Ogni volta che viene riavviata una macchina virtuale, il sistema operativo guest enumererà le funzionalità del processore disponibili nel nuovo computer host.

Nota

In Windows Server, Microsoft consiglia di attivare la modalità di compatibilità del processore solo prima degli scenari di migrazione delle macchine virtuali e quindi disattivarla al termine della migrazione.

Abilitare la modalità di compatibilità del processore con la console di gestione di Hyper-V

Per abilitare la modalità di compatibilità del processore per una macchina virtuale tramite La console di gestione di Hyper-V:

  1. Arrestare la VM.

  2. Fare clic su avviare, scegliere Strumenti di amministrazione, quindi fare clic su gestione di Hyper-V.

  3. Selezionare il server che esegue Hyper-V e la macchina virtuale desiderata.

  4. Se la macchina virtuale è in esecuzione, è necessario arrestare la macchina virtuale per abilitare l'impostazione della modalità di compatibilità del processore.

  5. Nel riquadro Azione fare clic su Impostazioni e quindi su Processore.

  6. Espandere Processore e fare clic su Compatibilità.

  7. Selezionare Migrate to a physical computer with a different processor (Esegui migrazione a un computer fisico con un processore diverso) e quindi fare clic su OK.

  8. Riavviare la macchina virtuale.

Disabilitare la modalità di compatibilità del processore con la console di gestione di Hyper-V

Per disabilitare la modalità di compatibilità del processore per una macchina virtuale tramite La console di gestione di Hyper-V:

  1. Arrestare la VM.

  2. Fare clic su avviare, scegliere Strumenti di amministrazione, quindi fare clic su gestione di Hyper-V.

  3. Selezionare il server che esegue Hyper-V e la macchina virtuale desiderata.

  4. Se la macchina virtuale è in esecuzione, è necessario arrestare la macchina virtuale per disabilitare l'impostazione della modalità di compatibilità del processore.

  5. Nel riquadro Azione fare clic su Impostazioni e quindi su Processore.

  6. Espandere Processore e fare clic su Compatibilità.

  7. Deselezionare la casella di controllo Esegui migrazione a un computer fisico con un processore diverso e quindi fare clic su OK.

  8. Riavviare la macchina virtuale.

Abilitare la modalità di compatibilità del processore con PowerShell

Per abilitare la modalità di compatibilità del processore per una macchina virtuale tramite PowerShell, arrestare la macchina virtuale ed eseguire il Set-VMProcessor cmdlet, impostando CompatibilityForMigrationEnabled su $true:

get-vm -name <name of VM> -ComputerName <target cluster or host> | Set-VMProcessor -CompatibilityForMigrationEnabled $true

Riavviare quindi la macchina virtuale.

Avviso

È possibile che vengano visualizzati parametri aggiuntivi destinati Set-VMProcessor all'uso con Azure Stack HCI. Non tentare di usarli con Windows Server o verrà visualizzato un messaggio di errore. Il valore predefinito e disponibile solo CompatibilityForMigrationMode per Windows Server è MinimumFeatureSet. Informazioni sulla modalità di compatibilità della CPU dinamica in Azure Stack HCI.

Disabilitare la modalità di compatibilità del processore con PowerShell

Per disabilitare la modalità di compatibilità del processore per una macchina virtuale tramite PowerShell, arrestare la macchina virtuale ed eseguire il Set-VMProcessor cmdlet, impostando CompatibilityForMigrationEnabled su $false:

get-vm -name <name of VM> -ComputerName <target cluster or host> | Set-VMProcessor -CompatibilityForMigrationEnabled $false

Riavviare quindi la macchina virtuale.

Passaggi successivi

Vedere anche: