Skip to main content
RunBook Academy

CephXLIII · CephFS Failure ScenariosCephFS Failure Scenarios

Responding to an MDS daemon crash

Advanced⏱ ~17 mincephjournalctl

What you'll learn

  • Sequence the automatic response to an MDS crash
  • Describe what clients experience during failover
  • Identify when operator action is required
  • Investigate a repeatedly crashing MDS

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

A single MDS crash with a standby present is a pause, not an incident. Knowing that lets you resist intervening in a recovery that is proceeding correctly, and reserve action for the cases that genuinely need it.

The automatic response

1. MDS process dies; beacons stop
2. Monitors wait mds_beacon_grace, then mark the rank failed
3. A standby is assigned the rank
4. It replays the journal, resolves, reconnects clients, rejoins
5. Rank active; clients resume
watch -n 2 'ceph fs status cephfs'
ceph -w | grep -i mds

No operator action is required for any of this.

What clients see

Client stateExperience
Idlenothing
Reading an already-open filenothing — data I/O bypasses the MDS
Performing a metadata operationblocks until the new rank is active
Writing with buffered capabilitiesblocks, then flushes after reconnect

Applications doing bulk data transfer frequently do not notice an MDS failover at all, because their I/O never touches the MDS. Applications doing metadata work pause for the duration.

When action is required

No standby available.

ceph fs status cephfs
# RANK  STATE   MDS
#  0    failed

The rank has nowhere to go. Start an MDS:

ceph orch apply mds cephfs --placement="3 host1 host2 host3"

Repeated crashes. The standby takes over, crashes, the next takes over, crashes. This is a crash loop, and it usually means the MDS is hitting the same condition during recovery each time.

journalctl -u ceph-mds@a --since '1 hour ago' | grep -iE 'assert|abort|signal|FAILED'
coredumpctl list ceph-mds

Out-of-memory kills.

journalctl -k | grep -i 'killed process.*ceph-mds'
ceph config get mds mds_cache_memory_limit

An MDS killed by the OOM killer is a cache sizing or client capability problem, not an MDS bug.

Investigating a crash loop

# what state does it reach before dying?
ceph fs status cephfs

# increase logging for the next attempt
ceph config set mds debug_mds 10
ceph config set mds debug_ms 1
# ... reproduce ...
ceph config set mds debug_mds 1/5

An MDS crashing consistently in rejoin points at client capability state; one crashing in replay points at the journal.

Quiz

Knowledge check · 4 questions

  1. Q1. A client is streaming a large read from an already-open CephFS file when the MDS fails over. What does it experience?

  2. Q2. An MDS repeatedly killed by the OOM killer indicates an MDS software bug.

  3. Q3. Break an MDS crash loop.

    Every MDS assigned to rank 0 reaches `rejoin` and then crashes with an assertion failure. Three daemons have cycled through in twenty minutes. The filesystem is unavailable.

  4. Q4. What does the state an MDS reaches before crashing tell you?

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

Production discipline

Resist intervening in an MDS failover that is progressing — the automatic sequence handles a single crash without help, and interference adds risk. Reserve action for the three cases that need it: no standby available, a crash loop, and out-of-memory kills, each of which has a distinct signature.

Cross-course references

  • Kubernetes: a CrashLoopBackOff caused by one bad input has the identical investigation shape
  • Linux: a service failing consistently at the same startup stage points at persistent state