Hyper-V Shared Nothing Live Migration: spostare o migrare le VM tra host fisici

La Hyper-V Shared Nothing Live Migration è una funzionalità di Microsoft Hyper-V che consente la migrazione di macchine virtuali (VM) da un host fisico all’altro senza la necessità di una condivisione di storage comune tra gli host. Questo tipo di migrazione è particolarmente utile in ambienti dove non si dispone di una SAN (Storage Area Network) o di un’altra infrastruttura di storage condiviso.

In pratica, la Shared Nothing Live Migration permette di spostare una VM da un server a un altro “senza condividere nulla” (shared nothing), utilizzando soltanto la rete esistente. Durante la migrazione, i dati della VM sono trasferiti direttamente tra gli host attraverso la rete, mentre la VM continua a funzionare senza interruzioni significative per gli utenti finali. Questo è realizzato mantenendo la coerenza dei dati e garantendo che non ci siano perdite di dati o di connettività durante il trasferimento.

Le fasi principali di una migrazione di questo tipo includono:

  1. Preparazione della migrazione: Gli host di origine e di destinazione stabiliscono una comunicazione e preparano l’ambiente per la migrazione.
  2. Copia della memoria della VM: La memoria della VM viene copiata dall’host sorgente all’host destinazione. Durante questa fase, qualsiasi modifica alla memoria dell’host sorgente viene tracciata per garantire la sincronizzazione.
  3. Trasferimento dello stato di runtime: Include il trasferimento delle informazioni di stato della VM, come i registri dei processori e i dispositivi I/O.
  4. Sincronizzazione finale: Una volta che la memoria e lo stato di runtime sono stati copiati, si esegue una sincronizzazione finale per garantire che tutte le modifiche siano state trasferite.
  5. Interruzione della VM sull’host sorgente e avvio sull’host destinazione: Questo passaggio avviene in modo molto rapido per minimizzare il downtime.

Questa tecnologia fornisce una grande flessibilità e miglioramenti nella gestione delle risorse di un data center, permettendo di bilanciare carichi di lavoro e risorse senza essere vincolati da configurazioni hardware condivise.

Prerequisiti

Per utilizzare la funzionalità Shared Nothing Live Migration in Hyper-V ci sono diversi prerequisiti tecnici e configurazioni che devono essere soddisfatti:

  • Versione del sistema operativo: Entrambi gli host Hyper-V devono eseguire Windows Server 2012 o versioni successive. Shared Nothing Live Migration è stato introdotto con Windows Server 2012.
  • Configurazione di Hyper-V: Entrambi gli host devono avere il ruolo Hyper-V installato e configurato correttamente.
  • Processori compatibili: I processori su entrambi gli host devono essere della stessa famiglia e dello stesso produttore per garantire la compatibilità. Ad esempio, non è possibile migrare VM tra un processore Intel e uno AMD.
  • Connettività di rete: È necessaria una connessione di rete adeguata tra gli host. Microsoft raccomanda l’utilizzo di una rete gigabit o superiore per migliorare le prestazioni della migrazione e ridurre il downtime.
  • Nome di dominio e autenticazione: Gli host devono essere membri dello stesso dominio Active Directory o devono essere configurati con un trust tra domini diversi. Questo assicura che l’autenticazione e le autorizzazioni siano gestite correttamente durante la migrazione.
  • Credenziali di amministratore: È necessario avere credenziali di amministratore su entrambi gli host per avviare e gestire le migrazioni.
  • Configurazione di Virtual Switch: Gli switch virtuali utilizzati dalle VM negli host devono essere configurati in modo simile o identico e devono avere lo stesso nome. Questo assicura che la VM possa continuare a comunicare sulla rete senza interruzioni dopo la migrazione.
  • Politiche di firewall: Le porte necessarie per la migrazione Live di Hyper-V devono essere aperte sui firewall di entrambi gli host (TCP 445, 6600).
  • Sufficiente spazio di archiviazione: Sebbene non sia necessario uno storage condiviso, entrambi gli host devono avere abbastanza spazio di archiviazione locale disponibile per ospitare la VM durante e dopo la migrazione.

Live migration

In un ambiente cluster, tutti gli host Hyper-V condividono un account comune del cluster, che viene registrato in AD. Questo account viene utilizzato per facilitare la comunicazione e l’autenticazione tra gli host, semplificando così le operazioni come le migrazioni all’interno del cluster. Al di fuori di un cluster, ogni host Hyper-V ha il proprio account computer e non esiste una credenziale condivisa; le operazioni vengono autenticate utilizzando l’account utente di chi esegue l’azione.

