Implementare Storage Replica in Windows Server 2016 con Microsoft Azure

Storage Replica è una nuova funzionalità di Windows Server 2016 Datacenter Edition che permette di abilitare la replica dello storage, utilizzando il protocollo SMB3, indipendentemente da quale tipo di storage collegato si stia utilizzando (JBOD, SAS, SAN iSCSI). L’obiettivo di Storage Replica è quello di assicurare il disaster recovery senza perdita di dati, con la possibilità di proteggere i dati in maniera sincrona tra diversi siti o addirituura datacenter.

La replica sincrona permette il mirroring dei dati contenuti all’interno dei volumi scelti (lavorando a livello di blocchi disco e non di file) senza perdita di dati, a patto di avere una bassa latenza tra i nodi che replicano. La replica asincrona permette invece di poter ottimizzare la funzionalità quando abbiamo dei cluster stretched (con nodi che si trovano un due località geografiche diverse), soprattutto se c’è molta latenza sulla rete.

Figura 1: Storage replica in uno scenario Stretch Cluster

Figura 2: Storage Replica in uno scenario Cluster to Cluster

In questa guida ci occuperemo di realizzare uno scenario di Storage Replica Server to Server, utilizzando delle macchine virtuali create su Microsoft Azure. I passi che verranno descritti sono validi anche se volete testare la funzionalità nel vostro laboratorio utilizzando Hyper-V.

Figura 3: Storage Replica Server to Server

Realizzazione del Laboratorio

Per realizzare il laboratorio di test abbiamo bisogno di creare dal portale di Microsoft Azure (https://portal.azure.com) 3 macchine virtuali di tipo DS1_v2. Una delle macchine sarà il domain controller (SR-DC), mentre le altre 2 (SR-NODO1, SR-NODO2) verranno utilizzate per implementare la funzionalità di Storage Replica.

Come prima operazione creiamo il domain controller, chiamato SR-DC. Configuriamo la dimensione della VM (io ho scelto DS1_v2), lo storage account, il networking e il network security group. Come creare una macchina virtuale su Azure è fuori dello scopo di questo articolo. Per maggiori informazioni potete leggere https://azure.microsoft.com/it-it/documentation/articles/virtual-machines-windows-hero-tutorial/

Figura 4: Creazione del Domain controller

Una volta che è terminata la creazione della VM potete procedere a configurare la macchina come Domain Controller. Create un dominio utilizzando un nome a vostro piacimento (io ho utilizzato demo.lab).

È necessario modificare la Azure Virtual Network in modo tale che alle macchine virtuali venga assegnato un Custom DNS. Questo permetterà alle nuove VM che creerete d’ora in poi di poter identificare il dominio demo.lab e di conseguenza poterle aggiungere al dominio stesso. Segnatevi l’indirizzo IP che è stato dato alla macchina virtuale che fa da domain controller (il mio è 10.1.0.4) e configuratelo come server DNS.

Figura 5: Configurazione del DNS Server della Azure Network

Create altre due VM, sempre utilizzando il template di Windows Server 2016 Technical Preview, scegliete la dimensione DS1_v2 e ricordatevi di aggiungerle allo stesso Resource Group del Domain controller, in modo tale da poterle successivamente aggiungere al dominio. Io ho chiamato le due macchine virtuali SR-NODO1 e SR-NODO2.

Figura 6: Configurazione delle 2 VM aggiuntive

Aggiungete alle due VM (SR-NODO1 e SR-NODO2) 2 dischi da 128 GB ognuno. Come detto prima, potremmo usare un JBOD oppure gli Storage Spaces, ma per semplicità in questo laboratorio useremo due soli dischi. I dischi verranno utilizzati per creare un volume da replicare ed un volume per i LOG. Tutti i volumi devono essere delle stesse dimensioni, inizializzati GPT e i volumi di LOG è consigliato che siano su dischi SSD.

Figura 7: Creazione dei dischi per le 2 VM

Terminata l’aggiunta dei due dischi collegatevi alle VM, inizializzate i dischi in modalità GPT e formattateli creando due volumi F: (DATI) e G: (LOG), come mostrato in figura:

Figura 8: Creazione dei due volumi DATI E LOG

Abilitazione della funzionalità di Storage Replica

Come prima operazione abilitate la funzionalità di Storage Replica ed il ruolo di File Server. Per comodità potete farlo anche a Powershell eseguendo le cmdlet:

#Dichiarazione dei server
$Servers=‘SR-NODO1.demo.lab’,‘SR-NODO2.demo.lab’

#Installazione dei ruoli
$Servers ForEach { Install-WindowsFeature –ComputerName $_ –Name Storage-Replica,FS-FileServer –IncludeManagementTools -restart }

Eseguite i comandi sul Domain Controller, visto che l’installazione del ruolo e della funzionalità richiede il riavvio dei due server.

Subito dopo l’abilitazione della funzionalità è necessario testare la Storage Replica Topology. Questo test serve a verificare che ci siano tutti i prerequisiti per utilizzare la funzionalità. Possiamo anche decidere per quanti minuti verrà eseguito il test e visualizzare al termine un report. Eseguire la seguente cmdlet powershell su uno dei due nodi:

#Test della Storage Replica Topology
Test-SRTopology -SourceComputerName SR-NODO1 -SourceVolumeName F: -SourceLogVolumeName G: -DestinationComputerName SR-NODO2 -DestinationVolumeName F: -DestinationLogVolumeName G: -DurationInMinutes -ResultPath c:\temp -Verbose

Al termine del test riceverete i seguenti risultati:

Figura 9: esecuzione del test di Storage Replica Topology

Ovviamente controllate anche il risultato del report contenuto nella cartella C:\temp

Figura 10: Test results

Una volta verificato che tutti i prerequisiti siano validi potete finalmente creare la partnership lanciando su uno dei due nodi la seguente cmdlet:

#Creazione della partership
New-SRPartnership -SourceComputerName SR-NODO1 -SourceRGName RG01 -SourceVolumeName F: -SourceLogVolumeName G: -DestinationComputerName SR-NODO2 -DestinationRGName RG02 -DestinationVolumeName F: -DestinationLogVolumeName G: -LogSizeInBytes 8GB -verbose

A questo punto la partnership sarà creata e da questo momento in poi il disco che contiene il volume G: si replicherà in maniera sincrona.

Per verificare cosa sta accadendo e se la sincronizzazione funziona potete lanciare la cmdlet:

#Verifica delle repliche
(Get-SRGroup -ComputerName SR-NODO2).replicas

Purtroppo al momento non esiste un’interfaccia grafica L

Il risultato è mostrato in figura:

Figura 11: Verifica delle repliche

Considerate che mentre è attiva la replica il volume di destinazione non sarà disponibile. Nel momento in cui stoppate la replica, il volume diventa immediatamente disponibile e potete controllarne il contenuto.

Per stoppare la replica vi basterà lanciare sul computer di partenza le seguenti comdlet:

Get-SRPartnership Remove-SRPartnership

Get-SRGroup Remove-SRGroup

Ulteriori informazioni