vMotion between AMD & Intel

UPDATE: It seems Virtual Hardware 10 VMs will NOT vMotion even with the below done, might want to hang on to v8 for now if this is something you want to do.

Its always been said that you can’t vMotion VMs between very different processor types.  In fact w/o enabling EVC you can’t vmotion between even different generations of processors, let alone between AMD and Intel processors.  This isn’t really true, well mostly anyway.  There are certain parameters you can set in vCenter and sometimes the VMs that will allow you to actually do this vMotion.

I must state that this is in NO way supported by VMware at all, in fact if you ask their support teams to help you do this they will tell you its impossible since the CPUs aren’t really virtualized and are passed through to the VMs.  Please do not do this to your production systems or at least to anything really important, there are weird bugs.

In my home basement lab i have an AMD Opteron 2350 server and my newly aquired Intel L5520 based boxes.  These are running vSphere 5.5 U2.  I wanted to use the AMD box since it still has a decent amount of RAM and cores, enough for some management servers anyway.  I wanted to be able to vMotion VMs w/o powering them off to move them, that’s just annoying.

In order to allow me to do this i enabled two advanced options in vCenter.  The first was config.migrate.test.CpuCompatibleError  this was set to false.  In addition i set config.migrate.test.CpuCompatibleMonitorSupport also set to false.

Now this allowed me to actually vMotion most of my VMs with nothing more then a warning in the “Migrate” wizard dialog.  There was not a bit of hiccup on these VMs, sweet!!  However, not everything was roses, some of my VMs required hiding the NX bit or even doing some custom CPU masking.  Here is the VMware link to do the custom masking. VMWare CPU Masking

One thing i did notice is that some machines actually played nicer when being moved from Intel to AMD.  The VM would use various AMD bits but not the Intel.  This was the most frustrating on my Horizon View Connection Server.  Now, I could go and mask each feature on these VMs, however i just made it easy and disabled DRS on that VM, and used the Intel as the primary host and it would only move to the AMD if there was an HA event or i needed to do maintenance.

Leave a Reply

Your email address will not be published. Required fields are marked *