
Storage Spaces with tiered storage Storage Tiers has become one of the most powerful tools in Windows Server for maximizing SSD performance without sacrificing the large capacity and low cost of traditional HDDs. By combining both technologies effectively and properly configuring storage pools, virtual disks, and tiers, you can achieve a system that performs exceptionally well for critical workloads while remaining affordable for all other data.
In the following lines we explain what Storage Spaces are, how layered storage works, what requirements you must meet and how to set up the entire environment both on a standalone server and in scenarios with Storage Spaces Direct.
What is Storage Spaces and how does tiered storage fit in?
Storage Spaces is the software-defined storage layer Windows Server allows you to group multiple physical disks into one or more storage pools, from which you create virtual disks with different levels of resilience and provisioning. NTFS or ReFS volumes are then created on these virtual disks as if they were traditional physical disks.
But What is a storage group? It's simply a logical container for physical disks where Windows stops seeing the disks separately and treats them as a single unit. From this pool, you can add more disks in the future, expand capacity, and delegate management with considerable flexibility. This is very useful in environments with continuous growth.
From each pool you can create one or more virtual disks (storage spaces)Once the virtual disk has been created, the next step is to define one or more formatted volumesHere you choose the size, drive letter or mount folder, file system (NTFS or ReFS), allocation unit size, and a descriptive label. For day-to-day administration, you'll work with these volumes just like any other Windows drive.
Tiered storage This comes into play when SSDs and HDDs are combined in the same data pool. Windows analyzes which data blocks are accessed most frequently and places them in the fast layer (SSD), while cold or infrequently used blocks are relocated to the capacity layer (HDD). This entire process is automatic and transparent to applications.
The result is that you get the SSD speed for hot data And the inexpensive capacity of HDDs for less critical data. And without having to manually decide what goes on each drive. For a system administrator, it's a very efficient way to balance budget, IOPS, and capacity without excessive complications.

Prerequisites and hardware considerations
Before you start creating pools and virtual disks, there are a number of things to consider. hardware requirements that Windows Server imposes for Storage Spaces and Storage Tiers to function correctly. Especially on physical servers.
As for the disk bus typesStorage Spaces supports SAS (Serial Attached SCSI), SATA, iSCSI, and Fibre Channel. You can also use USB drives, although this is not recommended on a server due to performance and reliability issues. If you are deploying Storage Spaces on iSCSI or Fibre Channel LUNs, the virtual disks must be non-resilient (Simple design) to prevent the RAID layer from overlapping with the storage array itself.
The Physical disks must be at least 4 GB in sizeIt's crucial that they arrive clean: without partitions, volumes, or previous formatting. Ideally, all disks participating in a pool should be homogeneous in capacity and media type, especially when applying resilience through mirroring or parity.
Regarding the HBA (Host Bus Adapter)Microsoft recommends using "simple" adapters without active RAID functionality. If your HBA supports RAID, it must be configurable in non-RAID mode, completely disabling any controller-level caching or pooling. Storage Spaces needs to see each disk as an independent device, without the HBA abstracting anything or providing closed JBOD-type services that hide the visibility of the slots.
In scenarios with external JBOD boothsIt is highly recommended that they be certified for Storage Spaces and listed in the Windows Server Catalog. To verify that the storage array correctly exposes the chassis number and slot for each disk (EnclosureNumber and SlotNumber), you can use a PowerShell cmdlet, filtering by SAS bus and checking that these fields have valid values.
Types of resilience: Simple, Mirror, and Parity
When you create a virtual disk, one of the key decisions is the type of resiliencesince it affects both performance and fault tolerance, as well as the consumption of useful capacity.
Simple Design
It distributes data in stripes across all participating physical disks, maximizing performance and effective capacity, but without any protection. If one disk fails, the entire array becomes unrecoverable. It is suitable for temporary data, testing, laboratories, or information that can be easily regenerated at low cost.
The Mirror design
It stores two or three copies of the data on separate physical disks, greatly increasing reliability at the cost of reduced capacity. Similar to RAID 1/10, each write operation is duplicated (or tripled), and the data is distributed across multiple drives, improving performance and reducing latency compared to parity. Windows also uses a mechanism of DRT (Dirty Region Tracking) to maintain consistency between copies after sudden restarts or unexpected crashes.
Parity design (similar to RAID 5/6)
It combines data and parity information distributed across all disks. It offers better capacity utilization than Mirror, with disk failure protection, but at the cost of higher latency, especially for random writes. It works very well for sequentially accessed data, such as backup repositories, archive files, historical logs, or cold storage data.
To use Parity with disk failover protection, you need at least 3 physical discsIt is advisable to avoid this for workloads with intensive random writes (OLTP databases, VMs with high churn), where Mirror usually offers a much smoother experience.
Step-by-step creation of storage groups
The first operational step to working with Storage Spaces is group the available physical discs in one or more storage groups. Either from Server Manager or via PowerShell.
In the Server Manager console, access “File and storage services” Then, within "Volumes," go to "Storage Pools." By default, free disks will appear in a pool called "primary pool." If you don't see it, it usually means that the storage doesn't meet the Storage Spaces requirements or that the disks aren't in a pool-ready state.
From the section of “STORAGE GROUPS”Open the "TASKS" menu and launch the "New Storage Pool" wizard. There you can assign a friendly name to the pool, a description, and select the corresponding storage subsystem.
On the physical disc selection page, mark the discs that will be part of the pool. If you want, you can set some as... active spare parts (Hot Spare) by changing the allocation type. These disks will be kept in reserve and will be automatically used for rebuilds in case of failure of an active drive.
After confirming your selections and creating the pool, you'll see the new storage pool listed in the console, ready for you to create the virtual disks you need on it. This entire operation can be replicated using PowerShell with cmdlets such as Get-StoragePool, Get-PhysicalDisk -CanPool $true y New-StoragePoolclearly specifying the name of the subsystem and the list of disks to be included.
Creating virtual disks and activating Storage Tiers
Once you have the pool ready, the next step is create one or more virtual disks From that group, defining resilience design, provisioning and, if appropriate, enabling tiered storage.
In the section of “VIRTUAL DISCS” From the Server Manager, select the corresponding pool and choose “New Virtual Disk” from “TASKS”. The wizard will ask you to name the virtual disk, select the storage design (Simple, Mirror, or Parity), and, if there are disks of different media types, you can select the option to “Create storage layers on this virtual disk” to activate Storage Tiers.
When you activate Storage Tiers, there are some important limitations. You can only use Simple or Mirror designs. (Parity is not available with layers) and the provisioning type must be Fixed. Thin is not allowed for tiered disks. This is crucial if you're planning a parity design. You'll need to use a separate, non-tiered virtual disk or a separate pool.
In lab or virtualized environments, you can even "trick" the system by creating multiple virtual SAS disks in a hypervisor like VMware Workstation and then manually marking which disks are SSDs and which are HDDs using PowerShell. Set-PhysicalDisk -MediaTypeThis way Windows will correctly detect both media types and allow you to define the layers.
During the wizard, you can choose the size to allocate to each layer. That is, how much SSD space will be reserved for the fast layer and how much HDD capacity will be dedicated to the massive layer. This ratio is key: tier SSD too small It can become saturated quickly and lose some of its benefit under very active loads.

