OpenVZ vs. Xen: What’s the difference, and which is better?

We’ve written this article to provide a little insight and guidance as to the difference between Xen and OpenVZ, two very popular but somewhat different virtualization technologies. Ultimately, as with choosing between a Linux or Windows server, you will need to think about the applications you will be running to decide whether OpenVZ or Xen will be a better fit for you. Below is a brief summary of some of the key differences between these two platforms.

The slightly more reliable virtualization software is Xen, a para-virtualization platform that creates virtual servers with almost exactly the same characteristics as dedicated servers. A Xen VPS will run its own isolated kernel, load its own kernel modules, use fully dedicated virtualized memory, I/O and scheduler, and will be just as stable and extensible as a dedicated server. You’ll never know that you’re only using a virtual server — for a small premium.

OpenVZ, on the other hand, is an operating-system-level virtualization platform that works in much the same way, but provides only a thin layer of virtualization on top of the underlying OS. All virtual servers on an OpenVZ node will share the same core Linux kernel–this is why OpenVZ only supports Linux OS templates–, and, consequently, will also suffer alike from issues like kernel crashes. Despite these small drawbacks, OpenVZ is more cost-effective, easier to understand, and usually performs much better for small virtual servers, due to having the extra resources available that a Xen VPS would be using to run its completely isolated environment.

Main Features of OpenVZ Virtualization:

+ Full root access.

+ OS-level virtualization.

+ ‘Burst’ RAM and other extra resources available when nodes are underused.

+ Upgrades can be applied on-the-fly, without reboots.

+ More resources available due to lightweight virtualization.

+ Simple network and disk setup.

+ Access to most iptables modules.

Main Features of Xen Virtualization:

+ Full root access.

+ Supports Linux and Windows.

+ Better Java performance.

+ Resources (RAM, etc) are fully dedicated and private.

+ Para-virtualized Linux kernel (i.e., full isolation).

+ Direct access to loadable kernel modules.

+ Swap space.

+ Highly configurable.

If you are in doubt about which platform would be better for you, OpenVZ will most likely offer an easier-to-setup and more cost-effective solution, unless you know in advance that you will require specific kernel modules that OpenVZ may not support.

This article is also available in the VPS6 Knowledgebase: