Configure Windows Storage Spaces to serve up hot data fast

To avoid the high cost of a software-defined SAN, IT shops can turn on the tiered storage virtualization feature in newer versions of Windows Server.

Many companies have a mix of storage media and also a combination of hot data and cold data. How do you ensure...

the data users want faster gets on that flash storage?

One way is through Windows Storage Spaces, the storage virtualization feature available in Windows Server 2012 and onward. Storage Spaces pools available storage resources and shifts more frequently used data onto flash media through its tiered storage functionality.

Files that are often accessed, changed, read and written to could be stored on solid-state media, while old data and archives in less demand are fine on slower, less expensive hard disk media. This arrangement significantly expands the capacity of a storage pool at a more manageable cost without sacrificing performance. Administrators have the option to set up simple spaces with no resiliency or mirrored spaces -- two or more copies of data that are stored separately -- for fault tolerance in the pool, similar to RAID, to avoid data loss. Technically, Windows Storage Spaces works with as little as one solid-state drive (SSD) and one hard disk drive (HDD), but shops typically need more storage than that.

With Windows Storage Spaces and a full disk enclosure, it just takes a few PowerShell commands to set up the hot fast drives and cold slow drives, then make the pool available to the network.

How to set up Windows Storage Spaces

First, create the storage pool with this PowerShell script:

$s = Get-StorageSubSystem

New-StoragePool -StorageSubSystemId $s.UniqueId -FriendlyName StorageSpacesPool -PhysicalDisks (Get-PhysicalDisk -CanPool $true)

Change the assigned media type -- SSD or HDD -- to the disks that make up the pool in the following PowerShell commands.

Get-StoragePool StorageSpacesPool | Get-PhysicalDisk | {some criteria, maybe size, to identify your SSDs} | Set-PhysicalDisk –MediaType SSD

Get-StoragePool StorageSpacesPool | Get-PhysicalDisk | {criteria to pick out your HDDs} | Set-PhysicalDisk –MediaType HDD

After the assignments, double-check the disk configuration:

Get-StoragePool StorageSpacesPool | Get-PhysicalDisk | Sort MediaType | Format-Table FriendlyName, Size, MediaType, HealthStatus, OperationalStatus -AutoSize

Next, set up the tiers:

Get-StoragePool StorageSpacesPool | New-StorageTier –FriendlyName HotHot –MediaType SSD

Get-StoragePool StorageSpacesPool | New-StorageTier –FriendlyName ColdCold –MediaType HDD

Finally, set up the resiliency, simple spaces and mirrored spaces features:

Get-StoragePool StorageSpacesPool | Set-ResiliencySetting -Name Simple -NumberOfColumnsDefault 4

Get-StoragePool StorageSpacesPool | Set-ResiliencySetting -Name Mirror -NumberOfColumnsDefault 2

$SSD = Get-StorageTier -FriendlyName HotHot

$HDD = Get-StorageTier -FriendlyName ColdCold

Get-StoragePool StorageSpacesPool | New-VirtualDisk -FriendlyName SimpleSpace -ResiliencySettingName Simple –StorageTiers $SSD, $HDD -StorageTierSizes 32GB, 128GB -WriteCacheSize 1GB

Get-StoragePool StorageSpacesPool | New-VirtualDisk -FriendlyName MirroredSpace -ResiliencySettingName Mirror -StorageTiers $SSD, $HDD -StorageTierSizes 32GB, 128GB –WriteCacheSize 1GB

There are some caveats. The host OS must run Windows Storage Spaces on a physical machine. Also, Microsoft will not support a just a bunch of disks (JBOD) enclosure that is not listed as compatible with Storage Spaces on the Windows Server Catalog site. A storage pool on an unsupported JBOD enclosure will probably work, but if problems occur, Microsoft won't work to resolve them.

Windows Storage Spaces vs. Storage Spaces Direct

While the names are similar, the two Storage Spaces features in Windows Server differ. Some in IT believe Storage Spaces Direct in Windows Server 2016 supersedes Storage Spaces. But that is not the case, and both features still exist.

Storage Spaces -- and Clustered Storage Spaces -- is available in Windows Server 2012 and onward. Windows Storage Spaces is essentially software RAID with logical volume pooling and built-in software fault tolerance.

Storage Spaces Direct is only available in the Datacenter edition of Windows Server 2016 and executes its functionality quite differently. It creates pools of different types of media logically addressed together and then deconstructed and reassigned on the fly -- the epitome of software-defined storage.

Which should you use?

If you're not on the Windows Server 2016 Datacenter edition, the choice is clear: Use Windows Storage Spaces.

For medium-sized shops, the price tag of Storage Spaces Direct -- still substantially below the cost of a software-defined storage area network product -- might still be too high.

Windows Storage Spaces offers the advantage of connecting standard commodity hardware, such as spinning disk drives and solid-state drives, with regular servers, which operate on less expensive Windows Server 2012 editions. Most shops either already use or are planning a migration to this server OS or later versions.

Next Steps

Microsoft tweaks storage capabilities in Windows Server 2016

Update to Storage Quality of Service smooths out Hyper-V performance

Is Storage Spaces Direct a suitable HCI substitute?

Dig Deeper on Windows Server deployment