Skip to main content
RunBook Academy

CephCIX · Disaster RecoveryDisaster Recovery

The dependency order of recovery

Advanced⏱ ~18 minceph

What you'll learn

  • State the recovery dependency order
  • Recognise attempts to recover out of order
  • Establish where a cluster is in that order
  • Sequence a multi-failure recovery

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

Under pressure people work on the most visible symptom, and in a multi-failure incident that is usually not the thing blocking everything else.

The order

1. Network — daemons must reach each other
2. Time    — monitors will not form quorum with excessive skew
3. Monitor quorum — nothing else can commit map changes without it
4. Manager — orchestration and metrics; not required for data
5. OSDs    — data availability
6. MDS / RGW — service layers, which depend on OSDs
7. Clients — repoint, remount, restart
# 1. network
PEER_MON=mon-01
ping -c2 ${PEER_MON}
ss -ltn | grep -E ':3300|:6789'
# 2. time
chronyc tracking 2>/dev/null || timedatectl status
ceph health detail | grep -i clock
# 3. quorum
ceph quorum_status --format json 2>/dev/null | python3 -c '
import sys,json
d = json.load(sys.stdin)
print("quorum:", d["quorum_names"], "of",
      [m["name"] for m in d["monmap"]["mons"]])' || echo "NO QUORUM"
# 4-6
ceph -s
ceph osd tree | grep -c up
ceph fs status 2>/dev/null

Recovering out of order

AttemptWhy it fails
Restarting OSDs without quorumthey cannot get a map; they stay down
Fixing the MDS while OSDs are downthe metadata pool is unavailable
Repointing clients before OSDs are upthey connect and hang
Debugging slow ops during a network partitionthe network is the cause
Reinstalling the manager to fix ceph -sthe manager is not the problem
The generic symptom of out-of-order work is effort producing no
observable change. That is the signal to step back and check the layer
below.
# the check that tells you where you actually are
ceph quorum_status >/dev/null 2>&1 && echo "quorum OK" || echo "STOP: fix quorum first"

Establishing position

#!/bin/bash
# where-am-i.sh
echo -n "network to peers: "
ceph quorum_status >/dev/null 2>&1 && echo "reaching monitors" || echo "cannot reach monitors"

echo -n "time skew:        "
ceph health detail 2>/dev/null | grep -qi clock && echo "SKEW PRESENT" || echo "ok or unknown"

echo -n "quorum:           "
ceph quorum_status --format json 2>/dev/null | python3 -c '
import sys,json; d=json.load(sys.stdin); print(len(d["quorum_names"]),"/",len(d["monmap"]["mons"]))'   2>/dev/null || echo "NONE"

echo -n "osds up:          "
ceph osd stat --format json 2>/dev/null | python3 -c '
import sys,json; d=json.load(sys.stdin); print(d["num_up_osds"],"/",d["num_osds"])'   2>/dev/null || echo "unknown"

echo -n "pgs active:       "
ceph pg stat 2>/dev/null | head -1 || echo "unknown"

Sequencing a multi-failure recovery

Work strictly downward. At each layer:
  confirm it is healthy before moving up
  if it is not, that layer is the current work
  resist requests to fix a higher layer first
Layer healthyNext
Network reachablecheck time
Time synchronisedcheck quorum
Quorum formedcheck OSDs
OSDs up and PGs activecheck service layers
Services healthyrepoint clients

Quiz

Knowledge check · 4 questions

  1. Q1. Why do OSDs restarted without monitor quorum stay down?

  2. Q2. In a multi-failure incident, work should start with the most visible symptom.

  3. Q3. Sequence a multi-failure recovery.

    A power event has left the cluster unreachable. Applications are down and stakeholders are asking about the MDS, which is reporting errors.

  4. Q4. What is the recovery dependency order for a Ceph cluster?

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

Production discipline

Work strictly downward — network, time, quorum, OSDs, services, clients — and confirm each layer before moving up. Repeated action with unchanged state is the reliable signal that the layer beneath is the actual work.

Cross-course references

  • Kubernetes: etcd quorum gates the control plane the same way
  • Linux: recovery order follows dependency order, not symptom visibility