When migrating machines using VMotion across multiple you may get the dreaded error:
Host CPU is incompatible with the virtual machine’s requirements at CPUID level 0×1 register ‘ecx’

For VMotion purposes, compatible CPUs means that source and target CPUs must have the same manufacturer (AMD or Intel) and be members of the same basic processor family (for example, Pentium 4 or Core), and have a common set of features implemented.
I’m going to try to get around this problem by enabling EVT on my cluster. 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. VirtualCenter does not permit the addition of hosts that cannot be automatically configured to be compatible with the EVC baseline.
So first we need to see what CPU’s we’re dealing with so we can determine the least common baseline to use for compatibility purposes. You can find this by clicking on the host in virtual center and examining the summary tab.

Example of L5320 Processor Type
Using this technique I quickly learn that the reason I’m receiving the error is because I’m trying to use VMotion between a ‘L5320′ and a ‘L5420′. Because these are in different processor families they have different low level instruction sets and this causees the VMotion incompatibility. To allow us to move from the 5320 processor type to the 5420 type we need to set a EVC baseline that limits the instruction set on all the hosts to the lowest type. Using the chart below I determine that I need to use the “Intel Xeon Core 2″ baseline to limit the instruction set to what is available on my 5320 host.
|
EVC Cluster Baseline
|
|||
|
Host CPU Model |
Intel® Xeon® Core™2 |
Intel® Xeon® 45nm Core™2 |
Intel® Xeon® Core™ i7 |
| Intel® Xeon® 3000 Series (numbered 30xx) |
Yes |
No |
No |
| Intel® Xeon® 3200 Series (numbered 32xx) |
Yes |
No |
No |
| Intel® Xeon® 5100 Series (numbered 51xx) |
Yes |
No |
No |
| Intel® Xeon® 5300 Series (numbered 53xx) |
Yes |
No |
No |
| Intel® Xeon® 7200 Series (numbered 72xx) |
Yes |
No |
No |
| Intel® Xeon® 7300 Series (numbered 73xx) |
Yes |
No |
No |
| Intel® Xeon® 3100 Series (numbered 31xx) |
Yes |
Yes |
No |
| Intel® Xeon® 3300 Series (numbered 33xx) |
Yes |
Yes |
No |
| Intel® Xeon® 5200 Series (numbered 52xx) |
Yes |
Yes |
No |
| Intel® Xeon® 5400 Series (numbered 54xx) |
Yes |
Yes |
No |
| Intel® Xeon® 7400 Series (numbered 74xx) |
Yes |
Yes |
No |
| Intel® Xeon® 3500 Series (numbered 35xx) |
Yes |
Yes |
Yes |
| Intel® Xeon® 5500 Series (numbered 55xx) |
Yes |
Yes |
Yes |
.
| Legend: CPU Architecture |
| Intel® Core™2 (Merom) |
| Intel® 45nm Core™2 (Penryn) |
| Intel® Core™ i7 (Nehalem) |
Now using Virtual Center I created a new cluster and and enabled the EVC Baseline for “Intel Xeon Core 2″

Create the Cluster and Enable EVC
Now hosts added to this cluster will only present the instruction set for “Intel Xeon Core 2″ to the virtual machines. One other little caveat here…. you cannot add hosts to the cluster if there are active virtual machines that are currently making use of the instruction set of a higher CPU type. So for my machine with the 5420 CPU type, because it’s machines were runing using features from a higher baseline, I had to shutdown the virtual’s before I could add it to the cluster. The host running with the 5320 CPU could be added to the cluster without shutting down the virtuals because they were only using an instruction set that was at the same level as the baseline.
References:
Enhanced VMotion Compatibility (EVC) processor support(KB Article: 1003212)