views:

601

answers:

4

As we grow more and more dependent on virtual machines to run our autobuilds, web servers and backups we are considering consolidating virtual machines on a single physical machine. We are a Windows shop and would prefer to stay that way (at least in terms of our server architecture). If I wanted to host two virtual machines - one of which was running a little-used web server and one of which was running an often-used build platform (we use Team City and the virtual machine would be one of the build agents), what hardware would you recommend for the physical host machine?

Should I focus on memory? If so, how much? Will more CPUs make a noticeable difference in performance? Any other thoughts on the matter would be good.

I'm also curious about your experience with hosting multiple VM on a single host. How many do you recommend hosting? How many is too much?

+4  A: 

I have been at clients where the consolidated 100 servers down to 4 VM boxes. (Lots of CPU's, 16 or 32GB of RAM per box).

VMWare, XEN, and its ilk are really doing a great job in the data center. With VMotion and the ability to move running VM's from one server in a cluster to another, you never need to see hardware related downtime again.

For your simple case, you could probably use the bigger of the two existing boxes you already own, max out the RAM to what the system will support and do ok.

Realistically, if you get a 4 core box, with a spare socket, in case you need to add more performance later, and as much RAM as you can afford (figure enough real RAM for each server, and then some extra) you should be good to go with your two servers, plus have the ability to start test VM's for development and testing as the need arises.

As noted in a later answer, separating disk is a great idea. At bigger sites, direct SAN connections for the VM server is critical. In the example of this specific question, that is a scale that is out of the question. (SAN for two servers? Come on!) But definitely try to get as many physical spindles out there, and dedicated to boxes that need the disk performance.

geoffc
+1  A: 

On CodingHorror, Jeff recommended concentrating on separate harddrives for each VM

http://www.codinghorror.com/blog/archives/000714.html

Lou Franco
+1  A: 

Lot's of memory and multiple hard-disks. It's a good idea to have the virtual machine's hard-disk images on a separate hard-disk from your host os, especially for disk-intensive stuff like running a build server.

Mendelt
+3  A: 

Your virtual host hardware needs to be the sum of your current utilization plus ~10% for overhead (ballpark figures).

If you're barely touching one server, it could get away with being a single CPU machine with 1 gig of RAM, maybe.

The heavier server that currently has 4 CPUs and 8G of RAM should have the same assignment under virtualization - the math really is pretty easy :)

warren