Skip to content

How to Safely Remove a Node from a Proxmox Cluster

Remove a node from a Proxmox cluster the safe way: evacuate VMs, power it off for good, run pvecm delnode, verify quorum, and clean up stale corosync entries.

SDSysadmin Desk November 2, 2026 7 min read
Photographic illustration for How to Safely Remove a Node from a Proxmox Cluster: homelab server rack and virtualization cluster dashboard

Removing a node from a Proxmox cluster sounds like it should be a one-liner, and the command itself is. The trouble is the order. Do it in the wrong sequence — shut the node down and walk away, or delete it while it’s still online — and you leave corosync chasing a member that no longer exists, which can mess with quorum and leave a ghost node lingering in the GUI.

This guide does it the safe way: evacuate everything off the node, power it off for good, delete it with pvecm delnode from a node that’s staying, then verify the cluster is healthy and clean up any leftovers. It also covers the one rule people break most — never rejoining a removed node without a clean reinstall. Steps target Proxmox VE 8.x.

If you’re newer to how clustering works underneath this, the Proxmox cluster guide explains corosync and quorum, which are exactly the parts that punish a sloppy removal.

Get the order right

The whole job is four steps in a specific sequence. Skipping or reordering them is what causes problems.

Safe node removal, in order

  • Evacuate all VMs and containers off the node (migrate or back up)
  • Reassign or remove any HA resources tied to the node
  • Power the node off permanently — it must not come back as-is
  • Run pvecm delnode from a node that's staying
  • Verify quorum and clean up any stale entries

The single most important detail: the node you’re removing has to be powered off for good before you delete it, and it must not come back online with its old identity. Everything else flows from that.

Step 1: Evacuate the node

Nothing should be running on the node when it leaves. Move every VM and container off it first.

With shared storage, migrate guests live so there’s no downtime. From the GUI, select each VM and use Migrate to a target node, or from the command line:

# live-migrate VM 105 off the departing node 'pve03' to 'pve01'
qm migrate 105 pve01 --online

# migrate a container (containers can't live-migrate; this is offline)
pct migrate 110 pve01

If the guests live on the node’s local storage, you can’t simply migrate them away without copying the disk — back them up instead, and plan to restore onto a remaining node. Take a backup of anything you can’t migrate before the node goes away for good.

Step 2: Clear HA resources tied to the node

If the node ran HA-managed VMs, deal with HA before the node disappears, or you’ll leave resources pointing at a node that no longer exists.

Migrate the HA-managed guests to other nodes (which updates where HA expects them), or remove them from HA management if they’re being decommissioned:

# see what HA is managing and where
ha-manager status

# remove a resource from HA management if it's going away
ha-manager remove vm:105

Once the departing node has no HA resources and no running guests, it’s safe to take offline.

Step 3: Power the node off permanently

Shut the node down — and mean it. This isn’t a reboot. The node should not power back on while still carrying its cluster identity, because the moment it rejoins or its corosync config conflicts, the cluster can break.

# on the node being removed
shutdown -h now

Pull it from rotation: if it’s a physical box you’re repurposing, that’s fine; if it’s staying powered for other reasons, disconnect it from the cluster network. The point is that the cluster will never see this node again under its current config.

Step 4: Delete the node from a surviving node

Now, from a node that’s staying in the cluster, remove the powered-off node by name. First confirm the exact name:

# list current members and their status
pvecm nodes

Then delete the departed one:

# remove node 'pve03' — run this from a node that's staying
pvecm delnode pve03

pvecm delnode removes the node from the corosync configuration and the cluster’s expected membership. It needs the rest of the cluster to be quorate to succeed — which is one more reason to remove nodes when the cluster is healthy, not in the middle of an outage.

Step 5: Verify quorum and clean up

Confirm the cluster is healthy and the vote math still works in your favor.

# check quorum and the new expected vote count
pvecm status

# confirm the removed node is gone from the member list
pvecm nodes

You want Quorate: Yes and the node count reduced by one. Pay attention to the new expected votes — removing a node changes your failure tolerance.

What removal does to your failure tolerance

4 nodes → 3 nodes Majority drops from 3 to 2. You move to an odd count, which is good — still tolerates one failure.
3 nodes → 2 nodes Majority is 2 of 2. A single further failure now loses quorum and freezes the cluster. Consider a QDevice.
2 nodes → 1 node No longer a cluster in any meaningful sense. The lone node is quorate with itself; remove it from cluster mode if it's now standalone.

