There is no clear winner here. There are breaking features on both platforms so it’s a matter of choosing your poison. Promox is the clear winner for certain things (integration, GUI VM), while XCP-ng is champion on others (Backup).
With the exception of backup and disk migration, every other feature I use is just better on Proxmox. However XCP-ng do not suffer from the I/O of death of when performing I/O intensive tasks like disk migration and VM restores. This is a breaking feature (unless you also SSH into your host and ionice every time you do this).
Having a host firewall can be useful, but I have yet to get this working the way I want it (not entirely sure if this is user error or a bug). I reckon one can setup IP tables on XCP-ng, or even internally on the VMs to get similar results.
Memory usage Proxmox may be more aggressive than XCP-ng, but this is still early stage for me.
Xen Orchestra is fantastic
Flexible backup options
Intutive, no need to refer to documentation
No audio emulation
Problems with occasional network throughput
Not suitable if you run a lot of graphical VMs, or in mixed host environment
Needs both XCP-ng and Xen Orchestra for full administration
Live migration across hosts with different CPUs
Integrated web interface
Good stable performance, no known network throughput issues AFAICT. Excellent GUI experience via SPICE
No need to reboot after an update (unless it is a kernel update)
Supports audio emulation (ICH9 Intel HDA, Intel HDA, AC97)
Built in firewall
Container (LXC) support
Make sure you have a FHD screen for installation
Do not like to number my VMs
Lots of got’chas for first time users
Cannot configure Open VSwitch without a reboot
No qemu guest agent port to FreeBSD (only experimental at this stage)
I/O problems when restoring backups or migrating disks on local storage
For the home lab, go with Proxmox. The call is harder to make for businesses, it will have to depend on the use case. In my opinion both solutions are viable alternatives to VMWare ESXi, especially if you are running older hardware.
Deprecated: mb_strrpos(): Passing the encoding as third parameter is deprecated. Use an explicit zero offset in /var/www/snakeoil/inc/_ext/_url_rel2abs.php on line 157
Comment from: JJ Visitor
Thanks. I was wondering which one to use and your article helped me a lot.