Category: "Computing"

Proxmox My New Virtualisation Server

So still no general election talk, sorry to let you down :).  So I was recently told about Proxmox, a bit of software to run virtual machines.  Now I have played with quite a few virtualisation technologies which include:

  • Virtual Box
  • VMWare Player
  • VMWare vSphere (ESXi)
  • XenServer
  • KVM
  • Proxmox

All of which have some different things going for them in different use cases and different drawbacks.  So here is my use case.  I have my own server at home, it has a small website on it, my openproject install, my source control repo, a continuous integration server, email server and various test servers.  I decided I wanted to sandbox a lot of these services into their own operating system, openproject on its own needs about a billion dependencies to be installed at the OS level (however its a good tool).  Virtualisation appears the clear choice to allow me to run all these services within their own sandboxed environment on one physical machine.


Until recently I used KVM on a Centos 6 install, this was a basic install using software RAID with Gnome as a desktop.  I installed KVM from the centos repository and the GUI manager.  I managed all of the virtual machines by using the GUI, starting VNC server on the server then connecting to it from my desktop.  This has all worked well for some years until the other day when I had a disk failure in my server, normally this would be fine I would replace the disk and all would be fine and well, however a number of things came together which made me thing twice.  I have been meaning to upgrade the server from Centos 6 for a while now, Centos 7 has been out for ages and Centos 6 is getting a little long in the tooth (although still fully supported).  Just before I got the replacement drive my boss asked me if I knew anything about Proxmox, I said no and he told me a little bit about it and I got interested.  So this is what I have:

  • A normal desktop motherboard with 16 GB RAM
  • A normal desktop case with space for 5 drives
  • 5 rotational 1TB drives
  • A load of extra network cards

This eliminates two of the options, VMWare vSphere and XenServer.  As I have no hardware RAID controllers I cant use these two, I actually really dislike VMWare for this, they charge and absolute fortune for their tools and they only work on about 6 RAID controllers. VirtualBox while very good at what it does, is more of a desktop product and feels like a bit of a kids toy to be using on a server. This leaves me with KVM on Centos and Proxmox. Lets be honest I am a nerd, you have to try the new tech out, it goes with the territory!

My thoughts?

Well initially I looked up creating software RAID on Proxmox, its not supported…. I was prepared to put it in the same box as VMWare and Xen, but then I did a little more digging and discovered that Proxmox is basically Debian Linux with some extra packages. The more interesting thing is that the packages are installed via aptitude, the standard installer for Debian, this makes it very easy to install all of the Proxmox packages on any standard Debian install. Of course Debian does support software RAID and this approach is what a lot of people use to allow software RAID with Proxmox, added to that Debian is compatible with so much hardware, if I ever had to install Linux on a shoe I would start by trying Debian.

There is one key draw back from using Debian (or the most important and positive reason conceivable depending on your perspective). Debian only ships with fully free products, and by free we mean speech not beer. So you get no Firefox (it comes with IceCat which is basically Firefox with a different branding), it also means it only ships with 100% free drivers, so some of those Realtek cards you have might not come with the drivers built in. While this can be worked around its a real pain, in this instance I want something to work, its interesting to know how it works, but I have a job, I want it to work (yes I can hear the GNU nuts grinding their teeth as a type that). Proxmox actually scores here too, as when you install the Proxmox repository it adds in a lot of the non-free drivers to enable these cards, happy days for me.

So actually onto Proxmox itself, the web interface is pretty clean and tidy, uses PAM authentication, so you can easily plug it into LDAP or something else. Its easy to see what Virtual machines are running on each host and how much they are consuming. Access to the console is provided by a mini VNC client that sits within the web application, this is all managed for you so you simply need to click on the console button to see it (though I had the odd issue with it in Firefox).

Proxmox like other bits of kit allows you to define pools of storage where backups, disk files and ISO’s can live. By default it comes with a local storage system setup in /var, so as long as you have the disk space you are ready to go straight away. The pools you can setup are configurable, so you can mount by CIFS, NFS, iSCSI, but most interestingly you can also use things like GlusterFS. GlusterFS is a project I find very interesting as its all open source, and backed by Red Hat (pretty heavyweight). GlusterFS allows you to create very large distributed file systems on pretty much any hardware, thus allowing anyone to create some pretty big systems.

Another key advantage for someone like me is the cost. I can actually afford to get a personal licence of Proxmox to run myself, something that is simply off the dial when it comes to XenServer the vSphere. This means I get product updates and patches because the system is installed using aptitude, they are delivered in the same way that main operating system patches are, very handy to keep the day to day running of the system simple. Just to make it clear, I have no objection to paying for stuff, particularly if I see it as good value for money, I never illegally download music or films, in my book that is still theft. I use Linux a lot not because I object to paying for Windows, but because for servers (and some desktop use) I consider it a superior platform. When it comes to Xen and vSphere, as an individual I simply can not justify the costs, and I really dont see how they represent value for money over Proxmox, they dont really offer me anything extra that I find useful for that massive increase in cost.

On a final note, Proxmox comes with all the things you would expect from an enterprise type system such as:

  • An audit log of all the changes made by the VM
  • Online backups and snapshots (online backups can be scheduled, and they can be written to remote servers via NFS and glusterFS).
  • Snapshots (kinda similar to online backup)
  • ACL’s on each virtual machine
  • A clustering engine

The one thing I dont like about Proxmox is the way you upload ISO’s to install the operating systems, it appears you have to upload files through the web console. Normally I would just like to drop them in a directory somewhere. I prefer to use tools like scp and wget to copy files around rather than using some web application to upload them (part of that is because its slower as it has to do the HTTP encoding). Some people have complained that Proxmox is a bit slow, but I have not noticed it, I have not done any performance benchmarking, so I cant say for sure.


All in all I am very impressed with Proxmox, it has a lot of enterprise features, its easy to install, it works with software RAID and the cost is sensible, if you have a dedicated machine I would suggest giving it a try.