Configurare il disaster recovery delle VM utilizzando Hyper-V Replica in Windows Server 2019

Hyper-V Replica è una tecnologia implementata in Hyper-V e progettata per aumentare l’affidabilità degli ambienti virtualizzati. Mentre il Failover Cluster è pensato per proteggere le VM nel caso ci sia una guasto all’host di virtualizzazione, Hyper- V Replica è progettato per diversi scenari, sia per piccole implementazioni che per soluzioni di disaster recovery. Nel primo caso se un’azienda non ha la possibilità di creare un cluster può usare Hyper-V Replica per avere una copia delle VM su un altro host fisico. Nel secondo caso si può usare l’Hyper-V Replica per scenari di disaster recovery (DR). Ad esempio è possbile avere un cluster di produzione nella sede principale e tramite Hyper-V Replica replicare le VM in una sede secondaria, su un altro cluster opppure su un host singolo.

NOTA: Hyper-V Replica NON è un sostituto del backup, ma è pensato per permettere il failover dei workload critici su un altro host o cluster Hyper-V, in caso di disastro.

Come funziona

Hyper-V Replica effettua una copia della VM, dopo aver effettuato un checkpoint della VM, e la invia ad un altro host Hyper-V. Dopo la copia iniziale, solo i dati che sono stati modificati nella VM verranno replicati durante i successivi cicli di replica, che possono essere configurati ogni 30 secondi, ogni 5 minuti oppure ogni 15 minuti. In più è possibile effettuare il failover (test failover o planned failover) della VM in caso di disastro. In ogni caso il processo di failover è manuale.

In più, a partire da Windows Server 2012 R2, è possibile estendere la replica della VM in un terzo sito (extended replica). Per approfondimenti vi rimando all’articolo https://techcommunity.microsoft.com/t5/Virtualization/Hyper-V-Replica-Extend-Replication/ba-p/382112

Scenario

In questo articolo tratterò lo scenario di replica tra due cluster di Hyper-V. Questo tipo di replica prevede che sui due cluster sia installato un ruolo particolare, chiamato Hyper-V Replica Broker, che si occuperà di mantenere attiva la replica delle VM, indipendentemente da quale host del cluster si stia replicando. Per sapere come configurae un cluster di Hyper-V vi rimando alla lettura dell’articolo https://www.ictpower.it/sistemi-operativi/configurare-un-cluster-hyper-v-con-windows-server-2019.htm

Figura 1: Scenario utilizzato nella guida. Hyper-V Replica tra due cluster

Installazione del ruolo di Hyper-V Replica Broker

Per installare il ruolo di Hyper-V Replica Broker, che si occupaerà di tenere sempre attiva la funzionalità di replica indipendentemente dal quale host Hyper-V stia ricevendo i dati in quel momento, è sufficiente utilizzare la console del Failover Cluster Manager e dal nodo Roles lanciare il wizard per la creazione di un nuovo ruolo clusterizzato. Dall’elenco dei ruoli disponibili scegliete Hyper-V Replica Broker e seguite il wizard di creazione.

Figura 2: Scelta del ruolo di Hyper-V Replica Broker nel wizard

Scegliete il nome e l’indirizzo IP da dare all’Hyper-V Replica Broker, che di fatto sarà il nome computer disponibile in Active Directory e che verrà utilizzato per indicare l’endpoint della replica.

Figura 3. Scelta del nome e l’indirizzo IP da dare all’Hyper-V Replica Broker

Figura 4: Conferma delle scelte effettuate

Figura 5: Creazione del ruolo di Hyper-V Replica Broker completata

Nella console del Failover Cluster Manager sarà visibile il nuovo ruolo creato e quale nodo del cluster lo sta ospitando in quel momento.

Figura 6: Il ruolo di Hyper-V Replica Broker è gestibile dalla console del Failover Cluster Manager

Cliccando con il tasto destro sul ruolo di Hyper-V Replica Broker è possibile configurare il ruolo per poter accettare la replica da parte di altri host Hyper-V o da parte di altri cluster. Scegliete il tipo di autenticazione (Kerberos oppure basata sui certificati digitali) e le porte da utilizzare per la replica. In più potete specificare il percorso dove verranno salvati i file di replica delle VM e filtrare i server da cui accettare le repliche.

Figura 7: Configurazione dell’Hyper-V Replica Broker

Terminata la configurazione riceverete un messaggio che vi avviserà di configurare il firewall per permettere il traffico in entrata per le repliche delle macchine virtuali. La regola da configurare si chiama “Hyper-V Replica HTTP Listener (TCP-In)” per il traffico HTTP e “Hyper-V Replica HTTPS Listener (TCP-In)” per il traffico HTTPS.

