Version 1 (modified by Daniel Kahn Gillmor, 10 years ago) (diff)


Transforming Xen guests into KVM guests

We have some Xen systems. They're configured in a certain way. We want to transfer the Xen guests to a KVM host, which we want configured in a slightly different way.

This page documents that process. it's a work in progress.


  • $guest -- this is the name of the guest being transferred
  • $xenhost -- this is the dom0 running the xen setup we are transferring from
  • $kvmhost -- this is the machine we are transferring to (note that this is not the same machine as $xenhost, though such a transfer might be possible for some people; that's not what we're working with, so some choices here might be different)

disk differences

Our Xen setup (via xen-tools) has $xenhost serving $guest its partitions as individual volumes. So $xenhost has them broken out in LVM directly, and $guest doesn't use LVM at all, or even see a parent /dev/sda -- it only sees /dev/sda1,/dev/sda2, etc.

Our KVM setup typically has $kvmhost serving a single volume to $guest, and $guest carves it up however it sees fit.

booting differences

Our Xen setup has $xenhost hold a kernel and initrd outside of $guest, and boots $guest into those systems directly (no bootloader, no "BIOS"-level disk access at boot).

Our KVM setup has $kvmhost pass the virtual disk to $guest, which uses an emulated BIOS to pull a bootloader off the disk, and start from there.

architecture differences

All our KVM hosts are amd64. Most of our remaining Xen hosts (and guests) are 32-bit (686). We'd like all the guests to end up 64-bit clean eventually, but a non-invasive transfer that is relatively opaque to the guest might be preferable, even if it means the guest doesn't move to 64-bits immediately.