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.