If you want to set up a Linux virtualization server, Proxmox Virtual Environment (VE) is an easy-to-use turnkey solution. Under the hood, Proxmox VE is a heavily tweaked Debian 6.0 (Squeeze) x86_64 distribution that installs a web-based management interface, and has a custom 2.6.32 kernel optimized for a virtualization environment.
The graphical installer automatically partitions the selected hard disk and installs all required packages. It requires you to enter minimal settings, such as your password, time zone, network configuration (Proxmox VE uses a static IP address), and so on. After a reboot, Proxmox VE’s management interface is accessible on https://IPADDRESS:8006/. Log in with the username root and the password you have set up during installation.
Proxmox VE offers two solutions for virtualization: container-based virtualization (using OpenVZ) and full virtualization (using KVM). The former method has the advantage that it has a negligible performance overhead, but it’s only possible to run Linux-based containers, as they need to share the same Linux kernel. The latter method is also usable for Linux VMs but has the advantage that you can run any OS in it, including Windows. Proxmox VE also supports paravirtualization with KVM to improve I/O performance.
The web interface allows you to create OpenVZ containers based on some pre-built templates. Click on the storage node icon on the left and then on the “Content” tab and then on “Templates”. There you can choose a template, for instance for a Drupal or WordPress appliance. Note, though, that we couldn’t download most of these templates because they referred to old versions that aren’t stored any longer on the Proxmox download site. Of course you can always download them manually and then upload it to your Proxmox storage pool, but the versions on the website are also quite old.
The “Content” tab is also the place where you upload ISO images you want to use for your virtual machines. After this, you can click on “Create VM” to create a new KVM virtual machine, or “Create CT” to create a new OpenVZ container. For a KVM VM, choose a name, operating system, ISO file and configure the virtual hard disk, CPU, memory, and network. Then an icon for the virtual machine appears at the left. You can view the VM’s properties, start or shutdown the VM, and so on. You can interact with the VM’s console using the Java-based VNC viewer. When you create an OpenVZ container, you choose a hostname, password, the template and some resources, after which you have roughly the same possibilities as for KVM VMs. A major difference is that starting and shutting down an OpenVZ container happens instantly because of the lightweight nature of OpenVZ containers.
The basics are quite simple with Proxmox VE, but it also offers a lot of advanced functionality. For instance, you can backup and restore OpenVZ containers and KVM VMs, there’s role based user and permissions management for all objects such as VMs, storage pools, nodes, and so on, and user authentication can be done with Linux PAM or LDAP. Moreover, you can migrate your VMs to another Proxmox VE server and you can even cluster Proxmox VE to create high availability (HA) virtual machines: if one Proxmox VE server fails, all virtual machines running on it are automatically migrated to a still working Proxmox VE server node. So all in all, Proxmox VE is not only a useful solution for home users that regularly experiment with many virtual machines, it’s also worth a look for use in a small or medium enterprise.
Proxmox VE 2.0 is one of the few turnkey solutions that supports full virtualization and container-based virtualization at the same time, so you can use the best of both worlds. Unfortunately Proxmox VE has some minor annoyances such as non-existing and outdated templates, but the easy-to-use web interface and the advanced functionality make up for this.