Windows 8 Storage Spaces – a First(-Hand) Look at Performance
Did I mention I love the new Task Manager in Windows 8? It is brilliantly designed, conveying tons of meaningful information while looking very good. This article is not about Task Manager, though, but about Windows 8 – its Storage Spaces functionality, to be exact. But I will be using Task Manager to analyze the performance of Storage Spaces. And with that, we are back where we started.
Task Manager
Take a look at this screenshot taken on my home file server:
You will notice immediately that it looks good, but after studying the image for a while you will realize that it is very informative, too. In the left-hand column you can see with one glance that:
- the system has four drives
- most components are idling away
- only Disk 5 (E:) seems to have an awful lot to do
But what could Disk 5 be doing? There is certainly not a network copy job going on, or the transfer rate over Ethernet would be higher than 21.9 Kbps.
Storage Spaces
Looking at the main column we notice that Disk 5 (E:) is a “Microsoft Storage Space Device”. And indeed, I configured two Storage Spaces on a pool of three low-power 3 TB drives.
Storage Spaces are very flexible virtual disks that may be described as combinations of software RAID with thin provisioning. Storage Spaces are not too dissimilar from Windows Home Server Drive Extender, a technology that finally resurfaces in Windows 8 after having been removed in Windows Home Server 2011.
Anyway, looking at the bottom of the image above we see that Disk 5 is only written to, not read from. The current write speed is only 14.7 MB/s which is not very much for a modern hard drive. At the same time the disk utilization (“Active time”) is at a 100% – the drive is maxed out. And the drive’s response time, 3385 ms, is simply terrible. So what is going on?
Performance Analysis
The answer is simple: I was copying video files to Disk 5. And I was not copying from a slow USB flash drive, but from a USB 3.0 hard drive, Disk 6 (G:) in the image above. As you can see, the copy source Disk 6 hardly breaks a sweat, while Disk 5 is near total exhaustion. Why would that be? After all, logical Disk 5 consists of three physical disks.
I think there are two facets to the answer.
First of all, Drive 5 is a parity-based Storage Space which secures its data like a RAID-5 array does. And RAID-5, as we all know, is a good reader, but a bad writer. The same seems to be true for parity-based Storage Spaces. One reason for this could be that the calculation of the parity data takes time. But the CPU is not heavily loaded while writing. Another reason could be that Storage Spaces is simply not (yet) optimized for IO throughput, maybe because of its early status.
Update: After I initially published this article I added a fourth drive of the same type to the storage pool. The performance remained unchanged.
Configuration
Here is a screenshot of the configuration I used. As you can see, the control panel applet “Manage Storage Spaces” is a positively simple user interface. Everything relevant is there, nothing more, nothing less.
Conclusion
Storage Spaces are a great technology. Virtualized extensible storage that can be managed by your grandmother – that is exactly what is needed today, with digital cameras generating gigabytes of pictures and videos – per holiday. While the overall concept looks mature enough, it seems Microsoft would do well to work on (write) performance. Apart form that, I am sold. Storage Spaces it is for my home server!
4 Comments
Helge, did you format the drives using NTFS or ReFS?
I installed the client version of Windows 8 CP, so ReFS was not available and I used NTFS.
Understood. Maybe Storage Spaces are fully compatible with NTFS, but only really shines on ReFS?
If true, then it would be nice if at least the Ultimate Windows 8 SKU comes with ReFS.
Thanks SO much for doing the tests! I saw the same thing on a two-way mirror with 7200rpm desktop drives and thought, maybe I was doing something wrong.
I’d have to admit, this incredibly slow performance is a buzzkiller for me: trying to run even one VM (in Win8 Client Hyper-V) off that two-way mirror produced unacceptably slow responses, making it basically unworkable. I will try it off a regular mirror and see if it’s faster. Another buzzkiller is that I can’t seem to break a WSS mirror w/o losing files – a no-brainer with a regular mirror.
Sorry Storage Spaces, you ain’t working for me (yet). Maybe the 8.1/R2 update will make it faster.