Someone asked me what the cheapest virtual machine host home server PC is, and what virtual machine hosting software to use.
Anyone who knows me knows that I REALLY like to save money!
When it comes to virtual machines, there's basically 3 types in order of fastest to slowest and least flexible to most flexible:
1 - Ones which run on the same kernel as the host operating system (Containerized virtualization, e.g.
OpenVZ)
2 - Ones which run on their own isolated virtual hardware that rely on the host hardware's virtualization features (Hardware assisted virtualization, e.g.
KVM)
3 - Ones which run on their own isolated virtual hardware that do not require host hardware virtualization features (Hardware virtualization, e.g.
QEMU)
Containerized virtualization is very very fast, the guest virtual machines run basically as fast as the host PC. The only problem is that the guest runs in the same kernel as the host operating system, which means that a BSD container guest can only run on a BSD host OS and a Linux container guest can only run on a Linux host OS; however, on they run very fast and use very little resources.
Hardware assisted virtualization can run any guest operating system on the host PC, provided that the guest operating system runs on the host CPU. The problem is that it depends upon the host CPU providing virtualization features, many CPUs do but some do not.
Hardware virtualization can run any guest operating system on the host PC, even ones that use a completely different type of CPU. The problem is that this total system virtualization entirely in software is slower.
If you just want to run x86 CPU virtual machines on your desktop PC then you would probably want to use a virtual machine host application like
VirtualBox,
Parallels, or
MS Virtual PC. Those applications provide a convenient GUI to launch and configure your desktop operating system based virtual machines, however, you will likely want to host your server operating system based virtual machines on a dedicated server so they can continue to run even while your desktop PC is not; this is where software like
Proxmox comes in.
Proxmox makes it REALLY easy to manage hundreds of server operating system based virtual machines using both containerized OpenVZ and hardware assisted KVM. You would typically use OpenVZ to host Linux virtual machines, because it's faster and less resource demanding than KVM, and you would use KVM for non-Linux virtual machines. Proxmox has all the enterprise features that you need including live backups and live migrations, both for OpenVZ and for KVM, and high availability clustering all for the great price of... completely 100% free.
Now that the software is handled, let's answer the original question; what's the cheapest virtual machine host server PC?
If you're only needing containerized virtualization for OpenVZ containerized virtual machines then you do not need your CPU to include hardware assisted virtualization features, i.e. VT-x for Intel or AMD-V for AMD. If, however, you need hardware assisted virtualization for KVM virtual machines then you will need to choose a server which has hardware assisted virtualization built-in.
The cheapest PC that I've seen recently that fits this requirement is the
Zotac ZBOX-ID18_U which is available for less than $100:
This mini PC has an Intel Celeron 1007U CPU which only uses 17 watts of electricity; not only is the PC cheap to buy but it is also cheap to run. Despite this though, it has hardware assisted virtualization and can also support up to 16GB of RAM. So this makes for a very capable low powered virtual machine host ideal for running many non-CPU-bound virtual machine guests, i.e. ones that don't depend on having a very powerful fast CPU.
If you have any comments please let me know and if you have any other questions which you'd like me to answer for free please send them to Ben Dash at
ben.dash@gmail.com