Skip to main content
RunBook Academy

CephCXVII · Lost Monitor QuorumLost Monitor Quorum

Getting one monitor back is the whole job

Advanced⏱ ~18 mincephcephadmsystemctl

What you'll learn

  • Establish the true state of every monitor without cluster tooling
  • Choose the least invasive restoration for the observed fault
  • Recover a monitor whose store partition has filled
  • Verify quorum formed and remained stable

Prerequisites

None — start here.

Verified against Ceph Tentacle 20.2.x · Ceph Squid 19.2.x (supported previous) · cephadm matches the verified Ceph release · podman 4.x · csi-rbd and csi-cephfs current · RBD / CephFS / RGW current (matches Ceph release) · Linux kernel 5.15+ (5.10 minimum) · Ubuntu 24.04 LTS (Ceph host baseline) · Debian 12 (Bookworm) (Ceph host baseline) · Rocky Linux / RHEL / AlmaLinux 9.x (Ceph host baseline) · Proxmox VE 9.x (cross-course integration) · Kubernetes 1.31+ (cross-course integration) · 2026-08-18

Not yet marked complete on this device.

Why this matters in production

When quorum is lost on a three-member cluster, restoring any one failed monitor to service ends the incident. Every more dramatic option — store restores, monmap surgery — exists for the case where that is impossible, and reaching for one first is how a recoverable outage becomes a destructive one.

Establish the real state first

# on each monitor host, in turn
systemctl status ceph-$FSID@mon.ceph-mon-b.service
cephadm ls --no-detail | grep mon
ceph daemon mon.ceph-mon-b mon_status
journalctl -u ceph-$FSID@mon.ceph-mon-b.service -n 100 --no-pager

Two monitors that report probing are a different incident from one that will not start at all. Collect all three before deciding anything.

Preference order

Observed stateActionRisk
Daemon stopped, store intactstart itnone
Store partition fullfree space, compact, startnone
Host down, disks intactboot the hostnone
Store corrupt, another monitor aliveremove and re-add; it resyncsnone
All remaining monitors unrecoverablemonmap surgery on the survivorsevere

The fourth row is the one people skip. A monitor whose RocksDB store will not open is not a data loss event as long as one monitor is alive: remove the member and add it back using the ordinary mechanics, and it rebuilds its store by synchronising from the quorum.

The store partition filling

df -h /var/lib/ceph/$FSID/mon.ceph-mon-b
du -sh /var/lib/ceph/$FSID/mon.ceph-mon-b/store.db
ceph config get mon mon_data_avail_crit
ceph config get mon mon_data_avail_warn

A monitor stops when free space falls below mon_data_avail_crit, five per cent by default, and warns from mon_data_avail_warn at thirty. The health checks are MON_DISK_LOW, MON_DISK_CRIT, and MON_DISK_BIG, and they usually fired for days before anyone looked.

ceph daemon mon.ceph-mon-a compact
ceph config set mon mon_compact_on_start true

Compaction reclaims space, but only space that is already trimmable — the monitors retain OSDMap history until every OSD has caught up, so a cluster that has been unhealthy for a week has a store that cannot shrink until it is clean again. Free space on the partition first; compaction is not a substitute for capacity.

Verify quorum formed, and that it stayed

ceph daemon mon.ceph-mon-a mon_status
ceph quorum_status -f json-pretty
ceph mon stat
ceph log last 200 info cluster | grep -i election
mon: 3 daemons, quorum ceph-mon-a,ceph-mon-b,ceph-mon-c (age 94s)

A monitor in peon or leader is in quorum. One that oscillates between electing and peon has not recovered — a quorum that re-forms every few seconds answers ceph -s intermittently and is easily mistaken for success.

Quiz

Knowledge check · 4 questions

  1. Q1. A monitor's RocksDB store will not open, and one other monitor is alive and quorate. What is the correct action?

  2. Q2. A monitor restored from a store backup can bring a cluster back on its own when no other monitor survives.

  3. Q3. Recover quorum on a three-monitor cluster.

    mon.ceph-mon-a is leader-eligible but alone. mon.ceph-mon-b will not start; its journal shows the daemon exiting immediately after logging low available space. mon.ceph-mon-c has a dead system disk and its host will not boot.

  4. Q4. Why can compaction fail to shrink a monitor store on an unhealthy cluster?

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

Production discipline

Work the preference order strictly: start what can be started, free space where space is the fault, and remove and re-add a monitor whose store is broken — all of which are safe while any monitor remains quorate. Never restore a monitor store into a cluster with no quorum, and never declare recovery on a quorum that is re-electing every few seconds.

Cross-course references

  • Kubernetes: an etcd member with a broken data directory is replaced, not repaired
  • Linux: a service that exits at start after logging a disk threshold is telling you the answer