VMware Cloud Community
lldmka
Enthusiast
Enthusiast

Enhanced VMotion v Cold Migration

I'm wondering if the same caveats around well behaved applications can apply to cold migration? For instance, if I cold-migrated a poorly behaved application from AMD to Intel in a Windows OS, is it possible to encounter the same problems as with Enhanced VMotion?

Specifically, do applications check the CPU features at installation (and record that somewhere) or on each startup?

PS I know that some Linux distros modify their kernel on installation based on the detected CPU features and therefore can't use Enhanced VMotion - but I only manage Windows guests at the moment.

0 Kudos
6 Replies
weinstein5
Immortal
Immortal

Cold migration is still the only way to move a VM between different CPU Manufacturers - EVC only supports CPUs from the same manufacturer -

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful
0 Kudos
lldmka
Enthusiast
Enthusiast

Understand that - but I need to know if there are applications that may not like being migrated from AMD to Intel (even using cold migration), as happens with some distros of Linux.

0 Kudos
depping
Leadership
Leadership

EVC will not work between AMD and Intel. EVC is for VMotion between two families of the same maker. (Intel -> Intel). I've personally never heard of an application that behaved badly because of a move from amd to intel or the other way around.

Duncan

VMware Communities User Moderator

-


Blogging:

Twitter:

If you find this information useful, please award points for "correct" or "helpful".

prashantprahlad
Enthusiast
Enthusiast

Good question. It depends on your definition of ill-behaved apps. If the ill-behaved application is using CPU instructions or CPU families to determine support for instructions, that might still work. If the ill-behaved application is saving this state and using it everytime it starts up, that would fail. This is ofcourse a cynical hypothetical case. We haven't come across any sane application that would do this.

A well-behaved application should still work well on a cold-migration across vendors.

About linux distros and EVC: Your statement is incorrect. Linux distros most certainly work with EVC, and work wonderfully.Irrespective of whether the kernel is compiled to take advantage of new instructions, the CPU features are determined by the kernel at boot time, and it will only use the features that are available to it - not what it is complied with.

lldmka
Enthusiast
Enthusiast

Yes, that is exactly my concern (an application saving the CPU state for use at every subsesquent startup). Glad to hear this is unheard of.

What about an application that creates a license based on the hardware (CPU) at the time? I expect the license would then be invalid after a migration to another vendor's processor?

Re my Linux statement - it was based on the following, from VMware's Guest OS Installation Guide (p 140):

During installation, many distributions of Linux choose a kernel that is optimized for the specific processor on which it is being installed, and some distributions install a generic kernel by default, but provide architecture‐specific kernels that the user can choose to install. The kernel might contain instructions that are available only on that processor. These instructions can have adverse effects when run on a host with the wrong type of processor.

Thus, a Linux virtual machine created on a host with an AMD processor might not work if migrated to a host with an Intel processor. The reverse is also true: a Linux virtual machine created on a host with an Intel processor might not work if migrated to a host with an AMD processor.

0 Kudos
prashantprahlad
Enthusiast
Enthusiast

Obviously, any claim I make about licenses based on hardware can be negated by writing one such application. I'm not sure how an application could be tied to the CPU - are you thinking of some UID for that CPU? EVC wouldn't exacerbate this problem since it merely mucks with the CPUID feature bits.

While it is certainly the case that linux kernels are complied with instructions specific to a processor, the kernel is well-behaved, and would use these instructions only if the hardware supported them. A cold migration from Intel to AMD would therefore work, but not be at optimal performance.

0 Kudos