If removal drops you to two nodes and you want to keep tolerating a failure, add a QDevice for a third tie-breaking vote — the setup is covered in the cluster guide.

Reusing the hardware later

Removed hardware is perfectly fine to put back into service — just treat it as new. The old install still has the previous cluster’s config baked in, so don’t try to rejoin it directly.

The clean path is a fresh Proxmox install on the box, then a normal join:

# on the freshly reinstalled node, join the cluster again
pvecm add 192.168.1.50

A clean reinstall guarantees there’s no stale corosync identity to conflict with. If a full reinstall isn’t practical, at minimum the node’s corosync configuration has to be wiped before it can safely rejoin — but reinstalling is the reliable option and the one to default to.

Wrapping up

Removing a node cleanly comes down to sequence: empty it, sort out HA, power it off for good, then pvecm delnode from a node that’s staying — and never let the removed node rejoin with its old config. Check pvecm status afterward so the change to your quorum math doesn’t surprise you later, especially if you’ve dropped to two nodes.

To understand the corosync and quorum behavior that makes the order matter, read creating a Proxmox cluster. If the node was part of an HA setup, Proxmox High Availability explained covers how recovery and resources work. And before you evacuate anything, make sure your Proxmox backups are current. For more walkthroughs, browse the Proxmox guides.

Frequently asked questions

Can I just shut the node down and forget about it?

No. Powering it off without running pvecm delnode leaves a ghost member in corosync — the cluster keeps expecting its vote, which can affect quorum math and clutters the node list. Always remove it formally with pvecm delnode from a remaining node after the one you're removing is permanently off. The order matters: evacuate, power off for good, then delnode.

Why do I have to power the node off before removing it?

Because pvecm delnode removes a node that should never come back with its old identity. If the node is still online when you delete it, or comes back online afterward with its old corosync config, it can rejoin or conflict and break the cluster. Power it off permanently first, then delete it, and only reuse the hardware after a clean reinstall.

What happens to quorum after I remove a node?

The expected vote count drops by one, which can actually help a struggling cluster reach majority. But watch the new math: removing a node from a three-node cluster leaves two, where a single further failure loses quorum. If you're dropping to two nodes and want to keep failure tolerance, add a QDevice for a third vote after the removal.

Can I reuse the removed node's hardware in the same cluster later?

Yes, but reinstall Proxmox cleanly on it first, or at minimum wipe its corosync configuration. A removed node still holds the old cluster config on disk, and powering it back on to rejoin causes corosync to see a conflicting identity. Treat returning hardware as a brand-new node: fresh install, then pvecm add.

Do I need to remove HA resources before deleting a node?

Yes. If the node was running HA-managed VMs, migrate or reassign those resources first so HA isn't pointing at a node that's about to vanish. Evacuate all guests, confirm nothing is HA-managed on the departing node, then proceed with the removal. Leaving HA resources tied to a deleted node leaves them in an error state.

The web GUI still shows the removed node — how do I clear it?

A stale entry usually means leftover files under /etc/pve/nodes/ for the removed node. After confirming pvecm delnode completed and the node is gone from pvecm nodes, you can remove the old node's directory under /etc/pve/nodes/ from a remaining node. Refresh the GUI afterward. Only do this once you're certain the node is permanently gone.

Sources & further reading

Official vendor documentation referenced while writing this guide.

SD

Sysadmin Desk

Infrastructure & Cloud

Hands-on guidance for infrastructure, virtualization, and containers — Hyper-V, VMware, Docker, and the day-to-day operations work that keeps environments running.

MCSA Guru provides independent, educational IT guidance. Microsoft, Windows, Windows Server, Microsoft 365, Exchange, and Microsoft Teams are trademarks of Microsoft Corporation; Docker is a trademark of Docker, Inc. MCSA Guru is not affiliated with or endorsed by Microsoft or Docker. Always test changes in a safe environment before applying them in production.

Related guides

Photographic illustration for How to Create a Proxmox Cluster: homelab server rack and virtualization cluster dashboard

How to Create a Proxmox Cluster

Build a Proxmox cluster with pvecm: create and join nodes, understand corosync and quorum, set up shared storage, live-migrate VMs, and add a QDevice for two nodes.

Sysadmin Desk Jul 28, 2026 9 min read

Fixing something right now?

Jump straight into the guide library or search for the exact error or task you are dealing with.