I’ve always loved playing with virtualization. In my paid job, I deal with VMware, so it is what I have always been familiar with. On desktops, I’ve played with VMware Workstation of course, but my go-to is Virtualbox. It’s open source, free, and works great for everything I need to do.
First off, what is virtualization in the server world? Basically, you have a bare metal server with software on it that runs virtual servers. That software is called a hypervisor (Think VMware, Microsoft Hyper-V, etc). Those virtual servers are separate instances of their own operating system independent of each other. This way, on the same hardware you can run one or more Windows servers next to one or more Linux servers with their own virtual hard drives, RAM and CPUs. These are called virtual servers. One virtual server doesn’t know anything about its neighbor, even though they’re running on the same hardware. If you don’t know anything about virtualization, hopefully this is a decent basic explanation of how it all works.
VMware offers free ESXi, which is cool, and what I’ve used on my home network for some time now. But the free version doesn’t give me everything I need, namely a good, automated way to get off-site backups for DR purposes.
XCP-ng fixes that. It is an open source project based on XenServer. It has no limits or feature restrictions and is freely available for download and installation. There are paid support options as well if companies want to use this software to host their virtual infrastructure. This way they know they have a reliable source of support for a reliable piece of software.
Most of what I do on my home network is Linux based. I run Plex, Nextcloud, Apache and various other packages that run on Linux virutal machines. I do have a couple of Windows Server 2016 insider edition VMs to play with as well. These all work great in XCP-ng, and performance is up to par as well.
I run pfSense on XCP-ng as well. Security guys out there are no doubt screaming at me. If configured properly, it can be just as secure (at layer 3 at least and above) as a separate firewall appliance. This post is not geared toward security – I may do one of those at some point in the future. Suffice it to say, I have a NIC dedicated to my ISP and the pfSense VM is the only ingress point on that NIC. But I digress…
Back to XCP-ng. I have another server at the church I attend that runs a Nextcloud instance as well as pfSense and a couple of other applications. Via pfSense, I have the two sites networked via VPN. With that in place, I can use XCP-ng to reliably replicate VMs from one site to the other so that in case something happens at the site, I can bring services up and access data at the other site.
I haven’t put all of XCP-ng’s features through their paces, but the ones I need I have, and they’ve worked reliably. I’m still learning the nuts and bolts of the solution, and am enjoying it! Xen Orchestra is a web-based package that manages XCP-ng. That is the piece that puts everything together into one nice interface.
In a nutshell, the features of XCP-ng and Xen Orchestra:
- Modern web UI
- Live migration (with proper infrastructure configuration)
- Backup configuration
- Self-service for users
- ..and much more than what I can cover in this post.
Have some hardware lying around you like to play around with? Install XCP-ng and give it a try!