This is the first of three guest articles on Microsoft Storage Spaces by Elena Pakhomova of www.ReclaiMe.com specializing in data recovery solutions for various storage devices. Elena has significant expertise with storage systems, including home and enterprise NAS/RAID units.
Storage Spaces was first introduced in Microsoft Server 2012 as a then-new and powerful tool to manage most storage devices connected to a PC. Since then the updated version was released where, on the one hand, some limitations found in the first version were eliminated and, on the other hand, new functionality was added. Storage Spaces is also available to Windows 8 users.
So, let’s discuss Storage Spaces, its main advantages, and problems you may encounter when working with it.
Storage Spaces: A flexible solution
With Storage Spaces, you can combine disks of different parameters and characteristics into a single storage. For example, you can have rotational hard drives and SSDs in the same pool, disks connected via USB and SATA, not to mention disks of different vendors and form-factors.
At first glance, it may seem that such a storage system will provide low performance; however, measurements show that performance is not that bad, at least in simple and mirrored configurations.
Another interesting thing is that Storage Spaces pools can be shared between many servers.
First, let’s define the basic terms used in Storage Spaces.
– Physical disks:
Typical physical disks – internal and external, from different vendors, of different form-factors, and so on.
The set of physical disks over which virtual disks (spaces) are created.
A virtual disk created on the disks in a pool. Something that from the software point of view looks like a typical disk, while actually it has complex structure, powered by the Storage Spaces driver and probably several different physical disks.
Each physical disk in a pool is sliced into 256MB parts called slabs. The Storage Spaces driver allocates disk space for the data in these slabs.
– Thin provisioning:
There is a new capability implemented in Storage Spaces using which you can create storage with the capacity more than physically available.
For example, if you have two 2TB disks you can combine them into a pool and then create a 50TB thin-provisioned virtual disk. As soon as physically available disk space runs out, Storage Spaces asks you to add more disks. Note that it can be done on-the-fly without stopping the system and rebuilding. The largest capacity of the two, which is visible to the operating system, is called “advertised size”.
Note that it is not necessary to use this capability because you always have the opportunity to create a virtual disk with fixed size (fixed-provisioned space). Such aspace cannot exceed physically available capacity.
In the example in the picture, one space is 20TB and the other 50TB.
Virtual disks created on the Storage Spaces pools can be one of the following types:
- Simple: Similar to a RAID0 where user data is distributed across all the pool member disks. The simple layout does not protect against data loss in case of a disk failure.
- Regular mirror: Similar to a RAID1 because two copies of data are stored simultaneously; however, unlike a RAID 1 where these copies are stored on two disks, Storage Spaces distributes data across all the disks in the pool, effectively creating a RAID 10 over the available disks.
- 3-way mirror: Similar to a regular mirror with the only difference being that there are three copies of user data distributed across the pool member disks allowing a system to survive a double disk failure. You need at least five disks to create a 3-way mirror space.
- Parity: Resembles a RAID 5 where calculated parity data is stored along with user data thus ensuring the ability to survive a single disk failure.
- Double parity: In the latest version of Storage Spaces released together with Windows Server 2012 R2 one more layout was added. This layout is similar to a RAID6, which utilizes two different parities meaning that a system can survive a double disk failure.
Thus, as you can see, all the Storage Spaces layouts except simple provide redundancy.
Simultaneously with Storage Spaces, Microsoft released a new filesystem – Resilient File System (ReFS). Thus, when you create virtual disks on the Storage Spaces pools you can format them to either NTFS or ReFS. However, Microsoft highlights that maximum efficiency is achieved when you use ReFS on the Storage Spaces virtual disks.
Resilience to failure
Tandem of ReFS and Storage Spaces provides so called resilience to failure. Let’s see what this means.
The ReFS driver checksums all the metadata on the mandatory basis and stored the checksum separately from the metadata. All this helps the ReFS driver to find out that there is a problem with metadata because of the difference in checksums.
Then, depending on the layout you are using, there are two possible scenarios:
- If it is a mirrored volume, the ReFS driver commands the Storage Spaces driver to provide all the available copies of data, detects the correct one, and corrects the error. All this work is done transparently and resiliently to the user.
- With a non-mirrored layout, the only thing the ReFS driver can do is to find out that metadata is damaged and there is no possibility to correct it. In this case, the drives just removes damaged metadata from the filesystem namespace while still providing access to the rest of the virtual disk.
Let’s emphasize it once again that all the above is not applicable for the NTFS formatted volumes.
This is the first of a series of articles devoting to Storage Spaces. In the next article, we will discuss the basic aspects you should take into account when creating your own Storage Spaces server.
Mathieu: Thank you Elena of www.ReclaiMe.com for this first article in the series on Microsoft Storage Space. Make sure to check back soon for the 2nd and 3rd parts of this series.
Everyone, make sure to leave your questions, comments and suggestions in the comments section below.