Skip to main content
RunBook Academy

Proxmox VEXI · ClusteringQuorum

Quorum, votes, and QDevice

Intermediate⏱ ~24 minpvecm

What you'll learn

  • Compute quorum for any cluster size and derive how many failures it tolerates
  • Distinguish expected votes from present votes, and read both from pvecm status
  • Configure a QDevice correctly, and place it in a failure domain that makes it useful
  • Explain why a QDevice is recommended on even node counts and discouraged on odd ones

Prerequisites

Verified against Proxmox VE 9.2.4 · Proxmox Backup Server 4.2.5 · Ceph Squid / Tentacle · Debian 13 (Trixie) · Linux kernel 7.0 (PVE 9.2 default) · 2026-08-12

Not yet marked complete on this device.

Why this matters in production

Quorum is the safety property that stops two halves of a partitioned cluster from both believing they are in charge. Losing it freezes every configuration change, stops HA from acting, and produces a cluster that looks healthy and refuses to do anything.

The arithmetic is trivial. What is not trivial is the QDevice, which behaves differently depending on whether your cluster has an odd or an even number of nodes — a distinction that decides whether adding one improves your resilience or reduces it.

The arithmetic

For a cluster with N expected votes, quorum is a strict majority:

Quorum = ⌊N/2⌋ + 1

ClusterExpected votesQuorumNode failures tolerated
1 node110
2 nodes220
3 nodes321
4 nodes431
5 nodes532
6 nodes642
7 nodes743
2 nodes + QDevice321

Interactive · Quorum Simulator

Toggle node failures and network link losses to see whether the cluster keeps quorum. The goal of this exercise is to build intuition for the difference between alive nodes and quorate partition.

3 nodes × 1 vote each. Expected = 3, quorum = 2.
p1alive · 1 votep2alive · 1 votep3alive · 1 vote

Click a node circle to toggle alive/down. To simulate network partition, click a link below.

Cluster state

QUORATE

Expected
3
Alive
3
Needed
2
Safe. Cluster-wide operations (VM start/stop, migration, HA actions) can proceed. Self-fencing is not triggered.
What is happening mathematically?

Corosync uses a majority-vote model. With 3 expected votes, quorum requires ⌊3/2⌋ + 1 = 2 votes. With a QDevice, the cluster tolerates one PVE-node failure even in a 2-node setup because the QDevice breaks the symmetric partition.

Reading the votes

Read-only / Safea two-node cluster with a working QDevice
# pvecm status
Cluster information
-------------------
Name:             edge-cluster
Config Version:   4
Transport:        knet
Secure auth:      on

Quorum information
------------------
Date:             Wed Aug 12 13:22:07 2026
Quorum provider:  corosync_votequorum
Nodes:            2
Node ID:          0x00000001
Ring ID:          1.9f
Quorate:          Yes

Votequorum information
----------------------
Expected votes:   3
Highest expected: 3
Total votes:      3
Quorum:           2
Flags:            Quorate Qdevice

Membership information
----------------------
  Nodeid      Votes    Qdevice Name
0x00000001          1    A,V,NMW 10.0.0.11 (local)
0x00000002          1    A,V,NMW 10.0.0.12
0x00000000          1            Qdevice

Illustrative output

Three lines carry the state:

  • Expected votes comes from corosync.conf plus the QDevice. It is what the cluster believes it should have.
  • Total votes is what is actually present right now.
  • Quorum is the threshold. Activity blocked appears next to it when total votes fall below it.

The Qdevice column in the membership list is easy to skim past and is the only place a broken QDevice shows up while the cluster is still quorate. A,V means alive and granting its vote. NA means not alive — you have lost the QDevice and nobody has told you.

The QDevice

A QDevice is an external vote holder. It runs corosync-qnetd on a host that is not a cluster member, and it participates in quorum decisions without running any workload.

The only requirements on that host are network reachability to the cluster and the corosync-qnetd package. It can be a small VM elsewhere, a physical box, or a Raspberry Pi — it needs almost no resources.

Configuration changesetting up a QDevice
set -euo pipefail
QNETD_HOST=192.0.2.50

