Windows Server 2012: virtualizzazione dello storage tramite Storage Spaces

Windows Server 2012 porta con sé svariate novità a tutti tra cui anche la gestione dello storage. Una delle nuove funzionalità in ambito storage è l’introduzione degli Storage Spaces che permette la virtualizzazione dello storage disponibile in Windows Server 2012 e Windows 8.

Questa nuova funzionalità si basa sull’utilizzo degli Storage Pools ovvero collection di dischi fisici che viene vista come un’unica entità logica di storage. Per la creazione di uno Storage Pool tramite la GUI del Server Manager o tramite PowerShell si veda How to Create a Storage Pool on Windows Server 2012.

E’ possibile utilizzare dischi anche di tipologia differente quali:

  • Serial-Attached SCSI (SAS).
  • Serial ATA (SATA).
  • USB (si tenga conto che i drive USB 2 non offrono un alto livello di performance. Infatti un singolo disco USB 2 potrebbe saturare la banda disponibile sul bus USB condiviso limitando quindi le performance quando vi siano più dischi connessi allo stesso controller USB 2. Per questo motivo quando di utilizzano drive USB 2 evitare di utilizzare hub USB e connettere i drive su controller USB differenti. In ogni caso usare i drive USB 2 su Storage Pool separati che non necessitano di performance elevate.
  • Just-a-bunch-of-disks (JBOD) enclosure, affinché gli Storage Spaces possano identificare i dischi nell’array questo deve supportare SCSI Enclosure Services (SES) versione 3.
  • VHD e/o VHDX montati.

Viceversa gli storage layers diversi da dischi fisici non sono compatibili con gli Storage Spaces, quindi non possono essere utilizzati:

  • VHD in una VM
  • Pass-through disks in una VM
  • Storage subsystems che implementano un layer RAID al di sopra dei dischi fisici
  • I controller RAID se utilizzati devono essere configurati in modalità non-RAID mode con tutte le funzionalità RAID disabilitate, questo vale anche per i JBOD

Per allocare lo spazio di uno Storage Pool occorre creare un Virtual Disk su cui è possibile definire uno Storage Layout Simple, Mirror o Parity che in sostanza rappresentano un RAID software rispettivamente di tipo 0, 1 o 5. Inoltre sempre sul Virtual Disk è possibile definire un Provisioning scheme di tipo Thin (che consentono di definire un size del Virtual Disk superiore allo spazio realmente disponibile) o Fixed e specificare il Size.

Lo Storage Layout Simple è indicato per incrementare le performance senza fornire per alcuna ridondanza ed è quindi indicato per file temporanei.

Lo Storage Layout Mirror richiede almeno 2 dischi per proteggere i dati da un singolo disk failure e almeno 5 per proteggere i dischi da 2 disk failure simultanei. Questo Storage Layout è indicato per contenere una svariata gamma di dati come ad esempio una condivisione di file o una VHD Library.

Lo Storage Layout Parity richiede almeno 3 dischi per proteggere i dati da un singolo disk failure e non può essere usato in un failover cluster. Questo Storage layout è indicato per archivi di dati e streaming media (ovvero file su cui nella maggioranza dei casi vengono eseguite operazioni di lettura)

Una volta creato il Virtual Disk sarà possibile definire su questo un Volume e renderlo disponibile mappandolo come cartella o assegnandogli una lettera di volume.

In ogni caso va precisato che l’utilizzo degli Storage Spaces ha le seguenti limitazioni:

  • Non possono essere utilizzati per ospitare il sistema operativo
  • Non rappresentano una soluzione alternativa di disaster recovery o di data replication
  • Non rappresentano una soluzione alternativa ai backups

E’ possibile testare questa funzionalità mediante i Virtual Labs di Windows Server 2012, per ulteriori informazioni si vedano anche:

[Update 01] Limiti degli Storage Spaces

Dalla White Paper Deploy and Manage Storage Spaces with PowerShell è possibile ricavare alcune informazioni in merito.

Per quanto riguarda i limiti minimi affinché un drive possa essere utilizzato in uno Storage Pool possiamo dire che il drive deve avere almeno 10 GB di spazio libero:

“If a windows disk meets the following criteria it is listed as a Physical Disk by Storage Spaces:

  • The Disk must be connected to a SAS, SATA, or USB bus.
  • The Disk must meet the following criteria:
    • At least 10GB in size with no partitions on the disk.
      • Or
    • An existing partition, with at least 10GB of available non-partitioned space.”

Per quanto riguarda i limiti massimi in termini di numero di dischi utilizzabili in uno Storage Pool al momento non ho trovato documentazione che riporti tali indicazioni.

Per quanto riguarda i limiti di archiviazione invece possiamo riferirci a quanto indicato indicato nel seguente Building the next generation file system for Windows: ReFS tenedo conto che gli Storage Space possono essere utilizzati in combinazione col nuovo file system ReFS:

“We designed ReFS and Storage Spaces to complement each other, as two components of a complete storage system.”

Ciò significa che gli Storage Space devono essere in grado di supportare i limiti di capacità del ReFS:image