As I wrote in a previous post, I wanna share my conclusion about this two virtualization technologies, Xen and OpenVZ. Even if its kind of late, I still will share this conclusions with you guys. Now both of this technologies are usually used in VPS’s (virtual private servers) and small enterprise environments, well mostly Xen.

This are low cost techniques to give everyone the possibility to have a dedicated environment for work or for a web server, mail server and so on. The basic idea is the same, but within them they are totally different, because Xen is more of a physical virtualization, when OpenVZ is more of a container on already running server. OpenVZ doesn’t really create a virtual server, its creates an environment similar to a chroot environment with more flexibility and totally isolated from the physical server. Xen technology is very similar to VMware ESX, will create a virtual server, which can be managed and modified as a real server, modules can be loaded into the kernel, full iptables support, proper development environment and of course just like OpenVZ, is totally private or isolated.

The main issue with Xen is that usually is limited in hardware, meaning that when you chose a system with 256MB of memory, pretty much that’s what you get, unlike OpenVZ, which can have something like soft limit and hard limit when it comes to memory and cpu. This means that if you get an OpenVZ VPS and you get it with 256MB of memory, its possible to use even 1024MB of memory, if its available and depends on settings done by the provider. Like I said before OpenVZ is very similar to a chroot environment, in which you limit the user to a certain amount of memory, disk, bandwidth, but you also give the user the possibility in choosing the OS, packages and different settings. Both of them have root access and possibility of having users, services and static ip addresses and so on.

The main issue would be that they are kind of slow, due to a software layer which needs to communicate with the server kernel on which they reside which also then needs to communicate with the hardware. The response of a VPS is much slower, when compared to a physical system with the same specification but without being a virtual layer itself.

When it comes to Xen and OpenVZ, to compare them, Xen will have to win. First of all, Xen is more of a hardware virtualization, which means its more closer to a physical system, unlike OpenVZ, which is more similar to chroot environment or software virtualization. Other issues, in OpenVZ, would be the fact that you are very limited to what you can setup, what you can modify or even build. In all cases, OpenVZ doesn’t really support any modules and in fact I do believe it can’t even load any kernel modules, also because of this, iptables is very limited too. OpenVZ doesn’t have swap space, is using the physical system swap space, can’t have its own time server or locale, as is using the physical system’s settings, but if you need a small system for a website, with not a lot of hits, maybe a blog or company site, then OpenVZ will be able to do the job. If you need something more serious, like maybe development environment, true hardware resources, jvm servers, an e-shop, then Xen is the winner and not just, like I said, its more useful to have Xen, as the performance is in every way much better, the only issue would be that it can’t be managed using a panel like OpenVZ and can’t have burstable RAM or CPU.

Now, I know, this is not what most of you expected, but the reality is the Xen is better, its much more serious as a server and it does look and behave a lot like a physical server or dedicated server. I would say that the main difference between Xen and OpenVZ would be that, those who pick OpenVZ don’t really wanna work or do not know how to work with the console, as with the panel from Parallels they can do any job they need with a click of a button. You don’t really need to know anything about Linux or administrating a server. Xen, just like a physical server needs to be configured and setup from the console, you need to login into the server, thru the console or ssh and do everything by hand, which can be a bit of a hassle for a beginner or Windows guy :) .

Anyway, at anytime without any doubt, I would always go for Xen, well actually I would love VMware ESX or IBM LPARs, but my pocket is way to small for them :)