Hypervisors offer the flexibility to selectively expose a subset of physical CPU features to virtual machines. The trade-off is broader live migration compatibility at the expense of performance and cutting-edge capabilities.
In a homogeneous VMware ESX cluster, all CPU instructions in the underlying host CPU are exposed to guest operating systems. VMware vCenter Server also offers the state-of-the-art Enhanced VMotion Compatibility (EVC), allowing administrators to specify a baseline in a mixed cluster that maximizes use of most modern CPU features during transition to newer generation hardware.
VMware ESX 4 CPU Features
CPU-Z is a handy utility that displays comprehensive technical information about a CPU. Here it is running on a VMware ESX VM powered by an Intel Xeon E5540 “Gainestown” processor — a Nehalem-class CPU with most of the latest instructions, such as SSE4.1 and SSE4.2:
Virtual machines running on VMware ESX are able to take advantage of those features that are designed to improve application performance — giving you your money’s worth after investing in new hardware.
Now let’s take a look at an alternative approach…
RHEV Hypervisor: Pentium II Inside!
You probably know by now that Red Hat has abandoned Xen in favor of the more modern KVM. So how did the architects behind Red Hat Enterprise Virtualization (RHEV) deal with CPU compatibility across KVM hosts?
They decided not to expose the true underlying CPU details and advanced instruction sets. Instead, they take a more conservative approach and masquerade as an old Pentium II Celeron CPU — no pesky SSE4 instructions to deal with here:
That’s the virtual CPU presented to guests even in a cluster of identical Nehalem hosts! This is as “good as it gets” for RHEV.
Now, to be fair to KVM — the open source project on which RHEV is based — the capability to expose all physical CPU features is present, it’s just that Red Hat has not designed a suitable management feature such as VMware EVC to take advantage of it.
Red Hat claims that RHEV is just like vSphere, but cheaper (where have we heard that before?). Is it?
The Hypervisor is not a Commodity
Are you buying new hardware for your virtualization project, paying a premium for hardware with the latest performance capabilities? Keep in mind that not all hypervisors are created equally. Only VMware has EVC — and that’s just one of the many reasons why vSphere is the best platform for your Red Hat Enterprise Linux and Microsoft Windows Server workloads. Why build virtual silos in your datacenter with OS-centric hypervisors rife with compromises?
Get the best, most mature virtualization: VMware vSphere.
I think you’ll find you can specify a CPU type in the cluster settings
the first release had limited options (2*xeon and 2*amd). When I asked about this I was pointed to a article showing me how to add my own cpu types and decide which flags etc to expose to the guest
this does seem to have been fixed in the beta of 2.2 i tried, which had all the cpu types from basic xeon , core2. 45nm core2 and nehalem along with 4 opterons.
so it looks like they made this usable in 2.2
Ian, do you prefer to run betas of your mission critical apps? I’m not.
Sounds like Red Hat is making progress. However, it seems like they should have held off until version 2.2 (or 3, or 4…) before declaring RHEV to be as good as vSphere or “best in class.”
Here is screenshot http://markelov.blogspot.com/2010/05/red-hat-enterprise-virtualization-xeon.html
Pentium 2 is “good enough”. – “640K ought to be enough for anybody” (c)
Translated into russian: http://blog.vadmin.ru/2010/05/red-hat-enterprise-virtualization.html
Very cool. Thanks, Anton.
Someone knows what about this case in AMD environement ?
You may be right that only “VMWare has EVC”. Hyper-V R2 just has “Processor compatibility mode”. Exactly the same feature, though.
The features are not exactly the same. Hyper-V downgrades all hosts in a cluster to Pentium 4 capabilities. EVC is much more sophisticated.
Actually, 2.1 has 64-bit Intel and AMD with or without NX also. Pentium just happens to be the first in the drop down when you build/edit a cluster.
Incorrect, Marco. These CPU-Z images are from a cluster configured as “64-bit Intel with NX.”