Per assicurare che la macchina virtuale sia compatibile con l'host di destinazione, vCenter Server esegue controlli di compatibilità prima di consentire la migrazione di macchine virtuali in esecuzione o sospese.
vMotion trasferisce lo stato di esecuzione di una macchina virtuale tra i sistemi ESXi sottostanti. La migrazione live richiede che i processori dell'host di destinazione forniscano alla macchina virtuale, dopo la migrazione, le stesse istruzioni fornite dai processori dell'host di origine prima della migrazione. La velocità di clock, le dimensioni della cache e il numero di core possono essere diversi tra i processori di origine e di destinazione. Tuttavia, per essere compatibili con vMotion, i processori devono appartenere alla stessa classe di fornitori (AMD o Intel).
Le migrazioni di macchine virtuali sospese richiedono inoltre che la macchina virtuale sia in grado di riprendere l'esecuzione nell'host di destinazione utilizzando istruzioni equivalenti.
Quando si avvia una migrazione tramite vMotion o una migrazione di una macchina virtuale sospesa, la procedura guidata Migra macchina virtuale verifica la compatibilità dell'host di destinazione. Se i problemi di compatibilità impediscono la migrazione, nella procedura guidata viene visualizzato un messaggio di errore.
Il set di istruzioni CPU disponibile per il sistema operativo e le applicazioni in esecuzione in una macchina virtuale viene determinato al momento dell'accensione della macchina virtuale. Questo set di funzionalità della CPU è basato sui seguenti elementi:
- Famiglia e modello della CPU dell'host
- Impostazioni nel BIOS che potrebbero disattivare le funzionalità della CPU
- Versione di ESXi in esecuzione nell'host
- Impostazione di compatibilità della macchina virtuale
- Sistema operativo guest della macchina virtuale
Per migliorare la compatibilità CPU tra host con set di funzionalità CPU variabili, alcune funzionalità della CPU dell'host possono essere nascoste alla macchina virtuale inserendo l'host in un cluster EVC (Enhanced vMotion Compatibility). Per ulteriori informazioni su EVC, vedere Informazioni su Enhanced vMotion Compatibility.
È possibile nascondere le funzionalità della CPU dell'host di una macchina virtuale applicando una maschera di compatibilità CPU personalizzata alla macchina virtuale, ma questa operazione non è consigliata. VMware, in collaborazione con i fornitori di CPU e hardware, sta lavorando per mantenere la compatibilità di vMotion sulla più ampia gamma possibile di processori. Per ulteriori informazioni, cercare nella Knowledge Base di VMware le Domande frequenti sulla compatibilità CPU e vMotion.
Scenari di compatibilità di vSphere vMotion e CPU
Senza l'uso di EVC, se le verifiche di compatibilità della CPU di vCenter Server rilevano una qualsiasi discrepanza tra le funzioni a livello utente degli host, la migrazione viene bloccata, indipendentemente dal fatto che la macchina virtuale stessa abbia o meno accesso a tali funzionalità. La mancata corrispondenza tra le funzionalità a livello di kernel negli host blocca la migrazione solo quando la macchina virtuale dispone dell'accesso a una funzionalità che l'host di destinazione non fornisce.
I controlli di compatibilità CPU di vCenter Server confrontano le funzionalità CPU disponibili nell'host di origine, il sottoinsieme di funzionalità a cui la macchina virtuale può accedere e le funzionalità disponibili nell'host di destinazione.
Le funzionalità a livello di utente sono istruzioni non privilegiate utilizzate dalle applicazioni della macchina virtuale. Queste includono SSE3, SSSE3, SSE4.1, SSE4.2 e AES. Poiché si tratta di istruzioni a livello di utente che ignorano il livello di virtualizzazione, tali istruzioni possono causare instabilità dell'applicazione in caso di mancata corrispondenza dopo una migrazione tramite vMotion.
Le funzionalità a livello di kernel sono istruzioni privilegiate utilizzate dal sistema operativo della macchina virtuale. Queste includono le funzionalità di sicurezza AMD No eXecute (NX) e Intel eXecute Disable (XD).
Quando si tenta di eseguire la migrazione di una macchina virtuale tramite vMotion, si applica uno degli scenari seguenti:
- Il set di funzionalità dell'host di destinazione corrisponde al set di funzionalità CPU della macchina virtuale. I requisiti di compatibilità della CPU sono soddisfatti e la migrazione tramite vMotion prosegue.
- Il set di funzionalità CPU della macchina virtuale contiene funzionalità non supportate dall'host di destinazione. I requisiti di compatibilità della CPU non sono soddisfatti e la migrazione tramite vMotion non può proseguire.
Nota: EVC risolve tale incompatibilità fornendo una funzionalità di "base" impostata per tutte le macchine virtuali in esecuzione in un cluster. Questa serie di funzionalità di base nasconde alle macchine virtuali le differenze tra le CPU degli host in cluster.
- L'host di destinazione supporta il set di funzionalità della macchina virtuale, oltre a funzionalità aggiuntive a livello di utente (come SSE4.1) non trovate nel set di funzionalità della macchina virtuale. I requisiti di compatibilità della CPU non sono soddisfatti e la migrazione tramite vMotion non può proseguire.
Nota: Questo tipo di incompatibilità viene ignorato per le migrazioni tra host nei cluster EVC.
- L'host di destinazione supporta il set di funzionalità della macchina virtuale, oltre a funzionalità aggiuntive a livello di kernel (come NX o XD) non trovate nel set di funzionalità della macchina virtuale. I requisiti di compatibilità della CPU sono soddisfatti e la migrazione tramite vMotion prosegue. La macchina virtuale conserva la propria funzionalità CPU impostata mentre rimane accesa ed è possibile eseguirne liberamente la migrazione nell'host originale. Tuttavia, se la macchina virtuale viene riavviata, acquisisce un nuovo set di funzionalità dal nuovo host. Questo processo può causare l'incompatibilità di vMotion se si tenta di eseguire la migrazione della macchina virtuale nell'host originale.
Compatibilità di famiglie di CPU e set di funzionalità con vSphere vMotion
I processori sono raggruppati in famiglie. I processori all'interno di una determinata famiglia hanno generalmente set di funzionalità simili.
I fornitori dei processori definiscono le famiglie di processori. È possibile distinguere versioni dei processori diverse all'interno della stessa famiglia confrontando il modello dei processori, il livello di esecuzione delle istruzioni e le funzionalità estese. Talvolta, i fornitori dei processori hanno introdotto importanti modifiche architetturali all'interno della stessa famiglia di processori, come le istruzioni SSSE3 e SSE4.1 e le funzionalità di sicurezza NX/XD della CPU.
Per impostazione predefinita, vCenter Server identifica le mancate corrispondenze delle funzionalità accessibili alle applicazioni come incompatibili per garantire la stabilità delle macchine virtuali dopo la migrazione tramite vMotion.
Le specifiche della CPU dell'hardware del server indicano in genere se le CPU contengono le funzionalità che influiscono sulla compatibilità di vMotion.
Per ulteriori informazioni sull'identificazione dei processori Intel e delle relative funzionalità, vedere Nota sull'applicazione 485: identificazione del processore Intel® e istruzione CPUID, disponibile da Intel. Per ulteriori informazioni sull'identificazione dei processori AMD e delle relative funzionalità, vedere Specifica CPUID, disponibile da AMD.
Maschere di compatibilità CPU e vSphere vMotion
Le maschere di compatibilità CPU consentono la personalizzazione delle funzionalità CPU visibili a una macchina virtuale.
vCenter Server confronta le funzionalità CPU disponibili per una macchina virtuale con le funzionalità CPU dell'host di destinazione per determinare se consentire o meno le migrazioni tramite vMotion.
Per garantire la stabilità delle macchine virtuali dopo una migrazione tramite vMotion, VMware imposta i valori predefiniti per le maschere di compatibilità CPU.
Se esiste una scelta tra compatibilità CPU o funzionalità del sistema operativo guest (ad esempio NX/XD), VMware offre caselle di controllo opzionali per configurare singole macchine virtuali. È possibile accedere alle opzioni di configurazione tramite l'opzione Impostazioni avanzate per la CPU della macchina virtuale. Per un maggiore controllo sulla visibilità delle funzionalità CPU, è possibile modificare la maschera di compatibilità CPU della macchina virtuale a livello di bit.
Le maschere di compatibilità CPU non possono impedire in tutti i casi l'accesso alle funzionalità CPU da parte delle macchine virtuali. In alcune circostanze, le applicazioni possono rilevare e utilizzare le funzionalità mascherate, anche se nascoste al sistema operativo guest. Inoltre, in qualsiasi host, le applicazioni che utilizzano metodi di rilevamento delle funzionalità CPU non supportati, anziché l'istruzione CPUID, possono accedere alle funzionalità mascherate. Nelle macchine virtuali che eseguono applicazioni che usano metodi di rilevazione della CPU non supportati potrebbero verificarsi problemi di stabilità dopo la migrazione.
Compatibilità migliorata di vMotion
È possibile utilizzare la funzionalità EVC (Enhanced vMotion Compatibility) per assicurare la compatibilità di vMotion per gli host in un cluster. EVC garantisce che tutti gli host di un cluster presentino la stessa funzionalità della CPU impostata sulle macchine virtuali, anche se le CPU effettive negli host sono diverse. L'utilizzo di EVC impedisce che le migrazioni tramite vMotion falliscano a causa di CPU incompatibili.
Configurare EVC dalla finestra di dialogo Impostazioni cluster. Durante la configurazione di EVC, si configurano tutti i processori host nel cluster in modo che presentino il set di funzionalità di un processore di base. Questo set di funzionalità di base è denominato modalità EVC. EVC utilizza la tecnologia AMD-V Extended Migration (per gli host AMD) e la tecnologia Intel FlexMigration (per host Intel) per mascherare le funzionalità del processore in modo che gli host possano presentare il set di funzionalità di una generazione precedente di processori. La modalità EVC deve essere equivalente al set di funzionalità, o a un sottoinsieme delle funzionalità, dell'host con il set di funzionalità più ridotto impostato nel cluster.
EVC maschera solo le funzionalità del processore che interessano la compatibilità vMotion. L'abilitazione di EVC non impedisce a una macchina virtuale di sfruttare le velocità dei processori più veloci, un maggior numero di core CPU o il supporto della virtualizzazione hardware che può essere disponibile negli host più recenti.
In ogni caso, EVC non può impedire alle macchine virtuali di accedere alle funzionalità nascoste della CPU. Le applicazioni che non seguono i metodi di rilevazione delle funzionalità consigliati dal fornitore della CPU potrebbero comportarsi in modo imprevisto in un ambiente EVC. VMware EVC non può essere supportato con applicazioni il cui comportamento non è corretto e che non seguono le raccomandazioni del fornitore della CPU. Per ulteriori informazioni sulla creazione di applicazioni con un comportamento corretto, consultare l'articolo Rilevamento e utilizzo di nuove funzionalità delle CPU della Knowledge Base di VMware.
A partire da vSphere 7.0 Update 1, è possibile utilizzare la funzionalità EVC per Virtual Shared Graphics Acceleration (vSGA). vSGA consente a più macchine virtuali di condividere le GPU installate negli host ESXi e di utilizzare le funzionalità di accelerazione grafica 3D.
Requisiti di compatibilità avanzata di vMotion per gli host
Per migliorare la compatibilità CPU tra host con set di funzionalità CPU variabili, è possibile nascondere alcune funzionalità della CPU dell'host alle macchine virtuali inserendo l'host in un cluster EVC (Enhanced vMotion Compatibility). Gli host in un cluster EVC e gli host aggiunti a un cluster EVC esistente devono soddisfare i requisiti EVC.
Spegnere tutte le macchine virtuali del cluster che sono in esecuzione negli host con un set di funzionalità maggiore della modalità EVC che si intende abilitare. È inoltre possibile eseguire la migrazione di queste macchine virtuali all'esterno del cluster.
Tutti gli host nel cluster devono soddisfare i seguenti requisiti:
Requisiti |
Descrizione |
---|---|
Versione ESXi supportata |
ESXi 6.7 o versioni successive. |
vCenter Server |
L'host deve essere connesso a un sistema vCenter Server. |
CPU |
Un singolo fornitore, AMD o Intel. |
Funzionalità CPU avanzate abilitate |
Abilitare queste funzionalità della CPU nel BIOS, se disponibili:
Nota:
I fornitori dell'hardware a volte disattivano determinate funzionalità della CPU nel BIOS per impostazione predefinita. È possibile che si verifichino problemi durante l'abilitazione di EVC perché i controlli di compatibilità EVC rilevano l'assenza di funzionalità che dovrebbero essere presenti per una specifica CPU. Se non è possibile abilitare EVC in un sistema con un processore compatibile, assicurarsi che tutte le funzionalità siano abilitate nel BIOS. |
CPU supportate per la modalità EVC che si desidera abilitare |
Per verificare il supporto EVC per uno specifico modello di server o processore, vedere la Guida alla compatibilità di VMware all'indirizzo http://www.vmware.com/resources/compatibility/search.php. |
Configurato per vMotion |
Come attivare vSphere EVC in un cluster esistente
Questa sezione mostra come attivare la compatibilità migliorata di vSphere vMotion (EVC) in un cluster esistente per garantire la compatibilità della CPU di vMotion tra gli host nel cluster. Altre funzionalità del cluster, come vSphere DRS e vSphere HA, sono completamente compatibili con EVC.
Prerequisiti
Procedura
Come modificare la modalità vSphere EVC per il cluster
Questa sezione mostra come configurare vSphere EVC per assicurarsi che le migrazioni delle macchine virtuali tra gli host nel cluster non vadano in errore a causa delle incompatibilità delle funzionalità di CPU.
Sono disponibili diversi approcci EVC per garantire la compatibilità della CPU:
Se tutti gli host di un cluster sono compatibili con una nuova modalità EVC CPU o grafica (vSGA), è possibile modificare la modalità EVC CPU o grafica (vSGA) di un cluster EVC esistente.
È possibile abilitare EVC per un cluster che non dispone di EVC abilitato.
È possibile aumentare la modalità EVC per esporre un maggior numero di funzionalità della CPU.
È possibile ridurre la modalità EVC per nascondere le funzionalità della CPU e aumentare la compatibilità.
Prerequisiti
Verificare che tutti gli host nel cluster dispongano di CPU supportate per la modalità EVC che si desidera abilitare. Per un elenco delle CPU supportate, vedere l'articolo della Knowledge Base KB 1003212.
Verificare che tutti gli host nel cluster siano connessi e registrati in vCenter Server. Il cluster non può contenere un host disconnesso.
Le macchine virtuali devono trovarsi nei seguenti stati di alimentazione, a seconda che si desideri aumentare o ridurre la modalità EVC.
Modalità EVC
Azione di alimentazione della macchina virtuale
Aumentare la modalità EVC fino a una base di confronto della CPU con un maggior numero di funzionalità.
Le macchine virtuali in esecuzione possono rimanere attivate. Le nuove funzionalità della modalità EVC non sono disponibili per le macchine virtuali fino al loro spegnimento e alla successiva riaccensione. È richiesto un reset completo. Il riavvio del sistema operativo guest o la sospensione e successiva ripresa della macchina virtuale non sono sufficienti.
Suggerimento:È possibile configurare una macchina virtuale per il ciclo di alimentazione al riavvio del sistema operativo guest impostando il parametro vmx.reboot.powerCycle della macchina virtuale su TRUE. Quando la macchina virtuale viene riaccesa, questo parametro di configurazione viene rimosso. Per modificare le impostazioni di configurazione della macchina virtuale, è possibile utilizzare VMware Host Client. Vedere l'argomento Modifica dei parametri del file di configurazione in VMware Host Client della guida di Gestione di un singolo host di vSphere - VMware Host Client. Vedere il post del VMware vSphere Blog per informazioni su come impostare questo parametro per un gruppo di macchine virtuali utilizzando VMware PowerCLI.
Ridurre la modalità EVC a una base di confronto della CPU con un minor numero di funzionalità.
Spegnere le macchine virtuali se sono accese e in esecuzione in una modalità EVC superiore rispetto a quella che si intende abilitare.
Nota:Quando si crea uno snapshot di una macchina virtuale in un cluster EVC, tenere presenti i seguenti casi d'uso:
- Se prima del downgrade di un EVC si crea uno snapshot di una macchina virtuale in esecuzione, quindi si prova a ripristinare tale snapshot dopo il downgrade dell'EVC, l'operazione non riesce e la macchina virtuale rimane in stato di sospensione.
- Se si crea uno snapshot di una macchina virtuale prima dell'aggiornamento di un EVC, è possibile ripristinare tale snapshot prima o dopo l'aggiornamento dell'EVC.
Per verificare la modalità EVC per le macchine virtuali, vedere Come determinare la modalità EVC della macchina virtuale.
Procedura
Come determinare la modalità EVC della macchina virtuale
La modalità EVC di una macchina virtuale determina la CPU e le funzionalità grafiche di cui un host deve disporre per consentire alla macchina virtuale di eseguire la migrazione su tale host e di accenderla. La modalità EVC di una macchina virtuale è indipendente dalla modalità EVC configurata per il cluster in cui viene eseguita la macchina virtuale.
La modalità EVC di una macchina virtuale viene definita quando la macchina virtuale viene attivata. All'accensione, la macchina virtuale determina anche la modalità EVC del cluster in cui viene eseguita. Se viene generata la modalità EVC di una macchina virtuale in esecuzione o l'intero cluster EVC, la macchina virtuale non ne modifica la modalità EVC finché quest'ultima non viene spenta e riaccesa. Ciò significa che la macchina virtuale non utilizza funzionalità CPU esposte dalla nuova modalità EVC fino a quando la macchina virtuale non viene spenta e riaccesa.
Ad esempio, si crea un cluster EVC contenente host con processori Intel e si imposta la modalità EVC su Intel "Merom" Generation (Xeon Core 2). Quando si accende una macchina virtuale in questo cluster, viene eseguita in modalità EVC Intel Merom Generation (Xeon Core 2). Se si aumenta la modalità EVC del cluster in Intel "Penryn" Generation (Xeon 45 nm Core 2), la macchina virtuale manterrà la modalità EVC di livello inferiore "Merom" Generation (Xeon Core 2). Per utilizzare il set di funzionalità della modalità EVC di livello superiore, ad esempio SSE4.1, è necessario spegnere e riaccendere la macchina virtuale.
Procedura
Migrazione di vMotion e host ESXi con processori AMD senza 3DNow!
Se gli host in un cluster vSphere hanno generazioni diverse di processori AMD, alcuni con 3DNow! set di istruzioni 3DNow! e altri senza, non è possibile eseguire correttamente la migrazione delle macchine virtuali tra gli host. È necessario utilizzare una modalità EVC o una maschera di compatibilità CPU per nascondere le istruzioni.
Le generazioni più recenti di processori AMD non includono le istruzioni del processore 3DNow!. La modalità EVC vCenter Server AMD Opteron Gen. 3 (senza 3DNow!) maschera le istruzioni 3DNow! dalle macchine virtuali. È possibile applicare questa modalità EVC ai cluster EVC che contengono solo host AMD Opteron di generazione 3. L'applicazione di questa modalità consente ai cluster di mantenere la compatibilità di vMotion con gli host AMD Opteron che non dispongono di istruzioni 3DNow! I cluster contenenti host AMD Opteron di Generazione 1 o AMD Opteron di Generazione 2 non possono essere resi compatibili vMotion con host che non dispongono di istruzioni 3DNow!
Prerequisiti
Assicurarsi che il cluster contenga solo host con processori AMD Opteron di generazione 3 o più recenti.
Procedura
- ♦ Abilitare la modalità EVC AMD Opteron Gen. 3 (senza 3DNow!) per il cluster EVC.
I passaggi per abilitare la modalità EVC variano in funzione del fatto che si stia creando un cluster o abilitando la modalità in un cluster esistente e del fatto che il cluster esistente contenga o meno macchine virtuali attivate.
Opzione Descrizione Creazione di un cluster Nella procedura guidata Nuovo cluster, abilitare EVC per gli host AMD e selezionare la modalità EVC AMD Opteron Gen. 3 (senza 3DNow!). Modifica di un cluster senza macchine virtuali attivate Nella finestra di dialogo Impostazioni cluster, modificare le impostazioni VMware EVC e selezionare la modalità EVC AMD Opteron Gen. 3 (senza 3DNow!). Modifica di un cluster con macchine virtuali attivate La modalità EVC AMD Opteron Gen. 3 (senza 3DNow!) non può essere abilitata quando sono presenti macchine virtuali attivate nel cluster. - Disattivare tutte le macchine virtuali in esecuzione nel cluster o eseguirne la migrazione all'esterno del cluster utilizzando vMotion.
La migrazione delle macchine virtuali fuori dal cluster con vMotion consente di ritardare la disattivazione delle macchine virtuali fino a un momento più conveniente.
- Nella finestra di dialogo Impostazioni cluster, modificare le impostazioni VMware EVC e selezionare la modalità EVC AMD Opteron Gen. 3 (senza 3DNow!).
- Se le macchine virtuali sono state migrate fuori dal cluster, spegnerle e migrarle a freddo nuovamente nel cluster.
- Accendere le macchine virtuali.
- Disattivare tutte le macchine virtuali in esecuzione nel cluster o eseguirne la migrazione all'esterno del cluster utilizzando vMotion.
risultati
Ora è possibile aggiungere host con processori AMD senza istruzioni 3DNow! al cluster e mantenere la compatibilità di vMotion tra i nuovi host di e gli host esistenti nel cluster.
Come visualizzare i dettagli sulle funzionalità per un cluster EVC
Il set di funzionalità esposto da un cluster EVC corrisponde al set di funzionalità di un particolare tipo di processore. I set di funzionalità del processore sono descritti da un set di flag delle funzionalità che vengono esaminati utilizzando l'istruzione CPUID.
È possibile visualizzare i flag della funzionalità CPUID attualmente esposti dagli host in un cluster EVC.
Procedura
risultati
In questo pannello di VMware EVC vengono visualizzati i flag della funzionalità CPUID che EVC applica per gli host in questo cluster. Per informazioni sui flag delle funzionalità CPUID, vedere i siti Web Intel e AMD.