Figura 8: Messaggio di avviso relativo all’apertura delle porte sul fuirewall

Poichè è possible creare cluster Hyper-V fino a 64 nodi e l’apertura delle porte deve essere effettuata su tutti i nodi, è possibile effettuare l’operazione di configurazione del firewall con questo semplice comando PowerShell

 

Figura 9: Esecuzione del comando PowerShell per l’apertura delle porta del firewall in tutti nodi del cluster

Abilitazione della replica di una VM

L’abilitazione della replica delle macchine virtuali viene effettuata macchina per macchina ed è anche possibile scegliere quali dischi replicare, se la macchina ne ha più di uno. Cliccando col tasto destro sulla VM, dalla console del Failover Cluster Manager, è possibile scegliere Replication à Enable Replication…

Figura 10: Abilitazione della replica per la VM

Figura 11: Wizard per la creazione della replica

Nella schermata Specify Replica Server dovete scegliere il nome del server da utilizzare per replicare la VM. Se volete replicare verso un cluster, è necessario scegliere il nome che avete assegnato al ruolo Hyper-V Replica Broker.

Figura 12: Scelta del replica server

Nel caso stiate replicando la VM da un cluster verso un altro cluster, è necessario che il ruolo di Hyper-V Replica Broker sia installato in entrambi i cluster, altrimenti riceverete un messaggio come quello mostrato in figura:

Figura 13: Messaggio di errore nel caso non sia presente un Hyper-V Replica Broker nel cluster di origine o di destinazione della replica

Proseguendo nella configurazione scegliete in che modo effettuare la connessione e l’autenticazione verso l’endpoint di configurazione. Il wizard verificherà da solo quale protocollo e quale porta sono disponibili, in base alle configurazioni che avete sul server /cluster di destinazione. È anche possibile scegliere di comprimere il traffico, in modo tale da risparmiare sui dati trasferiti, soprattutto in caso di replica verso destinazioni lontane (scenario di disaster recovery).

Figura 14: Scelta del tipo di autenticazione e della compressione dei dati trasmessi via rete

Nel passaggio successivo verranno mostrati i dischi virtuali collegati alla VM che state replicando e potrete scegliere quali dischi replicare.

Figura 15: Scelta dei dischi della VM da replicare

La frequenza di replica può essere scelta tra 3 valori: 30 secondi, 5 minuti e 15 minuti. Scegliete con quale frequenza replicare anche in base al tipo di workload che sta girando nella VM e dei dati che vengono generati.

Figura 16: Scelta della frequenza di replica della VM

È possibile mantenere diversi Recovery Point della VM, in modo tale da poter tornare indietro ad uno stato consistente nel caso di errori e malfunzionamenti della VM che si sono replicati. Il Recovery Point Objective (RPO) è uno dei parametri usati nell’ambito delle politiche di disaster recovery per descrivere la tolleranza ai guasti di un sistema informatico. Esso rappresenta il massimo tempo che deve intercorre tra la produzione di un dato e la sua messa in sicurezza (ad esempio attraverso backup oppure come in questo caso attraverso una replica) e, conseguentemente, fornisce la misura della massima quantità di dati che il sistema può perdere a causa di guasto improvviso.

Figura 17: Scelta dei recovery point e dei RPO

Prima che la replica possa iniziare è necessario che tutti i dischi della VM vengano replicati sull’host/cluster di destinazione. La replica iniziale può avvenire via rete oppure la VM può essere esportata dalla produzione, trasferita a mano sulla destinazione e importata nell’host di destinazione. Se avete moltissimi dati da trasferire potrebbe essere necessario esportare le VM su dei dischi, trasportare i dischi (protetti da Bitlocker!) e importare manualmente le VM nel sito di disaster recovery.

Figura 18: Scelta del metodo iniziale di replica della VM

Figura 19: Completamento del wizard di creazione della replica della VM

Figura 20: Abilitazione della replica della VM avvenuta con successo

Cliccando sul tasto Settings è possibile configurare alcuni parametri della VM replicata, come ad esempio a quale virtual switch collegarla negli host di destinazione, configurare un indirizzamento alternativo della VM che poi verrà applicato al sistema operativo guest tramite Integration Services e un virtual switch per il Test di Failover, che può essere effettuato per verificare che la VM e gli applicativi all’interno si siano replicati correttamente e che tutto funzioni.

Figura 21: Configurazione di un indirizzamento statico per la VM quando verrà avviata nella rete di failover

