Creating the Proxmox Cluster
One Flag That Makes or Breaks This
Everything in this chapter is straightforward except one thing: every pvecm
command includes --link0 pointing to the private vSwitch IP. That flag is what
binds Corosync's heartbeat to the private network instead of defaulting to eth0.
Skip it and Corosync uses the public interface — cluster heartbeat and SSH share the same
NIC, and any issue with that interface takes down both simultaneously. The flag takes two
seconds to type. Use it every time.
Step 1 — Create the Cluster on Node 1
On node1 only. Replace <clustername> with a short
lowercase name:
pvecm create <clustername> --link0 10.100.101.1
pvecm status
You should see 1 node, quorum achieved, and your cluster name. If it errors, check
that vmbr_priv is up and has the right IP.
Step 2 — Confirm Corosync Is on the Right Interface
Five seconds that have saved me a painful undo more than once:
grep "ring0_addr" /etc/pve/corosync.conf
Must show 10.100.101.1. If it shows the public IP instead, stop here and
fix it before adding any other nodes. Unwinding a misconfigured Corosync bind address after
two nodes have already joined is a lot more work than catching it now. Remove the cluster,
fix the bridge, and recreate:
pvecm expected 1
systemctl stop pve-cluster corosync
pmxcfs -l
Step 3 — Join Node 2
On node2 only:
pvecm add 10.100.101.1 --link0 10.100.101.2
You'll be prompted for node1's root password. After it completes:
pvecm status
Two nodes will show, but the cluster is fragile right now — with only two nodes, losing either one drops quorum to zero. Add node3 immediately, don't leave it at two.
Step 4 — Join Node 3
On node3 only:
pvecm add 10.100.101.1 --link0 10.100.101.3
After that completes, check from node1:
pvecm status
The key line to look for:
Votes: 3 expected, 3 total, 2 quorum
Three votes, quorum at 2 — the cluster can lose one node and keep running. That's what you want.
Step 5 — Check the Web UI
Open the Proxmox web UI on any node's public IP (port 8006). All three nodes should appear in the cluster tree on the left with green status. Give it up to a minute if any node shows offline right after joining — the initial sync takes a moment.
Quorum: Why Three Nodes and Not Two
Two nodes is asking for trouble. Quorum requires a strict majority of votes, so two nodes means both must be up at all times — any single failure freezes the cluster. Three nodes gets you fault tolerance without needing an external quorum device (QDevice). It's the minimum sensible cluster size.
| Nodes | Quorum needed | Can lose |
|---|---|---|
| 2 | 2 of 2 | 0 — any failure freezes the cluster |
| 3 | 2 of 3 | 1 |
| 4 | 3 of 4 | 1 |
| 5 | 3 of 5 | 2 |
| 7 | 4 of 7 | 3 |
Stick to odd numbers when you can — 3, 5, 7. Even node counts give you the same fault tolerance as the odd number below them with an extra machine.
Adding More Nodes Later
The process is the same as joining node2 and node3. On the new server: install Proxmox
per the first guide in this series,
add both vSwitch bridges per Chapter 3 here (use the next sequential IP —
10.100.101.4 for a 4th node, and so on), then:
pvecm add 10.100.101.1 --link0 <new_node_private_ip>
Corosync updates the quorum vote count automatically. No config file edits needed.
No comments to display
No comments to display