Server Virtualization with Proxmox on an Intel Atom
Let’s be honest, no one is going to promote doing this.
But I wanted to run a development server in my bedroom — I want something silent and something that run 24/7 without being noticeable on my electric bill. It is only going to be used in development so it doesn’t need too much processing power, just the ability to run a handful of VMs with minimal load.
I’m running an Asus EB1033 – Intel Atom D2700 (4 x 2.13ghz – but is really a dual core) with 4 GB of DDR3 1600 ram. It pulls about 40 watts of power ($0.12/day in power = $3.60/mo) and its fairly quiet.
I chose the open source Proxmox as a “bare metal” virtualization. Unlike programs like parallel desktop, vmware player or virtual box that runs ontop of a host OS, a bare metal virtualizer has no host OS wasting/using resources.
Some Things to Note…
Atom chips don’t have visualization extensions so it isn’t very optimized to run “standard” visualization.
Atom chipsets have pretty poor driver sets, they normally work with only one version of windows (normally win7 32-bit). Don’t expect wifi and sound drivers to work well or at all for that matter.
You are limited to 4GB of ram, which on a visualization server, is only 7 development servers with 512mb of ram each. (its not 8 so the hypervisor has some base memory to use to manage the 7 VMs) It would be nice to support 8gb or 16gb of ram to give the VMs more room.
Inside proxmox you can do two separate virtualization – OpenVZ and KVM. For linux based virtual machines, the openvz is a great solution that runs a single kernel for both the bare metal proxmox and the virtual machine to share resources. And if you want to do a custom builds or windows virtual machine, KVM is another type of virtualization. That being said, you can’t run KVM (which is really QEMU) VM without processor visualization extensions with any reasonable performance. A test windows XP install took hours to get through and was unusable. That being said, OpenVZ containers worked seamlessly. It is not a terrible setup, but only if you want to virtualize linux servers.
The downside of using openvz containers is that you can’t just download a linux iso and build a VM. You need to build a container that uses the same kernel as the bare metal virtualizer uses. Built in to proxmox is the ability to download prefab turnkey linux containers but so far I’ve had a lot of issues with them. They won’t be setup quite the way you would do a from scratch build, but I had lots of issues getting passwords and the applications to even run.
In the end, I wish I stepped up to an AMD A10 chip. It is around the same power and size (mini-ITX) footprint and would have a lot more virtualization power.