I have been meaning to write this for a little while but have been trying to find the time to sit down and think it through so that it might be of benefit to someone.
The history behind this article is that I get asked quite a bit both via this site and indeed from work colleagues on how I prototype the Exchange subject matter which I either put into practice in work – or – that appears on this site.
The reply to which is that I have a test lab at home ~ which I know I number of you will either have access to in work or like me have the same at home – but the purpose of this article is to give an overview and suggest some ideas to folks whom do not.
The history of my home lab started 4 years ago as a pile of parts from old computers that I have had over the years stored in a box underneath the bed.
The inevitable happened and my wife gave me the age old ultimatum that blokes get “Are you ever going use that pile of crap – or can I throw it out!”
Of course that put me on the spot and I boldly said (aiming to protect my beloved computer parts collection) “I need this for the web site that I am going to create, as I need a test lab!” – of course I got “that look” – as men we all know the look that I refer to” which told me in no uncertain terms that I had now to do something with it .
Thus the first version of my home lab was born (little did my wonderful wife know that her ultimatum was about to turn into a strategic advantage for me – e.g. I had to buy some stuff!!!!
Anyhow I am sure that that is enough of my martial situation – I am sure that you are wondering how this article can benefit you.
There is a serious side to what I had said to my wife; in essence I did not have (at that time) access to a test environment in work and of course I was embarking upon my first blog – so I did need some place where I could test the ideas or indeed the problems that I came across.
Of course extrapolating this concept to the here and now; it is always best practice with any type of system (especially Exchange) to have some means of testing changes that you intend to put into production – and indeed that test environment / lab should be as reflective as possible to your production environment – however this is slightly straying off into the differences of Production / Test and Train but the concept is the same – you should have someplace where you can do things that you would not try in Live.
The main purpose of a home lab I have found is for personal development, rather than bettering your company’s technological ambitions but you should also recognise that the two can be intrinsically linked with online community participation – a problem that you find in work, can be researched at home and used to gain better knowledge of a product such as Exchange and then be passed onto the wider online world – as indeed a problem discussed in the technical communities can benefit you in work and at home.
I call this concept (and I do not to any degree claim to have copyright on this) the Development Virtuous Circle – which I have graphically represented below:
The point of which being that by having access to a lab at home you can develop your own personal understanding, enhance your work, give to the wider technological community and have all of that repaid to you.
Ok, I have perhaps babbled enough now – you are probably after the “meat and potatoes” of the article – how can you setup an effective Lab at home for as little cost as possible?
Well I will be breaking this up into the following sections:
- Virtualisation Software (VMWare, Hyper-V etc) – in my Lab it is VMWare Server 2.0.2
- Virtualised Applications (The Microsoft Apps that you might wish to use in the lab)
The perception is that this can be one of the most expensive aspects of running a home lab – especially if you plan on prototyping Microsoft products and depending on the method that you choose can represent an annual cost.
Many people think that it is prohibitively expensive to kit out your lab with software – but sometimes (this is not meant to be a sweeping statement) people overlook the obvious – you can build your Hosting Virtualisation platform AND run your prototyped applications for FREE!
How? well some of you will probably already know – but the following is how you can achieve low cost / no cost virtualisation:
- Windows XP Professional x64 (can be purchased for a little as £80) – or alternatively you can use Ubuntu (Free – & there is a download of VMWARE server for Linux) – the great things about Windows XP Pro is that you can get a base memory load of 320 MB from boot – which means more RAM for you home VM’s
- VMWare Server 2.0.2 for Windows [ or Linux] (free download from: http://www.vmware.com/products/server/) [ Requires Registration ]
Now you might be thinking – how do I use Microsoft’s applications for free in my lab? – well there are two solutions – according to your budget you will need to make the choice which suites your needs the best:
Microsoft provides trial versions of ALL its major versions (Exchange, Windows, SQL) for periods of up to 120 days for evaluation. If you are on a tight budget and working on small scale evaluations of products it is possible to prototype these during the 4 month trial period.
When I was making use of the trial downloads and needed multiple Windows servers I would create one in the lab and SysPrep it – I could have a network of 4 servers running in about 2 hours which could then be used for months.
Many of you will be aware of TechNet subscriptions.
A few years ago a TechNet was in the price range of companies only rather than individual consumers – however Microsoft has worked hard over the years to reduce the cost of a subscription to around the following (prices quoted direct from MS and exclude if you have a promo code):
- TechNet Standard £134
- TechNet Professional £234
- TechNet Professional with Media £402 (Personally I would not opt for this one unless you have a low end capped Broadband connection)
You would be surprised how little you can pay to build a home server – but it still remains potentially the area of largest expenditure.
Whereas my home server does not resemble the one that I described in the introduction to the article (aside from the chassis!) – over the years it has evolved in a very cost effective way.
One the key things to remember is that you are not looking for the same performance or high end availability from a home lab that you would expect in production – you are looking to be able to get the most amount of machines running at an acceptable speed which allows for you to test the concepts that you wish to work with – so you do not need to go out and buy the latest N+N fully redundant beast to sit under your stairs or in my case as a foot rest!.
For example the specification of my home server is as follow;
- MSI P43 NEO Motherboard
- Single Intel Core 2 Duo E8400 3GHz with EMT
- 8 GB of DDR 5300 RAM
- NVIDIA GeForce MX 440 AGPx8 Graphics Card
- Single Internal 40GB Drive (as the System Disk)
- Internal DVD ROM drive
- 400 Watt PSU
In terms of storage I make use of the following External USB 2.0 Disks for the storage of Virtual machines;
- LeCie 700GB
- Seagate 1TB
- Seagate 500GB
All of the above I popped into a case that I had laying around and cost me about £500 (including the external drives – which these days are rapidly becoming so cheap they can be regarded as disposable items).
On the above hardware I can run around 7 concurrent Virtual machines at an acceptable level of performance if you adopt the following tactics:
- Domain Controllers in a lab environment do not need great levels of “horse power” therefore even if your DC is Windows 2008 you can run it with a single VCPU and 256 MB of RAM
- Machines which are are not actively working on in the VM infrastructure – reduce the RAM allocation (for example CAS Servers / HT’s)
- Consolidate roles to a single VM (for example combine HT, CAS and MBX) where possible
- Only power on servers that you need at the time to test something
As an example I have provided some screen shots of my home lab environment running 6 machines concurrently to the following specification:
- x 1 x64 Windows 2008 Domain Controller
- x 1 Exchange 2007 CCR Cluster ( x 2 Nodes running Windows 2008)
- x 1 Exchange 2007 Basic Server (MBX, HT, CAS)
- x 2 Exchange 2010 Servers (running Window 2008 R2)
The screenshot below depicts the 6 virtual machines that are running concurrently;
The following is an output from the Task Manager on my home lab host – you will notice that there is still room for at least another VM running – the CPU load is a result of a spike during the screen shot – normally this runs at around 25 – 30%:
Total Costs (on a budget)
Ok, so if we gather all of the above together you could be looking at around £580 (around $906 USD) for a test rig – this would include storage and a TechNet subscription. In terms of investment I think that this is quite reasonable considering the tangible returns that you will make from a self knowledge point of view.
I hope that this will give some of you some ideas should you be considering a test lab; and of course I would be more than interested to hear suggestions from others on their own setups.