Virtual Testing - Xen Vs. KVM
Some of you might know that I use virtualization for quite some time already, usually to test other OSs and the development of EasyLFS without having to leave my working-environment, and without having to have a free partition.
On my PC I use KVM, as the AMD64 X2 in that box has support for hardware-virtualization, on the notebook I use QEmu together with KQEmu, as the Intel Core Duo lacks that support. So, more or less I'm working in the same environment, except that on my PC I get better performance thanks to the virualization-support in the CPU.
Since both of those solutions use full virtualization the whole hardware is emulated, which cuts down the performance.
Fedora, and probably many current distros include packages for Xen in their repositories. So I thought it might be a good idea to try out a new way to virtualize systems. Xen supports full virtualization and para-virtualization. I'm actually only interested in the para-virtualization part.
The disadvantage here is that the guest-OS has to be modified for this, so it's not possible to just run any OS as it is with KVM or QEmu. But since for Linux everything is available that should be no problem.
Since version 3 Xen also can utilize virtualization-support of the CPU, so that you should get the same CPU-power KVM offers, but better IO-performance since the other parts are used through special drivers.
My first test looks quite promising. I now have an Fedora 8 64-Bit on my PC, Fedora 8 64-Bit in Xen, and Fedora 9 Alpha 64-Bit in KVM. The feeling of the system in Xen is really good. In KVM it's usable, but it doesn't run really smooth. I still have to check the boot-times, also have to compare them with the host-system's boot-time, but I think also here Xen should be the winner.
Also other tests are still to be done. But I think for that I will also re-install Fedora 8 in KVM. I want the two virtual systems to be more or less the same. Fully updated default-installations of Fedora 8 64-Bit, no KDE, with a few tools that I use to compare the performance.
Things I have in mind include rendering with Blender, working in OpenOffice, photo-editing in Gimp, working with InkScape, and some other stuff.
A big advantage of Xen is that you don't need to play around with IPTables. Xen offers bridged networking, with that the virtualized system is actually on your local network. Yes, that system gets it's IP from my router, just as my real box. With KVM/QEmu I have to set-up IP-forwarding and masquerading. Not a big deal, but still something I need to take care of.
The disadvantages I currently see in Xen is that the guest has to be modified for para-virtualization, that disqualifies Xen for Windows and other closed systems. Also, but this might be related to me being new to Xen, it seems that I can only install from the net, but not from a CD, which so far disabled me from installing anything but Fedora.
Well, I'll keep you posted on how my tests are going. So far Xen really looks promising, but I really have to find a way to install other systems than only Fedora in it.
Maybe I'll even make a "xenned" version of EasyLFS. ;-)