Storage Spaces Tiering in Windows Server 2016

Gli Storage Spaces sono una tecnologia introdotta in Windows Server 2012 ed in Windows 8 che permette di poter proteggere i nostri dati nel caso ci sia un’avaria di uno o più dischi fisici. Si tratta dell’implementazione software del concetto di RAID, il cui scopo è aumentare le performance, rendere il sistema resiliente alla perdita di uno o più dischi e poterli rimpiazzare senza interrompere il servizio.

Con gli Storage Spaces Microsoft introduce un tecnologia che permette di implementare quello che si chiama Software Defined Storage (SDS), che permette di poter collegare alla macchina una serie di dischi (JBOD) e di poter ottenere le stesse funzionalità di una SAN (Storage Area Network).

Si parte dalla creazione di uno Storage Pool (cioè un insieme di dischi fisici) e si crea lo Storage Space, sotto forma di disco virtuale. Il disco virtuale creato viene poi formattato e visualizzato come volume nel sistema operativo.

Figura 1: Principio di funzionamento degli Storage Spaces

In Windows Server 2012 R2 è stata introdotta una nuova tecnologia chiamata Storage Spaces Tiering, che permette di utilizzare dischi diversi (SSD e HDD) all’interno dello stesso Storage Pool. Il vantaggio principale offerto dagli Storage Spaces Tiers è quello di poter conservare i dati che vengono acceduti più frequentemente sui dischi SSD e di spostare i dati più “freddi” sui dischi meccanici HDD, più capienti e decisamente meno costosi.
In questo modo si aumentano di molto le performance offerte dallo storage e l’ottimizzazione avviene in maniera automatica e schedulata.

Creazione dello Storage Pool

Nel mio laboratorio ho utilizzato 4 dischi SSD da 512 GiB ed 8 dischi HDD da 2 TiB. Utilizzando il Server Manager mi sono spostato nel nodo File and Storage Services e ho selezionato Storage Pools. Come si vede dall’immagine sotto, i dischi sono virtuali (sto usando una VM) e vengono visti come dischi SAS. Per creare un nuovo Storage Pool basta cliccare sul pool Primordial e col tasto destro scegliere New Storage Pool

Figura 2: Wizard per la creazione di un nuovo Storage Pool

Date un nome al pool di dischi (nel mio caso si chiamerà Pool1) e cliccate su Next

Figura 3: Nome del Pool di dischi

Nel passaggio successivo verranno mostrati i dischi fisici collegati alla vostra macchina. Potete decidere di utilizzarli tutti o in parte (potete creare diversi Pool) e se saranno inseriti automaticamente nel Pool e quindi contribuiranno fin da subito. È anche possibile utilizzare alcuni dischi come Hot Spare, cioè verranno utilizzati per rimpiazzare dei dischi che eventualmente dovessero subire un guasto.

Figura 4: Allocazione dei dischi (Automatica, Manuale o Hot Spare)

Selezionate quindi i dischi da aggiungere al Pool. Io li ho aggiunti tutti e ho allocato un disco SSD ed un disco HDD di Hot Spare, come mostrato in figura:

Figura 5: Scelta dei dischi da aggiungere al Pool

Figura 6: Conferma delle configurazioni scelte per la creazione dello Storage Pool

Cliccando su Create verrà creato lo Storage Pool. Il processo di creazione dura una manciata di secondi.

Figura 7: Creazione dello Storage Pool

Creazione del Virtual Disk

Terminata la creazione dello Storage Pool, il passaggio successivo consiste nella creazione del Virtual Disk, che poi verrà trasformato in Volume. Dal Server Manager avviate il wizard per la creazione del virtual disk come mostrato in figura:

Figura 8: Wizard per la creazione del Virtual Disk

Poiché nel mio laboratorio sto utilizzando dei vhdx, questi non riescono a far capire a Windows Server il loro Media Type (viene visualizzato come Unknown) e nel momento in cui decido di creare il nuovo Virtual Disk mi accorgo che non è possibile abilitare gli Storage Tiers. È infatti necessario che nello Storage Pool sia disponibile almeno un disco SSD ed almeno un disco HDD.

Figura 9: Creazione degli Storage Tiers non disponibile

Per ovviare a questo problema sarà sufficiente utilizzare un paio di comandi Powershell per sistemare il Media Type dei dischi. Aprite un prompt di PowerShell con privilegi elevati per verificare il Media Type

Get-StoragePool Pool1 Get-PhysicalDisk FT FriendlyName, MediaType, Size

Lanciate il seguente comando per modificare il Media Type di tutti i dischi più piccoli di 1 TiB e configurarli come SSD (io ho 4 dischi da 512 GiB che simuleranno gli SSD)

Get-StoragePool Pool1 Get-PhysicalDisk Size -lt 1TB Set-PhysicalDisk –MediaType SSD

Lanciate il seguente comando per modificare il Media Type di tutti i dischi più grandi di 1 TiB e configurarli come HDD (io ho 8 dischi da 2 TiB che simuleranno gli HDD)

