Alternatives to ESXi in the Home Lab

4 minute read

On Valentine’s day this year, Broadcom did what many of us expected it to do, and decapitated the free vSphere (ESXi) hypervisor.

Thanks to its appliance-like management and to no small degree its widespread use in datacenters around the world, this has been the hypervisor of choice for many hobbyists and small businesses since a long time. With this option gone, I expect to see broadened interest in the remaining hypervisor options on the market. So what are the alternatives, and what are the reasons to choose one over the others?

Virtualization on Windows

Hyper-V

I really have little experience with - and therefore little to say about - this use case. Many casual computer users start out with Windows and are comfortable using this operating system, and for them it’s good that the more expensive editions of Windows support built-in virtualization via Hyper-V. There (still) apparently exists a free Hyper-V Server product based on Server 2019, and I guess that’s a valid choice if you really-really want to run a Windows-based system for some reason, but as it’s a CLI-only product it doesn’t really require less experience than running a hypervisor on a more open operating system, and there’s definitely less of a community to ask for help and advice regarding such a solution.

Oracle VirtualBox

VirtualBox is a hypervisor intended to run on top of any of several operating systems. I’m mentioning it as it’s likely to come up in a discussion, but I would say it really falls by the side of the intended topic for this article, as it’s more about starting up VMs in a userspace environment when required than about running an always-on server infrastructure. There are people using it for the latter purpose, and it does have an easy-to-use graphical user interface, so the threshold to get started with it is very low - and it can run on top of Windows editions that don’t provide the user the ability to run Hyper-V. But I can’t help to think that anybody who tried to use it for their home servers would get tired of it and start looking at other alternatives in short time.

Native Virtualization on Linux and FreeBSD

Proxmox Virtual Environment

Proxmox VE is probably the first thing that will pop up in a discussion about turnkey alternatives to vSphere/ESXi. Out of the box it’s actually a way more competent product than the free ESXi hypervisor, with built-in and free support for datacenter and hyper-converged infrastructure style features like high availability clustering, network security rules, and distributed object storage (via Ceph). All of these would only be available via expensive additional licenses and products (NSX and vSAN respectively) in the vSphere world.

A bonus for the cost-conscious home user, is that Proxmox VE lets you set up LXC containers in much the same way you would a virtual machine. As the containers share much of their resources with the hypervisor host, they can act as (much!) more lightweight alternatives where suitable, allowing Proxmox to be useful already on truly anemic hardware.

Proxmox VE is based on a modified Debian GNU/Linux operating system and really acts as a frontend for KVM, LXC and your choice of file storage: Beside the regular Linux file systems, ZFS is a robust and good choice for a single or pair of hosts. For those with deeper pockets, Ceph is the more scalable choice if you intend to start out with a hypervisor cluster of three or more nodes, and have a robust 10GbE or better transport network for their backend.

QEMU/KVM (and optional frontends)

If you’re a tinkerer and really want to know your system - and/or customize the hypervisor server - an appliance approach to the hypervisor is less advisable. In that case I strongly recommend running a bog-standard Linux Server distribution and configuring it with KVM support packages, suitable network bridges and the file system of your choice. What you’ll end up with is basically the core of Proxmox VE without all the niceties and bells and whistles.

This is all well and good if you’re very comfortable with the command line or if you’re the kind of person who automates all the things, with software like OpenTofu or Ansible, but sometimes you just want to grab your mouse and click some icons, right?

If you have a Linux or BSD computer with a GUI, Virtual Machine Manager is a great tool that can connect to your hypervisor to give you an overview of its virtual machine load, to create or re-configure existing virtual machines, or to display the console of running virtual machines.

Although simpler, the Cockpit browser-based server administration tool can be installed as a web service directly on the hypervisor and provides a web user interface for many of the common tasks you’ll expect to perform when it comes to day-to-day creation and management of virtual machines. This of course allows you to manage your environment from computers running other operating systems.

bhyve

Again a solution I want to mention for the sake of completeness, but with which I haven’t had enough experience to really provide any useful comments. Bhyve is the FreeBSD project’s hypervisor effort, which has begun showing real promise since a while back. This really is the choice for the same kind of person who would run QEMU/KVM, but who wants to run FreeBSD as their operating system. It can be managed using libvirt like QEMU/KVM, and in addition to that there are several projects that work to simplify management of bhyve specifically, with text-based, web-based or graphical user interfaces.

Of course FreeBSD is famed for its jails system which inspired the Linux concept of containers and provides the same benefits of a largely isolated environment that doesn’t run its own kernel and therefore is much more lightweight than a full-on virtual machine.