X
Tech

ProxMox: The high-performance virtualization server for the rest of us

What sounds like a cross between a Ferengi mating practice and an  OREO cookie clone, but is actually the latest and greatest in Open Source turnkey virtualization servers?
Written by Jason Perlow, Senior Contributing Writer

What sounds like a cross between a Ferengi mating practice and an  OREO cookie clone, but is actually the latest and greatest in Open Source turnkey virtualization servers? It's the ProxMox Virtual Environment,  a new open source project that has been flying under the hypervisor radar, but may pose a serious challenge to the established leaders such as VMWare ESX, Citrix XenServer and Microsoft's fledgling Windows Server 2008 Hyper-V, if it manages to get past its weird name and establishes critical mass.

ProxMox isn't anything new, at least in terms of the technology it packages together -- the Kernel Virtual Machine (KVM)  hypervisor and OpenVZ virtual containers. KVM, which is integrated into the upstream Linux kernel, and supports live migration and clustering features, is packaged with a number of Linux distributions, including Ubuntu 8.04, Fedora 9 and the freshly released OpenSUSE 11. Red Hat has recently announced the first beta of oVirt, an open virtualization platform which will feature the technology, and Qumranet, the Israeli company which founded the project, has SolidICE, a commercial desktop virtualization platform under development that uses it.  OpenVZ, the free implementation of Parallels Virtuozzo containers, has been open source and available for use with other Linux distributions for quite some time.

Click on the "Read the rest of this entry" link below for more.

However, until now, nobody has gone and tried to tie the two technologies together, at least in terms of "Pop a CD into a blank server, load it up in less time than it takes to make and eat a ramen noodle cup, and start building VM's with an easy web interface, and by the way it costs you absolutely nothing" sort of way. At least not until the beta release of ProxMox VE, an Open Source project from Vienna, Austria-based ProxMox Server Solutions GmbH and the Internet Foundation Austria (IPA).

In a nutshell, ProxMox VE is a bare-metal install CD that contains a highly-tweaked version of Debian Etch that is optimized for use as a virtualization server, using a modified Linux kernel which includes all the support needed for KVM and OpenVZ. The system runs completely headless and in a light configuration -- the entire install CD is only 250MB. To take advantage of ProxMox VE, you'll want a 64-bit CPU that supports the Intel VT or AMD-V instruction sets, such as recent Core Duo, Xeon, AMD64 Athlon X2 or Opteron chips. You'll also want at least 2GB of RAM to run a few virtual machines/virtual environments comfortably.

Also See: ProxMox 0.9 Screenshot Gallery

How easy was this thing to install? I burned the CD ISO file, I popped it in the server, booted it up, answered a few questions in the installer GUI wizard, and in ten minutes I was done. Really. I then logged onto the web interface using the default root account (password "admin") and started loading VMs.

VMs can be installed in two different ways on ProxMox VE -- fully virtualized using KVM, or containerized. Fully virtualized systems can be any number of OSes that run on the Intel architecture, such as various versions of Windows, Linux, or even different versions of UNIX. Containerized VMs on ProxMox VE are limited to Linux only, and require the downloading of OpenVZ/Virtuozzo "templates" -- essentially gzipped tar files that contain a pre-installed "image" of a working barebones Linux system. Unlike full virtualization, in which the kernel and all the support files and the filesystems are completely isolated, containers run on a shared kernel environment -- the ProxMox server's Linux kernel -- and only use a small fraction of the system resources that a fully virtualized system demands. Because the file systems aren't dedicated, there isn't any issue with I/O contention and the storage isn't pre-allocated. You only use what you need to use. And because the templates are cached into the system, actual virtual machine creation occurs in less than a minute.

Unlike other Web-based virtualization UIs, such as VMWare Server's 2.0 Virtual Infrastructure Web Access, ProxMox doesn't use resource intensive back-ends like Tomcat (which VMWare Server 2.0 uses) which can bog down the system and can really slow the response time. The On ProxMox, the administrative GUI is just a bunch of Apache pages implemented in AJAX code with Prototype JS and SOAP::Lite in Perl. While it doesn't look as pretty as Red Hat's oVirt or VMWare Server 2.0, it looks clean and does the job. All of the stats are right there where you need them, and all the key functions are all within a few clicks away.

Virtual Machine setup requires uploading the ISO file or the Virtuozzo template for the desired OS thru the web interface, clicking on "Virtual Machines" --> Create and then filling out a few dialogs. It should be noted at the time of this writing, there were a number of bugs with Firefrox 3.0 with the ISO/template upload feature and I found I got much more predictable results when using Internet Explorer 7 to do this. As I understand you can also SSH into the ProxMox server itself and SCP the files over to /var/lib/vz/template/iso if you are administrating the system from a Linux-based or Mac-based machine. Additionally, fully virtualized VMs can also be installed directly from the host machine's DVD or CD-ROM drive. This is a recommended practice if your install media is in the several gigabytes, such as Vista or OpenSUSE.

In our tests, I installed fully virtualized versions of Windows XP SP3, Windows Server 2008, Mandriva 2008 and RHEL 5.2, as well as containerized versions of CentOS 5 (a RHEL 5 clone) and Debian Etch. Overall, I thought the performance of both types of virtualized environment were excellent, and it was patently obvious that the on-chip virtualization acceleration in KVM was far superior to that of either Xen-based paravirtualized/fully virtualized solutions or VMWare ESX and VMWare Server. Unlike either of those solutions, because KVM uses a full virtualization technique and really exploits the on-chip virtualization features, "paravirtualization tools" such as the ones used on VMWare and Sun xVM VirtualBox aren't required to exact full performance out of the VM.

Actual consoling into the VMs occurs using an embedded Java applet from within the Web UI which launches a VNC console window on the client machine. You can also choose to directly VNC into the VM using a different client if you so choose, but we found the built-in Java console to be pretty snappy, both on Internet Explorer 7 and on Firefox 3, on Windows and Linux clients.

ProxMox is still very much beta code, and it has its share of glitches and quirks. But I find it to be a much more usable environment in terms of raw performance and flexibility when compared with VMWare's ESX or Server 2.0, or any of the Xen-based products. And given the fact the product is free, you can't beat the price.

Have you had any experiences with ProxMox? Talk back and let me know.

Editorial standards