After recently migrating away from Windows Home Server 2011 to Windows Server 2012 R2 Essentials on my HP Microserver N54L I also took the opportunity to reconfigure my disk storage setup for better optimisation of storage capacity and backup/redundancy. I’ll be going through my previous and new setup detailing the key changes I made and why. My objective was to “future proof” my setup for a good few years to come under Windows Server 2012 R2 Essentials, making improvements along with the way and leaving expansion options open for the future. I focused on utilising a new feature in Windows Server 2012 Essentials called Storage Spaces.
HP Microserver N54L specifications
Before getting into my storage setup here’s what my N54L is configured as in a bare metal state:
- Modded BIOS Ver. 2013.10.01 (A)
- SATA Mode is AHCI
- 5.25 single HDD caddy in DVD Drive bay
- 5x Internal drives (4 + 1 HDD caddy in the DVD slot)
- 8 GB RAM
Planning on running Windows 8.1/Server 2012/R2 on Gen7 Microservers?
You’ll need the 2013.10.01 (A) version of the BIOS (or later, if a newer one is ever released) in order to run these operating systems on the Gen7 HP Microserver models, otherwise you’ll get stuck on the “Getting Devices Ready” stage at around 84% and will never get past that stage EVER. The reason? Its due to a driver/compatibility issue with the onboard NIC which was resolved in that BIOS update.
Note 1: HP put BIOS updates behind a “warranty wall” in early 2014, I’m linking to its direct location on the HP FTP site here, which is actually publicly accessible by anyone, you just need to know the directory path its stored under. Someone with an active warranty was kind enough to post the actual link to it on the FTP site for the internet at large. Bro fist.
Note 2: Screw HP’s warranty wall.
I run the modded BIOS because I’m running the OS drive off the ODD SATA port, which with the stock BIOS is limited in speed. With the modded BIOS I can get the full SATA II 3.0Gbps speed on it. You can also gain various other features from running the modded BIOS which I won’t go into. You of course don’t have to use the modded BIOS, but you’ll be missing out, you’ll definitely want it if you plan on getting creative and going beyond the standard 4x internal bays configuration. This wikia page provides all the dirty details about how to obtain and flash the BIOS (stock or modded). Don’t be put off by N40L in the title, the BIOS is the same for the N36L, N40L and N54L, just bear in mind this for the Gen7 series, not Gen8.
Old storage setup
My previous storage setup was rather basic due to cost but fine in beginning as a starter. I had 3x 2TB drives and each one was dedicated to a certain bit of storage, one for Server Backup/Data backup, one for Client Computer Backups and one for media storage. The downside to this approach was capacity and redundancy issues (the serious lack of). 2TB was the magic number because of Windows Home Server 2011 and its limitations with backing up disks larger than that. This setup wasn’t really an ideal candidate for the 3-2-1 backup strategy either. It does make me slightly ill looking back at it now I must admit.
- OS: Windows Home Server 2011
- 1x 250GB Seagate HDD (System Drive) – Housed in DVD drive bay
- 3x 2TB Western Digital Caviar Green Drives (Single Disks)
New storage setup
Identifying some pretty big flaws in my previous setup (be kind it was my first Home Server setup), I drew up this new plan. With the main objectives of more capacity and adding redundancy.
- OS: Windows Server 2012 R2 Essentials
- 1x 250GB Seagate HDD (System Drive) – Housed in DVD Drive bay
- 4x 2TB Western Digital Caviar Green Drives (Storage Spaces Pool with parity)
- USB 3.0 port PCI Express Card (Powered by a SATA cable)
- 5TB Seagate Expansion Drive (Server Backup)
- OneDrive for storing critical data off-site
A couple of critical changes/additions here, mainly a couple of new hard drives and the addition of a USB 3.0 PCI Express card, meaning I can use external USB 3.0 drives effectively offering better speed over the ridiculous amount of USB 2.0 ports that the Gen7 HP Microserver models have, it is a shame that it doesn’t have USB 3.0 onboard, but its successor, the Gen8 series does.
I purchased an External USB 3.0 hard drive to house Server Backups, rather than using one of the internal bays to house them, freeing up one additional bay for further data storage.
Added USB 3.0 Connectivity
I actually installed the mentioned USB 3.0 PCI Express card in the Microserver some time ago, never really used it but knew it would come in handy for future upgrade plans. It gives me 3x External and 1x Internal USB 3.0 ports to play with. The internal port could be easily used as an external as well, see my future expansion notes at the end to find out how.
Hardware compatibility wise it worked well in WHS 2011 a.k.a. Server 2008 R2, and seems to be OK in Server 2012 Essentials, but it did actually stop working mid way when I was migrating data around. In Device Manager the controller reported problems and the USB 3.0 drives connected to it disappeared and as I had a major transfer going on, I didn’t fancy rebooting. I grabbed the older drivers from the StarTech website and installed them, the controller then came back to life and the drives were accessible again. So far I haven’t experienced the same problem since. The driver version is old however, 23/11/2011 to be exact, so I may look into this a bit more if any further problems occur.
Windows Server 2012 Essentials contains a feature known as Storage Spaces, which is also found in Windows 8. Essentially it lets take a bunch of disks (same principle as JBOD) which don’t have to be the same in terms of size, model or even type and allows them to be placed into a software based disk array. Its not actually software RAID but it behaves in a similar way and offers similar configurations to RAID. An article from PCPro explains what Storage Spaces is/isn’t quite well here.
So why Storage Spaces? You might remember similar functionality from the Drive Extender feature found in the first version of Windows Home Server (Not 2011), it was a rather convenient but at the time probably experimental technology, that ultimately ended up being removed by the time Windows Home Server 2011 came around. Mainly because it had bugs, had tendencies for data error issues, messed with timestamps on files and tended to thrash disks around a lot causing more excessive write operations (this especially hurt when using an SSD), but despite all that it was loved by many and a lot of people got mad when it was removed from WHS 2011. However its now back, sort of. Drive Extender and Storage Spaces are not the same thing, but features originally in Drive Extender likely influenced Storage Spaces and that’s very apparent, it is however more polished and even better in Windows Server 2012 R2.
Why not Hardware RAID?
The HP Microserver Gen7 can only do Raid 0/1 via its onboard AMD controller, for other RAID configurations such as RAID 5, 6 or even 10 (If your crazy like that) you would need a dedicated RAID card. You can of course do RAID 5 at the Software level fairly easily, but it can be taxing on the CPU and can be restrictive. Some people just generally don’t like software based RAID for various reasons, and hence elect to go the hardware route. The problem is, decent RAID cards are expensive and in some cases actually cost around the same price as the actual HP Microserver itself. For this reason, the cost doesn’t make sense to me but many might disagree on the basis the HP Microserver itself is so cheap. There are of course plenty of valid points for hardware RAID, but the cost is a big barrier for some, especially in a home environment, in a more enterprise environment Hardware RAID is the standard but then your budget is likely more flexible and your priorities are different.
Why I chose Storage Spaces
Hardware RAID is out of the question for me, I could use Software RAID, but equally Software RAID also has limits too, one of the main ones being the inability to change the configurations of certain software based RAID arrays such as RAID 5 easily. A common problem is when you might want to extend the capacity of a RAID 5 array in the future, in most cases you’d have to move all the data off or make sure you’ve got working backups, delete and reconfigure the array to then transfer the data back onto the array after it has been setup again, this is obviously time consuming and a pain. With Storage Spaces, this can be done much easily and isn’t as restrictive, you can dynamically add more drives to the pool with ease, you can actually use thin provisioning on your array to pre-empt future expansion plans.
The HP Microserver internally in its standard configuration only has 4 SATA bays, so the standard expansion plan would be to replace any of the 2TB drives with larger capacity equivalents say a 4TB Caviar Green (obviously not all at once though, within the fault tolerance limit). However 4 drives is certainly not the ceiling limit, see my future expansion notes near the end to see how you can really push the limit of internal drive capacity.
Depending on if you have parity you can swap disks even if they haven’t failed to upgrade capacity as mentioned above, after all configuration with parity allows you to lose a single drive without losing the pool, meaning I could add in a 4TB drive in replacement of one of the 2TB drives if I needed more capacity while keeping redundancy. Currently there isn’t a GUI to do this from within Storage Spaces (and probably won’t be), but PowerShell commands exist to let you “retire” the disk to remove it from the Storage Pool to then replace with another disk of your choosing (obviously larger capacity, you should never use a smaller disk than what was in the original pool) and then rebuild the pool with the new disk in place. Of course, its important to not get carried away with Storage Spaces being a backup solution, you should be using the Server Backup functionality of Windows Server 2012 Essentials to be storing incremental backups of the data on the pool itself in the event of anything going south. Don’t fall into the trap of confusing the terms redundancy and backup.
Covering off OS failures
In theory an image backup should prevent any issues here and in most cases the pool should re-establish itself once the OS is recovered and restored again, but as Storage Pools create Virtual Disks, getting data directly off those drives outside of the Windows Server 2012 environment it was originally created in, might not be as simple as you’d like. Some PowerShell action might be required to get the Storage Pool working again if the recovery doesn’t automatically reinitialise the storage pool, so a bit of disclaimer here.
I guess I’ve mentioned one of the key points why some people run away from Software based disk pooling/redundancy, but for a home setup I think its perfectly acceptable with proper mitigation and foresight.
What resiliency configuration to use
You have several resiliency configuration options when creating a Storage Pool. Again, while not the same as RAID, they mimic various RAID configurations, so I’ll relate them to one another for better clarity.
- Simple Striping (RAID 0)
- Two-Way Mirror (RAID 1)
- Three-way Mirror (as above, with the additional protection of double disk failure)
- Parity (RAID 5)
- Dual Parity (RAID 6) –
Dual Parity is only available in Windows Server 2012 R2.
A more detailed explanation of each of the configurations can be found here.
In the end I chose the parity route, allowing me to have both larger capacity and redundancy, as I’m running the R2 version of Essentials I could of used the Dual Parity option, but for a home environment I think mimicking RAID 6 might be a bit overkill. I would also have to sacrifice further capacity for redundancy, and seems capacity was an issue with my old setup I wasn’t prepared to do it, and hence the parity with single disk protection is enough for me. I can always have a 2TB or larger disk on standby ready to go in the event of such failure.
Yes I did call my data storage pool “Mothership”, I think its appropriate given its purpose.
The one thing to bear in mind with parity, is the hit on write speeds. As your running parity, existing data and parity information must be read and processed before a new write can occur, and that’s unavoidable, its the cost of parity and doing it at the software level. Read speeds however should be great and therefore parity is a good option for archived data/content that is almost exclusively read from rather than written to regularly. Your media collection will live happily here, so will backups.
A true example of the varying write speeds was it took much longer to migrate my data back onto the storage pool as opposed to copying it off the single disk setup to a temporary location before the migration. The write speeds still got up to about 100MB/s, but often wobbled to much slower speeds and varied between 60MB/s to 90MB/s often, even dropping to 30MB/s at some points. Comparing that to the 120MB/s speed I would get using a single disk. I am however using Caviar Green drives, which are balanced towards power efficiency rather than speed. Despite this however this isn’t a problem for me, the speeds are good enough for my needs, but bear in mind the additional IO load this configuration will create on the pool.
Future expansion opportunities
With my now upgraded and reconfigured Microserver I have a fair few options of disk expansion opportunities and minor setup changes to increase storage capacity that can be performed later down the line with relative ease:
- Increase capacity of the storage pool by swapping any of the 2TB drives for larger capacity drives i.e. 3TB or 4TB
- Up to 3 additional external USB 3.0 Drives for Server Backup/Archiving
- Option to use an eSATA to SATA cable and run it back through the PCI slot gap for another SATA connection
- Option to route a USB 3.0 cable from the internal port on the PCI Express card through the PCI slot gap for an 1 more additional external USB 3.0 drive
- House an SSD in the top bay section and use that as the OS drive, and free up the current drive in use
With these potential modification I reckon I could max out the Microserver with the following disk setup:
- 6x Internal Drives – 5 data drives and 1 SSD for the OS
- 4x External USB 3.0 Drives
- Any additional External USB 2.0 drives if needed
Next time you look at the specifications document for the Gen7 Microserver, laugh when you read 4 as its internal drive capacity.
Wrapping everything up
Overall, my updated setup and my decision to use Storage Spaces has been a success and I’m really pleased with the results of Storage Spaces. I have much more capacity with added redundancy (even if it is software based) that I didn’t have before, along with plenty of room for expansion in the future and will definitely be running Windows Server 2012 R2 for the long term. Coming away from Windows Home Server 2011 was a good move, as eventually it had to happen, due to several technical limitations of WHS 2011 itself (2TB backup limit with VHD format, limitations with GPT disks, 2TB disk partition limitations etc.)
I hope my experience and write up has been helpful to you if you have been considering using Storage Spaces with Windows Server 2012/R2 or perhaps you were thinking about tweaking your setup and wanted to get some ideas.