Skip to content

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.

SDSysadmin Desk July 28, 2026 9 min read
Diagram-style cover showing three Proxmox nodes joined into a cluster with corosync links and a shared storage box beneath them

A Proxmox cluster ties several hosts together under one web interface. You manage every node and VM from a single login, you migrate VMs between hosts, and with the right storage you get live migration and high availability. The tool that does the work is pvecm, and the join is two commands.

This guide builds a cluster from standalone nodes: create it on the first host, join the others, and confirm quorum is healthy. Then it covers the parts people get wrong — what corosync and quorum actually do, why two-node clusters are fragile, how shared storage enables live migration, and how to remove a node without leaving the cluster in a bad state. Steps target Proxmox VE 8.x.

Before you start, each node should be a working, fully updated Proxmox install with its own static IP and a unique hostname. If you haven’t built the hosts yet, install Proxmox VE on bare metal first, then come back.

What you need first

Clustering is unforgiving about a couple of prerequisites. Sort these before running any command.

Before you cluster

  • Every node on the same Proxmox VE major version (e.g. all 8.x)
  • A unique hostname and a static IP on each node
  • All nodes able to resolve and ping each other
  • No VMs yet on the nodes you're joining (joining wipes their VM list)
  • A low-latency network between nodes for corosync — ideally a dedicated link
  • Time synced (NTP) across all nodes

Step 1: Create the cluster on the first node

Pick one node to start the cluster. On it, give the cluster a name and run:

# on the first node — names the cluster "pve-cluster"
pvecm create pve-cluster

That’s it for node one. Check the status:

pvecm status

You’ll see one node, a quorum section, and the corosync ring information. A single node always has quorum with itself, so it reports Quorate: Yes.

Step 2: Join the other nodes

On each additional node, join using the IP of the first node. Run this on the joining node, not on the first one:

# on node 2, node 3, etc. — point at the cluster's existing node
pvecm add 192.168.1.50

It asks for the root password of the target node and checks SSH connectivity, then pulls the cluster config down. After it finishes, refresh the web GUI on any node — all of them now appear in the left-hand tree under the datacenter.

Confirm the whole cluster sees itself:

pvecm status
pvecm nodes

pvecm nodes lists every member with its node ID and vote. You want all nodes Online and the status Quorate: Yes.

Step 3: Understand corosync and quorum

This is the concept that explains every weird cluster behavior, so it’s worth a moment even though there’s nothing to type.

Corosync is how nodes talk to each other and agree on cluster state. Quorum is the rule that the cluster will only change its configuration when more than half the votes are present. The shared config filesystem at /etc/pve (backed by pmxcfs) depends on quorum.

Votes, majority, and what survives a failure

2 nodes (2 votes) Majority is 2. Lose one node and you're at 1 vote — below majority, so the cluster loses quorum. Fragile.
3 nodes (3 votes) Majority is 2. Lose one node and 2 votes remain — still quorate. The practical minimum.
4 nodes (4 votes) Majority is 3. Tolerates one failure, but an even count risks a tie on a clean 2-2 split.
5 nodes (5 votes) Majority is 3. Tolerates two failures. Odd counts avoid ties.

When a cluster loses quorum, the running VMs keep running — they don’t drop — but /etc/pve goes read-only. You can’t create or change VMs, edit storage, or migrate until a majority comes back. This is deliberate: it stops two halves of a split network from both editing shared config and corrupting it (split-brain).

Step 4: Add shared storage for live migration

A cluster works with each node on its own local storage, but the disk lives on one host. To move a running VM between nodes without copying its disk every time, every node needs to reach the same storage.

Shared storage options for a cluster

Ceph Distributed storage built into Proxmox, runs on the nodes themselves. No external SAN needed. Wants at least 3 nodes and a fast, separate network. The go-to for hyper-converged clusters.
NFS A NAS or file server every node mounts. Simple to set up and widely used. The NAS becomes a single point of failure unless it's itself redundant.
iSCSI / Fibre Channel Block storage from a SAN, shared to all nodes. Common where a SAN already exists. More setup, often paired with LVM on top.

Add shared storage under Datacenter → Storage → Add, and because it’s defined at the datacenter level every node picks it up automatically. Once a VM’s disk sits on shared storage, migration just moves the running memory state.

Step 5: Live-migrate a VM

