Configurare un Cluster Hyper-V con Windows Server 2019

Il Failover Cluster è un gruppo di computer che interagiscono tra di loro per migliorare la disponibilità e la scalabilità dei ruoli cluster. Se in uno o più nodi del cluster si verifica un errore, il servizio verrà garantito dagli altri nodi (processo di failover). I ruoli cluster, inoltre, vengono monitorati in modo proattivo per verificare che funzionino correttamente. Se non funzionano, vengono riavviati o spostati in un altro nodo.

Novità del clustering di failover in Windows Server 2019

  • Set di cluster – Consentono di aumentare il numero di server oltre i limiti correnti di un cluster. Questa operazione viene eseguita mediante il raggruppamento di più cluster in un set di cluster. Maggiori papprofondimenti sono disponibili leggendo il mio articolo Introduzione ai Cluster Sets in Windows Server 2019
  • Azure-aware cluster – I cluster di failover rileva ora automaticamente quando è in esecuzione nelle macchine virtuali IaaS di Azure e ottimizza la configurazione per garantire il failover proattivo e la registrazione degli eventi di manutenzione pianificata di Azure per ottenere i massimi livelli di disponibilità.
  • Migrazione del cluster tra domini (cross-domain)– I cluster di failover si possono ora spostare in modo dinamico da un dominio di Active Directory ad un altro, semplificando il consolidamento dei domini.
  • USB witness – È ora possibile usare un semplice dispositivo USB collegato a uno switch di rete come witness nella determinazione del quorum per un cluster.
  • Miglioramenti all’infrastruttura di cluster – La cache CSV è ora abilitata per impostazione predefinita per migliorare le prestazioni delle macchine virtuali.
  • Cluster Aware Updating supporta Storage Spaces Direct – Cluster Aware Updating (CAU) è ora integrato e compatibile con Storage Spaces Direct e convalida e garantisce il completamento della risincronizzazione dei dati su ciascun nodo. In più controlla gli aggiornamenti solo se necessario e riavvia i nodi in modo intelligente. In questo modo orchestra i riavvii di tutti i server del cluster per la manutenzione pianificata.
  • Cluster hardening – Le comunicazioni interne a un cluster tramite Server Message Block (SMB) per Cluster Shared Volumes e Storage Spaces Direct ora sfruttano i certificati per rendere la piattaforma più sicura. In questo modo i cluster di failover possono funzionare senza dipendenze su NTLM e abilitare le baseline di sicurezza.
  • Eliminazione dell’autenticazione NTLM – Il cluster di failover non utilizza più l’autenticazione NTLM, ma usa in maniera esclusiva l’autenticazione Kerberos e l’autenticazione basata su certificati. Non sono necessarie modifiche da parte per sfruttare i vantaggi di questo miglioramento della sicurezza.

Schema di funzionamento di un cluster

Per realizzare questa guida ho creato un domain controller (DC1.virtual.lab) e due server che verranno poi clusterizzati (HV1-NIC.virtual.lab e HV2-NIC.virtual.lab). Ho anche creato una macchina che farà da ISCSI target (STORAGE-NIC) ed ospiterà lo storage condiviso dei due nodi del cluster.

Anche se utilizzerò Windows Server 2019, la stessa procedura è valida se utilizzate Windows Server 2016, Windows Server 2012 R2 e Windows Server 2012.

Nella figura sotto è mostrato lo schema del laboratorio realizzato:

Figura 1: Schema del laboratorio realizzato

Prerequisiti per la creazione di un Failover Cluster

Prima di iniziare a configurare il cluster, verificate i prerequisiti seguenti:

  • Assicuratevi che tutti i server da aggiungere come nodi del cluster eseguano la stessa versione di Windows Server.
  • Esaminate i requisiti hardware per assicurarvi che la configurazione in uso sia supportata. Per altre informazioni seguite la guida Requisiti hardware per il clustering di failover e opzioni di archiviazione.
  • Assicuratevi che tutti inodi del cluster possano accedere ad uno storage condiviso.
  • Assicuratevi che tutti i server da aggiungere come nodi del cluster siano aggiunti allo stesso dominio Active Directory.
  • Assicuratevi che l’account da usare per la creazione del cluster sia un utente di dominio che dispone di diritti di amministratore su tutti i server da aggiungere come nodi del cluster.

NOTA: Per essere supportato da Microsoft, tutto l’hardware deve essere certificato per la versione di Windows Server in esecuzione e la soluzione completa del cluster di failover deve superare tutti i test della Convalida guidata configurazione. Per altre informazioni sulla convalida del cluster di failover, vedere Convalidare l’hardware per un cluster di failover.