Figura 22: Scelta dello switch a cui collegare la VM per i test di failover

Dalla console del Failover Cluster Manager, cliccando col tasto destro sulla VM e scegliendo ReplicationàReplication Health è possibile visualizzare lo stato della replica e controllare che non ci siano errori.

Figura 23: Controllo dello stato della replica della VM

La replica delle VM tramite Hyper-V replica può essere effettuata anche tra due host Hyper-V e non necessariamente in presenza di un cluster. Per questo motivo dalla console di Hyper-V Manager è possibile visualizzare e configurare tutti i parametri della replica. Se vi collegate all’Hyper-V Manager vedrete infatti che la VM si starà replicando verso l’host di destinazione.

Figura 24: Anche in Hyper-V Manager è possibile visualizzare lo stato della replica della VM

Failover pianificato della VM

È possibile testare, tramite il Planned Failover, se la replica è andata a buon fine e se la VM è in uno stato consistente, oltre a verificare che tutte le applicazioni funzionino correttamente. Dalla console del Failover Cluster Manager cliccate col tasto destro sulla VM e scegliete Replicationà Planned Failover…

Figura 25: Planned Failover della VM

Il Planned Failover è un’operazione che viene iniziata sulla VM primaria e serve a verificare il recovery. In realtà potrebbe essere utile anche in situazioni in cui sapete che ci potrebbero essere problemi (ad esempio interruzione di energia elettrica o di connettività dovuta a lavori stradali) e in maniera preventiva volete spostare il workload nel sito di disaster recovery, onde evitare di correre ai ripari in caso di guasto. Oppure avete necessità di fare manutenzione sugli host ed è necessario spegnerli.

Per dichiarare il planned failover è però necessario che la VM di partenza sia spenta e Hyper-V Replica provvederà a trasferire tutti i dati rimanenti dall’ultima replica e ad accendere la VM di replica nel sito di disaster recovery.

Figura 26: Per avviare il Planned Failover la VM deve essere spenta

Anche dall’Hyper-V Manager è possibile visualizzare le operazioni di failover

Figura 27: Dalla console di Hyper-V si può visualizzare lo stato della VM

Figura 28: Anche da Hyper-v sono possibili delle operazioni sul failover

IL Planned Failover può essere annullato ed è ovviamente possibile invertire il senso di replica dei dati, perché la VM replicata avrà sicuramente prodotto dei dati da quando l’avete accesa ed è necessario aggiornare la VM di produzione prima di riaccenderla.

Per riavviare la VM nel server di partenza è necessario cancellare il Planned Failover e invertire la replica dei file che sono stati creati sulla macchina remota.

Figura 29: Annullamento dell’operazione di Planned Failover

Hyper-V Extended Replica

Una funzionalità di Hyper-V molto interessante, introdotta in Windows Server 2012 R2, è quella della Extended Replication. È possibile disporre di più copie dei dati per proteggerli da diversi scenari di interruzione. Ad esempio, potreste scegliere di mantenere il sito di disaster recovery (DR) nella stessa azienda o a pochi chilometri di distanza, mentre volete conservare la terza copia di dati in una sede più remota per offrire una protezione aggiuntiva ai workload, specialmente nel caso di disastri naturali (tempeste, inondazioni, terremoti). Hyper-V Extended Replica risolve esattamente questo problema fornendo un’altra copia del carico di lavoro in un sito esteso oltre al sito di replica e quindi potete continuare a proteggere le VM anche in caso di disastro sul sito primario!

Prima di estendere la replica al terzo sito, è necessario stabilire la replica tra un server primario e un server di replica. Una volta fatto ciò, andare al sito di replica e dall’Hyper-V Manager o dalla console del Failover Cluster Manager selezionate la VM per cui estendere la replica, fate clic col tasto destro su VM e selezionate Replication->Extend Replication… Verrà aperta la procedura guidata di estensione della replica che è simile all’Enable Replication Wizard che abbiamo visto prima. L’unico dettaglio da tenere in considerazione è che la replica estesa può essere fatta solo ogni 5 minuti oppure ogni 15 minuti e non può essere inferiore al tempo di replica scelto per la replica principale.

Figura 30: Schema di funzionamento di Hyper-V Extended Replica

Conclusioni

Con Hyper-V Replica è possibile ridondare gli ambienti virtuali da un server all’altro oppure da un cluster ad un altro, garantendo così una soluzione disaster recovery completamente gratuita. I vantaggi sono talmente evidenti che sarebbe un peccato non implementarla