Coming up with the selection criteria for your organization is an important early step in implementing virtualization, and specific differences between the hypervisors may matter more to you than others. In general, the processor, memory, and I/O maximum values in the chart will tend to increase with newer hypervisor versions, so these will only be primary selection criteria if you have applications that require configurations close to the stated limits. For example, an application that requires >128 GB virtual memory would knock XenServer out of the running.
However, there are some fundamental differences between the hypervisors that may be critical for your organization, and that are not as likely to change as quickly as upper resource limits. These areas are:
Host Hardware Compatibility:
If you already have hardware you would like to repurpose for virtualization, or if you have contracts with specific vendors, check the hardware compatibility lists (HCL) for each of the hypervisors you’re considering. Hyper-V and RedHat HCLs are about the same as the HCLs for Microsoft and RedHat servers, while VMware is a bit more restrictive, and XenServer is even more limited.
Fault tolerance (zero downtime high availability):
In a previous post, I discussed the differences in VMware between Fault Tolerance (FT) and High Availability (HA) configurations – basically, an FT configuration maintains a separate, synchronized instance of a virtual machine (VM), and switches over to that VM if the first instance is unavailable, while a HA configuration boots up a clean, new instance of the same VM. An FT configuration minimizes downtime, but if the original VM goes down because it was corrupted, the failover VM will be corrupted as well. A HA configuration has a bit more downtime, but provides a clean VM after failover. Whether you require HA or FT will be a function of the applications being virtualized, the cost of their downtime vs. the cost of synchronizing a space VM for a FT backup, and whether other mechanisms (clustering, load balancing, etc), can be used to offset downtime.
Guest OS versions:
For some organizations, this may be a critical factor. If you have to support a legacy application on an older OS, you need a hypervisor that supports that OS – newer versions of Windows or Linux will be supported as they are released, but older ones will not be added in. Similarly, if you need to support guest OS versions other than Windows or RedHat Linux, make sure that your hypervisor supports them.