Check-list delle attività da eseguire

La creazione di un Failover Cluster richiede l’esecuzione delle seguenti attività:

  • Verificare i prerequisiti
  • Installare la funzionalità Clustering di failover in tutti i server da aggiungere come nodi del cluster
  • Eseguire la convalida guidata del cluster per la verifica della configurazione
  • Eseguire la Creazione guidata cluster per creare il cluster di failover
  • Creare ruoli del cluster per ospitare i carichi di lavoro del cluster

Configurazione dello storage condiviso

Ad ogni nodo del cluster deve essere collegato storage condiviso, cioè visibile da tutti i nodi. È possibile presentare lo storage ai diversi nodi tramite ISCSI, SAN Fiber Channel, Shared SAS oppure tramite gli Storage Spaces. Ho già avuto modo di parlarvi degli Storage Spaces nell’articolo Implementare Storage Spaces Direct in Windows Server 2016 con Microsoft Azure e nell’articolo Storage Spaces Tiering in Windows Server 2016

In questa guida mi servirò di un ISCSI Target installato sulla macchina ISCSI1.demo.lab che pubblica due dischi: un disco di quorum da 10 GB e un disco dati da 500GB. La configurazione dell’ISCSI Target esula dai contenuti di questa guida. Per approfondimenti vi rimando alla lettura dell’articolo Configure Windows 2012 R2 as iSCSI target

Sui due nodi del cluster, HV1-NIC.virtual.lab ed HV2-NIC.virtual.lab, ho collegato i dischi ISCSI utilizzando l’ISCSI Initiator, come mostrato in figura:

Figura 2: Configurazione dell’ISCSI Initiator sui due nodi del cluster

Ho anche configurato il Multipath I/O poiché i due nodi del cluster raggiungono lo STORAGE ISCSI utilizzando due percorsi diversi.

Figura 3: Configurazione del Multipath I/O

Dopo aver collegato i dischi tramite l’ISCSI Initiator, ho provveduto sulla macchina HV1-NIC.virtual.lab ad inizializzare i dischi e a formattarli, come mostrato nelle figure sotto:

Figura 4: Inizializzazione dei dischi ISCSI sulla macchina FS2.demo.lab

Figura 5: Formattazione dei due dischi ISCSI sulla macchina HV1-NIC.virtual.lab

Poiché si tratta di dischi ISCSI, sulla macchina HV2-NIC.virtual.lab i due dischi risulteranno formattati ma saranno visti offline. Windows infatti non supporta la clusterizzazione dei dischi NTFS. Provvederemo più tardi ad utilizzare la funzionalità di Cluster Shared Volume per permettere ad entrambi i nodi di poter scrivere contemporaneamente sullo stesso disco.

NOTA: Non portate online i dischi sul secondo nodo altrimenti potete corrompere il File System

Figura 6: Sul secondo nodo i dischi devono essere mantenuti offline

Configurazione della rete

I due nodi sono collegati tramite due schede di rete: una di management ed una dedicata all’heartbeat. Vi consiglio la lettura dell’articolo Configuring Windows Failover Cluster Networks per approfondire tutti i requisiti di rete necessari per il corretto funzionamento del Cluster.

Figura 7: Dettaglio delle connessioni di rete presenti sui due nodi del cluster

Installazione e configurazione del Cluster

Per configurare un Hyper-V Cluster è necessario che su entrambi i nodi venga installato il ruolo di Hyper-V e la funzionalità di Failover Clustering. Potete servirvi del Server Manager per installare le funzionalità su entrambi i nodi, oppure potete utilizzare i comandi PowerShell evidenziati sotto, eseguiti da una macchina che non sia uno dei nodi del cluster. Ricordatevi di essere loggati dalla maccina da cui eseguite i comandi PowerShell con un account che sia amministratore locale locale dei due nodi del futuro cluster.

 

Figura 8: Installazione del ruolo Hyper-V e della funzionalità di Failover Clustering tramite PowerShell

Figura 9: Aggiunta del secondo nodo al Server Manager per poterlo gestire

Figura 10: Aggiunta del ruolo Hyper-V e della funzionalità di Failover Clustering

Terminata l’installazione della funzionalità, utilizzate la console del Failover Cluster Manager per testare la configurazione dei due nodi e per creare il nuovo cluster. Vi consiglio di verificare i prerequisiti elencati alla pagina Creare un cluster di failover

Lanciate quindi il wizard per la validazione del cluster, in modo tale da essere sicuri che tutti i prerequisiti siano stati rispettati.

