A reader named Tom commented on my Matrix to Determine VMotion Compatibility by Processor post today asking
“has VMotion evolved at all to the point where differences between Intel chips are less of an issue than they were in June when you blogged this?? “.
It always amazes me when the virtualization blogisphere seems to be talking about the same topics, and no sooner did I finish making my comment to Tom I found the “What is Enhanced vMotion Compatibility anyway?” post from the VMGuy.
So, this post expands on VMGuy’s example using the Matrix from my June post to show how VMware’s EVC can help with previously incompatible CPUs. You decide if this is an evolution or not. Personally, I’d prefer a cluster of hosts that use like, modern hardware which all take full advantage of the latest CPU advancements. Maybe EVC is acceptable in a lab scenario, but I want all “the bells and whistles” of my processors in production.
First, VMware KB Article ID:1003212 titled Enhanced VMotion Compatibility (EVC) processor support explains how EVC works:
Enhanced VMotion Compatibility (EVC) simplifies VMotion compatibility issues across CPU generations. EVC automatically configures server CPUs with Intel FlexMigration or AMD-V Extended Migration technologies to be compatible with older servers. After EVC is enabled for a cluster in the VirtualCenter inventory, all hosts in that cluster are configured to present identical CPU features and ensure CPU compatibility for VMotion. The features presented by each host are determined by selecting a predefined EVC baseline.
The article also explains EVC’s requirements:
To use the EVC feature, you must be running ESX Server 3.5 Update 2 or higher with Virtual Center 2.5 Update 2 or higher and have only compatible processors that are listed in one of the following tables. EVC does not allow for migration with VMotion between Intel and AMD processors.
Go to the KB article to see the tables of compatible processors.
To enable EVC you have to first shut down all of your VMs in the cluster. EVC is then enabled in the properties of the ESX cluster from VirtualCenter just like HA and DRS.
In VMGuy’s post he uses the following example:
“Let’s say that the 3 hosts have Intel E5310 processors in them. You start to load up your VM’s on that cluster over the next 6 months. When the cluster is full you go back to your OEM vendor of choice, only to find that they no longer make that server model with a E5310 processor. The same model from the OEM now contains a Intel E5420 CPU.”
Looking at the matrix from my post in June (the following image) you can see that the Intel 5300 series and the Intel 5400 series are not compatible. Click the image for a larger view.
With EVC enabled you can use VMware’s “magic” to find the baseline compatibility between these CPU families and be sure that your VMs use the common denominator of instruction sets across all ESX hosts.
In summary, if the CPU families are found in the compatibility tables in KB 1003212, EVC will keep the applications on the VMs from causing blue screens because a uniform set of instructions will be available on each ESX host.
Be sure to read the KB article and VMGuy’s post in full.