Why a company prefers KVM to VMware and Citrix hypervisors

The article appeared on WorksWithU may be the first documented case of a company deciding to adopt KVM instead of VMware or Citrix hypervisors.

To be fair the scenario described by the author is at the lowest limit of the SMB range: a mere two virtual machines for a single virtualization host.
Yet, it’s interesting to read the reasons behind the choice to go for KVM on Ubuntu rather than VMware ESX or Citrix XenServer:

  1. Cost.  Although our virtualization requirements are minimal–we need to run only two guest servers on a single host machine–VMware would have cost an astonishing amount of money.  With features like VMware motion factored in, we were looking at a huge hit to the budget–and it didn’t help that VMware charges per CPU, not machine, regardless of whether all CPUs will actually be dedicated to virtualization.  KVM is totally free, in both senses of the word, and offers functionality equivalent to VMware motion.
  2. Ease of deployment.  Installing KVM on Ubuntu 8.04 is as simple as an apt-get.  ESX server is also easy enough to install, but having to deal with licensing adds another layer of complication that we’d prefer not to face.  KVM, of course, requires no license.
  3. Speed.  Although I don’t have hard numbers, KVM-based virtual machines definitely ‘felt’ more responsive than those running on VMware.  Our experience seemed to confirm Red Hat’s claim last fall that KVM can support five VMs for every three running on VMware on the same piece of hardware.  It was also troubling that ESX server wasted upwards of 500 megabytes of memory–without any VMs running–on system overhead, while an Ubuntu server is a considerably more efficient host.
  4. Management.  Apparently it never occured to VMware that systems administrators might be running Linux on their workstations.  As a result, Windows is the only platform on which VMware’s graphical management infrastructure is supported.  A Linux CLI client is available, but I’d like more options than that.  KVM, in contrast, can be managed via the command line, via graphical interfaces (running either on the local machine or forwarded over ssh to a remote workstation) or through the Enomaly web interface.

Be sure to read the whole article to fully understand the process that led to this choice.