XCP-ng or Proxmox
Most Ryzen motherboard don’t have a remote console, so I’m using a Silverstone case with a built in LCD monitor. I also have a small 10″ LCD monitor as a backup. Unfortunately both these monitors fails to work when I tried to install Proxmox. The Proxmox install must be running in full 1920x1080 or higher resolution, something that isn’t supported by my monitors. After an hour trying to coax a working VGA mode, I decided to just lug my FHD 16:9 monitor and connect that straight to the server instead. In my opinion Proxmox should use a standard 800x600 resolution when running it’s GUI install, or better yet, have a text mode install!
Anyway, unlike XCP-ng, Proxmox just boots into a normal text console. Luckily this text console works on my built in LCD.
Glad to know the kernel (5.3.18-2-pve) support some sensors on my motherboard (default XCP-ng kernel detected none).
Now it’s time for configuration. Although there’s lots of documentation (there’s a bundled HTML, PDF admin guide, and a Wiki). There are gaping holes and require a lot of digging to find out how to configure things a certain way. As an example, how do I setup a open vswitch with jumbo frames?
Any configuration changes to Open VSwitch will require a reset to take effect. Other than rebooting to get a new kernel running, I do not recall doing anything like this in the Linux ecosystem, ever. Sure this is very common in Windows administration, but this is certainly a first for me in Linux.
Then there are weird LVM errors like this:
I gave up on HDD and move on to a SSD, and this problem has just gone away.
Backups on XOA is impressive. This feature appears less impressive in Proxmox. Although the times to perform a full backing of a VM is similar, Proxmox can only perform full backups and not incremental backups like XOA. On XCP-ng, my backup strategy can be 1 full backup on Sunday, and incremental backups every day else. This strategy allow me to restore the VM to any day of the week. This cannot be done in Proxmox. I had to do full backup every day to accomplish the same outcome (Extra costs of additional storage space and I/O).
There is also a very big problem with I/O. When restoring backups (or migrating storage VMs), the process is so I/O intensive it literally kill any VM running on the same local storage (I am using LVM thin provision). During the course of evaluating the two hypervisors, I had to perform multiple restorations, and I do not recall my other VMs to freeze when doing a restoration on XCP-ng. But restoring a backup will cause problems when I’m in Promox.
Audio is supported in VMs. Now this is probably unimportant to almost everybody, but it’s really an important feature to have for Snakeoil development.
Proxmox offers two ways to access your console - SPICE or VNC. For graphical environments I prefer SPICE, it is a pleasure to use. The console experience of Proxmox is certainly a lot better than XCP-ng and I do not experiment the same latency problems with GUI desktops on my slow Internet connection. SPICE and VNC are supported across Mac and other OSes so one is not tied down to Windows. This is a big win over XCP-ng.
Web administration is integrated so you do not need to install an additional VM for this. Cluster works fine (Tip: Setup your cluster before you create your VMs). This is the only tool you need to administer your cluster as everything can be performed from this one web app (the only time I go into the CLI is when I need to manually kill a running VM).
The second best feature of Proxmox is firewall. You can set this up on the Datacenter level, the Host level, and down to each VM. This is still something I’m struggling to perfect and I still not entirely sure if I understand the implementation correctly (remember the gaping holes in the documentation? This is one of them). I’m still trying to resolve a situation where a firewalled off VM cannot communicate with another firewalled VM. It is still at the early stage but I hope to eventually crack this soon.
What is the best feature then? For the most part, it’s possible for me to live migrate VM across different CPUs. The default virtual CPU is KVM64, and so far the instruction set of this virtual CPU is common between my Ryzen and the Xeon. This is an excellent feature to have if you’re running a mixed host environment. I know this is not recommended, but sometimes it is what it is.
Unlike XCP-ng, Proxmox is equally suited for both console only VM and graphical VMs. You can also run containers (I assume docker?) directly without a VM first (I’m still undecided if this is a good thing or not).
Comment from: JJ Visitor
Thanks. I was wondering which one to use and your article helped me a lot.