Get-StoragePool Pool1 Get-PhysicalDisk Size -gt 1TB Set-PhysicalDisk –MediaType HDD

Nella figura sotto sono mostrati i risultati dell’operazione:

Figura 10: Modifica degli Media Type dei dischi

A questo punto vi basterà effettuare il refresh nella console del Server Manager per verificare che il Media Type sia stato configurato correttamente

Figura 11: Media Type dei dischi configurato correttamente

Se rilanciate il wizard vedrete che adesso sarà possibile abilitare gli Storage Tiers.

Figura 12: Abilitazione degli Storage Tiers

Una novità introdotta in Windows Server 2016 è l’Enclosure Resiliency. Il sistema operativo si rende conto che i dischi fisici si trovano su Enclosures diversi e quindi quando verrà creato il virtual disk verranno utilizzati dischi fisici in modo che i dati siano presenti su enclosures diversi e che siano disponibili anche se dovesse subire un guasto l’intero enclosure.

Figura 13: Enclosure Awareness ed Enclosure Resiliency

Il volume che voglio creare è un volume di tipo Mirror (simile ai RAID1), che mi permette di avere molta affidabilità anche se a scapito di maggior spazio utilizzato.

Figura 14: Creazione di un virtual disk con funzionalità Mirror

Scelgo anche di creare il virtual disk in modalità Three-way Mirror, in modo tale da avere 3 copie del dato ed potervi accedere anche nel caso in cui ci fosse il guasto contemporaneo di due dischi fisici.

Figura 15: Configurazione Three-Way Mirror contro la perdita contemporanea di due dischi fisici

Figura 16: Quando di usano gli Storage Tiers è possibile usare solo il fixed provisioning

Scegliete, in base allo spazio a disposizione, la dimensione che avrà il virtual disk. Nel mio esempio voglio creare un disco da 1 TiB utilizzando 265 GiB per il Faster Tier (SSD) e 768 GiB per lo Standard Tier (HDD).

Figura 17: Dimensioni del Virtual Disk e relative specifiche per i Tiers

Confermate le configurazioni scelte e fate clic su Create.

Figura 18: Conifera delle configurazioni del Virtual Disk

La creazione del Virtual Disk dura pochissimi secondi.

Figura 19: Creazione del disco completata

Dalla console Disk Management potrete notare che adesso c’è un nuovo disco, da formattare, della dimensione di 1 TiB.

Figura 20: il Virtual Disk creato è visibile dalla console di Disk Management

Il volume potrà essere creato dalla stessa console di Disk Management oppure dal Server Manager. Se avete lasciato attivato il segno di spunta su Create a volume when this wizard closes nel wizard di creazione del Virtual Disk, vi si aprirà un nuovo wizard per la creazione del Volume.

Figura 21: Selezione del virtual disk su cui creare il Volume

Figura 22: Il Volume deve avere la stessa dimensione del Virtual Disk perché stiamo utilizzando gli Storage Tiers

Assegnate una lettera al Volume.

Figura 23: Assegnazione della lettera al nuovo Volume

Decidete l’etichetta per il nuovo Volume. Potrete formattare il nuovo Volume solo con il File System NTFS perché gli Storage Tiers non permettono di formattare utilizzando il File System REFS.

Figura 24: Etichetta del Volume e File System

Figura 25: Conferma delle configurazioni per la creazione del nuovo Volume

La creazione del nuovo Volume dura pochi secondi

Figura 26: Creazione del Volume completata

Figura 27: Il nuovo Volume è visibile in Esplora Risorse

Processo di ottimizzazione degli Storage Tiers

Windows Server si occupa di ottimizzare in maniera trasparente ed automatica le performance dello storage, spostando i dati che vengono acceduti più frequentemente nel Faster Tier, più veloce ma più costoso e spostando quelli meno utilizzati nello Standard Tier, più lento ma più economico. Durante la giornata gli Storage Spaces creano una heat map dei dati in base a quanto spesso ogni pezzo di dato viene acceduto. Il dato è mappato e spostato tra i diversi livelli, rendendo la fruizione dello stesso molto più perfomante.

Figura 28: Processo di ottimizzazione degli Storage Tiers

Dopo che il wizard è completato verrà automaticamente abilitata anche un’operazione pianificata che si occuperà di gestire ed ottimizzare gli Storage Tiers. L’operazione verrà ripetuta ogni 4 ore ed eseguirà il comando %windir%\system32\defrag.exe -c -h -g -# -m -i 13500

Figura 29: Operazione pianificata per l’ottimizzazione degli Storage Tiers

Conclusioni

Gli Storage Spaces in generale e gli Storage Spaces Tiers in particolare aggiungono a Windows Server le stesse funzionalità che sono tipiche di una SAN (Storage Area Network), riducendone però costi e vincoli all’utilizzo di particolari dischi. Uno degli investimenti maggiori che Microsoft ha fatto negli ultimi anni nello sviluppo di Windows Server è proprio sul Software Defined Datacenter, una serie di tecnologie che permette all’hardware ad al software di espandersi oltre il tradizionale rapporto uno a uno.