Thin vs. fixed provisioning and virtual disk size
Creating a virtual disk also involves choosing the type of provisioning and the logical size that the operating system will see. Decisions that affect capacity management.
- With thin provisioning. Space is dynamically allocated as actual data is written. This allows for over-provisioning, creating virtual disks larger than the available physical capacity in the short term. The risk is clear: if you don't properly monitor pool usage, you can run out of physical space and compromise data integrity.
- With fixed provisioning. The entire capacity declared for the virtual disk is immediately reserved in the pool. You cannot over-allocate, but you gain predictability and stable performance, as there is no overhead associated with hot space extensions. For disks with Storage Tiers, provisioning must be fixed.
In the wizard you can specify a specific size (in MB, GB or TB) or, in the case of fixed designs, use the maximum available pool capacity.
This entire process can be automated using PowerShell New-VirtualDiskwhere you define the friendly name, the resilience design (ResiliencySettingName), the number of data copies, the size, the provisioning type, and, if necessary, advanced parameters such as columns or collation to fine-tune performance according to the workload.
Volume creation, formatting, and basic administration
With the virtual disk created and online, the final step in the classic workflow is to create a volumeassign it a drive letter or mount folder and format it with the appropriate file system.
From Server Manager, you can launch the "New Volume" wizard by right-clicking on the virtual disk. First, you choose the server and the disk, then you define the volume size and decide whether to assign a drive letter or mount it to an empty folder on another volume. Finally, you select from NTFS or ReFS as file system.
In that same step you can choose the allocation unit size (It's usually left on default unless there are specific requirements) and you can set a descriptive label. If the server has the deduplication role installed, you can also choose whether or not to enable it on that volume. This is useful for backup repositories or VHD libraries.
When the wizard finishes, the volume will appear in the Volumes section of Server Manager and also in File Explorer, ready to use. If you prefer to do all this with a single command, you can chain cmdlets like Get-VirtualDisk | Get-Disk | Initialize-Disk | New-Partition | Format-Volumewhich is very convenient for mass deployment scripts.
Extend a existing virtual disk It's also possible from the console (using the "Extend Virtual Disk" option) or via PowerShell, and then you'll need to extend the corresponding volume using the classic Disk Management tool or Resize-Partition. This operation is especially useful when you've added new disks to the pool and want a specific workload to grow without interruption or data loss.
Storage Spaces Direct and the role of clustered layers
When you make the leap to Storage Spaces Direct (S2D)All of the above translates to a cluster environment where multiple servers contribute their local disks to a distributed pool with high availability. Here, tiered performance and capacity capabilities become even more critical, especially in hyperconverged designs using Hyper-V.
The deployment of S2D begins with the installation of Windows Server Datacenter at each node, Network Configuration with 10 GbE NICs (or higher) and, preferably, RDMA (iWARP or RoCE) for minimal latency between nodes. You will also need to join the servers to a domain, install roles such as Failover Clustering, Hyper-V, File Server, and the necessary RSAT modules to manage everything remotely.
Before enabling S2D, you must thoroughly clean the units For each host (without partitions or previous data), run a cluster validation with Test-Cluster, specifically including the "Storage Spaces Direct" tests. Then, create the cluster and its witness.
The key cmdlet is Enable-ClusterStorageSpacesDirectThis puts the system into S2D mode, automatically creates a large shared pool, configures the cache (for example, using SSDs as write-back for slower HDDs), and generates two default tiers: a "Performance" tier and a "Capacity" tier. Both are ready for you to create tiered volumes.
From there, the cmdlet New-Volume It simplifies the process because it creates the virtual disk, partitions it, formats it, and adds it to CSV (Cluster Shared Volumes) in a single step. You can specify in the command itself which resilience to use, the size of each tier you want, and how many data copies you want, adapting the design to the type of workload (Hyper-V, SQL Server, user files, etc.).
Data classes, levels, and where to use each one
Beyond the technology itself, to get the most out of Storage Tiers, it is essential to... classify your data correctlyUltimately, tiered storage is simply about deciding which data deserves an SSD and which can live on cheap HDDs, tape, or even cold cloud storage.
A typical classification distinguishes between:
- Mission-critical data (business databases, billing systems, key VMs).
- Hot data (very active but not vital).
- temperate data (occasional access).
- Cold, hard facts (historical logs, old backups, archive files).
Each category naturally fits into a different storage level, both within and outside of Storage Spaces.
In practice, hot and critical data They benefit from being in the SSD tier within the pool, with mirror resilience and minimal latency. Warm data can reside on hybrid drives or in the HDD portion of a tiered pool, while cold data can be migrated to nearline storage, tapes, or cloud storage services at very low costs per GB.
Tiered storage architectures typically refer to tiers 0, 1, 2, and 3:
- Tier 0: Ultra-fast SSD.
- Tier 1: more conventional high-performance SSD.
- Tier 2: hybrid storage or fast HDDs.
- Tier 3: low-cost mass nearline devices.
In hybrid environments, many designs also add a specific “Cloud Tier” for cloud storage.
Within Windows, Storage Spaces and Storage Spaces Direct allow you to implement this tiered logic locally, while external backup or data management solutions can extend the concept to the cloud or deep file systems. The key is to always keep things aligned. data value, access frequency, and cost.
Tiered storage vs. caching: two complementary pieces
One point that often causes confusion is the difference between tiered storage and cachingAlthough both use fast means to accelerate access, they work in quite different ways and have complementary objectives.
La Cache It copies hot data to a very high-speed medium (DRAM, SSD, NVRAM) located between the application and the main storage. The original data remains in the slower tier, and the cache stores temporary copies that can be discarded when they are considered "old" or when space is needed for new blocks.
El tiered storage It physically moves data between tiers: when a block is detected as hot, it is moved to the fast tier and disappears from the slow tier; when it cools down, it is eventually relocated to the capacity tier. There is no permanent duplication, but rather relocation according to policies and access patterns.
In Storage Spaces Direct, for example, the in-memory CSV cache and the S2D cache itself can be combined with SSD/HDD tiers to achieve a very powerful mixed schemeThe cache absorbs I/O spikes at very low latency, while tiering optimizes where data persistently resides as its access pattern changes.
Understanding this difference will help you decide when it suits you. invest in more RAM, Persistent memory (PMEM) or on better cache SSDsand when is it best to expand the fast tier of the pool to host more active data without penalizing the budget.
By combining Storage Spaces, Storage Spaces Direct, well-sized caches, and intelligent tiered storage design, you can build a storage platform on Windows Server that delivers extremely high performance where it's needed, great capacity for mass archiving and reasonably simple administration, provided that the hardware requirements are respected, best practices are followed and everything is supported by careful monitoring and automation.

