One of the projects that I’ve been working on recently requires a lot of interaction between different systems, and in order to roll-out changes and carry out integration testing I needed a replica of our production environment. However the challenge was that it required 7 machines to replicate production.
In the past I’ve happily run a few virtual images on my desktop machine, albeit paired back to 500MB RAM each. But 7, there’s no way that’s going to run on my current desktop, even if I had enough RAM.
So I decided it was time to invest in some hardware to give me the flexibility to build larger virtual environments.
This is where VMware’s awesome ESXi product comes in (which I see has now been renamed to vSphere Hypervisor 4.1).
I won’t repeat what many excellent blog posts have already said about ESXi, but essentially it’s a small operating system which can run multiple virtualised machines on top it – by providing a virtual hardware layer to the virtual machines, it can share the underlying physical system resources out. The sweet thing about this is that you can start and stop virtual machines in a matter of seconds, and very easily duplicate machines. So on one reasonably powered server, you can run a bunch of virtual machines thereby reducing your hardware overheads.
This kind of approach is great both for business line systems and development environments. I will of course be using it for the latter.
One of my big concerns was getting compatible hardware, and not paying too much for it. After some Googling and talking to fellow geeks I settled on the HP Proliant ML110 G6. This is an entry level HP server and the base build comes with a 250GB SATA drive and 1GB RAM.
Whilst I couldn’t do much about the processor, the main two limiting factors were the disk space and RAM. Most of the virtual machines I want to create are circa 50GB each, so 250GB would run out very quickly.
Therefore I made two upgrades: I bought a Western Digital 1TB ‘green’ SATA drive (only 5400 RPM) and 8GB RAM (2x4GB).
With the new hardware in place I needed one other item – a 2GB USB stick. Yes, to make life easier you can install and boot ESXi from a USB stick, rather than take up space on your image storage drives. And the HP machine’s motherboard came with an on-board USB socket – so I simply plugged the stick into the motherboard.
I initially installed the special HP version of ESXi – supposedly it is preferable because it comes with all of the HP drivers. However after one hour of running I discovered the kernel had performed a memory dump, and after several reoccurrences I ditched it and went back to the vanilla ESXi image and haven’t had any problems since.
Once booted it’s best to assign a static IP address to your ESXi box and then that’s it – I’ve stashed mine away in the garage.
Once the server is set up you can forget about needing to be near it, as you do everything from the equally awesome (although sometimes annoyingly sluggish) VMWare vSphere Center program. This tool allows you to create new virtual machines, upload ISO images to the datastore (you’ll need these to install any software, i.e. the operating systems for your virtual machines).
So now when I’m ready, I fire up my the virtual lab in question and I can happily run all 7 virtual images on 1GB RAM each.
And when I’m ready, I can max the RAM up to 16GB!
Another useful reference: