Creare uno Scale-out File Server in Windows Server 2019 e Windows Server 2022

In questa guida vedremo come creare uno Scale-out File Server (SoFS) in Windows Server 2019, una funzionalità già introdotta in Windows Server 2012 e ideale per poter ospitare workload di Hyper-V o di SQL Server.

Uno Scale-ouf File Server permette di assicurare disponibilità continua dello storage per tutte quelle applicazioni che possono usare le condivisioni di rete per conservare i propri dati. Un file server cluster classico permette ai client di potersi connettere solo ad un nodo alla volta. Invece uno Scale-out File Server (SoFS) permette di poter utilizzare tutti i nodi contemporaneamente (Cluster attivo-attivo). Per funzionare SOFS utilizza la funzionalità di Failover Clustering di Windows Server e le nuove capacità del protocollo SMB 3.0.

Per approfondimenti vi rimando alla lettura dell’articolo Scale-Out File Server for application data overview

Figura 1: Utilizzo di uno Scale-out File Server e numero massimo di nodi utilizzabili nel cluster

In Windows Server 2019 sono state aggiunte diverse funzionalità e migliorie rispetto alle versioni precedenti. Potete visualizzarne i dettagli leggendo l’articolo Scale-Out File Server Improvements in Windows Server 2019

Schema di funzionamento del laboratorio

Per realizzare questo articolo ho creato un domain controller (DC1.demo.lab) e due File Server che verranno poi clusterizzati (FS1.demo.lab e FS2.demo.lab). Ho anche creato una macchina che farà da ISCSI target (ISCSI1.demo.lab) ed ospiterà lo storage condiviso dei due nodi del cluster. Nella figura sotto è riassunto lo schema del laboratorio realizzato.

Figura 2: Schema del laboratorio realizzato

Configurazione dello storage

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

Fate riferimento alla pagina Plan for Storage in Scale-Out File Server per maggiori informazioni sugli scenari supportati per lo storage e le relative configurazioni.

In questo laboratorio 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, FS1.demo.lab ed FS2.demo.lab, ho collegato i dischi ISCSI utilizzando l’ISCSI Initiator, come mostrato in figura:

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

Dopo aver collegato i dischi tramite l’ISCSI Initiator, ho provveduto sulla macchina FS1.demo.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 FS1.demo.lab

Poiché si tratta di dischi ISCSI, sulla macchina FS2.demo.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.

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 Plan for Networking in Scale-Out File Server per approfondire tutti i requisiti di rete necessari per il corretto funzionamento del Cluster.

Installazione e configurazione del Cluster

Per configurare uno Scale-out File Server è necessario che su entrambi i nodi venga installata la funzionalità di File Server e di Failover Clustering. Potete servirvi del Server Manager per installare le funzionalità su entrambi i nodi, oppure potete utilizzare il comando PowerShell

Figura 6: Aggiunta del secondo nodo al Server Manager di FS1.demo.lab per poterlo gestire

Figura 7: Aggiunta del ruolo File Server

Figura 8: Aggiunta della funzionalità di Failover Clustering

Effettuate l’installazione del ruolo di File Server e della funzionalità di Failover Clustering anche sul secondo nodo.

Figura 9: Installazione del ruolo di File Server e della funzionalità di Failover Clustering anche sul secondo nodo

Terminata l’installazione dei ruoli e 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 10: Validazione dei nodi del cluster

Figura 11: Validazione effettuata

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 12: indicazione del nome e dell’indirizzo IP del cluster

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

Figura 14: Creazione del cluster completata

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 10GB viene utilizzato per il quorum, mentre quello da 500GB è 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 15: 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 16: 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 scambio dati e per l’heartbeat.

Figura 17: Configurazione delle reti del cluster

Il cluster è ora configurato e possiamo procedere all’installazione dello Scale-out File Server.

Configurazione dello Scale-Out File Server