Durante una migrazione live, sono necessarie azioni autenticate sia sul server Hyper-V sorgente che su quello di destinazione (e sui file server, se la VM è memorizzata su una condivisione SMB). Se l’amministratore che effettua la migrazione live è loggato direttamente su uno dei server Hyper-V e inizia una migrazione live “Shared Nothing” dal manager Hyper-V locale, allora le credenziali dell’amministratore possono essere utilizzate sia localmente che sul server Hyper-V di destinazione. In questo scenario, il meccanismo CredSSP funziona bene, consentendo l’uso delle credenziali dell’amministratore sul server remoto, realizzando quindi un singolo “salto” di autenticazione dalla macchina locale al server remoto.

Kerberos permette che, quando un’azione viene eseguita su un server remoto, quel server remoto possa utilizzare le credenziali dell’utente per autenticarsi su un secondo server remoto. L’utilizzo di Kerberos per l’autenticazione nelle migrazioni live di Hyper-V offre notevoli vantaggi, specialmente in termini di gestione remota e sicurezza. Kerberos è un protocollo di autenticazione di rete che utilizza ticket per permettere ai nodi che comunicano di dimostrare la loro identità in modo sicuro, senza trasmettere password sulla rete.

Abilitazione della Live migration

Per abilitare la funzionalità di Live migration è necessario operare su entrambi gli host di virtualizzazione Hyper-V e configurarla dagli Hyper-V settings. Potete configurare il numero di migrazioni simultanee e decidere quale scheda di rete utilizzare per le migrazioni, come mostrato nella figura sotto:

Figura 1: Abilitazione delle Live migrations dagli Hyper-V settings

In Advanced Features potete configurare il protocollo di autenticazione (io ho scelto Kerberos) e le opzioni di performance (io ho scelto Compression).

A partire da Windows Server 2012 R2, Hyper-V ha introdotto la possibilità di utilizzare la compressione o SMB (Server Message Block) Multichannel durante la Live Migration. Queste opzioni aiutano a ridurre la quantità di dati che devono essere trasferiti attraverso la rete e velocizzano il processo di migrazione.

  • Compression: Questa opzione utilizza le risorse CPU disponibili sugli host sorgente e destinazione per comprimere i dati prima di inviarli attraverso la rete. È particolarmente utile in ambienti in cui la larghezza di banda della rete è un fattore limitante, ma la CPU ha capacità inutilizzate.
  • SMB Multichannel: Questa funzione permette di distribuire il traffico di Live Migration su più interfacce di rete e canali, aumentando efficacemente la larghezza di banda e la tolleranza ai guasti. Richiede SMB 3.0 ed è utile quando l’infrastruttura di rete lo supporta.

Introdotta in Windows Server 2012 R2, Hyper-V può anche sfruttare schede di rete compatibili con RDMA per la Live Migration. RDMA permette connessioni di rete a bassa latenza e ad alta capacità di trasferimento, essenziali per spostare rapidamente grandi quantità di dati di memoria con un impatto minimo sulle risorse della CPU.

Figura 2: Configurazioni delle funzionalità avanzate della Live Migration

Configurazione della Kerberos Constrained Delegation

La configurazione della Kerberos Constrained Delegation in un ambiente Hyper-V è essenziale per permettere a servizi specifici di agire per conto degli utenti in scenari di Live Migration. Questo meccanismo di sicurezza di Kerberos consente a un server di autenticare l’utente su un altro server, fondamentale per la migrazione live tra host Hyper-V senza interruzioni dell’autenticazione.

Su un controller di dominio o su una macchina con gli strumenti di gestione di Active Directory installati, aprite la console “Active Directory Users and Computers”. Cliccate con il tasto destro su uno degli host Hyper-V e scegliete Properties. Nella scheda Delegation” selezionate l’opzione “Trust this computer for delegation to specified services only”. Dovete specificare i servizi a cui l’host può delegare le credenziali. Cliccate su “Add” per aggiungere i servizi. Usate la funzione “Users or Computers” per trovare e selezionare il secondo host Hyper-V o i server che ospitano i servizi utilizzati durante la migrazione. Aggiungete i servizi necessari come “cifs” e “Microsoft Virtual System Migration Service”.

Per approfonfimenti sulla Kerberos Constrained Delegation vi invito a leggere la pagina Kerberos Constrained Delegation Overview | Microsoft Learn

