Storage Spaces are a new Microsoft innovation introduced a year ago in Windows Server 2012. As of now, a second version of Storage Spaces is released in Windows Server 2012 R2. Using Storage Spaces, you can combine completely different drives into the pools and then create virtual volumes (Microsoft calls them “spaces”).
Many people know that a technology allowing to combine several drives into a single storage has been available for a very long time, just remember RAIDs (Redundant Array of Independent Disks). So the reasonable question arises – what is so new about Storage Spaces? Let’s see.
Really different drives
Storage Spaces allow to pool drives with different characteristics such as vendor and model, capacity, the way of connection (SATA, USB, and SAS), the type (SSD and rotational), and form-factor (laptop and desktop drives).
In RAID, it is recommended to use identical drives since even drives of the same model within different series may slightly differ resulting in performance degradation. More than that, using drives of different capacity in RAID is quite impractical due to loss of some capacity. The RAID capacity is determined by the smallest member drive. As for the connection type, it is impossible to create a RAID, say in Windows, using drives connected via USB.
The developers of Storage Spaces managed to take into account these difficulties and propose technology of combining different drives into a single storage without loss of capacity and without significant loss of performance.
Almost unlimited capacity
With Storage Spaces, you can create a storage of almost unlimited capacity, to be precise up to half a petabyte (500 TB) in a single pool, whereas the number of pools is unlimited.
As for a RAID, imaginable volume of a home or small business RAID does not usually exceed a few dozen terabytes.
Additionally, in Storage Spaces there is a new feature – thin provisioning – which allows to create spaces larger than physical available disk space. When a thin-provisioned space runs out of physical disk space, you can easily add new drives to the pool without rebuilding the entire storage system.
[Read also: How Big Do You Think Hard Drives Can Go?]
To draw an analogy with RAID, in practice the expansion of RAID is not usually applied because it is very long, tedious, and expensive task. If you need, for example, to expand a RAID 5 of five 1 TB drives you should do one of the following:
- Create a new larger RAID and then copy data from the old RAID. To do this you need to buy a full set of drives for the new RAID, most likely, along with a new controller.
- Replace drives one by one with larger ones and after each replacement rebuild the array. That usually takes several hours per drive.
In this case, the gain of the capacity is not that significant. Thus, in our example replacing 1 TB drives with 2 TB brings you just 4 x (2TB – 1TB) = 4 TB (the capacity of one drive goes to ensure redundancy).
In fairness to previous storage technologies it should be noted than an analog of thin provisioning has been known for a long time and used in some proprietary RAIDs, for example in Drobo Beyond RAID technology.
Operation along with ReFS
Microsoft introduced Storage Spaces as a part of unified storage system where a new ReFS (Resilient File System) file system is used as well, rather than a standalone capability. Storage Spaces are at its best when these two components work together.
One of the indisputable advantages of such an alliance is the ability to detect and correct (transparent to the user) metadata errors on the mandatory basis. Also there is a possibility to enable error correction in user data. All this is possible thanks to both the ReFS driver which checksums all the metadata and Storage Spaces providing data redundancy. When reading a data block, the filesystem driver detects the incorrect checksum and requests the Storage Spaces driver to read all the available copies of this block and to find out the correct one. Then the ReFS driver commands to fix the bad copy so that all the copies contain the correct data. All this is done transparent to the user.
As it is known, there is a problem both in a software RAID and hardware RAID without BBU (battery backup unit) when the part of data being written is lost, for example when power failure occurs (such a phenomenon is called “write-hole”). If this happens, the disk contains both new and previous data and there is no way to detect correct data.
To avoid this you can either use a hardware RAID controller equipped with a battery, which is able to store data being written for some time. Once the power is on again, data stored in cache unit is flushed to the disk.
Storage Spaces fight write holes using journaling meaning that you will not lose the data in case of power failure.
As you see, Storage Spaces technology is certainly not a replacement for RAID, but by far it is the most flexible, easy to build and maintain, and relatively inexpensive storage solution. Try it and you will like it.
[Image credit: Steve Tron, Flickr]