If you are like many folks that have grown beyond thier normal shared hosting plan or are in need of a linux server with root access you are probably looking for a VPS. There are many VPS offerings in the market place today. So you may be wondering “what are the differences between OpenVZ, Xen and KVM“?
There are three major types of virtualization being used by most hosting providers today. OpenVZ, Xen and KVM. We will run through the three virtualization technologies and the pluses and minuses of each.
OpenVZ otherwise known as Linux Containers, is just that, a container based virtualization hypervisor for Linux. You can only run linux operations systems in an OpenVZ VPS, and you cannot make any kernel level modifications inside the VPS. The VPS’s on the host rely on the hosts kernel. One advantage of this is that it doesn’t have the overhead a true hypervisor does.
The biggest disadvantage from a client perspective that you should be concerned about with OpenVZ is that it can easily be over-subscribed unlike the next two technologies. To put that in layman’s terms, hosting providers can and do host 20+ virtual machines on a system with 12 GB of ram. Each VPS has 1 GB of ram “assigned” to it. However, not all systems use 1 GB all the time, so the system “robs Peter to pay Paul” when a VPS does need all its memory. It will allow the VPS to access its assigned amount of ram. However if none is available due to other VPS’s using it, contention can get bad and things slow down.
Xen is a bare metal hypervisor, which makes it capable of running multiple instances of virtual machines on a single host. These hosts are not constrained to the kernel of the host and for that matter do not even have to run Linux in the VPS. Xen Virtualization is capable of hosting Windows and BSD operating systems as seamlessly as a Linux guest. Additionally Xen is a very light hypervisor with a small foot print. This leave the valuable resources you need where you need it, for the guest virtual machines.
Another great benefit from a consumer perspective is that Xen cannot be over-subscribed. Each guest’s resources are allocated all the time on the host node. No sharing memory and hoping some is there when you need it! Xen supports both Hardware Virtual Machine (HVM) and Paravirtualization (PV) in the hypervisor. We personally recommend Xen VPS‘s to our clients.
Linux KVM is a virtualization module for the linux kernel. KVM requires that the host node have Hardware Virtualization extensions. KVM In my opinion is the up and comer in the Virtualization world. It is back by Redhat and they have removed support for Xen by default on Enterprise Linux 6, in favor of KVM. That being said I still don’t think its ready for prime time. It has a lot of features and is similar in certain ways to Xen, as in it supports Paravirtualization via the VirtIO framework. But it is a lot more complex than Xen’s minimalistic approach. The KVM is loaded as a module from the standard mainline linux kernel, vs Xen’s very small footprint. I am a firm believer of Keeping things simple. The more plugins and frameworks something needs to do what something else already does, it just doesn’t make good sense to move to it.
In Closing we feel that a Xen VPS is the platform you should seek out if you are a looking to upgrade from shared hosting or need a server on the internet. KVM is still to complex and OpenVZ…well, out of date.