Storage Spaces Direct is the software-defined storage feature used in Azure Stack HCI and Windows Server that enables administrators to transform internal storage drives on a cluster of physical servers (2 to 16 nodes) into a software-defined storage pool. The resulting storage pool supports caching, tiering, and erasure coding across columns. Storage Spaces Direct leverages features available in Windows Server, including Failover Clustering, Cluster Shared Volumes (CSV), the Server Message Block (SMB) 3 protocol, and Storage Spaces. It also introduces a new storage technology called Software Storage Bus. Software Storage Bus establishes a software-defined storage fabric across the cluster so all servers can connect to each other's local drives, replacing costly and restrictive Fibre Channel or Shared SAS cabling.
When configuring Storage Spaces, Direct is required during the cluster creation process when using Windows Admin Center. Creating the cluster using PowerShell, the Enable-ClusterStorageSpacesDirect cmdlet is run after the cluster is created and host networking is defined. In either case, setup only requires the specification of a FriendlyName for the storage pool. All other settings will happen automatically, including creating a Cluster Performance History disk, configuring Storage Spaces Direct caches, and tiering if using a mix of drive types in the cluster.
The following PowerShell command highlights how Storage Spaces Direct isolates the administrator from the details of how a storage pool is implemented:
Enable-ClusterStorageSpacesDirect -PoolFriendlyName
"Cluster Storage Pool" -CimSession ClusterName
As noted above, the five Dell Azure Stack HCI nodes were configured with 24 x 1.6TB SSDs. After we created the cluster and the storage pool was built, we used the following command to get the details of our storage pool:
Get-StoragePool
-FriendlyName "YourPoolName" | Format-List
For our test cluster, the output from the above command shows a total size of 174.88 TB. This is close to the 190 TB of raw storage of our 5 nodes before subtracting overhead for management.
Storage Spaces Direct provides software-based fault tolerance for data distributed across servers to provide resiliency similar to hardware-based RAID. As with RAID, Storage Spaces provides options associated with the techniques used to provide data protection that involve tradeoffs between fault tolerance, storage efficiency, and computing complexity. The options can be grouped into "mirroring" and "parity/erasure coding."
Once the pool is available, administrators can create volumes from that pool of storage for use by virtual machines to store data. The volumes are built with the CSV file system. Servers consume these CSV volumes as if they are mounted locally. Volumes use one of the integrated fault tolerance features of Storage Spaces Direct to ensure that data stays online and accessible even if a drive fails or the entire node goes offline.