Come funziona la modalità EVC di VMware: panoramica completa
Se avete familiarità con la funzione vMotion, probabilmente ricorderete che la pratica consigliata è quella di utilizzare gli stessi processori su tutti i server ESXi per la migrazione live delle VM. Se desiderate utilizzare server con modelli di processori diversi nel cluster, è preferibile effettuare l’implementazione dei processori della stessa generazione. Inoltre, il requisito obbligatorio è che i processori devono essere prodotti dallo stesso vendor, come Intel o AMD. In caso contrario, è probabile che si verifichi un errore durante l’utilizzo di vMotion.
VMware ha progettato il proprio software vSphere tenendo conto delle situazioni che possono verificarsi nell’ambiente di produzione, tra cui l’espansione di un cluster mediante l’aggiunta di nuovi server con processori diversi. Si tratta di una situazione comune: immaginate di avere un cluster con 5 nodi ESXi acquistati 3 anni fa e di dover aggiungere altri due nodi per eseguire più VM al fine di soddisfare le vostre esigenze aziendali. I processori acquistati 3 anni fa non sono più in produzione e non sono più in vendita sul mercato; è possibile acquistare solo i processori della famiglia più recente. Non c’è motivo di preoccuparsi: è possibile utilizzare cluster ad alta disponibilità in vSphere, aggiungere nodi con processori diversi e utilizzare vMotion per la migrazione live delle VM tra host con processori diversi. Ciò è possibile grazie alla funzione Enhanced vMotion Capability (EVC) che può essere abilitata per i cluster in VMware vSphere.
Principio di funzionamento della modalità EVC di VMware
Ogni nuova generazione di processori include nuovi set di istruzioni oltre a quelli disponibili per la generazione precedente. Le nuove funzioni migliorano in genere le prestazioni o la sicurezza delle applicazioni in esecuzione. Ad esempio, i processori della generazione SkyLake hanno un nuovo set di istruzioni (SGX) rispetto ai processori della generazione Haswell. Esaminiamo i set di istruzioni di queste due generazioni di processori e ne esploriamo i dettagli.
Set di istruzioni Haswell (2013):
x86-64, MMX, AES-NI, CLMUL, FMA3, SSE, SSE2, SSE3, SSSE3, SSE4, SSE4.1, SSE4.2, AVX, AVX2, TXT, VT-x, VT-d. TSX Le istruzioni sono disabilitate tramite microcodice per i processori Haswell a causa di un bug, ad eccezione di Haswell-EX.
SkyLake (2017) set di istruzioni:
x86-64, MMX, AES-NI, CLMUL, FMA3, SSE, SSE2, SSE3, SSSE3, SSE4, SSE4.1, SSE4.2, AVX, AVX2, TXT, TSX, SGX, VT-x, VT-d.
Ciò significa che se si seleziona il livello di compatibilità Haswell nelle impostazioni EVC, il set di istruzioni SGX deve essere disabilitato (mascherato, per essere più precisi) sui server con processori Skylake e, di conseguenza, tutti i processori funzioneranno con gli stessi set di istruzioni. In questo modo, si otterrà un ambiente omogeneo adatto alla migrazione delle VM tramite vMotion. La compatibilità uniforme con vMotion è garantita dall’applicazione della stessa baseline di istruzioni CPUID per tutte le VM in esecuzione su host ESXi senza processori uniformi. CPUID può essere considerato un’API per la CPU.
Da un lato, i vantaggi del set di istruzioni SGX vengono persi quando la modalità Haswell EVC è abilitata, ma dall’altro lato, le prestazioni del cluster esistente non vengono ridotte se si aggiungono host con processori più recenti al cluster. Se si aggiungono host ESXi con processori più vecchi al cluster esistente, in alcuni casi specifici si potrebbe notare una riduzione delle prestazioni.
Nota: SGX (Software Guard Extensions) consente di organizzare frammenti protetti di codice e dati (chiamati anche enclave) per garantire un elevato livello di protezione dei dati per le applicazioni attive contro gli attacchi degli hacker. Gli sviluppatori che utilizzano le istruzioni SGX per le loro applicazioni possono proteggere le applicazioni da accessi o modifiche non autorizzati anche se l’applicazione dell’autore dell’attacco dispone di privilegi superiori.
Nota: TSX (Transactional Synchronization Extensions) garantisce lo spostamento della maggior parte delle attività in esecuzione per la distribuzione delle risorse tra i core del processore a livello hardware (la CPU stessa). Senza il supporto per le istruzioni TSX da parte di un processore, questa distribuzione viene eseguita a livello software dal sistema operativo e dalle applicazioni. Se il set di istruzioni TSX è disabilitato per il processore Haswell tramite microcodice, potrebbe essere necessario impostare il livello precedente (Ivy Bridge) per la modalità EVC.
In genere, le VM in esecuzione devono essere spente e riaccese per applicare le impostazioni modificate della modalità EVC. Se si utilizza vCenter 4.1 o versioni successive, le VM in esecuzione sull’host ESXi con il processore più vecchio potrebbero non essere spente (è possibile lasciarle in stato di esecuzione). In questo caso, la modalità EVC deve essere uguale alla generazione di quel processore più vecchio. Le VM in esecuzione su host ESXi che dispongono di processori con funzioni CPU più recenti devono essere spente prima di abilitare la modalità EVC nell’intero cluster. Quando l’host ESXi viene escluso da un cluster, continua a funzionare con la modalità EVC disabilitata.
VMware vSphere Versione / Compatibilità CPU per EVC
La modalità EVC obbligatoria dipende dai modelli di processore e dalla versione di vCenter Server. La modalità EVC sull’ultima versione di vCenter Server supporta i processori più recenti. Se si dispone di server con processori di ultima generazione, è consigliabile utilizzare le versioni più recenti di vCenter. Nella tabella seguente è possibile vedere quali combinazioni di generazioni di processori Intel e versioni di vCenter sono supportate per determinare la baseline del cluster EVC per il proprio ambiente.
La modalità EVC più adatta è determinata dal modello del processore più vecchio del server ESXi all’interno del cluster. È tecnicamente possibile selezionare un livello di modalità EVC più vecchio (inferiore) rispetto alla generazione del processore più vecchio, ma in genere non vi è alcun motivo per effettuare tali impostazioni. Le versioni precedenti di ESXi e vSphere supportano i nuovi processori, ma la baseline EVC massima viene mantenuta al livello dei processori più vecchi che erano funzionanti quando quella versione di vSphere è stata rilasciata e che erano considerati i più recenti disponibili in quel momento.
Quando si modifica il livello della modalità EVC, è necessario spegnere e riaccendere le VM in esecuzione per applicare le impostazioni a tali VM; il riavvio della VM non è sufficiente.
Guida alla compatibilità VMware
È possibile verificare la compatibilità dei processori e la modalità EVC più alta disponibile per il server vCenter sul sito Web di VMware. Per verificare la compatibilità, apri la pagina Guida alla compatibilità VMware, seleziona serie CPU nel menu a tendina (ovvero ciò che stai cercando), nel Versione del prodotton seleziona la tua versione ESXi, nell’elenco serie di CPU tieni premuto il pulsante Ctrl e seleziona i processori installati sui tuoi host ESXi (fai clic con il pulsante sinistro del mouse). Una volta selezionati i parametri necessari, fare clic sul pulsante CPU/EVC Matrix per visualizzare la tabella delle modalità EVC disponibili per i server ESXi. Nell’esempio mostrato nella schermata sottostante, sono stati selezionati ESXi 6.5 (gestito da vCenter 6.5), Intel Xeon E3-1500-v5, Xeon E5-4600-v3 e processori Xeon Platinum 8100. Il livello più alto della modalità EVC supportato da tutti i processori selezionati è Intel Haswell Generation.
Requisiti
Affinché vMotion funzionino correttamente dopo l’attivazione della modalità EVC, è necessario soddisfare i seguenti requisiti:
- I processori di tutti gli host ESXi devono essere esclusivamente Intel o AMD.
- Le funzioni di virtualizzazione del processore, come Intel VT-x o AMD-V, devono essere abilitate nell’UEFI/BIOS degli host ESXi.
- Gli host ESXi devono essere gestiti dallo stesso vCenter Server.
- Gli host ESXi devono essere configurati per utilizzare vMotion.
Come abilitare e configurare EVC
Dopo aver acquisito familiarità con la teoria, esaminiamo la configurazione della modalità EVC nella pratica. Potrebbe essere necessario spegnere la VM sull’host ESXi il cui livello EVC deve essere ridotto. Assicurarsi che non vi siano funzioni del processore disabilitate in UEFI/BIOS per evitare possibili problemi.
Aprire VMware vSphere Web Client nel browser Web immettendo l’indirizzo IP di vCenter Server nella barra degli indirizzi del browser. Andare a vCenter > Host e cluster e selezionare ciascun host ESXi per verificare la configurazione della CPU (unità di elaborazione centrale). Nell’esempio corrente, consideriamo due host che eseguono ESXi 5.5 aggiunti al cluster e gestiti da vCenter Server 5.5. Come è possibile vedere nella schermata sottostante, il modello di processore del primo host ESXi è Intel Xeon E3110 mentre il processore installato sul secondo host ESXi è Intel Xeon X3430.
Se gli host ESXi sono già stati aggiunti al cluster, selezionare il cluster (temp-cluster nel nostro esempio), fare clic sulla scheda Gestisci scheda, quindi apri la Impostazioni scheda, seleziona Configurazione > VMware EVC e clicca sul pulsante Modifica pulsante.
Ora, prima di selezionare la modalità EVC in vCenter, apri una nuova scheda nel browser Web e apri Guida alla compatibilità VMware come mostrato sopra in questo post del blog. Nell’esempio attuale, dovremmo selezionare ESXi 5.5, Intel Xeon serie 31xx e Intel Xeon serie 34xx. Dopo aver cliccato sul pulsante CPU/EVC Matrix , è possibile vedere nella schermata che Intel Penryn Generation dovrebbe essere selezionato nelle impostazioni della modalità EVC.
Torna alla scheda del browser Web con vSphere Web Client e apri le impostazioni della modalità EVC per il cluster. Fai clic su Abilita EVC per host Intel. Nel menu a discesa della modalità VMware EVC, selezionare Intel Penryn Generation. Nella parte inferiore della finestra, nella sezione Compatibility dovrebbe essere visualizzato il messaggio Validation succeeded . Ora è possibile premere OK per salvare le impostazioni della modalità EVC.
Successivamente, nella sezione VMware EVC, vengono visualizzate le informazioni che VMware EVC è abilitato . Fare clic su Dettagli CPUID correnti per espandere la sezione con i dettagli sui registri e i valori di maschera.
La modalità EVC può essere abilitata anche durante la creazione di un nuovo cluster; VMware promuove questa possibilità come pratica consigliata. L’abilitazione della modalità EVC durante la creazione di un nuovo cluster impedisce il verificarsi di problemi relativi all’arresto e alla migrazione delle VM accese nel cluster (come ricorderete, in genere una VM deve essere spenta e accesa per applicare le nuove impostazioni EVC).
Mascheramento CPUID
Oltre alla modalità EVC globale applicata a tutte le VM e agli host ESXi dell’intero cluster, vCenter Server consente di configurare manualmente i flag CPUID per una VM personalizzata. vCenter confronta le impostazioni dei parametri CPUID per la VM con le impostazioni dei parametri CPUID disponibili sull’host ESXi di destinazione. Se questi parametri sono uguali, la migrazione della VM con vMotion è consentita. La funzione di mascheramento CPUID è precedente alla funzione modalità EVC.
Per configurare le maschere CPUID per una VM, eseguire le seguenti azioni:
Selezionare la VM necessaria, fare clic con il pulsante destro del mouse sulla VM e selezionare Modifica impostazioni. Nella finestra aperta Modifica impostazioni , apri Hardware Virtuale > CPU, seleziona Maschera CPUIDe fai clic su Avanzate.
Nella finestra Maschera di identificazione CPU , selezionare la stringa di registro necessaria e fare clic sul valore per modificare la maschera a livello di bit. Fare clic sul pulsante Legend per visualizzare il significato di ciascun carattere utilizzato per le impostazioni della maschera.
Attenzione! Non modificare le maschere prima di aver acquisito familiarità con la Knowledge Base VMware o le istruzioni di supporto VMware. La modifica manuale delle maschere di compatibilità della CPU può causare una configurazione VM non supportata. Ad esempio, le VM Windows possono non funzionare correttamente con BSOD.
Verifica della configurazione della modalità EVC in PowerCLI
È possibile verificare la configurazione della modalità EVC per l’intero cluster e per le VM personalizzate in VMware PowerCLI utilizzando il comando:
Get-VM | Select Name,HardwareVersion,
@{Name='VM_EVC_Mode';Expression={$_.ExtensionData.Runtime.MinRequiredEVCModeKey}},
@{Name='Cluster_Name';Expression={$_.VMHost.Parent}},
@{Name='Cluster_EVC_Mode';Expression={$_.VMHost.Parent.EVCMode}} | ft
È inoltre possibile verificare il livello EVC massimo supportato per tutti gli host del cluster dopo aver eseguito il comando:
Get-VMHost | Select-Object Name,ProcessorType,MaxEVCMode
Modalità EVC per VM
La modalità EVC sopra descritta è un’opzione a livello di cluster. VMware vSphere 6.7 offre la possibilità di impostare una modalità EVC per VM che può essere utile per la migrazione delle VM tra diversi cluster o vCenter Server e offre una maggiore granularità. Una modalità EVC per VM viene impostata come attributo delle impostazioni della VM e aggiunge maggiore flessibilità per la gestione delle VM che devono essere migrate con vMotion. La compatibilità hardware della VM deve essere della versione 14 o superiore. La configurazione della modalità EVC per VM viene salvata nel file di configurazione VMX della VM come righe contenenti featMask.vm.cpuid string. Quando una VM con modalità EVC per VM configurata viene migrata, la sua configurazione EVC memorizzata nel file VMX viene migrata insieme alla VM. Le impostazioni della modalità EVC per VM possono essere modificate quando una VM è spenta (spegnere e riaccendere la VM per applicare le impostazioni modificate della modalità EVC per VM).
Se si abilita una modalità EVC per VM per una VM residente nel cluster che ha già configurata la modalità EVC globale, una modalità EVC per VM può essere uguale o inferiore alla modalità EVC impostata nell’intero cluster. Pertanto, è possibile configurare contemporaneamente sia la modalità EVC globale che quella per VM. Dopo aver clonato una VM, le impostazioni EVC per VM vengono clonate con la VM.
Per configurare la modalità EVC per VM, aprire il client VMware vSphere HTML5, andare su Host e cluster, quindi selezionare la VM necessaria. Aprire la scheda Configura , selezionare Altro > VMware EVC e premi Modifica.
Come abilitare la modalità EVC nel cluster senza tempi di inattività
In alcuni casi, è possibile abilitare la modalità EVC nell’intero cluster senza tempi di inattività delle VM (in genere, le VM devono essere spente e accese per applicare le impostazioni della modalità EVC del cluster). Ciò è possibile se sono soddisfatti i seguenti requisiti:
- Le VM in esecuzione risiedono sull’host ESXi con il processore più vecchio
- La modalità EVC nel cluster è configurata per utilizzare i set di istruzioni della CPU corrispondenti alla generazione del processore più vecchio
Abilitazione della modalità EVC per la VM vCenter
È possibile che si verifichi la seguente situazione, comune negli ambienti VMware vSphere:
vCenter Server è in esecuzione come VM su un host ESXi che deve essere aggiunto a un cluster per il quale è abilitata la modalità EVC.
Il problema è che un host ESXi con VM in esecuzione (inclusa la VM che esegue vCenter) non può essere aggiunto al cluster dopo l’abilitazione di EVC fino a quando tutte le VM non vengono arrestate. D’altra parte, la VM che esegue vCenter è necessaria per la gestione del cluster e non è possibile arrestare la VM vCenter perché è attualmente in uso. Questo problema è particolarmente grave quando la VM vCenter è in esecuzione sull’host ESXi con un processore più recente.
Nota: In questo caso, si consiglia di utilizzare uno Standard vSwitch (non un Distributed vSwitch) per connettere la VM che esegue vCenter alla rete.
Una possibile soluzione. Considerare l’algoritmo che può aiutare a risolvere il problema per VMware vSphere 5.5:
- Spostare un altro server ESXi (che non esegue una VM vCenter) nel cluster se non ci sono ancora server ESXi nel cluster. Le VM sul server ESXi che viene spostato nel cluster devono essere spente.
- Spegnere la VM che esegue vCenter Server. Connettersi all’host ESXi su cui risiede la VM vCenter utilizzando VMware Host Client per annullare la registrazione della VM o connettersi con un client SSH per copiare i file. In VMware Host Client, fare clic con il pulsante destro del mouse sulla VM vCenter e selezionare Annullare la registrazione. Copiare manualmente tutti i file della VM vCenter nell’archivio dati collegato al server ESXi che è già stato spostato nel cluster nel passaggio 1. Se entrambi gli host ESXi utilizzano uno storage condiviso NFS o iSCSI , non è necessario copiare i file della VM in un’altra posizione.
Nota: Potrebbe essere necessario impostare manualmente l’indirizzo MAC per l’adattatore di rete virtuale della VM che esegue vCenter Server prima di spostare la VM da un host ESxi a un altro.
- Registrare la VM vCenter sull’host ESXi che è stato spostato nel cluster (connettersi all’host ESXi con VMware Host Client, aprire l’archivio dati, individuare i file della VM vCenter, selezionare il file VMX, fare clic con il pulsante destro del mouse sul file e selezionare Registrare la VM). Eseguire la VM vCenter su questo host ESXi nel cluster. Accedere a vCenter con VMware vSphere Client per assicurarsi di poter gestire l’ambiente vSphere con vCenter. Potrebbe essere necessario disabilitare temporaneamente il controllo di ammissione.
- Spostare l’host ESXi di origine su cui originariamente funzionava la VM vCenter nel cluster. Se necessario, spegnere le altre VM su quell’host ESXi prima di spostare l’host.
Conclusione
Enhanced vMotion Capability (EVC) è un’utile funzione di VMware vSphere che mantiene il cluster scalabile e consente di aggiungere nodi con processori di generazioni diverse al cluster per eseguire la migrazione live delle VM tra host VMware ESXi con vMotion. La modalità EVC maschera le funzioni dei processori di nuova generazione per creare una baseline unificata che corrisponda alle funzioni della generazione di processori più vecchia utilizzata dagli host ESXi nel cluster. Di conseguenza, si ottiene un ambiente omogeneo in cui tutti i processori utilizzano gli stessi set di istruzioni e le VM in esecuzione possono essere migrate con vMotion. Un numero elevato di clienti VMware che utilizzano cluster utilizza la modalità EVC. Si consiglia di abilitare la modalità EVC nella fase di creazione del cluster per evitare possibili problemi relativi all’aggiunta di host VMware ESXi e alla migrazione delle VM in esecuzione, inclusa la VM che esegue vCenter Server.
Indipendentemente dal fatto che si utilizzi o meno un cluster, non dimenticare di eseguire il backup delle VM VMware. NAKIVO Backup & Replication è una soluzione di protezione dei dati veloce, affidabile e conveniente in grado di proteggere le VM VMware anche se queste vengono migrate tra host VMware ESXi in cluster.











