Switching to XCP-ng

October 30, 2024

Intro

Once I started to dive in to the homelab world, I realized I “needed” a virtual machine (VM) server. I wanted to be able to section services off to different VMs and also have certain service on different VLANs. I didn’t want a bunch of mini PCs laying around, so I went for a single large-ish server that would run Proxmox and manage most of my services. I enjoyed using Proxmox, and it worked well for most of my needs. I kept hearing about XCP-ng though and was very interested. I tested it out and ultimately switched over.

Why the switch

My initial reason for looking in to XCP-ng was just out of curiosity. I had a few issues with updates in the past with Proxmox but nothing major. I decided to install XCP-ng on an old laptop just to test out the interface and options. I immediately enjoyed the interface. Setting up the open source version of Xen Orchestra (XO) for management was interesting. I didn’t have any major issues creating a few VMs and the options were easy enough. Storage is handled a little differently that Proxmox, and XCP-ng doesn’t seem to be as ZFS friendly. I’m not using ZFS, so this wasn’t an issue for me. Creating backups seemed to be a bit easier. I also tested out moving backups to a new server install. Once the backup destination was attached to the new install, restoring the backup couldn’t be easier. In general, I just enjoyed using XCP-ng more than Proxmox and decided to make the switch. In theory, XCP-ng should be a little more stable than Proxmox but only time will tell.

Install and setup

I used a small SSD to run the base system install of XCP-ng. During install, you can select the drive to use for an SR, which is where your VMs will be stored. I used a 1TB NVMe drive for my initial SR. After the installation is complete, you can navigate to the IP address of the server, and you will be presented with a very basic interface. You can’t manage VMs from this interface (although XO lite is coming soon), but you can install the Xen Orchestra Appliance (XOA). This is a paid piece of software, but you can use it temporarily to setup a a VM (Debian server in my case) to install the open source version of XO. Lawrence Systems has a good post about this, and there is a script available on Github to automate the install of XO open source.

A few quick notes for things I ran across. If you’re adding a new disk to be used as an SR, but it has been used in a RAID setup previously, you’ll need to remove the RAID flags before it can be added. This can be done using wipefs -a. Also, if there are some VM disks that you do not want to be part of automated backups, you can exclude them by preceding the disk name with [NOBAK].

Conclusion

So far, I am enjoying XCP-ng very much. As I stated earlier, there was nothing necessarily wrong with Proxmox. I just wanted to try something different. For me, the interface is much more intuitive, and I decided to move over to XCP-ng.