The Linux Virtual Machine Manager makes multi-hypervisor management a breeze. From a single interface, you can manage both Xen and KVM.
There are two, open source hypervisors that really matter. KVM is the kernel-integrated hypervisor of choice for Red Hat and Ubuntu, whereas SUSE and Oracle use Xen to deploy virtual machines (VMs). While there are Xen-to-KVM and KVM-to-Xen migration tools, an IT shop may have technical or cost-related reasons to run both hypervisors.
For simplicity’s sake, you can use the Virtual Machine Manager (the /usr/sbin/virt-manager utility on most Linux distributions) to manage both hypervisors through the libvirt interface. From Virtual Machine Manager, you can start and stop VMs, change VM configuration settings, take snapshots and more. But there’s a caveat: No advanced features, such as live migration, are supported between the hypervisors.
Before you can reap the benefits of a single management interface, you must connect both platforms to the Virtual Machine Manager.
Configuring Virtual Machine Manager to manage Xen and KVM
So let's see how this works with an OpenSUSE 12.1 Xen host and a Fedora 16 KVM host. First, make sure the virt-manager binary is installed on your preferred management host, which will allow you to control VMs on the other hypervisor.
After starting Virtual Machine Manager on that host, it will automatically connect to the local hypervisor. I launched Virtual Machine Manager on OpenSUSE with an active Xen kernel, and it shows Domain-0 as the local hypervisor.
To connect Virtual Machine Manager to the KVM host, make sure the KVM host is running the libvirtd service. Then, in Virtual Machine Manager, select File > Add Connection. Next, choose QEMU/KVM from the drop-down list. You can also set Virtual Machine Manager to automatically establish a connection to the KVM host each time the management tool is launched.
After connecting to the KVM hypervisor, you'll see the different hosts listed in the Virtual Machine Manager. You now have one interface that manages virtual machines across different libvirt-based hypervisors.