Friday, December 10, 2010

V2V Conversion of a Redhat Xen VM to vSphere

I was involved in converting some Redhat Xen based VMs to VMware ESXi recently and found out that the conversion doesn't work straight away without any tweaks. So here is how we went about getting it done. Pretty simple, but just in-case anyone needs it..

1. Find and Copy the normal kernel ( not the xen-kernel, the one that is installed by default ) rpm package on to the Xen based VM that is to be converted.

2. Convert the Xen based VM using the VMware Converter like its done on any other machine.

3. Once the conversion is complete, on the ESXi host, attach the appropriate Redhat installation media ( 1st CD, DVD ) to the newly created VM cdrom.

4. Startup the converted VM with the attached Redhat installation media and boot into the rescue mode with "linux rescue"

5. Once the system boots in to the rescue mode, it should automatically detect the Redhat Linux installation and mount it in to /mnt/sysimage. Do a "chroot /mnt/sysimage".

6. Install the previously copied kernel rpm from within the chroot'ed environment, using "rpm -i". Once the installation is complete take a look at the grub.conf and see if the necessary entries have been made by the installer. -not really necessary, installer will do the job properly every-single-time! :-)

7. Exit from the rescue environment, detach the Redhat installation media and boot up the VM with the newly installed kernel.

That pretty much sums it all up. The reason why a kernel installation is necessary is, Xen kernel on a guest system is quite different from a normal kernel, and is specifically designed to run on top of a Xen Host. ( Something to do with having front-end device drivers etc.. I never finished reading up about this ) This process shouldn't be necessary for a KVM based VM, as the guests are unmodified on that platform. I have yet to try this.

Hope this helps.

No comments: