Product : Microsoft, HyperV/2019, DataCenter
Feature : Virtual SAN, Storage, Network and Storage
Content Owner:  Roman Macek
Summary
(no major updates with WS2019)Improved (Storage Spaces); Tiered Storage, Write-Back Cache - Storage Spaces Direct
Details
Windows Server 2012 introduced the concept of Storage Spaces (supported for Hyper-V and free Hyper-V Server environments). In simplified terms Storage Spaces allows you to use inexpensive SAS/SATA drives (JBODS) to provide more advanced pooled and redundant storage through a Storage Virtualization layer. First you create a storage pool specifying the physical disk drives to be used and subsequently you create virtual disks (not to be confused with vhd for virtual machines) within the pool. These disks are appearing then to the host like new physical disks with changed attributes (resilience, capacity etc.) by adding mirroring or parity to the disk and pools can be dynamically expanded. These can now be used for local storage, failover clustering and SMB Direct (RDMA).

WS 2012 R2 introduced significant enhancements to Storage Spaces:
1. Tiered Storage
Ability to to provide tiered storage (that automatically moves frequently accessed data to faster (SSD) storage and infrequently accessed data to slower (HDD) storage).
- To create a storage space with storage tiers, the storage pool must have a sufficient number of hard disks and SSDs to support the selected storage layout, and the disks must contain enough free space.
- When creating a storage space using the New Virtual Disk Wizard or the New-VirtualDisk cmdlet you can now specify to create the virtual disk with storage tiers.
- The virtual disk must use fixed provisioning, and the number of columns will be identical on both tiers (a four-column, two-way mirror with storage tiers would require eight SSDs and eight HDDs).
- Volumes created on virtual disks that use storage tiers should be the same size as the virtual disk.
- Administrators can pin (assign) files to the standard (HDD) or faster (SSD) tier by using the Set-FileStorageTier cmdlet, ensuring that the files are always accessed from the appropriate tier.

2. Storage Spaces Write- Back Caching:
Storage Spaces can use existing SSDs in the storage pool to create a write-back cache that buffers small random writes to SSDs before later writing them to HDDs.
- write-back cache is transparent to administrators and users and is created on all new virtual disks as long as there is a sufficient number of SSDs in the storage pool (Simple spaces: one SSD, Two-way mirror spaces and single-parity spaces: two SSDs, three-way mirror spaces and dual parity spaces: three SSDs)
- write-back cache works with all types of storage spaces, including storage spaces with storage tiers
- newly created storage spaces automatically use a 1 GB write-back cache (as long as the storage pool contains enough disks with MediaType set to SSD or Usage set to Journal)

3. Parity space support for failover clusters, dual parity and automatic rebuild from storage pool free space (rather than hot spares)
- You can now use parity spaces to maximize capacity and resiliency while still offering the ability to fail over to another cluster node
- Dual parity enables you to keep a high level of resiliency when using a parity space with a large number of disks or any time when you need to help protect against two simultaneous disk failures
- When a disk fails, instead of writing a copy of the data that was on the failed disk to a single hot spare, the data is copied to multiple drives in the pool such that the previous level of resiliency is achieved

Please note: Storage spaces can be provided from a single file server node using (non-raided!) SAS or SATA JBODs. For clustered nodes you will need SAS JBODs (not SATA) in a SHARED JBOD enclosure (Storage Spaces does NOT present virtualized local storage as shared storage like e.g. VMware VSA). MS will list certified JBOD enclosures.

Advantages:
- Provide reliable and scalable storage with reduced cost (cheap JBODs)
- Aggregate individual drives into storage pools
- Expand storage pools on demand
- Deploy specific drives as hot spares

Limitations:
- Fibre-channel and iSCSI are not supported
- SAS or SATA JBODs only, no HW Raid, for clustering SAS only and a shared SAS (no SATA) JBOD enclosure
- A mirrored pool must have at least 2 drives, three drive minimum required for using parity
- Virtual disks to be used with a failover cluster must use the NTFS file system not ReFS, cant use thin provisioning and must use the mirrored (not parity) option.
- Performance considerations (software RAID, JBODs of different types, multiple virtual disks per pool etc.)

Storage Spaces FAQ here: http://bit.ly/UxZ1FP

Windows Server 2016 brings Storage Spaces Direct which is a solution that enables to use direct attach storage devices in each node to create a highly available storage system. With this solution, you can deploy hyperconverged solution. The storage devices must be NVDIMM (SCM), NVMe, SATA or SAS. The disks can be SSD or HDD. You can mix the storage device type to create multi-resilient virtual disk to maximize the performance and the storage efficiency. For more information you can read this topic: https://technet.microsoft.com/en-us/windows-server-docs/storage/storage-spaces/storage-spaces-direct-overview
Storage Spaces Direct requires Windows Server 2016 Datacenter edition