vSphere vMotion Processor Compatibility and EVC Clusters
In today’s economic climate it’s currently the done thing to sweat existing assets for as long as you possibly can. At the moment I am working on a vSphere deployment and we are recycling some of our existing ESX 3.5 U4 hosts as part of the project. So over the weekend I was testing out vMotion between a new host with the Intel Xeon X7460 processor and an old host with the Xeon 7350 processor. I was getting the following error message displayed which pointed to a feature mismatch relating to the SSE4.1 instruction set. Thankfully the error pointed me to VMware KB article 1993
Within this KB article it immediately refers you to using Enhanced vMotion Compatibility (EVC) to overcome CPU compatibility issues. I had never used EVC in anger and wanted to read up on it a bit more before making any further changes. A quick read of page 190 on the vSphere basic configuration guide gives a very good brief overview for those new to EVC.
So I was referred to VMware KB article 1003212 which is the main reference for EVC processor support. Quite quickly I was able to see that EVC was supported for the Intel Xeon 7350 and 7460 using the Intel® Xeon® Core™2 EVC baseline. In essence as far as vMotion is concerned all processors in the cluster would be equal to an Intel® Xeon® Core™2 (Merom) processor and it’s feature set. This basically masks the SSE4.1 instruction set on the Intel Xeon 7460 that was causing me the problem.
So I set about enabling my current cluster for EVC, however when I went to apply the appropriate baseline I was getting the following error displayed. The error related to the host that was currently running 3 Windows 2008 R2 x64 servers. These servers were obviously using using the advanced features of the Intel Xeon 7460 and as such that host could not be activated for EVC.
The vSphere basic configuration guide (Page 190) makes the following recommendation for rectifying this issue, the example matched my situation exactly.
All virtual machines in the cluster that are running on hosts with a feature set greater than the EVC mode you intend to enable must be powered off or migrated out of the cluster before EVC is enabled. (For example, consider a cluster containing an Intel Xeon Core 2 host and an Intel Xeon 45nm Core 2 host, on which you intend to enable the Intel Xeon Core 2 baseline. The virtual machines on the Intel Xeon Core 2 host can remain powered on, but the virtual machines on the Intel Xeon 45nm Core 2 host must be powered off or migrated out of the cluster.)
Now here is the catch 22, my new vCenter server is virtual and sits on the ESX host giving me the EVC error message. I had to power it off to configure EVC but I can’t configure the EVC setting on the cluster without vCenter, how was I going to get round this? Luckily VMware have another KB Article dealing with exactly this situation. The aptly titled “Enabling EVC on a cluster when vCenter is running in a virtual machine” was exactly what I was looking for. Although it involved creating a whole new HA / DRS cluster complete with new resource groups, etc it was a lot cheaper than buying a large number of expensive Intel processors. It worked perfectly, rectifying my issue and allowing me to use all servers as intended.
Moral of the story…..… Check out VMware KB article 1003212 for processor compatibility before buying servers and always configure your EVC settings on the cluster before adding any hosts to the cluster. If it’s to late and you have VMs created already, well just follow the steps above and you should be fine.


