Wednesday, June 2, 2010

My ESX server can run 1biiiillllllliiiiooonnnnn VMs

As I wiled away some of my time discussing projects with my boss we got to discussing the details of virtualization.

Most of the emails, presentations, reports...etc involved with hardware specs for virtualized environments denote, usually with smug satisfaction, that their setup can run X number of virtual machines. X being a hereto unheard of large number of virtual machines. This statistic is meant to give you a vague idea of the scale of their virtualized environment.

The deeper I dig into this colloquial specification the less meaning it holds.

A virtual machine is basically an image that you run on top of a hypervisor, such as VMWARE's vSphere, and it acts as a fully functional real operating system/appliance. This virtual machine can have any number of dynamic specifications such as number of processors, speed of processors, amount of ram, disk space...etc. You get the idea, the resource pool for each VM is dynamic not static. You can assign or limit any of these resources. So if I setup tinylinux and ran them all on low processor time and almost no ram I could fit hundred if not thousands on a single vSphere server. Conversely if I split all of the resources between 2 VMs I could only run the two of them.

So when someone says to me "I can run 40 VMs on one of my ESX instances" I always ask what the specs for the machine are. I don't care how many VMs you can run but what kind of resource pool they have and how they are configured. Tell me how many VMs you can run is about as effective as making jokes about penis size. It's all fun and games until someone gets out a ruler.

No comments:

Post a Comment