I am extremely excited that Windows Server 2012 and Windows 8 have launched because I can talk about and tinker with my absolute favorite feature of both operating systems, Storage Spaces. Some people I know in the storage community have said that the storage spaces feature is interesting but in an early stage. I am not in that camp. I will admit that the feature should be tested for a given situation before diving in, but that is true of any new technology.
What Is Spaces?
Storage Spaces allows a collection of disks to be consolidated into a Disk Pool. When the Disk Pool is created, logical storage volumes can be created on top of the disk pool. The volumes are formatted and assigned drive letters for presentation to Windows. The disks in a pool can be USB attached external disks or large JBODs containing many different disks.
Why Is This good?
The ability to attach external disks to Windows has been available for a long time. The ability for Windows to natively treat this collection of disks as a single contiguous disk and manage resiliency is definitely new. The technology is not RAID, although it feels a bit like RAID. Another awesome thing about Storage Spaces is metadata and what it allows Windows to do.
Windows 8 also supports Storage Spaces, which allows a disk pool containing metadata to be attached to a Windows 8 computer. When a disk pool is attached to another computer that supports Storage Spaces, the pool and existing spaces spin right up. With no help or other interaction from users or administrators. This is made possible by metadata. Because the information about the disk pool and its storage spaces is stored in metadata, other compatible computers can access the information. In the event of a server failure, the disk pool can be moved to another host and started up.
Storage spaces supports several levels of disk resiliency, allowing a number of disks within a pool to be lost without data loss. The modes of resiliency are:
- Simple: Data is striped across disks, maximizing capacity and throughput, but decreasing reliability
- Mirror: Data will be mirrored across two or three disks, improving reliability but decreasing capacity
- Parity: Data will be striped with parity information across all disks, reducing capacity but improving reliability
This allows up to two disks to fail at the same time without losing information. When the disks are replaced, they will be brought back into the pool and have data written on them. An example of the Storage Spaces Management utility with a configured Storage Space is shown below in figure A.
Managing Configured Storage Spaces
Building a Disk Pool
When you create a disk pool, the disks added to the pool will be formatted as NTFS disks and have the metadata written to them. Depending on the size of the drives, this may take the usual several minutes. Once the initial configuration of the pool is complete, a Storage Space (or Spaces) can be placed on top of it, which will be exposed to Windows. Following that, it works just as you would expect an exposed drive to work. All of the magic happens under the proverbial covers. Oh and Storage Spaces can be Bit Locker encrypted, too.
Just One More Thing….
If I have created a Storage Spaces configuration and disconnect the disk pool, I can connect that pool to a Windows 8 client computer and see the Storage Spaces and information without missing a beat. That is a pretty cool concept. I am not recommending using huge JBODs to test this, but it does well when the pool is built on removable USB hard drives.
Please give the Storage Spaces feature in Windows Server 2012 (and in Windows 8) a look and try it for yourself, you might be surprised to see just what the Windows and Storage teams have been up to.