08/09/26 Returning Proxmox to a Standalone Node¶
I originally built a small Proxmox cluster with:
pvepve2- a Raspberry Pi acting as a qdevice
Over time, the setup changed. pve2 was decommissioned and repurposed as an Ubuntu Server machine for Ollama, leaving only pve as an actual Proxmox node.
At that point, keeping pve clustered no longer made much sense, so I returned it to standalone mode.
Initial State¶
pvecm status showed that only one Proxmox node was online, while the qdevice was still providing an additional vote.
The old corosync.conf also still contained pve2, even though that machine no longer ran Proxmox.
There were also some old VM and LXC configs under:
/etc/pve/nodes/pve2/
Before removing anything, I backed up the old node configuration and the main Proxmox configuration database:
/var/lib/pve-cluster/config.db
Removing the Cluster Configuration¶
I first stopped the HA and cluster services:
systemctl stop pve-ha-lrm
systemctl stop pve-ha-crm
systemctl stop pve-cluster
systemctl stop corosync
With the cluster services stopped, I backed up config.db.
I then started Proxmox's configuration filesystem in local mode:
pmxcfs -l
This allows /etc/pve to be accessed without relying on Corosync or cluster quorum.
I removed the old cluster configuration:
rm /etc/pve/corosync.conf
rm -rf /etc/corosync/*
Then removed the old pve2 node directory:
rm -rf /etc/pve/nodes/pve2
Finally, I stopped the locally started pmxcfs process and returned Proxmox to normal operation:
killall pmxcfs
systemctl start pve-cluster
Result¶
Afterwards:
systemctl is-active pve-cluster
returned:
active
while:
systemctl is-active corosync
returned:
inactive
Only the remaining node was present under:
/etc/pve/nodes/
and all existing VMs, LXCs, and local storage were still available.
The main thing to remember is that /etc/pve is managed by pmxcfs, so returning a Proxmox node to standalone mode is not just a case of deleting Corosync files while the system is running.
Removing the QDevice from the Raspberry Pi¶
With Proxmox back in standalone mode, the Raspberry Pi was still running the old Corosync qdevice service.
The Pi had previously been used as the third vote for the two-node Proxmox cluster, so I first checked whether the service was still active:
systemctl status corosync-qnetd --no-pager
It was still running and listening on port 5403.
I also confirmed that the only related package installed was:
corosync-qnetd
and that the old cluster certificate files were still present under:
/etc/corosync/qnetd/nssdb/
Since the Proxmox cluster no longer existed, the qdevice was no longer needed.
I stopped and disabled the service:
sudo systemctl stop corosync-qnetd
sudo systemctl disable corosync-qnetd
Then removed the package and its unused dependency:
sudo apt purge corosync-qnetd
sudo apt autoremove
After the purge, the old qdevice certificate database was also removed:
ls /etc/corosync/qnetd/nssdb
returned:
No such file or directory
At that point the Raspberry Pi was no longer participating in the old Proxmox cluster in any way.
The final layout is now:
Raspberry Pi
└── Docker / infrastructure services
PVE1
└── standalone Proxmox
Former PVE2
└── Ubuntu Server
└── Ollama
This also removes one more unnecessary background service from the Pi and leaves each device with a much clearer role.