Friday, April 3, 2009

Migrating VMs between hypervisors – the Theory

Lately, I have been spending an incredible amount of time migrating virtual machines between hypervisors.

There are some issues that we all need to consider. Most V2V tools do this for us, they at least make sure that the VM is in a condition that it can boot. However, what are the issues that really prevent simply copying virtual disks between platforms?
The very first issue that needs to be considered is the difference between the hypervisors themselves.

For this writing I am going to focus on how the hypervisor presents devices to the virtual machines; in particular, the boot device for the virtual disk.

The primary consideration for success when modifying the hardware under an operating system is always: will it boot after I make the modifications? In this case, will the VM boot after I move it from hypervisor A to hypervisor B.

After that, there are secondary considerations; am I able to access the VM console? Are the VM tools from the previous platform incompatible or negatively impacting performance on the new platform?

In the simplest way of thinking about this, these questions are no different than when replacing hardware on a physical PC and dealing with how the installed operating system responds.

Most of us have dealt with that scenario at some point in our career as computer geeks.

However, in this case we may be tempted to think that since things are virtual, they should just work. Hypervisors differ in many aspects. In this case, the presentation of the boot disk can be very different between platforms.

This would be analogous to removing a hard drive from an IDE controller and attaching it to a SCSI or ATA controller and just expecting everything to work.

With a windows operating system the usual result is the dreaded Blue Screen of Death (BSOD) with a 0x0000007B error. This can generally be considered a critical boot device driver problem. The operating system simply says: “whoa, where did my files go? I expected them on this controller, in this place and there is nothing there.”

It is in this place where conversion tools reign supreme.

At the same time, we might be in a situation where we don’t have a conversion tool, or can’t afford one. How do we deal with that.

In the next installment, I will take a look at three hypervisors: XenServer, Hyper-V, and VMware and look at how they present disk devices to virtual machines.

No comments: