Innovative Virtualization

Proxmox VE is a “bare metal” special ISO Linux distribution, that is a complete virtualization platform. It is geared towards enterprise users and designed to be installed on enterprise grade hardware. The innovation of Proxmox VE is that combines two virtual machine technologies, the KVM and OpenVZ as well as a web interface to manage everything without the need of any special client. Proxmox VE also integrates into its web interface a way to manage multiple computers in a cluster.

The fact that Proxmox can provide container-based virtuals via OpenVZ makes it ideal for extremely light-weight virtual machines.

General

Proxmox provides full system virtualization via KVM. Proxmox also can provide container-based virtuals via OpenVZ. OpenVZ allows for extremely light-weight virtual machines. For example, an Ubuntu light Hardy system can use 5MB of RAM in Proxmox where a similar fully-virtualized system used 150MB in another platform.

The management interface for Proxmox works through a normal browser. Proxmox includes a “cluster” mode which causes multiple servers can be managed from a single web page. So in one management page you can see all the virtual machines you manage, all the hosts, and migration between the machines. Proxmox can do a direct migration from one host to another. You can simply tell it to move the machine from one host to another. Online migration does require shared back-end storage of course, like NFS. If you use local storage, you have to shut down the guest. It will then sync the disc image over for you, and start the guest on the destination machine. That runs at well better than the speed of other virtualization platforms.

Installation

Proxmox VE comes as an ISO installer and is not designed to be added onto an existing OS. PVE is built on a stripped down version of Debian. PVE does not come with any graphical interface other than the web based one. It requires a “big iron” server. The server needs to support Intel or AMD virtualization processor extensions and hardware RAID is recommended. The reason for using such high end hardware is each server may have many other mission critical virtual computers running on it. If the server goes down you don’t just lose that server you lose every virtual computer that is running on it. The install is really straight forward you only need to answer a few simple questions. Everything is installed and ready to use on a single machine in about 10-15 minutes. Installing a couple of additional hosts and setting them up to act as a PVE cluster can be done in less than an hour.

Interface

PVE’s web interface is very elegant and exposes most underlying functionality of both KVM and OpenVZ. The interface is fairly intuitive but like all programs it has a learning curve. The interface gives basic information for your virtual machines, containers and for the host node. It provides stats on disk, memory and CPU usage. For the host node more advanced statistics are given that show a good overview of the host’s health and potential bottlenecks.

The PVE web interface offers an HTML5 terminal so that you can log into your machines directly from the web interface. This method works extremely well and fast.

The host node holds templates for the different types of OpenVZ containers that can be installed as well as ISO files for creation of KVM machines. PVE has a large selection of OpenVZ appliances that can be downloaded to do specific functions. Most of them are free however some like the Proxmox Mail Gateway are commercial offerings. Free offerings include Zenoss, Drupal, Joomla!, SugarCRM and Wordpress templates. You can also upload your own customized templates or ISO files. On PVE 1.1 (the latest version at time of writing) there is no way to set a description of the custom uploaded template so care must be used in creating the file name.

Create VMCreate VMCreating new virtual machines is a snap and happens in three clicks. You choose the type of virtual machine you want; either OpenVZ or KVM. Then you choose the template or ISO file to use. Then you can select how large of a disk the virtual machine is to have and set the amount of RAM it is allowed to use. For OpenVZ you can also setup the root password and network parameters. While the web interface does a good job of exposing the basics for virtual machine creation it does not allow you to do some of the more advanced things that are possible especially with OpenVZ. Fortunately if you need those settings you can locally login (or ssh) to your PVE host node and run the underlying command line tools.

The web interface also provides a nice easy way to setup basic backups. There are three types of backups that can be made. They are snapshot which incurs no down time, suspend which incurs a short amount of down time and stop which incurs the most amount of down time. Snapshot is the default and there is not a compelling reason to use any of the other methods unless a machine fails to backup. The snapshot method works using LVM to copy currently running files that are in use by the OS at the time of backup. The suspend backup method works by backing up the files that it can on a running machine then it suspends the machine for a short time to get the files that were in use at the time of the backup.

The stop method stops the machine completely and backs up all the files. The web interface allows you to schedule backups to happen at regular intervals. To make a non-scheduled backup you can use vzdump from the command line. The interface should make it easy to do a non-scheduled backup, hopefully this will be included in a future release. Backup restores are also command line only at this time, this needs to be changed as well. The backup leaves some things to be desired, I will discuss what I think needs to be added in the section entitled “Enhancements and Issues” below.

Proxmox VE Cluster

PVE can be run as a cluster. Clustering brings several advantages. The biggest is the ability to migrate your virtual machines between cluster nodes, live without shared storage. Another benefit is the ability to manage multiple servers from one unified web interface. You are able to create virtual machines from the cluster master node on any of the cluster slave nodes. If your master node fails the slave nodes are still able to function although the cluster is down so migrations will no longer be available, however the virtual machines will still work as normal.

Cluster setup is simple, it must be done from the command line though. Hopefully in future releases cluster setup will be able to be completed from the web interface. Overall clustering is a powerful tool that makes PVE greater than the sum of it parts.

PVE is a viable alternative to other products that delivers very well at a good speed and it is very easy to deploy.