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.
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.
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?
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.
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.
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!