I used to run VMware products since they exist (well, shortly later). Back when there was VMware Workstation 1.0 in 1999. We use it at work in shape of ESX 3.5. Great stuff. Solid. Useful at home too with VMware Server (free) or for Mac, use Fusion (cheap).
That is, all was well until I updated to Kubuntu 9.10. Then things broke. Badly. VMware server kernel modules could not compile (see here and here and here). Despite the helpful fixes (not from VMware if I may comment), it was simply unstable. The web console would suddenly stop working (the VMs were fine), and maybe the console could be restarted, or maybe not. And if not, then there was nothing in the world I could do to fix this beside rebooting. Very annoying.
I waited some months(!) for a fix from VMware, but I guess when it comes to support, the free VMware Server cannot compete with the (quite expensive) ESX.
Fair enough. The kernel of (K)Ubuntu 9.10 is not supported in VMware Server 2.02 after all. Time to move on as I did not want to move back to an older kernel. I rather move to a more recent kernel.
Enter KVM. I used qemu some time ago for fun. Mostly for emulating non-x86 architectures (e.g. ARM) to run their binaries for no other reason than because I could. It’s fun to use an arm cross compiler (my NAS runs on a Marvell 88F5182 AKA Orion), and run the very same binary on an AMD Athlon Linux box via qemu. KVM, the native Linux virtualization has a lot in common with qemu. E.g. it uses the same network infrastructure, same file format, same BIOS from Bochs. KVM expects a CPU to offer hardware assisted virtualization. I had that, so I tried to make KVM work.
And what shall I say: It’s working as expected! Even has a graphical interface to setup VMs (but all can be scripted too) via libvirt. Great for the first initial creation of a VM. The graphical interface is not even close to the polished interface the Virtual Infrastructure client software ESX offers, but good enough. And it works. USB pass-through works too after a bit of Google (AppArmor, which I did not even know was enabled until then, was in my way but the fix was here). PCI pass-through would probably work, as well as live migration (AKA VMWare’s vmotion or Citrix‘ Xen live motion). I lack the equipment to do this though.
I have to admit I like virtualization in general. It’s great for consolidations, not only at work. At home it’s very useful to be able to have USB and PCI pass-through (see here for a Xen virtual server to capture video signals for MythTV). You can have one computer instead of one Linux, one Windows, or one computer booting either Linux or Windows.
With KVM I’m a happy user again. And I can even think about upgrading to the latest Linux kernel…