Transitioning from XCP-NG to Proxmox
Published : Tuesday 3 May 2022
The switch from XCP-NG to Proxmox itelf has been simple, but a significant milestone in my virtualization journey and made life easier ...
Over the years, I’ve utilized XCP-NG as my hypervisor to manage my home network and lab setup. My main driver was the desire to run multiple services on minimal hardware, such as a router, media server, CCTV, smart home, etc.
My experimentation over the years with various devices and setups has focused on optimizing flexibility while minimizing power utilization, leading me to test different operating systems on a range of hardware configurations until I found a flexible solution.
XCP-NG has been a reliable companion in my setup, but it had some limitations from my perspective, so I always had my eye out for an alternative. Proxmox was the obvious choice, but it wasn’t until I swapped out hardware that I decided to make the leap.
Proxmox emerged as a compelling alternative ….
Built-in GUI / Management Interface:
One notable advantage I found was Proxmox’s integrated GUI and management interface. Unlike XCP-NG, where the controller needed to exist elsewhere, Proxmox provided a full stack on every server. This inherent flexibility and the ability to seamlessly work across all servers appealed to me.
On the topic of UI, Proxmox just feels a bit simpler, more consistent, and complete compared to XCP-NG, where I was often reaching for the command line. Not a big deal as such, but when you rarely do something and need to tweak something, it can be a real time sink.
Maybe there were ways to do this, but I just found it more easily in Proxmox, and so the UX wins for the common tasks I had.
The passthrough functionality in Proxmox felt more mature and user-friendly. Passing through disks and other hardware became a more straightforward process compared to XCP-NG, where I often found myself relying on the command line which is all well and good when you’re used to it and using it regularly but I am not.
LXC Guests for Versatility
I really like LXC guests, which are not full virtual machines but lightweight Linux containers that behave in a similar manner. I have grown to use them more than Docker as I prefer to manage all my services within a similar Proxmox “framework.” I can expose networks, hardware, carry out snapshots, backups, etc., in exactly the same way on an LXC as I can with a virtual machine.
The network abstraction in Docker just irked me, port conflicts, remapping and having to use a reverse proxy all the time just rubbed me up the wrong way. An LXC just feels a bit more graceful for my simple home setup and assinging an IP and using the inbuilt Proxmox firewall gives me everything I need faster.
There is an overhead sometimes with installing and updating services, but that intial overhead pays back by reducing down stream complexity for me.
Snapshots and backups
While broadly similar for my purposes, Proxmox’s approach to snapshots and backups felt simpler and more intuitive.
One key example is I never found an easy way to exclude a passthrough drive from a backup. In the case of my CCTV server where I have an HDD with terabytes of data passed through, including this in my virtual server backup is terrible as an approach.
In Proxmox, in the drive passthrough configuration, you can simply untick the backup checkbox and job done.
Faster / more efficient?
This is highly subjective, but I’ve found Proxmox to boot faster and perhaps be a bit more efficient. It just feels a bit snappier to get things done and faster to move around the system. That’s not to say there are not other things that have held me up, but it “felt” smoother.
The only time I have slow downs is seemingly when it has an issue with a VM which for some reason has stopped communicating properly and so it’s tasks get “stuck”.
While for the most part it has been a smooth journey, there have been a few snagging issues.
One other issue I had was with the fact I was adding nodes to a cluster but not using quorum. I only keep one server online most of the time, so if I rebooted a node and one was offline the rebooting node would fail to come up. In the end this was relatively easily to solve by setting the quorum vote count to 1 on all the nodes.
The other issue I had I think boils down to a problem with the guest operating system talking to the hypervisor. Perhaps the driver isn’t always working or sometimes crashes it is hard to say without more of a deep dive.
The main issue with this (assuming it is the problem) is that sometimes it is not possible to shutdown or restart a container and it needs to be forced. This can cause issues when other tasks are waiting on the process.
Otherwise I’ve hit on few snags.
The switch from XCP-NG to Proxmox itself has been simple but a significant milestone in my virtualization journey.
Its robust features, integrated management interface, mature passthrough capabilities, support for LXC guests, and efficient snapshot and backup functionalities have really made life that little bit easier.
While XCP-NG remains a robust platform and can do most if not all these things, in my particular case, Proxmox has just hit the mark and made my home setup a bit easier than it was, and that’s what matters for me.