Looking to purchase a cloud server, VM (virtual machine), or VPS (virtual private server) from a hosting provider, or even rolling your own private cloud, but unsure which virtualization you should use? Here we’ll compare the three most popular options, OpenVZ, KVM, and Xen.
OpenVZ is one of the most popular virtualization options because it’s very easy to set up, and has almost no overhead. Unfortunately, it also has a ton of limitations.
Most “budget” providers of VPS hosting use OpenVZ not just because it’s easy to set up and it’s minimal performance overhead, but because it allows “overselling.” Now, that in and of itself isn’t an issue at all – in fact, that’s why OpenVZ-based VPS hosting services are generally far cheaper than Xen or KVM-based services. The thing is, though, with it’s ease of setup and easy overselling ability, almost anybody can set up an OpenVZ server and sell VPS hosting service off it. So just because your provider claims to be “professional and experienced” you have no idea that the nodes (the large servers hosting your VPS) are configured and managed properly, which means it’s possible your service could perform poorly or crash frequently. On the other hand, if you find a great provider, an OpenVZ VPS is going to give you best bang-for-your buck.
OpenVZ has some other limitations, and that has to do with operating systems. OpenVZ shares the kernel of the host node’s OS with all virtual servers hosted on the node. That wouldn’t be a problem, except for two things: first off, if your hosting provider is still using CentOS 6 (as most VPS hosts are), it can be iffy making the latest versions of Linux run on there, and second, you can’t run Windows on an OpenVZ VPS.
Some people are concerned about security on OpenVZ, since your VPS isn’t a real “virtual machine” like Xen or KVM – it’s basically it’s own folder on the host node. However, while this might be an issue for very sensitive data, there are really no major hacks in the history of mainstream hosting providers that can be attributed to this fact, so it shouldn’t be a major concern.
KVM is what most people think of when it comes traditional virtualization – a completely isolated virtual machine. Fully isolated everything, and the host node doesn’t share anything with the virtual server. This means that you can run pretty much anything within your VM – Linux, Windows, whatever OS you want, since KVM emulates a “real” BIOS like an actual physical computer.
Unlike OpenVZ, KVM is much more difficult to set up and configure, but once it’s working, it’s far more stable and secure, since each VM acts like it’s own physical server. Sure, you can tell you’re being virtualized, but there’s no functional difference.
While OpenVZ is trivial to oversell, since each VPS only uses the resource it’s actually using that moment, a KVM server generally occupies all of the memory and disk space allocated to it the moment you create it. So, if you create a virtual server with 4GB of RAM and 100GB of HDD space (or SSD space, whatever), those resources are basically “used up” on the host node. That said, thanks to upgrades and improvements in KVM recently, it’s technically possible to overcommit resources now, it’s far less likely that your provider is doing so.
Traditionally, KVM has much more overhead, especially when it comes to storage performance, but with Virtio being standard on most servers nowadays, you can get an OpenVZ-level of IO throughput on KVM. So, if properly configured, OpenVZ and KVM will offer virtually (ha) the same performance, and with KVM, it’s going to be more consistent – with KVM, “noisy neighbors” are far less of a concern.
All that considered, while a KVM VPS is usually going to cost you considerably more than an OpenVZ VPS, you’re more likely to get a high quality service.
Before I talk too much about Xen, there is an important distinction to make between the two variants of Xen – Xen PV and Xen HVM.
Xen PV, (Paravirtualization), is closer to OpenVZ in functionality, however it does differ significantly from OpenVZ in that instead of sharing the host node’s kernel, each VPS runs its own customized kernel. Still, it’s Linux-only.
Xen HVM is closer to KVM in functionality, in that it emulates a physical machine’s BIOS, etc. and it can run Windows. However, it’s got far more performance overhead.
When you buy a Xen VPS from a mainstream or low cost VPS hosting provider, it’s very likely to be Xen PV. If you buy a particularly high-end Xen VPS or cloud server, especially if it supports Windows, it’s probably Xen HVM.
The thing with Xen is that while it’s not bad, it’s just kind of old fashioned. KVM is basically the industry’s replacement for Xen, and so Xen has no clear advantages of KVM, so whether you’re setting up your own private cloud or buying a VPS from somewhere else, I’d suggest picking KVM over Xen, because KVM is the future. Xen isn’t bad, it’s just pointless. Instead of spending extra for a Xen PV server, just buy an OpenVZ VPS, and rather than buying a Xen HVM server, just buy a KVM virtual server instead.
Conclusion: Which Virtualization is Best?
Well, there is no clear best virtualization, as OpenVZ and KVM have their pros and cons – there is only the one that’s best for your application.
For many applications, especially where the most consistent performance or absolute best security is less important than cost savings, OpenVZ is a great choice.
If you need consistent performance, unbeatable security, or need to run something other than Linux in your virtual machine, KVM should be your choice.
As for Xen, there really isn’t much of a point. KVM is the new industry standard in full virtualization. That said, Xen isn’t bad – if you get a good deal on a Xen VPS, no need to avoid it.
Wait, but How do I Pick a Provider?
If you’re looking for a VPS (or VM, or cloud server, or whatever), you have a ton of choices. Some of my favorites (in no particular order) are RamNode (OpenVZ, KVM), DigitalOcean (KVM), CatalystHost (OpenVZ, KVM), Linode (KVM), Vultr (KVM), and SecureDragon (OpenVZ, KVM). Can’t go wrong with any of those.
I’d Love to Hear Your Thoughts!
If you have any suggestions to improve this article, or have any input on OpenVZ vs KVM vs Xen, feel free to comment below!