Which virtualization platforms should I choose, Xen or OpenVZ? [closed]

Solution 1:

They are pretty dramatically different technologies. Xen provides full virtualization and varying degrees of paravirtualization. OpenVZ, on the other hand uses a container model, without any hardware or system virtualization.

OpenVZ is more efficient, from a memory usage perspective, than Xen, because the host kernel is shared across all guests. Xen provides greater separation. Xen is also historically more reliable. OpenVZ has a long-standing memory allocation bug, possibly related to memory fragmentation, which can pop up in the strangest of places and lead to processes dying unexpectedly. If you always overspec memory and don't "oversell", I believe this problem can be mitigated, but I haven't done enough experimentation to know.

OpenVZ is definitely not more friendly than Xen, in my experience. Also, the available tools (both free and commercial) for managing and interacting with Xen are dramatically better. Citrix, Red Hat, and many others have cool tools for interacting with Xen instances, and many Open Source projects have begun to integrate Xen related features. The uptake for OpenVZ is much lower, at least from top-tier vendors and projects.

That said, you've claimed your purpose is to learn...so, try them both. It won't hurt to understand how two very different virtualization technologies work.

Solution 2:

One major difference between Xen and OpenVZ is that with Xen, there is no overselling.

When you get a Xen VPS with 512M RAM, you get 512M RAM.

With OpenVZ it's all kinda smoke and mirror. The host might claim "Guaranteed RAM: 512M" and "Burstable RAM: 1G" but in reality there's no way to guarantee anything with OpenVZ. Depending on what other VPS accounts on the same server is doing, you may or may not (most likely not) get 512M RAM despite the "guarantee".

Many (most?) hosting companies oversell their OpenVZ VPS. With a 8G RAM server they might put in 16 VPS accounts each with a "guaranteed" RAM of 1G.

This is why most VPS out there are OpenVZ-based and OpenVZ VPS are generally cheaper than Xen VPS.

Solution 3:

I'm using OpenVZ on my servers (I used to run Xen before). It's not real virtualization like Xen or KVM. OpenVZ is runing multiple isolated instances (containers).

It's much easier to maintain, and performance overhead is near zero.

If you want to use OpenVZ and Ubuntu, use 8.04 LTS because there is official OpenVZ kernel image.

Solution 4:

We are generaly using OpenVZ in our hosting solution, because it's easier to maintain than Xen solution. But if you need to host something different than linux, then OpenVZ is not your choice. I can advice you an interesting project pve.proxmox.com This project uses KVM ans OpenVZ to provide full variaty of service, you can host non-Linux OSes under KVM ans Linux OSes under OpenVZ. And It's very easy to start with it, cause it have "Baremetal installer", that works from the box.

Solution 5:

OpenVZ is not full virtualisation, you're only running one kernel that's shared between all VM's. It can be a good way to consolidate multiple hosts that share the same OS, but it's not a general suolution.

Apart from Xen there's also KVM which is maturing quickly, if you're willing to base of 9.04 then you could consider it production ready.

Lastly Sun's VM platform is maturing and could also be an option.

If you want simple, full, windows capable virtualisation the free VMWare ESXi is still the best way to get it.