In re-developing our development environment, I needed to set up a heap of servers. The usual suspects are there - web servers, application servers, database servers, load balancers, build servers, etc. Given that I also needed a test environment and a staging environment, the the number of servers exploded.

If I was to go and buy an individual physical server for each and every instance I need then I'd need a very fat wallet. Not to mention a whole range of extra racking, power and airconditioning.

So I though to myself that I'd try out the Virtual machines that come with my MSDN subscription - Virtual PC and Virtual Server.

Virtual PC 2004 is now quite good and runs well for a client machine. Is still doesn't perform quite as well as I'd like, but it does the job.

Virtual Server 2005 is something I hadn't tried before. It also does a competent job, but it has limtiations. For instance there is no way I can get a virtual server to use more than one CPU, so if I wanted to test true performance improvements for a threaded application on multiple CPU's I need to get a box. The same seems to be true for the equivalent VMWare product - VMWare GSX Server. If this was the limit of my choices, then I'd probably stick with the Virtual Server product for now - it's not as good at sharing physical resources but, hey!, it's "free" with the MSDN subscription, and would do enough.

What I really wanted though was the ability to run a virtual server across multiple CPU's. After all, it's a LOT cheaper to spend $30K on a big end multi CPU server with plenty of memory than it is to buy 3 smaller servers, let along the number of servers I'll actually need.

So I found the VMWare ESX Server, with it's support for Virtual SMP. I must say - it's very very nice. Instead of needing a base O/S (which is required by all other Virtual systems) this installs it's own virtualisation layer (a mini OS) that handles all of the needs of the installed OS'es need. Really cool stuff.

Best of all, with Virtual SMP up and running, I can control how many CPU's my server OS'es can get a hold of. This is some seriously clever software, and fits the bill exactly.
One thing - it's not cheap. It's cheaper than 3 servers, but not 2. But when you consider that you can run up to 64 OS'es on one box, it easily pays for itself, and the configurability of resource sharing is fantastic.