What is Storage Spaces
Storage Spaces is a relatively new capability introduced in Windows 8 Server to manage disk space effectively. Indeed, Storage Spaces came up to take place of Drive Extender. Drive Extender was used in Windows Home Server since year 2007 and was then discontinued.
The main difference between Storage Spaces and Drive Extender is a level on which they operate. Drive Extender worked on the file level while Storage Spaces works on the level of physical drives. The Storage Spaces driver divides each disk in a pool into pieces of 256 MB, called “slabs”. Slabs are then combined to produce simple, mirror, or parity virtual disks. Finally, the virtual disks are partitioned in the same way normal disks are partitioned.
Along with many other interesting features, Storage Spaces introduces a “thin provisioning” feature that allows creating virtual disks larger than the available physical space.
However, one should be aware that when physical space backing some virtual disk runs out and a system requires adding more space, it is needed to add as many disks as was originally used to create the virtual disk.
Obvious enterprise-focused application of simple thinly-provisioned Storage Spaces volumes with NTFS deduplication is a back up of, say, multiple versions of large databases. In this case deduplication saves capacity by storing only one copy of static data while thin provisioning lets an IT specialist to add drives as needed.
Although Windows 8 is available for general users only for six months or so, there are already both Storage Spaces’s admirers and people who predict a short life for this innovation. Time will show who was right but who was not; now we would like to discuss common Storage Spaces misconceptions.
Storage Spaces uses fundamentally different RAID layout
Some people believe that Storage Spaces uses fundamentally different RAID layout. Microsoft’s documentation accidentally corroborates this misconception since designers consciously use only terms “mirror” and “parity” and avoid a comparison between these and regular RAID layouts. In fact, Storage Spaces uses layouts similar to a traditional RAID.
For example, a simple Storage Spaces volume created on the pool consisting of one physical disk is just a JBOD. If a simple volume was created using several physical disks, it is a combination of two traditional layouts – RAID0 and JBOD.
A mirror volume based on two physical disks is a combination of RAID1 and JBOD. If you create a mirror volume using the large even number of physical disks, you will get a combination of RAID10 and JBOD. In the case of the odd number of disks, a created volume will be a combination of RAID1E and JBOD.
All the above is also true for parity volumes. If you create a parity volume in Storage Spaces, you will get something like RAID5 and JBOD. As for a block size used for stripe blocks, it is 256 KB, exactly 1024 times smaller than that of “slab”.
Although Storage Spaces doesn’t use fundamentally different RAID layouts, should it fail, no traditional RAID recovery software will help. RAID recovery software like DiskInternals RAID Recovery, ReclaiMe Free RAID recovery, or Runtime RAID Reconstructor will not work just because of the JBOD component that breaks the requirement that block offsets must be the same across all the disks.
Storage Spaces and ReFS will never be in need of data recovery
Along with Storage Spaces release, Microsoft also introduced Resilient File System (ReFS), a new file system that is used on Windows PCs starting with Windows 2012 Server. Microsoft strongly recommends use Storage Spaces in conjunction with ReFS to achieve maximum efficiency both in terms of disk space usage and data protection.
Many features were implemented in ReFS to protect data in case of corruption. For example, ReFS checksums all the metadata on the mandatory basis. As for Storage Spaces, Microsoft recommends use a mirror layout because you get the maximum resiliency only if ReFS works on top of a mirror Storage Spaces volume.
Some people being inspired by the idea of such data protection beget a myth that ReFS and Storage Spaces will not fail at all, therefore, era of data recovery software comes to an end.
However, it is not true. In the time when Windows 8 has not yet been released formally and only Release Preview was available, we have already heard about ReFS failure and even recovered data from a failed volume that became inaccessible.
Even if you think you have created a super-stable system, operator errors or equipment failures do occur in spite of everything.
Storage Spaces is not for the average user
typical users will not use Storage Spaces at all. An argument is that a typical user has only one hard disk at home and it does not make sense to combine something into some obscure pools, struggle for performance and so on.
Again it is not a proper assumption since in Windows 8 there is a capability to pool USB disks that are widespread among typical users and that you can buy in a corner store. You can take several disks, connect them via USB and create a disk pool using Storage Spaces. Because USB 3.0 disks become more and more available and popular, speed issue will eventually be settled. It will be especially noticeable when reliable USB 3.0 hubs are created, capable of working continuously for many years, without failing or degrading down to USB 2.0 mode.
Windows 8 provides almost unlimited opportunities to generate odd RAID layouts. Windows 2012 Server offers even more flexibility adding its RAID5 and ReFS into the mix. A server system administrator using Storage Spaces along with Disk Management can create, for example, a RAID 51.
Despite the apparent advantages of Windows 8 flexibility to create nonstandard storage layouts, one should not get too involved in the creation of such “hybrids”. When using nonstandard configurations, Storage Spaces may encounter alignment problems and, as a result, performance will be much worse than expected. Another problem is recovery in case of a failure. If the hybrid configuration fails, data recovery will come at enterprise-grade price.
So, the IT department that used to buy RAID controllers for a lot of money should probably continue buying the same controllers rather than succumb to temptation to save money on them, creating odd RAID configurations by means of Windows 8.
Let’s consider an example of what you can create using Storage Spaces and Disk Management. Suppose we have two Storage Spaces pools created on two hard disks each. Then we combine two disks in each pool to make a simple Storage Spaces virtual disk and see our four physical disks as two virtual disks.
Then, we go to Disk Management and combine these two Storage Spaces virtual disks to a RAID 0 (striped volume).
For simplicity, let’s assume that a slab contains two stripe blocks although in real life there are 1024 stripes per slab. As for slab placement, imagine that they are allocated on the physical disks as shown in the figure below. Now let’s see what happens with data placement on the physical disks.
It is easy to note that it will be impossible to find out the placement of slabs and stripes neither manually nor automatically. You cannot realistically expect to recover data from such a contraption in case of a failure.
Making this article, we read a lot of discussions on different forums and blogs and realized that Storage Spaces and everything connected with it excite many users all over the world. Even before the final version of Windows 8 was out, people speculated on whether Storage Spaces would be a success for users or it would face the same fate as Drive Extender. As for my opinion, I would rather predict a Storage Spaces success than failure.