For years, software RAID sucked. But it’s 2019 now, and let’s see how Windows Storage Spaces does when it comes to performance, because it’s included with Windows 10 Pro – so is it a free gem or a worthless turd? Spoiler if you don’t want to actually read the whole article: I’ve been using Storage Spaces across several home servers for a while now and it’s fine, except for slow sustained write speeds on Parity storage spaces.
First off, if you don’t want to read the whole article, just scroll down to the Conclusion… I’ve compiled charts that summarize the performance of all the different configurations in the Conclusion section.
I use Windows Storage Spaces for several servers in my home, one of them being for downloading Linux ISOs *ahem* using NZBget. I’m going to take the time to benchmark four configurations – single bare hard drive vs three Windows Storage Spaces configurations… simple (similar to RAID0), parity (similar to RAID5), and mirrored (similar to RAID1 when used with 2 drives and similar to RAID10 when used with 4+ drives).
Server specifications are: Windows 10 Pro 1903, Intel Core i5-3470 CPU, 16GB DDR3 RAM, and four 500GB WD VelociRaptor drives (6th-gen, model number WD5000HHTZ) connected to this great little PCI-Express X4 SATA controller powered by a Marvell 88SE9230 chipset. And yes, before you ask, I’ve done the benchmarks and this controller is fast enough for my purpose… beware that many inferior PCI-Express SATA controllers do NOT have enough bandwidth to handle multiple SATA III (6Gbps) drives at full speeds.
For benchmarking, we’re going to be using CrystalDiskMark 64-bit
It’s worth noting that I have enabled the “IsPowerProtected” flag that tells Windows Storage Spaces that the system it’s running on is connected to a UPS (uninterrruptible power supply, aka battery backup). This significantly improved write speeds on my NAS, which is also running a (much larger) Storage Spaces array. If you have a UPS, which you probably do if you’re running this on something used as a server, simply running this in PowerShell (be sure to run it as administrator):
Set-StoragePool -FriendlyName ExampleYourStoragePoolName -IsPowerProtected $True
1. Single Drive Performance
First off, let’s benchmark a single drive before any of them are added to Windows Storage Spaces, so we can get an idea of how these WD VelociRaptors perform when used individually without Storage spaces.
Even though these drives came out in 2012, they still perform quite well, thanks to their 10,000RPM spindle speed. More cache would do them good, since they only have 64MB, while most newer drives have 256MB, but overall they are a good buy for home server use if you need reliable, high-performance drives but don’t want to spend the money on SSDs. I paid $90 for all four drives, an average of $22 per 500GB drive. Compared to my favorite mainstream 500GB SSD out there, the WD Blue 500GB ($65 on Amazon), that’s a big money saver.
2. Simple Windows Storage Space
The Simple Storage Space was faster in random reads and writes but the sequential performance wasn’t any better than a single drive.
In traditional RAID, a Simple Windows Storage Space is basically a RAID0 0 – the RAID level of choice for people that don’t want to waste any disk space, but don’t care about data loss – because a single drive failing will take all the data with it. Yes, even though RAID stands for “Redundant Array of Independent Disks” there’s nothing redundant about RAID0 or a Simple Storage Space – in fact, the more drives you have in this type of array the more likely you are to have a failure and lose data.
3. Mirrored Windows Storage Space
The Mirrored Storage Space performed fairly well. We saw improved speeds across the board, though the improvement is not as significant as I expected from what is basically a RAID10 (when used with 4 or more drives a Mirrored Storage Space is like a RAID10 – if you only have 2 drives it’s like a RAID1). This overall gives us improved performance (though not by much), with good protection against data loss (depending which drives fail, you can either lose 1 or 2 drives in a RAID10 array, depending which drives fail), so the Mirrored Storage Space is all-around the best option for your home server or workstation. The only downside to a Mirrored Storage Space is that you’re basically wasting half of your total drive capacity, and that’s brings us to the next section, Parity Storage Spaces…
4. Parity Windows Storage Space
Parity arrays are the most complex, in that metadata that calculates the contents of each drive in the array is spread across all the drives, so that if a drive fails we can replace the drive and recalculate the contents of the failed drive onto the new drive. Performance-wise, we would expect increased read speed since we can read data from all the drives at once, but a small decrease in write speeds. Unfortunately, while the read speeds were much better as expected, when it comes to writes, Windows Storage Spaces does horribly. While it might not matter for your application, write speeds were far worse than a single drive, as well as the other types of Storage Spaces we benchmarked today.
In traditional RAID, a Simple Windows Storage Space is basically a RAID5. Despite the poor write speeds, a Parity Storage Space might still be the right choice for you. In fact, that’s what I’m currently using on my NAS, which I use for various things in my home. In my NAS I’m using six of these 8TB WD Red drives, soon to be eight. Primarily it holds large quantities of Linux ISOs *ahem* for my Plex server, and I also use it to store footage from my security camera. If I ever upgrade to 10-Gigabit Ethernet, I’d definitely need a faster solution than a Parity Storage Space (such as FreeNAS/ZFS or something that at least doesn’t decrease write speeds compared to a single drive (like Unraid), but for most home users who need a cost-effective, high-capacity storage array for bulk storage (NAS, backup server, shared files, surveillance applications, etc), a Parity Storage Space is still acceptable.
By now you should have a good understanding of how Windows Storage Spaces performs and for what applications different types of arrays are good for. If you need the best overall performance with high risk of data loss, choose a Simple Storage Space. If you need the best balance between performance and redundancy, choose a Mirrored Storage Space, and if you need to store a lot of data and need protection against data loss, but don’t care about write speeds, choose a Parity Storage Space.
5 thoughts on “Windows Storage Spaces Performance – Simple vs Mirrored vs Parity”
From my test, creating Storage Space Dual parity in Windows10 v1607 (2016) compare with v1809 (2019) will see different result;
Windows10 v1607 (2016): benchmark 340MB/s
Windows10 v1809 (2019): benchmark 240MB/s
Both was tested on same platform.
Seagate 14TB Skyhawk Ai (15 units)
Fun fact about Storage Spaces I just learned. If you use the default cluster size of 16 KB, you are limited to 64TB! Yuck! To make matters worse, the control panel acts as if you have more space than you really do, further confusing the mater. https://support.microsoft.com/en-us/help/140365/default-cluster-size-for-ntfs-fat-and-exfat
The solution to the poor write speed with parity is to go to Device Manager>Disk Drives>Properties and the Policies Tab. Check “Enable Write Caching” for each of the drives in your storage pool.
There is a risk of data corruption in the event of power failure whilst writing to the storage pool, unless you use a UPS.
Doing this with a 4 x 1TB ssd parity storage pool increased write speed from ca. 200 to over 1300 MB/s, measured using the Blackmagic disk speed utility
Optimizing Storage Spaces is way more complex than it seems at first glance, the problem is that Microsoft isn’t very clear on the matter and you have to hunt for info.
Take a look at this:
I rebuilt from scratch one backup server with 5 drives (40TB total) last week and performance has been incredible compared to what it used to be. It didn’t help that I started that server with 2 drives 3 years ago and added more when they were needed. It turns out that careful planning is paramount long term, you have to make a compromise of flexbility vs performance.
Thanks for your article. It’s really helpful.
I wonder how the parity test would perform with all SSDs and the performance impact compared to mirrored.
I currently use a tiered mirrored drives in my storage space. 2 ssd and 2 hdd. It works fairly well, large storage with a bit of a boost. I set it up using Powershell commands. My only concerned is when I need to make adjustments by adding more capacity.