Storage Spaces overview

Applies To: Windows 10, Windows 8.1, Windows Server 2016, 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.

For info about Storage Spaces Direct in Windows Server 2016, see - Storage Spaces Direct.

Did you know that Microsoft Azure provides similar functionality in the cloud? Learn more about Microsoft Azure storage solutions.

Create a hybrid storage solution in Microsoft Azure:
- Migrate to Azure Premium Storage
- Learn about StorSimple Hybrid Cloud Storage

Did you mean…

In this topic

Technology description

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

  • Server Manager

  • Windows PowerShell

  • Windows Management Instrumentation (WMI)

Important functionality

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.

New and changed functionality

The following table describes some of the major changes in Storage Spaces. For more detailed information, see What's New in Storage Spaces.

Feature/functionality New or updated? Description
Storage tiers New Automatically moves frequently accessed data to faster (SSD) storage and infrequently accessed data to slower (HDD) storage.
Write-back cache New Buffers small random writes to SSD storage, reducing the latency of writes.
Parity space support for failover clusters New Enables you to create parity spaces on failover clusters.
Dual parity New Stores two copies of the parity information on a parity space, helping protect you from two simultaneous disk failures while optimizing for storage efficiency.
Automatically rebuild storage spaces from storage pool free space New 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.

Requirements

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.

    Note

    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.

Interoperability with Azure virtual machines

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.

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.

See also

For additional related information, see the following resources.

Content type References
Evaluation - What's New in Storage Spaces
- Storage Spaces: What’s New in Windows Server 2012 R2 (TechEd 2013 Video)
- Storage and Availability Improvements in Windows Server 2012 R2 (TechEd 2013 Video)
- Case Studies on Storage Spaces, Scale-Out File Servers with SMB3 (blog)
- Achieving Over 1-Million IOPS from Hyper-V VMs in a Scale-Out File Server Cluster Using Windows Server 2012 R2
- Using Storage Spaces for Storage Subsystem Performance
- Virtualizing storage for scale, resiliency, and efficiency (Building Windows 8 Blog)
- Storage Spaces Overview (TechNet Wiki)
- High Performance Storage Solutions with Windows 8
- Microsoft Cloud Platform System Storage Performance
Design - Software-Defined Storage Design Considerations Guide
- Software-Defined Storage Design Calculator
Deployment - Deploy Storage Spaces on a Stand-Alone Server
- Deploy Clustered Storage Spaces
- Storage Spaces - Designing for Performance
- Provide cost-effective storage for Hyper-V workloads by using Windows Server
- Windows Server 2012 IaaS Build Tables: Step-by-Step with PowerShell Examples
Operations - Storage Cmdlets in Windows PowerShell
- Storage Spaces Cmdlets
- Test Storage Spaces Performance Using Synthetic Workloads
- How Storage Spaces Makes Use of Hot Spares
- How Storage Spaces responds to errors on physical disks
- Monitor Storage Tiers Performance
- Replace Failed Disks and Repair JBODs for Storage Spaces
Community resources - Storage Spaces Frequently Asked Questions (FAQ)
- Storage Spaces Survival Guide (blog)
- Windows Server Storage Spaces: What is it and why should I use it? (CuratedAnswers)
- DiskSpd, PowerShell and storage performance: measuring IOPs, throughput and latency for both local disks and SMB file shares (blog)
- Step-by-Step for Mirrored Storage Spaces Resiliency using PowerShell
- Managing Storage with Windows PowerShell on Windows Server 2012
- Deploy and Manage Storage Spaces with Windows PowerShell
- Step-by-step for Storage Spaces Tiering in Windows Server 2012 R2
- The File Services and Storage TechNet Forum
- Storage Team at Microsoft File Cabinet Blog
- Jose Barreto's Blog
- Windows Storage Team Blog
Related technologies - File and Storage Services
- Thin Provisioning and Trim Storage
- Data Deduplication
- iSCSI Target Server
- Resilient File System