Birthdays always provide a nice reason to celebrate, especially when the time comes around every so often to enjoy your own. Such was the case for me recently. But the celebration never really kicked off because I forgot to take the day off from work. I guess our marketing team realized the flaw in my decision (or lack thereof) and decided that I needed some assistance with the aging process. So in their usual clever form, I arrived at my desk that day and noticed a time machine sitting on it – and not just any time machine, but a Dr. Who Tardis USB Hub!
If you’re a Dr. Who fan, then this item will certainly reconjure some memories. And although this device really doesn’t send you through the time vortex, it does offer some nice sound and light effects to make you ponder what it would be like to have really taken the day off from work.
Having this new toy certainly makes for a nice conversation topic, but I need functionality. And so here I sit with this new four-port USB Tardis in need of something to make of it, other than a reminder that I’m getting older each day. On the same day I received this device I had to stand up a WSUS server in my lab environment to store updates. I normally run all of my VMs on an SSD but did not want to relegate a bunch of space to store WSUS updates on it.
As I sat around trying to figure out how to come up with a solution, a light bulb moment struck. There are a jillion USB devices in my desk drawer, from Lync headsets, to mouse and Bluetooth receivers, and all kinds of USB toys, such as this one. But in terms of sheer numbers, USB flash drives outnumber all of my drawer devices three fold. What if I could take some of those USB drives and configure them as a single volume to store WSUS updates in my lab?
And so the idea began. How can I create a single volume from USB drives and attach it to my WSUS VM? What would the performance be like? Could I actually achieve better speeds than with a single spindled USB drive? How well would reliability fare?
I know from experience that Windows will not allow you to create a software RAID from removable drives. So I had to toss that idea out of the window. The next idea was to configure a Windows 8 storage pool and use a thinly-provisioned VHD from a set of removable drives. This option seemed the most ideal because if one drive malfunctioned or got removed, then the storage pool wouldn’t skip a beat. But it turns out that Windows 8 will not allow you to create a storage pool from USB flash drives. So I had to toss that idea out as well. At this point I was beginning to search for free third-party software RAID options when I realized a trick that I had implemented before on a virtualized DPM environment.
The trick is to create a thinly-provisioned VHD on each of the removable USB drives and mount the VHDs as SCSI disks to the Windows 8 Hyper-V WSUS lab virtual machine. From this point Disk Manager from within my WSUS vm will see each of the attached SCSI disks and offer a way to link them together through a software RAID configuration.
Windows provides several options for using software RAID, including spanned volumes, striped volumes, mirrored volumes, and RAID-5 volumes. Right off the bat you would think that striped volumes provide the best performance in terms of read and writes. But take a look at the ATTO Disk Benchmark comparisons below, and you’ll see that, surprisingly, a spanned configuration of VHDXs across multiple USB flash drives yields all around better performance than does a striped configuration. Furthermore, with RAID configurations in general you are able to surpass the maximum 60MB/s (480Mbps) transfer rate of a single USB drive. In fact, even write speeds from a spanned configuration reach well in to the 80MB/s mark. However the write performance from a spanned volume of USB flash drives doesn’t quite measure up to that of a spindled drive (see below). But you can achieve a 100% increase in read performance over a spindled drive using a spanned volume of VHDX-based USB 2.0 flash drives.
Of course you certainly wouldn’t ever want to configure anything like this in production. But I imagine it won’t be too long where the convenience of using multiple USB flash drives overtakes that of using a single spindled drive, especially considering the emergence of cheap and super-fast USB 3.0 devices and hubs. Unfortunately, the device that was given to me was only USB 2.0. I can only imagine the speeds that would come about when testing with a similar configuration with USB 3.0 flash drives. But for the case of my WSUS environment, where all I need is a quick and fast solution for storing updates, this setup turned out to be the perfect solution. Now, I can only wait for one of those USB drives to fail so that I can rebuild my WSUS update database 😉