Skip to main content
RunBook Academy

CephLXV · Why Full Clusters Are DangerousWhy Full Clusters Are Dangerous

How a full cluster narrows your options

Intermediate⏱ ~16 minceph

What you'll learn

  • List the operations lost at each threshold
  • Plan while the options still exist
  • Recognise the point of no easy return
  • Preserve optionality deliberately

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

Capacity problems are not a gradient of severity — they are a sequence of capabilities being removed. Knowing which goes when is what makes acting early obviously worthwhile.

What is lost at each stage

StageStill availableLost
Below 0.80everything
Nearfull (0.85)everythingcomfort
Backfillfull (0.90)client I/O, deletes, readsrecovery, rebalancing, draining OSDs
Full (0.95)reads, most deletesclient writes
Beyondreadssome deletes

The step from nearfull to backfillfull is the significant one: it removes the cluster’s ability to heal and to move data, which are the two things every remedy depends on.

Operations lost at backfillfull

# these all stop working usefully
ceph osd out 12                 # drain: nowhere for the data to go
ceph balancer on                # rebalance: no destination has room
ceph orch osd rm 12             # removal: requires draining
ceph osd crush reweight ...     # any placement change: same problem
ceph health detail | grep -i backfill
ceph pg dump pgs | grep -c toofull

A cluster past backfillfull cannot be reconfigured. Any change that moves data is queued and stalls, which means even a planned maintenance involving an OSD drain becomes impossible.

Recognising the point of no easy return

easy:      below 0.85 — every remedy works, on any timeline
harder:    0.85–0.90 — remedies work, timeline shortens
hard:      0.90–0.95 — only deletion and ratio changes work
emergency: above 0.95 — writes blocked; deletion may need a ratio bump
ceph osd df | sort -k17 -rn | head -1

The single number that places a cluster on this scale is the fullest OSD’s utilisation, not the average.

Preserving optionality

PracticePreserves
Projection alerting with a long horizonprocurement as an option
Balancer enabled continuouslythe imbalance remedy staying small
Lifecycle rules on RGW bucketsdeletion happening automatically
A documented list of deletable datafast reclamation under pressure
Host failure absorption checked monthlyrecovery remaining possible

Each of these costs almost nothing and each keeps one remedy available at the moment it is needed.

Quiz

Knowledge check · 4 questions

  1. Q1. Why does draining an OSD require free space even though it ends with more space available?

  2. Q2. A cluster past the backfillfull ratio can still have OSDs drained for maintenance.

  3. Q3. Plan maintenance on a cluster near backfillfull.

    A planned maintenance requires draining two OSDs to replace their host's HBA. The fullest OSD is at 89% and the cluster average is 84%.

  4. Q4. Which single number places a cluster on the capacity-severity scale?

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

Production discipline

Treat 0.90 on the fullest OSD as an operational ceiling rather than a warning; past it the cluster cannot be drained, rebalanced, or reconfigured. For a hardware swap that does not need evacuation, noout with the OSDs stopped avoids the data movement a drain would require.

Cross-course references

  • Kubernetes: a cluster with no schedulable capacity cannot drain a node either
  • Linux: needing free space to shrink a filesystem is the same paradox