Today I’m going to follow up on a recent article on SMB 3.0 file shares by introducing the new features added to Storage Spaces in Windows Server 2012 R2.
Storage Spaces was introduced in Windows Server 2012 as a whole new way to aggregate physical disks and provision virtual disks as usable and fault tolerant logic units. The non-RAID physical disks are aggregated into an administrative unit called a Storage Space. From this, logical units called virtual disks are created. Each virtual disk consumes space from the physical disks in the Storage Space. So far, that’s not different from how a SAN uses disk groups to create virtual disks. However, Storage Spaces is a little bit more flexible. The Storage Space can be made up of disks of different sizes, and it will use all of their capacity if required.
We did say non-RAID disks are used – this is a requirement for Storage Spaces. In fact, Storage Spaces is designed to be deployed on the most economic disk tray solution you can get – just a bunch of disks (JBOD) that does not do any hardware RAID. We get our disk fault tolerance in two ways:
When introduced to Storage Spaces, people usually saw the advantage to it. But many asked if certain features were supported in WS2012. Some of the very impressive functionality that is only associated with the most expensive storage solutions on the market … until Windows Server 2012 R2 was announced.
On one hand, 15K drives are viewed as being expensive and low capacity, with some good performance. On the other hand, 7.5K drives can give much better capacity at a great $/GB rate, but they’re slow. SSDs have amazing performance, but they are (now) low capacity and have a very poor $/GB rate. Microsoft wanted to give companies a new way to balance scalability and performance, and they’ve added tiered storage functionality in WS2012 R2 Storage Spaces.
The concept is that you create a storage space with a mixture of SSD (fast tier) and slower disks (capacity tier) with much bigger capacity. Note that only two tiers are supported in WS2012 R2. When you create a virtual disk, you assign some capacity from the fast tier and the capacity tier. A daily (1 a.m. by default and configurable) task will automatically analyze the data on your virtual disk at a 1 MB level to identify hot spots and cold spots. These 1 MB slices can be parts of a file – a file can transparently span tiers. For example, a database might have a commonly used part of a the database file and a rarely used part. After the analysis, Storage Spaces will automatically promote hot slices to the fast tier, and demote cold slices to the capacity tier, offering you and your services the best balance between capacity and performance.
Administrators and engineers can deliberately choose to pin a file in its entirety in the fast tier. For example, say you are using Storage Spaces for storing VDI virtual machines. The parent VHDX can be pinned to the fast tier, while the children differential disks live in the capacity tier. During the boot storm, SSD provides the superior IOPS bandwidth to reduce the time to boot up and log in the users.
Services such as Hyper-V require write-through – this is where their modifications must go straight to disk without caching in memory, even if that memory is battery backed. This could reduce write performance, particularly when there are spikes in write activity. To overcome this, a virtual disk can leverage tiered storage to absorb the spike in write activity. When a spike is detected, the SSDs in the fast tier are used. They offer much greater IOPS and can take the pressure that the capacity tier cannot. Later, the optimization task will demote slices of data to the capacity tier as required.
Ask any server or SAN admin what is most painful about RAID and they’ll probably say that the following issues slow and badly hurt performance:
On the subject of extension, Storage Spaces (and WS2012 as well) doesn’t move data around when you add a disk. It simply sees new capacity and uses it, interleaving the virtual disk slabs across physical disks as dictated by the fault tolerance setting. That means there is no performance penalty for adding capacity. That’s really good in a world where we’re consuming storage as if it can never run out.
A storage space and a RAID array can be configured with the traditional hot spare (one or more). When a disk fails, the hot spare is used to replace it. That approach is slow, and it leaves the RAID array or storage space vulnerable if another disk fails during the repair process. Windows Server 2012 R2 introduces a parallelized repair process, where the remaining healthy disks move around and take responsibility for the slabs of data that were stored on the failed disk. It is extremely quick because all disks in the storage space are involved. The recommendation is that instead of using hot spares, you instead use the disks that are spare but active capacity in the storage space, that can be availed of by the parallelized repair process. This will both offer more IOPS to normal production storage activity and leave your business less vulnerable during a repair process.
Storage Spaces is a strategic feature in Microsoft’s cloud vision. Storage Spaces is not the software RAID seen in Windows in the past. This is a whole new technology, not that different to what a SAN does, but designed from the ground up to be multi-vendor, economic, scalable, and offer great performance, with the availability that is demanded of storage. The new features added in Windows Server 2012 R2 will make even the most ardent objector think twice. This is especially true when Storage Spaces is combined with SMB 3.0 connectivity; this package can beat the best that block storage can offer in the majority of scenarios.