Una volta che avete installato tutti i prerequisiti per lo Scale-out File Server, utilizzate il Failover Cluster Manager per aggiungere il ruolo di File Server, per definire il File Server Type e per dichiarare il nome che utilizzeranno i client per accedere allo Scale-out File Server, come mostrato nelle figure sotto:

Figura 18: Aggiunta del ruolo clusterizzato di file server

Figura 19: Scelta del tipo di file server clusterizzato che si vuole creare

Figura 20: Nome dello Scale-out File Server

Figura 21: Conferma dei parametri di configurazione del SOFS

Figura 22: Creazione del SOFS completata

Durante il wizard di creazione non vi è stato chiesto quale indirizzo IP utilizzare per il SOFS perché verrà utilizzato il DNS Round Robin per la risoluzione del nome scelto per lo Scale-out File Server.

Figura 23: Nel server DNS sono stati creati due record per entrambi i nodi del cluster

Creazione della condivisione di rete

Una volta che avete creato lo Scale-out File Server non vi rimane altro che creare la cartella condivisa dentro la quale inserire le vostre applicazioni, i vostri database o le vostre macchine virtuali Hyper-V. Dalla console del Failover Cluster Manager cliccate col tastro destro sul nome dello Scale-out File Server e scegliete la voce Add File Share. Seguite il wizard di creazione della condivisione di rete, come mostrato nelle figure sotto:

Figura 24: Aggiunta della File Share al SOFS

Figura 25: Scelta del profilo della cartella condivisa

Figura 26: Percorso dove verrà creata la cartella condivisa

Figura 27: Scelta del nome della cartella condivisa

Figura 28: Configurazione dei parametri di condivisione

Figura 29: Permessi di accesso alla condivisione di rete

Figura 30: Conferma della creazione della cartella condivisa

Nella console del Failover Cluster Manager la cartella condivisa ed il suo percorso sono facilmente visualizzabili.

Figura 31: Visualizzazione delle cartelle condivise dal SOFS dalla console del Failover Cluster Manager

La cartella è raggiungibile da Esplora Risorse semplicemente indicando il percorso \\SOFS1\VMs

Figura 32: La cartella è condivisa è raggiungibile da Esplora Risorse

Gestione tramite Windows Admin Center

Windows Admin Center è un’applicazione basata su browser, distribuita a livello locale per la gestione di server, cluster, infrastrutture iper-convergenti e client. Un’evoluzione delle console di gestione, Server Manager o MMC, facile da installare e senza costi aggiuntivi. Se non conoscete il prodotto o le sue potenzialità vi consiglio di leggere l’articolo Windows Admin Center: la rivoluzione della gestione di Windows Server

Alla data di stesura di questo articolo, è disponibile la versione 1809.5, che permette di gestire il Failover Cluster ma non permette di creare delle condivisioni di rete. Sarà quindi necessario utilizzare il Failover Cluster Manager.

Figura 33: Gestione del cluster utilizzando Windows Admin Center

Conclusioni

Lo Scale-out File Server (SOFS) è una funzionalità progettata per offrire condivisioni di file con scalabilità orizzontale che siano continuamente disponibili per memorizzare i dati gestiti da applicazioni che usano i file server, come ad esempio Hyper-V e SQL Server. SOFS permette di ottenere un livello di affidabilità, disponibilità, gestibilità e alte prestazioni in maniera simile a quello che ci si aspetta da una SAN (Storage Area Network). Tutte le condivisioni di file sono in linea contemporaneamente in tutti i nodi e l’eventuale problematica di un nodo del cluster non crea indisponibilità per i workload, permettendo quindi di continuare a lavorare in maniera trasparente. In più la larghezza di banda massima disponibile per le condivisioni di rete è la larghezza di banda totale di tutti i nodi del cluster di file server, diversamente da quanto accadeva per le versioni precedenti di Windows Server, in cui la larghezza di banda totale era vincolata alla larghezza di banda di un singolo nodo del cluster.