Storage Spaces deep dive
Con Windows Server 2012 e Windows 8 è stata introdotta una novità per quanto riguarda la gestione dello storage ovvero gli Storage Space di cui avevo discusso nel post Windows Server 2012: virtualizzazione dello storage tramite Storage Spaces.
Di seguito cercherò di raccogliere alcuni dettagli su questa tecnologia che di fatto permette di creare una SAN a basso costo tramite aggregazione di drive, ma anche di di gestire l’alta disponibilità dello storage tramite Failover Clustering e la sua scalabilità tramite il Thin Provisioning.
![]() |
![]() |
Drive supportati in uno Storage Pool
I drive supportati per l’utilizzo all’interno di un pool possono essere interni, esterni o SSD delle seguenti tipologie:
- SATA (Serial ATA)
- SAS (Serial Attached SCSI)
- SCSI (Small Computer System Interface)
- Possono essere utilizzati dischi SAS e SATA anche in JBOD (just-a-bunch-of-disks) enclosure che supportano SCSI Enclosure Services (SES) versione 3 o tramite RAID adapters. Nel caso di RAID adapters occorre disabilitare le funzionalità di RAID per consentire la visualizzazione dei dischi connessi.
- USB ma è preferibile utilizzare drive USB 3 per non degradare le performance. Un drive USB 2 infatti rischia di saturare la banda disponibile del canale USB, se si usano drive USB 2 connetterli a controller USB differenti. In ogni caso se si utilizzano drive USB è consigliabile fare pool contenenti solo questa tipologia di drive.
- VHD, VHDX e dischi pass-through in una virtual machine
Non sono invece supportati:
- I drive connessi tramite iSCSI
- I drive connessi tramite Fibre Channel
- Gli Storage layers che astraggono i dischi fisici (come ad esempio i dischi logici esposti da un RAID adapter)
- Gli storage che non sono compatibili con storport.sys
I criteri che un driver deve rispettare per l’appartenenza ad uno storage pool sono i seguenti:
- Minimum size 10 GB (in base a quanto indicato in Windows Server 2012 Storage Spaces: Is it for you? Could be…, in realtà accettati anche fino a 4 GB come ho potuto verificare e come viene anche riportato in How to Configure a Clustered Storage Space in Windows Server 2012)
- Drive non formattato e senza partizioni definite
- Tutti i drive appartenenti ad un pool devono avere lo stesso sector size
Per maggiori informazioni si vedano:
- Storage Spaces Overview
- Windows Server 2012 Storage Spaces: Is it for you? Could be…
- Storage Spaces Frequently Asked Questions (FAQ)
- Windows Server 2012 Storage Virtualization Explained
Layout di archiviazione
Durante la creazione di un Storage Space a partire da un Pool sono disponibili i seguenti layout di archiviazione detti anche resiliency types:
Resiliency types |
Note |
N° minimo dischi |
N° dischi in fail consentito |
Simple | I dati sono distribuiti su tutti i dischi per massimizzare la capacità e il throughput, ma prevede alcuna ridondanza di dati (simile al RAID 0). Indicato per file temporanei. |
1 |
Nessuno |
Mirror two-way | I dati e le informazioni di parità sono distribuiti su due per aumenta le performance e la ridondanza a discapito della capacità (simile al RAID 1). Indicato per file server e librerie di VHD. |
2 |
1 |
Mirror three-way | I dati e le informazioni di parità sono distribuiti su cinque dischi per aumenta le performance e la ridondanza a discapito della capacità (simile al RAID 1). Indicato per file server e librerie di VHD. |
5 |
2 |
Single Parity | I dati sono distribuiti su tre dischi per aumentare la ridondanza e ottimizzare la capacità (simile al RAID 5). Indicato per file dati e streaming (letti/scritti a blocchi grandi), non può essere usato in un Failover Cluster. |
3 |
1 |
Dual Parity | I dati sono distribuiti su cinque dischi per aumentare la ridondanza e ottimizzare la capacità (simile al RAID 6). Indicato per file dati e streaming (letti/scritti a blocchi grandi), non può essere usato in un Failover Cluster. Introdotto con WS2012 R2. |
5 |
2 |
Inoltre è possibile gestire tramite PowerShell altri parametri per la gestione delle ridondanza e delle performance:
- Number of Columns: il numero delle colonne contenute nel Virtual Disk (Stored Space)
- Number of Data Copies: il numero di copie dei dati che vengono mantenute
- Disk interleave: il numero di bytes che formano uno stripe (blocco di dati scritto su uno Virtual Disk)
- Physical disks to use: il nuomero di dischi utilizzati dal Virtual Disk
Per maggiori informazioni si vedano:
- Storage Spaces – Designing for Performance
- Storage Spaces Frequently Asked Questions (FAQ)
- Optimizing Windows Server 2012 storage management via PowerShell for both performance and resiliency
Novità in Windows Server 2012 R2
Oltre all’introduzione del resiliency type Dual Parity, in Windows Server 2012 R2 sono state introdotte le seguenti funzionalità:
- Storage tiers ovvero la capacità di di gestire la combinazione di dischi SSD e HDD. Il concetto è quello di avere un Virtual Disk con dischi SSD e HDD e di posizionare sui dischi SSD veloci ma meno economici e meno capienti i dati più frequentemente utilizzati, mentre i dati neno utilizzati vengono mantenuti sugli HDD che meno performanti, ma più capienti ed economici.
- Write-back cache che permette di utilizzare una piccola porzione di dischi SSD esistenti nel pool come buffer per le piccole operazioni di scrittura random per aumentare le performance, in seguito le operazioni di scrittura random verranno poi eseguite sugli HDD. Dal momento che i workloads aziendali sono spesso caratterizzati da questo tipo di operazioni questa funzionalità va ad aumentare le performance senza intaccare la sicurezza e l’integrità dei dati.
Per maggiori informazioni si vedano:
Disaster recovery
Le informazioni di configurazione dei Pools e degli Storage Spaces sono mantenute in metadati memorizzate sui dischi fisici che compongono il Pool. Questo significa che nel caso il server su cui è configurato il Pool presenta problemi hardware è possibile spostare il Pool e gli Storage Spaces in esso definiti semplicemente spostando i dischi fisici che compongono il Pool su un nuovo server.
Dopo lo spostamento dei dischi occorre impostare il pool come Read-Write quindi sarà possibile eseguire l’attach dei Virtual Disks (operazioni che possono essere eseguita tramite Server Manager o PowerShell).
Da alcune prove che ho eseguito i Virtual Disk vengano montati col flag ManualAttach a True, questo significa che riavviando il server non venga eseguito l’attach del Virtual Disk, per risolvere è possibile utilizzare il seguente comando PowerShell:
Set-VirtualDisk –FriendlyName DiskName -IsManualAttach $False
Per ulteriori informazioni si vedano:
- Storage Spaces Frequently Asked Questions (FAQ)
- Windows Server 2012: How to Import a Storage Pool on Another Server
- Modifying a Storage Pool that has a Read-Only Configuration
- Virtual Disks residing on a Storage Pool Storage Space do not stay attached
- Migrating a Storage Pool from Windows Server 8 Beta to Windows Server 2012 RTM
Best practices e Hotfixes
Come riportato nella KB 2765077: All Storage Spaces to be detached prior to reconfiguring Storage hardware se si intende modificare la configurazione di uno Storage Space senza eliminarlo occorre disconnetterlo per non incorrere in problemi di performance:
When you intend to reconfigure your storage hardware without first deleting your storage spaces, meaning you intend to use the same storage spaces after reconfiguring your storage hardware, you need to first detach your storage spaces. Examples of storage hardware reconfiguration include removing of drives from their arrays en masse, and, disconnecting internal array wiring, again, en masse.
If you do not detach your storage spaces prior to reconfiguring your storage hardware, you may experience periods of slow IO responsiveness and you might not be able to move clustered spaces to different cluster nodes. If you have inadvertently left your storage spaces attached while reconfiguring storage hardware and have not yet completed the reconfiguration, you should detach your storage spaces prior to continuing to reconfigure the hardware.
Inoltre sono state rilasciate delle KB per la correzione di specifici problemi relativi agli Stored Spaces:
- KB2836121: An update for Storage Spaces in Windows 8 and Windows Server 2012 is available, questa hotfix è contenuta nel Windows 8 and Windows Server 2012 update rollup May 2013 (KB2836988) e risolve un problema legato alla performance durante la rigenerazione.
- KB2842575: Storage space cannot be repaired or disks are marked as retired incorrectly when you use Storage Spaces in Windows 8 or in Windows Server 2012, questa hotfix è contenuta nel Windows RT, Windows 8, and Windows Server 2012 update rollup June 2013 (KB2845533) e risolve issues legati alla mancata riparazione e all’errata marcatura dei dischi come retired.
[…] Inoltre WS 2012 offre poi la possibilità di gestire lo spazio di archivazione tramite gli Storage Space di cui parlato nei post Windows Server 2012: virtualizzazione dello storage tramite Storage Spaces e Storage Spaces deep dive. […]