Biz & IT —

Storage Spaces explained: a great feature, when it works

Windows 8's new storage features can be quite useful, but caveats abound.

Storage Spaces explained: a great feature, when it works

Windows Home Server was never a particularly popular product, but it did bring some interesting features to the table for the few who used it and became fans. One of these features was called Drive Extender. Its claim to fame was allowing users to pool their system's hard drives so they were seen by the operating system as one large hard drive. This obviated the need to keep track of free space across several disks, and it also allowed users to automatically mirror their data to multiple disks at once, keeping their files safe in the event of drive failure.

Microsoft killed Drive Extender not long before pulling the plug on the Windows Home Server entirely, but the intent behind it lives on in Windows 8's new Storage Spaces feature. "Storage Spaces is not intended to be a feature-by-feature replacement for that specialized solution," wrote Microsoft’s Rajeev Nagar in a blog post introducing the feature, "but it does deliver on many of its core requirements."

In essence, Storage Spaces takes most of Drive Extender’s underlying functionality and implements it in a way that is more technically sound. Early versions of Drive Extender sometimes corrupted data when copying files between drives and mangled file metadata, but the underlying filesystem improvements made to support Storage Spaces should make it much more robust, at least in theory.

Keeping your files safe

Storage Spaces allows you to take multiple disks of different sizes and interfaces—USB, SATA, SCSI, iSCSI, and SAS are among the supported interfaces—and group them together so the operating system sees them as one large disk. A group of physical disks is called a pool, and on top of that pool you can create one or more storage spaces. Each of these will show up to the operating system as a logical disk.

If all you want to do is combine two or more physical drives into one logical drive, you can do that by creating a "simple" storage space—however, if any one of your disks fails, you risk losing all of the data stored on that disk (and quite possibly data stored on the other disks as well). To prevent this, Storage Spaces offers several resiliency options to keep your files duplicated across all of the drives in the pool so disk failure won’t result in data loss. Allocating space to data duplication will reduce the amount of space available for data storage, but in almost all circumstances this is a sacrifice worth making.

There are three different data resiliency options available: two-way mirroring requires at least two physical disks, and will place a copy of each of your files on both drives; three-way mirroring requires at least five disks and will store a copy of each file on three of the five; and "parity" mode requires at least three disks and duplicates your data using less physical space on each disk, but has higher performance overhead—Microsoft recommends that it be used primarily for large files that are rarely changed.

All of these different resiliency types store data in 256MB "slabs" that are invisible to the user, with the goal of protecting data in case of disk failure. In a storage space with two-way mirroring enabled, a copy of every slab is kept on both disks so that if one goes down, no user data will be lost. The user should then be able to add new disks to the pool, at which point the rest of the disks in the pool will fill it up with the required slabs to restore data redundancy. Three-way mirroring gives you less usable space than two-way mirroring, but can tolerate the failure of up to two disks at once. Parity mirroring gives more usable space than either mirroring mode—a 20GB storage space configured with two-way mirroring will require about 40GB of physical disk space, but a 20GB parity storage space requires only about 30GB—but comes with the aforementioned performance hit.

In short, Storage Spaces offers the data protection provided by a RAID array without the rigid hardware requirements and planning required by RAID. Adding more space and swapping out bad disks can be done on-the-fly as needed, replicating the hassle-free storage experience espoused by home NAS providers like Drobo.

Thin Provisioning

Thin provisioning allows you to create logical drives that are totally independent of the underlying physical drives.
Thin provisioning allows you to create logical drives that are totally independent of the underlying physical drives.

When you create a new storage space, you might notice you’re capable of setting a maximum size that greatly exceeds the amount of actual physical storage in your pool. You can even create multiple storage spaces per pool, each with different resiliency types and sizes. Microsoft calls this "thin provisioning."

Thin provisioning does have some uses for home users—if, for example, you’d like more frequently changed files to use two-way or three-way mirroring, but you’d like to store seldom-used files in Parity mode to save space—but it should prove especially useful for business users.

As an example: say you’ve got ten users and want to provide each of them with 100GB of space on your file server. You know that your users aren’t all going to use all of their space at the same time, so rather than having to purchase and setup 1TB of space all at once, Storage Spaces will allow you to create ten 100GB spaces on, say, a 500GB storage pool (or even less). Actual space on the physical disks will be allocated to your users as they actually use it, and if you get to the point where your 500GB storage pool is getting full, you can add more disks later on to expand the pool.

Thin provisioning will also allow you to expand the size of storage spaces as you go. Continuing our example from above, if you’ve got one power user who actually needs 200GB of space but most of your users are hardly using their allocated space at all, you can expand your power user’s storage space size without affecting your other users or needing to add more physical disks to your storage pool.

You will want to be careful about using too little physical space for too many storage spaces, though. When a storage space runs out of physical disk space, it will immediately unmount itself, causing any connections to the drive or file copy operations to be cut off. Files can still be accessed if the space is manually brought back online from within the Storage Spaces control panel, but you won't be able to copy anything else to it until you add more disk space to your storage pool.

Running out of physical disk space will unmount storage spaces until they're re-mounted manually or until more space is added.
Running out of physical disk space will unmount storage spaces until they're re-mounted manually or until more space is added.

Channel Ars Technica