Remove Node from Proxmox Cluster

Step 1 : Migrate all VMs to another active node

Migrate all VMs to another active node. You can use the live migration feature if you have a shared storage or offline migration if you only have local storage.

Step 2 : Display all active nodes

Display all active nodes in order identify the name of the node you want to remove

root@proxmox-node2:~# pvecm nodes
Membership information
Nodeid Votes Name
1 1 proxmox-node1 (local)
2 1 proxmox-node2
3 1 proxmox-node3
4 1 proxmox-node4

Step 3: Shutdown (permanently) the node that you want to remove

Please be carefull, it a permanently remove !!!

  • Never restart the removed node
  • Don’t assign the local ip address of the removed node to a new node
  • Never assign the name of the removed node to a new node

Step 4 : Remove the node from the proxmox cluster

Connect to an active node, for example proxmox-node2.

root@proxmox:~# pvecm delnode NodeName

For Example :

root@proxmox-node2:~# pvecm delnode proxmox-node3

Step 5 : Remove the removed node from the proxmox GUI

Log in to an active node, for example proxmox-node2.

root@proxmox-node2:~# ls -l /etc/pve/nodes/
proxmox-node1 proxmox-node2 proxmox-node3 proxmox-node4

All nodes have is own directory (VM’s inventory, for example), the directory /etc/pve/nodes/ is synced between all cluster nodes.

The removed node is still visible in GUI until the node directory exists in the directory /etc/pve/nodes/.

If you want to remove from Proxmox GUI the node previously deleted , you just need to delete the directory /etc/pve/nodes/NodeName.

root@proxmox-node2:~# mv /etc/pve/nodes/NodeName /root/NodeName



5 thoughts on “Remove Node from Proxmox Cluster”

  1. tnxs for the “remove from GUI”, was looking for this. One remark: when you remove a node and add it again under the same name it is wise to remove it first from ~/.ssh/authorized_keys and remove it first from /etc/ssh/ssh_known_hosts to save yourself a lot off vnc connection errors, also you might want to remove this access anyway.

    • IMHO, you should not add the deleted node back again! It will create anomalies in corosync services and eventually you might ended up a broken/non-funcitonal cluster

      • I looked into this. This is because you did not logically detach the node from the cluster. Before step 2 you should detach the node you want to remove as follows:

        systemctl stop pve-cluster
        systemctl stop corosync
        pmxcfs -l
        rm /etc/pve/corosync.conf
        rm -r /etc/corosync/*
        killall pmxcfs
        systemctl start pve-cluster

        Your poweroff advise solves a lot of issues in detaching. After shutdown you should execute

        pvecm expected X

        where X is the number of remaining nodes in the cluster and THEN you excute on a remaining node

        pvecm delnode oldnode
        ls -l /etc/pve/nodes/
        mv /etc/pve/nodes/oldnode /root/oldnode

        followed by the SSH corrections I mentioned above

        regards from Holland, Rick


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.