vMotion consente di migrare una VM live da un server fisico a un altro. Ciò significa che non è necessario alcun tempo di inattività per eseguire la manutenzione dell’host vSphere ed è anche possibile, senza alcun tempo di inattività, bilanciare le VM su un cluster senza la necessità di spegnere nessuna delle VM.
VMware supporta anche vMotion a lunga distanza e vMotion cross-vCenter, che consente di migrare i carichi di lavoro in un altro data center o nel cloud. Ciò consente di evitare disastri quando una minaccia è imminente, di eseguire carichi di lavoro in un fuso orario specifico e di utilizzare il cloud bursting se si inizia a esaurire le risorse.
Prima di implementare vMotion, assicurati di disporre di memoria e larghezza di banda di rete sufficienti per supportare il processo di migrazione, le tue VM sono ottimizzate per la migrazione live e sai come funziona la funzionalità in tutta l’infrastruttura.
Requisiti di migrazione vMotion live
Quasi ogni edizione di vSphere contiene vMotion; solo il kit vSphere Essentials non supporta la funzionalità. vMotion è un processo tra due host ESXi, ma viene avviato tramite vCenter, quindi richiede una licenza vCenter.
Il resto dei requisiti-come la larghezza di banda della rete e la RAM-non sono molto impegnativi. La migrazione avviene tra due host ESXi che devono avere un’interfaccia VMkernel con la funzione vMotion abilitata e possono raggiungere l’un l’altro tramite connessione di rete.
Per le macchine virtuali che si decide di migrare, il requisito è che rimangano nella stessa rete layer 2. C’è un requisito minimo di larghezza di banda di 250 Mbps per migrazione vMotion, ma è meglio avere più larghezza di banda disponibile.
La maggiore larghezza di banda disponibile consente di eseguire migrazioni più velocemente, il che è il più importante con le macchine virtuali con grandi quantità di RAM.
Come funziona vMotion
Per spostare la VM su un altro computer fisico, è necessario spostare il contenuto della memoria e passare qualsiasi flusso di lavoro di elaborazione sull’altro computer. vCenter avvia vMotion e avvia la migrazione dopo un controllo di compatibilità con l’host ESXi di origine e di destinazione.
Il processo inizia con una copia di memoria iniziale tramite la rete abilitata per vMotion. L’immagine qui sotto mostra dove è necessario copiare 16 GB di RAM per una VM con quella quantità di memoria richiesta.
Idealmente, questo passaggio sarebbe istantaneo. Ma ci vogliono diversi secondi per copiare 16 GB e durante questo processo alcune pagine di memoria nella memoria di origine cambiano. VMkernel tiene traccia delle pagine modificate e quindi le copia nell’host di destinazione.
Considera che questo sarebbe un altro gigabyte di RAM. Mentre si copia che 16 GB, la memoria cambia di nuovo. Questo diventa un processo iterativo, come mostrato nell’immagine qui sotto.
Dopo diverse iterazioni, dovresti aver copiato la maggior parte della memoria e rimane una quantità che può essere copiata in meno di 500 millisecondi. Se riesci a raggiungere quel punto a causa della rapida modifica della RAM di origine, la VM rallenterà sulla sorgente con Stun Durante l’invio della pagina per rendere possibile copiare tutta la memoria.
La larghezza di banda sufficiente è il requisito più importante per le macchine virtuali di grandi dimensioni. Ad esempio, copiare una VM da 768 GB su un collegamento da 1 Gbps richiede troppo tempo per raggiungere un punto di commutazione stabile.
È una buona idea avere una rete vMotion dedicata con 10 Gbps o più e più schede di rete. Si consiglia inoltre di eseguire più porte VMkernel se si eseguono molte migrazioni contemporaneamente o se si eseguono VM di grandi dimensioni.
Una volta copiata la memoria, l’elaborazione delle istruzioni si interrompe sull’host ESXi di origine e continua sull’host ESXi di destinazione. Dal punto di vista del sistema operativo guest, non è successo nulla perché tutte le istruzioni vengono elaborate, ma su un altro host.
È necessaria un’azione sulla rete perché il traffico di rete deve essere inviato all’host ESXi di destinazione, non all’host ESXi di origine. L’host ESXi di destinazione invia un pacchetto reversed address resolution protocol allo switch fisico, che attiva il processo di apprendimento MAC per elencare l’indirizzo MAC della VM sulla porta in uscita in cui si collega l’host ESXi.
Ora il carico di lavoro viene migrato senza problemi e si può tranquillamente affermare che è possibile spostare qualsiasi applicazione abilitata per TCP senza interruzioni.
Miglioramenti e considerazioni
Nel corso degli anni, la maggior parte dei miglioramenti a vMotion sono stati implementati a causa delle sempre crescenti specifiche VM. Questo è il caso di vSphere 7, dove nell’aggiornamento 2 è possibile configurare una VM con un massimo di 896 vCPU e 24 TB di RAM.
VMware ha apportato importanti miglioramenti in vSphere 7 U1 al modo in cui VMkernel avvia il processo che tiene traccia delle pagine di memoria modificate durante il processo di copia della memoria.
La funzione di installazione Traccia pagina libera elimina la necessità di bloccare tutte le VCPU quando si inserisce un tracciatore pagina. Dedica una vCPU per eseguire questo processo in modo che tutte le altre vCPU possano continuare a eseguire le istruzioni del sistema operativo guest.
Un altro miglioramento è che il processo VM è già commutato prima di spostare tutta la memoria alla sua destinazione. La memoria sull’altro host è contrassegnata come remota e viene recuperata in seguito.
Se progettate e dimensionate correttamente i vostri host e componenti di rete, vMotion non presenta grandi svantaggi.