Recently, I had the opportunity to test out the new Storage Spaces feature on Windows Server 2012. With a bunch of spare hard drives and parts sitting around, I figure I’d put them to some use by testing out the functionality of Windows Server 2012.
Storage Spaces (also available on Windows 8) is a feature that bears a striking similarity to the Drive Extender feature found on the original Windows Home Server (which reached end-of-life status earlier this year). While the death of DE in WHS 2011 was lamented by many in the tech community, there was excitement when the DE-like Storage Space was introduced with Windows 8 & Server 2012. Like DE, Storage Spaces is a JBOD-like implementation at the OS-level in which you can combine several storage devices of different sizes and interfaces into a single storage pool.
While DE utilized a crude file duplication as a means to protect against data loss from failed hard drives, Storage Spaces offers a few different RAID-like options of protecting data at the OS-level. When setting up a storage pool with Storage Spaces, you are given a choice to select from two-way mirror (RAID 1-like implementation), three-way mirror (RAID 10-like implementation), and parity (RAID 5-like implementation). I set up a storage pool with the two-way mirror option with the following drives I had sitting around.
- Hitachi 2 TB Deskstar 7K2000 7200 RPM HDD
- Western Digital 2 TB Green 5400 RPM HDD
- Western Digital 1 TB Caviar Black 7200 RPM HDD
- Seagate Barracuda 1 TB 7200 RPM HDD
- Western Digital 500 GB Caviar Blue 7200 RPM HDD
- Western Digital 500 GB Caviar Blue 7200 RPM HDD
- Samsung 500 GB Spinpoint F3 HD502HJ 7200 RPM HDD
- Hitachi 400 GB Deskstar 7200 RPM HDD
The two WD 2 TB HDDs and 1 TB HDDs were running off the onboard SATA connectors of a Socket AM2 ECS GeForce 7050M-M motherboard. The rest of the drives were running off a 4-port HighPoint RocketRAID 2304 PCIe RAID controller card in non-RAID mode. Granted, these aren’t the best performing parts to test out Server 2012, but I wanted to make use of what was sitting around.
Anyhow, after setting up the storage pool, the total storage size ended up being around 3.37 TB of usable space. With the pool setup, I created a single partition to make use of the entire pool. Curious about read and write speeds, I decided to copy 3 TB worth of data onto the test server. Throughout the data transfer process, the write speeds fluxuated quite a bit, varying from 70 MB/s to 15 MB/s. As the drives filled up, the write speeds diminished significantly, to about 15 MB/s to a paltry 1 MB/s. Read speeds were even worse, as I saw speeds varying from 10 MB/s to 250 KB/s (yep, you read that right). As the storage pool filled to capacity, it came to a point where the storage pool volume became nearly inaccessible, due to the massive I/O bottleneck going on.
While I didn’t expect optimal write and read speeds with the mix of random hard drives, I had at least expected speeds that were equivalent to the old DE, where read and write speeds were acceptable. With write and read speeds being dismal, along with several big limitations (brought up by this blogger), Storage Spaces is best to be avoided for now, especially when third-party DE-like solutions (DriveBender, DrivePool, FlexRAID) are available and offer more options and better performance than Storage Spaces at this point.