Building a Home Lab
There are many reasons why IT professionals build home labs, from testing and development to learning and certifications. It used to be that we needed server hardware for building a home lab, not only is the equipment expensive but the electricity bill could take a hit as well and don’t get me started on the noise some servers create. All this is pretty impractical for most but what else do you do when you need to improve your skills and why should the home lab be the reserve of the guys already getting paid the big money?
Well thankfully several advancements in technology have made it so we don’t need server hardware for building a home lab anymore. In fact the same things we want to learn about in our home labs are whats made them possible on a budget and without turning the spare room into a hot wind tunnel. So here’s my guide on building a home lab:
What hardware do I need?
So we need some hardware… Or do we? Not necessarily, but for this section lets pretend we do. One of the advancements in technology I alluded to above is in the hardware itself. As recently as six years ago a server might have had a quad core processor and be maxed out at 32GB of RAM, maybe it had two quad core CPUs. Fast forward to today and I’m pretty sure I’m not the only one with a home PC running an eight core CPU and 32GB of RAM. Well actually that’s an exaggeration, I have a 6 core CPU but if I wasn’t so cheap it’d be 8 core. On top of that chances are our home PC’s are running new generations of CPU’s and memory that makes the old stuff look steam powered.
Sure in six years our production workloads are going to have gone up but for the purposes of our home labs the Windows Server OS isn’t really any more hungry than it was back then. On top of that bare in mind that we aren’t going to be generating any real work for our test servers so they can run on less resources than recommended.
What I’m getting at is that your home PC with a few upgrades is going to be man enough to lab most stuff. So enough rambling, here’s my minimum recommended spec:
- 1x Quad core CPU
- 16GB RAM
- 250GB SSD
You can buy that for easily under £500 off the shelf and add the SSD for well under £100. This is enough to lab out absolutely loads of stuff, you can even lab a vSphere cluster on that! For some things that need a lot of separate servers or are very memory hungry you might find yourself running low on memory. If you use your PC for gaming or other home stuff you might find the disk space an issue.
If you can afford to splash out a bit more then a better spec to aim for is:
- 1x Hex core or above CPU (to be honest an Intel quad core is fine for most situations)
- 32GB RAM (or more, a DDR4 compatible chipset if you can afford it will let you max out a desktop with way more than that)
- 500GB SSD (Or better yet multiple SSD’s)
That could cost you upwards of £1000 and will probably work out cheaper to build yourself than buying off the shelf. To take the hassle out of shopping around for parts check out PCPartPicker. There isn’t going to be much you can’t lab with that spec.
Basically when it comes to spec you are most likely going to run out of IOPS/disk space and memory so concentrate the budget in that area. CPU tends not to be the bottle neck in my experience. Remember as well that we aren’t going to get the Exchange sizing calculator out for our Exchange labs we are going to give it just enough to run, not even the minimum recommended spec.
Now you definitely won’t be buying a new server with those specs for that sort of money, at least not a branded one. A quick browse around Ebay and you can find loads of second hand HP DL360’s (G7’s are about the newest affordable ones it seems). These get sold en masse as there are data centers across the land full of em and every few years they get thrown out and replaced. By the time you’ve found one for a good price and stuck in some compatible disks and upgraded the memory you will be up to similar prices as above. The difference is you are running a noisy, hot, used piece of hardware that doesn’t exactly sit nicely under the desk and odds are you still need your home PC and will have payed for that anyway. I’d personally rather run one decent PC that doubles conveniently as my home lab.
What Software/Operating System?
The next advancement that helps make our home lab viable for the masses is virtualisation (not exactly breaking news). As we should all know by now virtualisation is going to let us actually use all that hardware by running multiple virtual servers on our PC, the average computer game isn’t going to dent those specs on it’s own.
The easiest, most affordable option here is just run Windows 8 (Pro or Enterprise) or above and install the included Hyper-V feature. For those doggedly refusing to upgrade from Windows 7 citing reasons of Windows 8/8.1/10 is rubbish I can’t help you there, I don’t really agree (apart from 8 maybe) time to accept change is a part of IT for better or worse 😛 If that little dig didn’t persuade you then I suppose you can run VMware Workstation. VMware Workstation is not free (unless you are a VCP) but it does come with some convenient features like USB pass through, better console window and better networking options. I was running VMware Workstation until recently, I just decided to give Hyper-V a go after some people suggested it would be less disk and memory hungry (I have my reservations about the memory but we will see, if we were talking ESXi vs Hyper-V in production I would laugh milk right out my nose).
A common objection to just running a Hypervisor on your home PC is “but I need to lab a cluster”. If you want to lab a vSphere or Hyper-V cluster this is perfectly possible using one PC and nesting your Hypervisors and you can use things like a FreeNAS VM to present iSCSI storage. If you want to do this I recommend VMware Workstation, I haven’t tried nesting under Hyper-V but apparently it’s possible although trickier.
I don’t really recommend running server operating systems on your bare metal for the home lab. If this is also doubling as your home PC you will find plenty of irritations running Windows Server and running ESXi is going to be a non starter for obvious reasons. On top of that I’m going to pretend you all go out and buy correct licensing and licensing a Windows Server OS is going to cost you a lot more.
What about licensing?
Buying a license for everything we wanted to lab would be prohibitively expensive to say the least. Most businesses find it prohibitively expensive let alone an individual studying for an exam.
Don’t worry we don’t need to break any laws to do our labs. Most vendors appreciate that expecting anyone to invest in thousands of pounds worth of software with no ability to evaluate it first would leave them struggling for sales. You can run evaluations of pretty much anything, Micrososft, VMware, Citrix, Kemp, the list goes on and all offer trials and evaluations of their products. Some people find expiring trials or evaluations a nuisance but I argue that re-deploying things is good for practice. The first time you deploy something you probably followed a guide so doing it again a few times on your own is no bad thing. In addition most people don’t need to run the same lab 24/7. Build it, break it, fix it, turn it inside out and scrap it to make way for the next thing you want to learn, your labs aren’t generally going to be permanent.
It’s worth also speaking to your employer as things like MSDN subscriptions entitle you to certain non-production uses of various OS’s and applications and they may be happy for you to use this as it’s to their benefit as well. In addition consider approaching some vendors for NFR (not for resale) licenses, if you blog about them or resell them then they will usually be amenable. Some certificate authorities have been known to give away SSL certificates for non-production purposes, which can be very handy for certain testing scenarios.
What about the cloud?
Yes the cloud, which is a word that between the weather forecast and confused execs wanting to backup their iThings you won’t have gone five seconds without hearing. To be more specific we can spin up some virtual machines on a hosted infrastructure of some kind and avoid hardware altogether. Take Microsoft Azure for example, we can have a months trial and Microsoft will give us some tokens to play with, the more we run and the more hours we run it for the quicker we whittle them down. Once the trial is up we can buy tokens on a pay as you go basis and a handy calculator will help us work out what our workloads should cost us.
Personally I think Azure is great but for a home lab it’s going to get a tad more expensive than a Netflix subscription so unless you’ve got the money to spare or a very short term need I’d stick with hardware. Where trials of cloud stuff do come in very handy is when we want to actually do some testing with say Microsoft Azure or Office 365. Quite frankly getting your head around all that either of those can do and how they can integrate with on premise requires you to have a play so I do recommend you take a look.
In summary we can build a perfectly serviceable home lab for under £600 (and no doubt much less than that) and that’s assuming you don’t have the makings of a home lab already. All you need is a half decent PC with an SSD and a little more than average memory, nothing more. With this modest hardware we can lab just about anything. Gone are the days of having your own server rack full of noisy, expensive hardware sucking down the electricity and making a south facing conservatory look arctic.
As always thanks for reading Building a Home Lab and I hope this has been of use to someone.