Figura 11: Validazione dei nodi del cluster

Figura 12: Validazione del cluster effettuata

In alternativa potete utilizzare il comando PowerShell

 

Terminata la validazione potete creare il nuovo cluster. Cliccate su Create the cluster now using the validates nodes e seguite il wizard di creazione. Indicate il nome del cluster (nel mio caso CLUSTER1) e l’indirizzo IP da assegnargli, come mostrato nelle figure sotto. Io ho anche scelto di aggiungere al cluster tutti i dischi condivisi che sono stati agganciati ai nodi, utilizzando Add all eligible storage to the cluster.

Figura 13: Indicazione del nome e dell’indirizzo IP del cluster

Figura 14: Aggiunta dello storage condiviso da tutti i nodi del cluster

Figura 15: Creazione del cluster completata

La creazione del cluster può essere eseguita anche utilizzando il comando PowerShell

 

Verificate la creazione del cluster dalla console del Failover Cluster Manager e verificate che i dischi condivisi siano stati aggiunti. Come si vede dalla figura sotto, il disco da 1GB viene utilizzato per il quorum, mentre quello da 50GB è disponibile per i dati e può essere trasformato in un Cluster Shared Volume (CSV). I CSV permettono a tutti i nodi di un cluster di failover di poter accedere contemporaneamente sia in lettura che in scrittura ad un disco formattato NTFS o ReFS. NTFS ed ReFS non sono infatti file system clusterizzabili. Per approfondimenti vi rimando alla lettura dell’articolo Utilizzare volumi condivisi del Cluster in un cluster di failover

Cliccate col tasto destro sul disco da utilizzare e scegliete la voce Add to Cluster Shared Volume.

Figura 16: Aggiunta del disco condiviso al Cluster Shared Volume

Il processo è praticamente istantaneo e permette di trasformare il disco in un mount point. Adesso tutti i nodi del cluster potranno accedere al disco utilizzando il percorso predefinito C:\ClusterStorage\Volume1 e potranno leggere e scrivere contemporaneamente nello storage condiviso.

Figura 17: Il disco è stato trasformato in un Cluster Shared Volume

Verificate anche la configurazione delle schede di rete per controllare che ognuna delle schede sia utilizzata nel modo corretto per il management, lo storage e per l’heartbeat. Nel mio caso le reti Cluster Network 1 e Cluster Network 2 sono le reti utilizzate dall’ISCSI e non vengono utilizzate dal cluster per le connessioni trai nodi, mentre la rete Cluster Network 3 è la rete utilizzata dall’Heartbeat. La rete Custer Network 4 è la rete di Management ed è la rete che verrà utilizzata anche dalle VM. Le reti si sono autoconfigurate in maniera perfetta

Figura 18: Configurazione delle reti del cluster

Il cluster è ora configurato.

Creazione di una VM

D’ora in poi tutte le creazioni e le configurazioni delle macchine virtuali dovranno essere effettuate dalla console del Failover Custer Manager e non più dall’Hyper-V Manager. Cliccate sul nodo Roles e col tasto destro fate partire il wizard di creazione di una nuova VM con Virtual MachinesàNew Virtual Machine…

Figura 19: Wizard per la creazione di una nuova VM dalla console del Failover Custer Manager

Scegliete su quale nodo volete che venga creata la macchina virtuale

Figura 20: Scelta del nodo del cluster su cui sarà creata la macchina virtuale

Ricordatevi di posizione la VM nel Cluster Shared Volume, altrimenti non sarà visibile da tutti i nodi del cluster.

Figura 21: I file della VM devono essere salvati nel Cluster Shared Volume altrimenti non saranno visibili da tutti i nodi del cliuster

Figura 22: Creazione della VM completata

Per effettuare le modifiche alla configurazione della macchina virtuale servitevi sempre della console del Failover Cluster Manager. Dalla stessa console potete avviarla, spegnerla, migrarla su un altro nodo, ecc…

Figura 23: Tutte le operazioni sulla VM devono essere effettuate dalla console del Failover Cluster Manager

Figura 24: Avvio della VM

Conclusioni

La funzionalità di Failover Clustering permette di rendere altamente disponibili le nostre applicazioni o le macchine virtuali e diminuisce drasticamente le interruzioni di servizio (downtime). Già da Windows Server 2012 R2 Microsoft supporta failover cluster fino a 64 nodi fisici ed una scalabilità fino a 8.000 macchine virtuali in esecuzione contemporaneamente. Ogni nodo fisico con Hyper-V è in grado di eseguire fino a 1024 macchine virtuali.