Figura 3: Configurazione della Constrained Delegation

Figura 4: Configurazione della Constrained Delegation per i servizi necessari alla Hyper-V Live Migration

Ripetete la stessa operazione per l’altro host Hyper-V e poi effettuate il reboot degli host.

Spostamento delle VM da un host Hyper-V ad un altro

Terminate le configurazioni necessarie, potete procedere allo spostamento delle VM. Cliccate col tasto destro sulla VM e scegliete Move… per avviare la procedura guidata di spostamento.

Figura 5: Spostamento della VM

Seguite i passaggi della procedura guidata, scegliendo “Move the virtual machine” e poi specificando l’host di destinazione.

Figura 6: Spostamento della VM

La Live migration (e tutte le relative configurazioni) deve essere abilitata su entrambi gli host, altrimenti riceverete il messaggio mostrato nella figura sotto. Alla pagina Troubleshoot live migration issues – Windows Server | Microsoft Learn trovate tutte le indicazioni per effettuare la risoluzione di eventuali problemi che dovessero occorrere durante la migrazione delle VM.

Figura 7: Errore che appare se non è attivata la Live migration sull’host di partenza

Figura 8: Selezione dell’host Hyper-V di destinazione

Figura 9: Scelta del tipo di spostamento da effettuare

Figura 10: Cartella di destinazione in cui verranno messi i file della VM

Figura 11: Completamento del wizard di migrazione

Se vi appare il messaggio Failed to establish a connection with host computer name: No credentials are available in the security package 0x8009030E sarà necessario controllare le configurazioni relative alla Kerberos Constrained Delegation.

Figura 12: Errore nel caso di errata configurazione della Kerberos Constrained Delegation

Figura 13: Avvio della migrazione della VM in corso

Attenzione ai dischi removibili (ISO ad esempio) o a dischi pass-through, perché non sono supportati durante la migrazione.

Quando una VM è configurata per utilizzare un’immagine ISO come disco di avvio o supporto dati, questa ISO potrebbe essere memorizzata localmente su un host o condivisa tramite rete. Durante una migrazione:

  • Se l’ISO è locale all’host: Dovresti disconnettere l’ISO prima della migrazione, poiché il percorso non sarà valido o accessibile dall’host di destinazione.
  • Se l’ISO è in una condivisione di rete: Assicurati che entrambi gli host abbiano accesso alla condivisione di rete. Anche in questo caso, può essere prudente disconnettere l’ISO prima della migrazione per evitare problemi di accesso e riconnetterlo una volta completata la migrazione.

I dischi pass-through sono dischi fisici o partizioni direttamente assegnati a una VM, bypassando il file system dell’host VHD (Virtual Hard Disk). Questo setup offre prestazioni migliori ma complica la migrazione:

  • Non supportati nella Live Migration: I dischi pass-through non possono essere migrati utilizzando la Live Migration perché sono legati all’hardware specifico dell’host. Questo significa che se una VM utilizza un disco pass-through, la Live Migration non sarà possibile senza prima convertire il disco in un VHD o VHDX.

Figura 14: I dischi removibili non sono supportati durante la migrazione

Come si può vedere dalla figura sotto, la migrazione della VM è stata completata con successo e senza downtime da parte della VM.

Figura 15: Migrazione della VM completata con successo e senza downtime

Conclusioni

La funzionalità di Hyper-V Shared Nothing Live Migration rappresenta uno strumento potente e flessibile per l’amministrazione di ambienti virtualizzati. Consentendo di spostare macchine virtuali tra host fisici senza la necessità di una storage condiviso, questa tecnologia offre una soluzione efficace per ottimizzare le risorse e migliorare la continuità operativa nelle infrastrutture IT.

Attraverso l’implementazione della Shared Nothing Live Migration, le aziende possono beneficiare di una maggiore flessibilità nella gestione delle loro risorse virtuali. Questo processo non solo minimizza il downtime, garantendo un impatto quasi nullo sull’operatività aziendale, ma aumenta anche la resilienza e la disponibilità delle applicazioni critiche.

Concludendo, Hyper-V Shared Nothing Live Migration è una componente chiave per la modernizzazione dei data center, permettendo una gestione dei carichi di lavoro più dinamica e scalabile. Gli amministratori di sistema sono incoraggiati a sfruttare questa tecnologia per migliorare l’efficienza operativa e preparare l’infrastruttura IT a rispondere in modo proattivo alle esigenze aziendali in evoluzione.