Red Hat went out public to say loudly about Xen and their plans about that. There is a nice virtualization introduction demo (you need Flash to see it) on their openvirtualization.com site. I have just noticed that if you change the word "Xen" to "OpenVZ", and remove anything concerning "hypervisor", it would be quite an accurate description of what OpenVZ is and what it can do for you. So I welcome everybody to see that demo.
Still, Xen is a bit different. Say, you can not load kernel modules from inside an OpenVZ VPS, or use different kernels for diffrerent VPSs on the same box — but this is possible with Xen.
That leads to the question: what if you need some special kernel module in OpenVZ? The answer is: if it is a device driver and you want to use that device from within one VPS, it is possible (look for '--devnodes' and '--netdev_add' in vzctl man page). If you want to use some special stuff like, say, iptables module, from within a VPS — such module needs to be "virtualized" first (many iptables modules are already virtualized, so you can actually use them from a VPS).
By the way, speaking of that, recently Jason Stubbs, a Gentoo developer, send us a patch to virtualize ipt_REDIRECT kernel module. His work will appear soon in the kernel and vzctl we will release next week. Nice job, Jason!
Still, Xen is a bit different. Say, you can not load kernel modules from inside an OpenVZ VPS, or use different kernels for diffrerent VPSs on the same box — but this is possible with Xen.
That leads to the question: what if you need some special kernel module in OpenVZ? The answer is: if it is a device driver and you want to use that device from within one VPS, it is possible (look for '--devnodes' and '--netdev_add' in vzctl man page). If you want to use some special stuff like, say, iptables module, from within a VPS — such module needs to be "virtualized" first (many iptables modules are already virtualized, so you can actually use them from a VPS).
By the way, speaking of that, recently Jason Stubbs, a Gentoo developer, send us a patch to virtualize ipt_REDIRECT kernel module. His work will appear soon in the kernel and vzctl we will release next week. Nice job, Jason!


Comments
First and most obvious one is density/scalability — this one was pointed above in a comment by
Second issue is manageability. Many different OSs, be it Xen domains or VMware VMs, despite the fact that they are on the same box, are still look like a separate instances from the management point of view. That means that mass management is just not possible; all those VMs and domains need to be managed separately, one by one, pretty much the same as if they were a separate physical servers. In contrast, in OpenVZ/Virtuzzo there is a single place from which you can manage all the VPSs on that box. Say, in Virtuozzo for Windows a service pack or a patch is applied to all the VPSs at once. You can migrate your VPS to another box — with latest&greatest VMware VMotion technology this is possible only in the case then SAN (network storage) is used. You can see VPS files from the host system and thus do mass management. Not possible with other technologies. Makes sense?
Third issue is resource management. You give your Xen domain 256MB of RAM and you can't really change it if your database has grown and your DBMS is hungry for memory to be used for its key cache. You have to restart it to add another 256MB -- pretty much the same way if you'd have a physical server and want to add more RAM to it. In OpenVZ, you can tune all the resources runtime, instantly — just because there is a single kernel which manages all of those resources.
Sure it's all software and thus can be fixed. Linux kernel can be (and I believe) modified to add/remove RAM during runtime, this making it possible to change the amount of RAM given to a Linux Xen domain without a need to restart it. Performance issues will be adressed (with the help of Intel/AMD guys). Xen stability will improve over time. Still, that comes with a price. Even now the size of Xen patch is about 1/2 large than that of OpenVZ — and it's still lacking a lot of features.
To conclude, Xen is an interesting technology and probably even be used together with OpenVZ (like you run OpenVZ as a Xen domain and run many VPSs in it). Still, in many scenarios OpenVZ has a clear advantage since it is just more straightforward and lightweight (in terms of overhead) than para-virtualization approach. So, both three virtualization technologies has there uses.