Storage Spaces Overview
Updated: April 14, 2016
Applies To: Windows 8.1, Windows Server 2012 R2, Windows Server 2012, Windows 8
This topic discusses Storage Spaces, a technology in Windows and Windows Server that enables you to virtualize storage by grouping industry-standard disks into storage pools, and then creating virtual disks called storage spaces from the available capacity in the storage pools. This topic provides an overview of the technology and new Storage Spaces functionality in Windows Server 2012 R2. The end of the topic also provides an up-to-date list of essential Storage Spaces topics.
Did you know that Microsoft Azure provides similar functionality in the cloud? Learn more about Microsoft Azure storage solutions.
Did you mean…
Storage Spaces: Frequently Asked Questions (Windows 8.1)
Software-Defined Storage Design Considerations Guide (Important design tips for Storage Spaces)
Provide cost-effective storage for Hyper-V workloads by using Windows Server (a large-scale Storage Spaces environment)
Storage Spaces Frequently Asked Questions (FAQ) (TechNet Wiki)
Storage Spaces enables cost-effective, highly available, scalable, and flexible storage solutions for business-critical (virtual or physical) deployments. Storage Spaces delivers sophisticated storage virtualization capabilities, which empower customers to use industry-standard storage for single computer and scalable multi-node deployments. It is appropriate for a wide range of customers, including enterprise and cloud hosting companies, which use Windows Server for highly available storage that can cost-effectively grow with demand.
With Storage Spaces the Windows storage stack has been fundamentally enhanced to incorporate two new abstractions:
Storage pools. A collection of physical disks that enable you to aggregate disks, expand capacity in a flexible manner, and delegate administration.
Storage spaces. Virtual disks created from free space in a storage pool. Storage spaces have such attributes as resiliency level, storage tiers, fixed provisioning, and precise administrative control.
Storage Spaces is integrated with failover clustering for high availability, and it’s integrated with cluster shared volumes (CSV) for scale-out file server deployments. You can manage Storage Spaces through:
System Center Virtual Machine Manager
Failover Cluster Manager
Windows Management Instrumentation (WMI)
Storage Spaces includes the following features:
Storage pools. Storage pools are the fundamental building blocks for Storage Spaces. Storage administrators are already familiar with this concept, obviating the need to learn a new model. They can flexibly create storage pools based on the needs of the deployment. For example, given a set of physical disks, an administrator can create one pool (by using all the available physical disks) or multiple pools (by dividing the physical disks as required). Furthermore, to maximize the value from storage hardware, the administrator can combine hard disks and solid-state drives (SSDs) in the same pool, using storage tiers to move frequently accessed portions of files to SSD storage, and using write-back caches to buffer small random writes to SSD storage. Pools can be expanded dynamically by simply adding additional disks, thereby seamlessly scaling to cope with data growth.
Resilient storage. Storage Spaces provides three storage layouts (also known as resiliency types):
Mirror. Writes data in a stripe across multiple disks while also writing one or two extra copies of the data. Use the mirror layout for most workloads – it helps protect your data from disk failures and provides great performance, especially when you add some SSDs to your storage pool and use storage tiers.
Parity. Writes data in a stripe across physical disks while also writing one or two copies of parity information. Use the parity layout for archival and streaming media workloads, or other workloads where you want to maximize capacity and you’re OK with lower write performance.
Simple (no resiliency). Writes data in a stripe across physical disks without any extra copies or parity information. Because the simple layout doesn’t provide any protection from disk failures, use it only when you require the highest performance and capacity and you’re OK with losing or recreating the data if a disk fails. You can also use the simple layout when your application provides its own data protection.
Additionally, Storage Spaces can automatically repair mirror and parity spaces in which a disk fails by using dedicated disks that are reserved for replacing failed disks (hot spares), or more rapidly by using spare capacity on other disks in the pool. Storage Spaces also includes background scrubbing and intelligent error correction to allow continuous service availability despite storage component failures. In the event of a power failure or cluster failover, the integrity of data is preserved so that recovery happens quickly without lost data.
Continuous availability. Storage Spaces is integrated with failover clustering, which allows it to deliver continuously available service deployments. One or more pools can be clustered across multiple nodes within a single cluster. Storage spaces are accessed by one node, and the storage will seamlessly fail over to a different node when necessary (in response to failure conditions or due to load balancing). Integration with CSVs permits scale-out access to data.
Storage tiers. Storage tiers combine the best attributes of SSDs and hard disk drives (HDDs) by letting you create virtual disks with two tiers of storage – an SSD tier for frequently accessed data, and a HDD tier for less-frequently accessed data. New data is generally written to the HDD tier and then Storage Spaces transparently moves data at a sub-file level between the two tiers based on how frequently data is accessed. As a result, storage tiers can dramatically increase performance for the most used (“hot”) data by moving it to SSD storage, without sacrificing the ability to store large quantities of data on inexpensive HDDs.
Write-back cache. Storage Spaces in Windows Server 2012 R2 supports creating a write-back cache that uses a small amount of space on existing SSDs in the pool to buffer small random writes. Random writes, which often dominate common enterprise workloads, are directed to SSDs and later are written to HDDs.
Operational simplicity. The Windows Storage Management API, WMI, and Windows PowerShell permit full scripting and remote management. Storage Spaces can also be easily managed through the File and Storage Services role in Server Manager and through System Center Virtual Machine Manager. Storage Spaces also provides notifications when the amount of available capacity in a storage pool hits a configurable threshold.
Multitenancy. Administration of storage pools can be controlled through access control lists (ACLs) and delegated on a per-pool basis, thereby supporting hosting scenarios that require tenant isolation. Storage Spaces follows the familiar Windows security model; therefore, it can be fully integrated with Active Directory Domain Services.
The following table describes some of the major changes in Storage Spaces. For more detailed information, see What's New in Storage Spaces in Windows Server.
New or updated?
Automatically moves frequently accessed data to faster (SSD) storage and infrequently accessed data to slower (HDD) storage.
Buffers small random writes to SSD storage, reducing the latency of writes.
Enables you to create parity spaces on failover clusters.
Stores two copies of the parity information on a parity space, helping protect you from two simultaneous disk failures while optimizing for storage efficiency.
Greatly decreases how long it takes to rebuild a storage space after a disk failure by using spare capacity in the pool instead of a single hot spare.
Storage Spaces has the following requirements:
Windows Server 2012 R2, Windows Server 2012, Windows 8.1, or Windows 8
Serial ATA (SATA) or Serial Attached SCSI (SAS) connected disks, optionally in a just-a-bunch-of-disks (JBOD) enclosure
RAID adapters, if used, must have all RAID functionality disabled and must not obscure any attached devices, including enclosure services provided by an attached JBOD.
Consumers can use USB drives with Storage Spaces, though USB 3 drives are recommended to ensure a high level of performance. USB 2 drives will decrease performance – a single USB 2 hard drive can saturate the bandwidth available on the shared USB bus, limiting performance when multiple drives are attached to the same USB 2 controller. When using USB 2 drives, plug them directly into different USB controllers on your computer, do not use USB hubs, and add USB 2 drives to a separate storage pool used only for storage spaces that do not require a high level of performance.
For shared-storage deployments on failover clusters:
Two or more servers running Windows Server 2012 R2 or Windows Server 2012
Requirements as specified for failover clustering and Cluster Shared Volumes (CSV)
SAS connected JBODs that comply with Windows Certification requirements
For a list of certified JBODs, see the Windows Server Catalog.
Identical SAS HBAs that are certified for use with Storage Spaces
These HBAs are connected to all JBOD enclosures in the file server cluster, and can’t have built-in RAID functionality.
For information about using Storage Spaces to host virtual machines for large scale Hyper-V workloads, see Provide cost-effective storage for Hyper-V workloads by using Windows Server.
You can use Storage Spaces inside an Azure virtual machine to combine multiple virtual hard drives, creating more storage capacity or performance than is available from a single Azure virtual hard drive.
There are three supported scenarios for using Storage Spaces in Azure virtual machines, but there are some limitations and best practices that you should follow, as described below.
As high performance and/or capacity storage for a virtual machine
As backup targets for System Center Data Protection Manager
As storage for Azure Site Recovery (see Can't recover VMs in Azure with volumes greater than 1TB? Use Storage Spaces!)
When using Storage Spaces to pool multiple Azure virtual hard drive (VHD) files for use with an Azure virtual machine, follow these guidelines:
Create a single virtual disk per pool with the Simple resiliency type. Azure already provides resiliency for its .vhd files, so we don't support adding another layer on top of this.
When creating virtual disks from more than eight pooled .vhd files (which appear as physical disks to Storage Spaces), use the New-Volume or New-VirtualDisk cmdlet to create the virtual disk with the same number of columns as physical disks (in this case, .vhd files) in the pool - the New Virtual Disk Wizard in Server Manager won't create virtual disks with more than eight columns.
After creating the virtual disk, use the Format-Volume cmdlet with the -AllocationUnitSize 64KB –UseLargeFRS parameters to format the volume with a 64 KB NTFS allocation unit size and enable large FRS support. Doing so reduces the likelihood of file system fragmentation causing issues.
Install the hotfix described in Microsoft Knowledge Base article 3063075.
We don't support Storage Spaces with shared storage and Failover Clustering in Azure at this time.
When using Microsoft SQL Server AlwaysOn in Azure virtual machines with Storage Spaces, refer to the best practices described in Extending SQL Server 2014 AlwaysOn Resource Groups with Storage Spaces on Microsoft Azure and Using Storage Spaces on an Azure VM cluster for SQL Server storage.
For additional related information, see the following resources.