Risky Business: Migrating VMs Between Intel, AMD Procs
One of the main benefits of virtualization is its portability -- being able to move a virtual machine (VM) containing a desktop environment and apps, for example, or a server operating system, from one physical machine to another, creates huge advantages for things like resource management and disaster recovery.
Virtualization allows this because it separates software from the underlying hardware, making it independent. But, like a college student that wants freedom yet still wants mom to wash the clothes which have been piling up in his dorm room for a month, it may not be completely indepenent. Mike DiPetrillo, a prominent blogger at VMware, stated recently that migrating a VM from an Intel-based server to an AMD-based one could cause big trouble.
Because of differing instruction sets between the chips, migrating between the two is a bad idea, DiPetrillo says, because
"Your app and your OS will crash. This can happen with VMotion and Microsoft Quick Migration. Actually anyone that does live migration will get impacted by this. There are several "user mode" instructions like this that we can't mask out at the virtualization layer."
Ben Armstrong, a program manager on the core virtualization team at Microsoft, essentially confirmed the problem on his blog, the "Virtual PC Guy's Weblog." Writes Armstrong:
"The root problem of moving a virtual machine with active processor state between physical computers with different processor capabilities is a real problem that all virtual machine migration solutions need to handle in one way or another."
Armstrong goes on to note that the same problem exists for server clusters.
"When you then try to perform a planned fail-over of a virtual machine it will be placed in saved state on the source physical computer, but when we try to restore it on the target physical computer we will detect that the processor is not compatible and will fail the request. The virtual machine can then be safely restored on a compatible system."
There is a somewhat kludgy workaround for Virtual Server that involves scripting, and changing a config file for Hyper-V.
If you're an admin with virtualization responsibilities, this is important information to know. Plan your hardware purchases accordingly; and, as always, plan your virtualization infrastructure before you start spinning out VMs here, there and everywhere.
Posted by Keith Ward on 02/19/2008 at 12:48 PM