With a healthy cluster and shared storage, migration is a click. Select the VM, hit Migrate, choose the target node, and start it. Proxmox copies the memory state across and switches execution to the new node with no downtime.

From the CLI:

# live-migrate VM 101 to node "pve02"
qm migrate 101 pve02 --online

The --online flag is what makes it a live migration of a running VM. Drop it and the VM has to be stopped first (offline migration).

Removing a node from the cluster

Pulling a node out has a specific order, and doing it wrong leaves corosync referencing a ghost member.

  1. Migrate or back up everything off the node you’re removing.
  2. Power that node off permanently — it must not come back online with its old identity.
  3. From a remaining node, delete it by name:
# run on a node that's staying — remove "pve03"
pvecm delnode pve03
  1. Confirm with pvecm status that the node count dropped and the cluster is still quorate.

The two-node problem and QDevices

Two-node clusters are common in small setups and inherently fragile: two votes means a single failure drops you to one vote, below majority, and the survivor loses quorum even though it’s perfectly healthy. Your VMs keep running but you can’t manage anything.

A QDevice fixes this. It’s an external tie-breaker — a small always-on machine (a Raspberry Pi, a NAS, any Linux box) running corosync-qnetd. It contributes a third vote without being a full Proxmox node, so either real node can fail and the survivor plus the QDevice still hold a majority.

Set it up by installing the qnetd package on the external box and the client on the nodes, then registering it:

# on the external tie-breaker machine (Debian/Ubuntu)
apt install corosync-qnetd

# on each Proxmox node
apt install corosync-qdevice

# on one Proxmox node, register the QDevice (use the external box's IP)
pvecm qdevice setup 192.168.1.60

After setup, pvecm status shows the QDevice as an extra vote and the expected total rises by one.

Where to go from here

A working cluster gives you one pane of glass, painless migration, and the foundation for high availability. The pieces that make it solid are an odd vote count, a low-latency network for corosync, and shared storage if you want live migration to be quick.

Two natural follow-ups: decide your storage layout, since it dictates how migration and HA behave — Proxmox LVM vs LVM-Thin vs ZFS covers the local options, while Ceph or NFS handle the shared side. And make sure your backup routine spans the cluster, not just one node, with Proxmox backups. If you’re still choosing a platform, Proxmox VE vs VMware ESXi puts the clustering and HA story side by side. For more walkthroughs, browse the Proxmox guides.

Frequently asked questions

How many nodes do I need for a Proxmox cluster?

Technically two, but three or more is the practical minimum for safe operation. Quorum needs a majority of votes to keep the cluster writable, and with two equal nodes a single failure drops you below majority and freezes the cluster. Three nodes tolerate one failure cleanly. If you only have two hosts, add a QDevice as a lightweight third vote.

What is quorum and why does it matter?

Quorum is the requirement that more than half the cluster's votes are present before the cluster will make configuration changes. It prevents split-brain, where two halves of a partitioned cluster both think they're in charge and corrupt shared state. Without quorum the nodes keep running their VMs but the cluster config (/etc/pve) goes read-only until a majority is restored.

Do I need shared storage to build a cluster?

No. A cluster works fine with each node using local storage — you still get one management interface and offline migration. But shared storage (Ceph, NFS, or iSCSI) is what unlocks fast live migration and high availability, because the VM disk is reachable from every node. Without it, migrating a VM means copying its disk first.

Can I live-migrate VMs between cluster nodes?

Yes. With shared storage, live migration moves a running VM's memory between nodes with no downtime while the disk stays put. With local storage, Proxmox can still do it but has to copy the disk over the network first, which is slower and needs the storage named the same on both nodes. Live migration also requires compatible CPUs or a common CPU type set on the VM.

How do I remove a node from a Proxmox cluster?

Power the node off for good first, then from a remaining node run pvecm delnode . Don't just shut it down and walk away — and never rejoin a removed node with its old config. If you need that hardware back in the cluster, reinstall Proxmox on it cleanly before joining again, or corosync will get confused by the stale identity.

What is a QDevice and when do I need one?

A QDevice is an external tie-breaker vote, usually a small always-on machine running the corosync-qnetd service. It exists for two-node clusters: it gives a third vote so one node can fail without losing quorum. You don't need it once you have three or more real nodes, and you shouldn't add one to an odd-numbered cluster where it can actually break the vote math.

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

Fixing something right now?

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