I have an XEON based server which is perfectly capable of paravirtualization.
The thing is, with Ubuntu Server 8.04 and KVM I can't get the option to check "Paravirtualized server". It's grayed out and the only option available to me is "Full Virtualization".
I am using basic Ubuntu Server distribution (no kernel recompile or anything) with server-kernel installed and running: 2.6.24-24
Is there something I am missing? How can I get to use paravirtualization under Ubuntu Server with KVM?
Thanks.
Virt-manager, the program you are configuring your virtual machines with, is in very rapid development and originally written to manage Xen doms. Xen is able to do both paravirtualization and full virtualization (though I do not know whether one Xen host can do both at the same time). If you are using virt-manager to manage a Xen host, the paravirtualization vs. full virtualization choice makes sense. More so because of the fact that you can use virt-manager to manage remote Xen hosts as wel as the local machine.
When using virt-manager to manage a KVM host though, the choice between the two virtualization options is much less useful: KVM only does full virtualization, with the possibility to paravirtualize some subsystems on some platforms. That is why you see the paravirtualization option grayed out.
Ubuntu doesn't handle being a Xen dom0 very well, if at all, because of the trouble upstream is having with merging the Xen code into the mainline kernel. There are very few distributions out there, with kernels that are newer than say, 2.6.18, that handle being a Xen dom0 at all right now.
To make a long story short: if you want pure paravirtualization, you must use Xen. But that also means either patching your kernel yourself, looking for third party packages and / or documentation to set up your current distribution or using an older kernel, as found in CentOS5, for example.
If you are satisfied with full virtualization and the virtio drivers (which are paravirtualized) for storage, networking, ballooning, etc. you can use KVM.
The theoretical speed difference will likely not be noticeable.
KVM is a full virtualization solution using hardware containing virtualization extensions (Intel VT or AMD-V). No real paravirtualization as with XEN.
KVM has support for paravirtualized networking and paravirtualized block devices.
A tip is xenner which is able to run xen paravirtualized kernels as guests on linux hosts, without the xen hypervisor, using kvm instead.
first check the CPU flags in /proc/cpuinfo. If the VT flags are there, check your server BIOS for VT enabled/disabled state. If it was disabled and you only now enabled it, you need az FULL POWERCYCLE of the server, before the option actually kicks in.
And after that - KVM will provide full virtualization, not para.