# --- On the external host ---
# apt install -y corosync-qnetd
#
# Root SSH access from the cluster nodes to this host is required for the
# setup step, because pvecm has to exchange certificates with it. Restore
# whatever your normal SSH policy is once setup completes.

# --- On one cluster node ---
pvecm qdevice setup "$QNETD_HOST"

# Verify. Expected votes should have increased, and each node should show
# the QDevice as alive and granting a vote.
pvecm status
corosync-qdevice-tool -s

Testing it

A QDevice that has never been exercised is a configuration entry.

Service impact possibleprove the QDevice does what you think
set -euo pipefail

# Baseline. Record expected votes, total votes and the Qdevice flags.
pvecm status
corosync-qdevice-tool -s

# Test 1: stop the QDevice host.
#   Expected on a 2-node cluster: expected votes 3, total votes 2,
#   quorum 2 - still quorate, because two node votes meet the threshold.
#   Watch for the Qdevice column changing from A,V to NA.
pvecm status | grep -E 'Total votes|Quorate|Qdevice'

# Test 2: with the QDevice back, stop one cluster node.
#   Expected: survivor has 1 node vote plus the QDevice vote = 2, quorum 2,
#   so it stays quorate and can still start guests. This is the whole
#   reason the QDevice is there, and it is the test that matters.
pvecm status | grep -E 'Total votes|Quorate'

# Test 3: confirm a write to /etc/pve actually succeeds on the survivor.
PROBE=/etc/pve/.qdevice-test
date -Is > "$PROBE" && cat "$PROBE" && rm -f "$PROBE"

Test 2 is the one that justifies the whole arrangement, and test 3 is what makes test 2 real — Quorate: Yes and an actual successful write are two different claims.

Production considerations

  • Two nodes: add a QDevice. It is what turns a two-node cluster from a liability into a viable production arrangement.
  • Odd node counts: do not, unless you have worked through the failure table above and accepted the trade.
  • Even counts above two: a single QDevice vote breaks the tie, which is genuinely useful on four or six nodes.
  • Monitor the QDevice, because its loss is invisible until it matters.
  • Document its location and rebuild procedure somewhere that is not on the cluster.

Common mistakes

  • Believing a two-node cluster survives a node failure. It does not, without a QDevice.
  • Adding a fourth node for resilience. Four tolerates the same single failure as three.
  • Putting the QDevice on the same switch, PDU or rack as the cluster.
  • Running the QDevice as a VM on a cluster node.
  • Adding a QDevice to an odd-numbered cluster without understanding that it contributes N−1 votes.
  • Never testing failover by stopping a node.
  • Not monitoring QDevice health, so its loss is discovered during an outage.
  • Running pvecm delnode with a QDevice still configured.

Key takeaways

  • Quorum is ⌊N/2⌋ + 1. Two nodes tolerate zero failures; adding an even node to an odd cluster adds capacity, not resilience.
  • Expected votes is what the cluster believes it should have; total votes is what is present. Both are in pvecm status, along with a per-node QDevice state that is the only sign of a dead QDevice.
  • On an even node count a QDevice contributes one vote and is recommended. On an odd count it contributes N−1 votes, is discouraged, and requires --force.
  • The qnetd daemon grants its vote to exactly one partition, which is what makes it a safe tie-break and pvecm expected 1 an unsafe one.
  • The QDevice must not share a failure domain with the cluster, and it must be reachable from both sides of a plausible partition.

Knowledge check

Knowledge check · 5 questions

  1. Q1. A team runs a two-node Proxmox cluster with no QDevice. One node fails. What happens on the survivor?

  2. Q2. Which placements defeat the purpose of a QDevice? Select all that apply.

  3. Q3. Adding a QDevice to a three-node cluster always increases its resilience, because it adds an extra vote.

  4. Q4. On a two-node cluster with a QDevice, the QDevice host dies and is not replaced. What is the immediate and the medium-term effect?

  5. Q5. Why is a QDevice a safe way to break a tie while pvecm expected 1 is not?

Passing score: 75%. Answers are checked in this browser.