Azure Shared Disks – Creazione di un traditional Windows Failover Cluster in Microsoft Azure

Da pochissimi giorni sono disponibili gli Azure Shared Disks, una funzionalità che permette di collegare un managed disk a diverse macchine virtuali Azure contemporaneamente.

La nuova funzionalità di Azure è disponibile sia per le machine Linux che per le macchine Windows e permette di semplificare la creazione dei Guest Cluster. Già in passato abbiamo parlato della funzionalità degli Shared Disks on-premises nella guida Virtual Hard Disk Sharing in Windows Server 2016 ed oggi voglio mostrarvi come implementare un traditional Windows Failover Cluster in Microsoft Azure, in modo tale da poter creare o migrare le vostre applicazioni clusterizzate direttamente in Azure.

Come funziona

Le macchine virtuali nel cluster possono leggere o scrivere sul disco collegato in base alla prenotazione (reservation) scelta dall’applicazione che gira nel cluster usando le SCSI Persistent Reservations. Gli Azure Shared Disks permettono di utilizzare storage a blocchi che potrà essere utilizzato da più VM contemporaneamente e che verrà visto come una LUN (logical unit number) collegata a tutti I nodi del cluster.

Limitazioni

L’abilitazione dei dischi condivisi è disponibile solo per un subset di tipi di disco. Attualmente solo dischi Ultra e SSD Premium possono abilitare i dischi condivisi. Ho già parlato degli Azure Ultra SSD disk nella guida Utilizzare i dischi ULTRASSD nelle macchine virtuali in Azure (preview). Appena avete un pò di tempo dategli un’occhiata

Per maggiori informazioni sulle attuali limitazioni degli Azure Shared Disks vi rimando alla lettura della pagina https://docs.microsoft.com/en-us/azure/virtual-machines/linux/disks-shared

Se siete interessati a provare le unità SSD Premium condivise è necessario prima iscriversi per l’accesso. Per l’utilizzo dei dischi ULTRA SSD non è necessaria invece nessuna registrazione.

Figura 1: Schema del traditional Windows Failover Cluster da realizzare in Microsoft Azure

Utilizzo degli Azure Shared Disks

I dischi condivisi di Azure sono supportati in Windows Server 2008 e versioni successive. La maggior parte del clustering basato su Windows si basa su Windows Server Failover Clustering. In questa guida vi mostrerò come creare uno Scale-Out File Server utilizzando un template che trovate al link https://aka.ms/azure-shared-disk-sofs-template

Per utilizzare il template è necessario disporre già di un dominio e di una VNET a cui agganciare le macchine virtuali Azure. Io ho creato la mia infrastruttura utilizzando il template al link https://github.com/Azure/azure-quickstart-templates/tree/master/active-directory-new-domain-ha-2-dc, che permette di creare un nuovo dominio e due domain controller con pochi clic.

Figura 2: Creazione di un nuovo dominio in Azure utilizzando un template

Figura 3: Parametri per la configurazione del nuovo dominio

Alla fine del deployment verranno create le risorse mostrate in figura:

Figura 4: Risorse create dal template per la distribuzione di un nuovo dominio in Azure VMs

Dopo la creazione dell’infrastruttura di dominio ho provveduto ad utilizzare il template per la creazione di uno Scale-Out File Server Cluster che utilizza gli Azure Shared Disks. Collegatevi alla pagina https://aka.ms/azure-shared-disk-sofs-template e lanciate la creazione delle risorse facendo clic sul pulsante Deploy to Azure.

Figura 5: Creazione di uno Scale-Out File Server Cluster che utilizza gli Azure Shared Disks

Cliccando sul pulsante Deploy to Azure avrete la possibilità di compilare i parametri richiesti dal template. Ricordatevi di cliccare sul pulsante Edit parameters per poter indicare quale VNET utilizzare per la distribuzione delle Azure VMs che faranno parte dello Scale-Out File Server.

Figura 6: Configurazioni del template per creare uno Scale-Out File Server Cluster che utilizza gli Azure Shared Disks

Procedete alla modifica dei parametri del template e nella riga

inserite i parametri corretti che faranno riferimento alla sottoscrizone, al resource group e alla VNET dove si trova il domain controller del dominio da utilizzare

Figura 7: Modifica dei parametri del template con le informazioni corrette relative alla propria sottoscrizione e alla VNET da utilizzare

Ricordatevi di richiedere la registrazione della vostra sottoscrizione nel caso vogliate utilizzare gli Azure Shared Disks SSD Premium (previsti dal template che vi ho linkato) altrimenti riceverete l’errore mostrato in figura:

Figura 8: La sottoscrizioone utilizzata non è abilitata per l’utilizzo degli Azure Shared Disks SSD Premium

Il template creerà altre due macchine virtuali, che saranno I nodi dello Scale-Out File Server e un disco condiviso (Azure Shared Disk). Mettetevi comodi perchè il completamento del deployment, con l’esecuzione di tutti gli script di configurazione dello Scale-Out Failover Cluster, dura circa 27-28 minuti

Nelle figure sotto ho evidenziato le nuove risorse create e le proprietà dei dischi di una delle due nuove VM create dal template:

Figura 9: Risorse create dal template

Figura 10: Il disco condiviso è stato aggiunto alla VM che farà parte dello Scale-Out File Server

Collegandosi in desktop remoto ad una delle due VM create dal template, si potrà notare che saranno state aggiunte al dominio che abbiamo indicato e che l’Azure Shared Disk è stato collegato e configurator correttamente.

Figura 11: Le VM create dal template sono state aggiunte correttamente al dominio

Figura 12: L’Azure Shared Disk è stato collegato correttamente alle VM create dal template

Se volete controllare le configurazioni del cluster creato potete installare la console del Failover Cluster Manager (che non viene aggiunta dallo script).

Figura 13: Risorse del cluster creato in Azure con gli Shared Disks

Figura 14: Azure Share Disk collegato al cluster e formattato come Cluster Shared Volume (CSV)

Figura 15: Scale-Out File Server configurato correttamente

Conclusioni

Gli Azure Shared Disks aprono uno scenario davvero interessante per chi ha necessità di creare dei guest cluster o vuole spostare i workload esistenti in Azure. Con questo tipo di funzionalità gli Azure Shared Disks sono attualmente gli unici shared block storage che supportano nel cloud applicazioni clusterizzate che utilizzano sia Linux che Windows, come ad esempio i database clusterizzati o parallel file systems, i persistent containers e le applicazioni che utilizzano machine learning.

Visitate la pagina ufficiale dell’annuncio https://azure.microsoft.com/en-us/blog/announcing-the-general-availability-of-azure-shared-disks-and-new-azure-disk-storage-enhancements/ per avere maggiori Informazioni.