CephLXIV · Nearfull, Backfillfull and FullNearfull, Backfillfull and Full
Getting out of nearfull
What you'll learn
- Enumerate the remedies and their trade-offs
- Sequence them by cost and lead time
- Execute each safely
- Know when raising a ratio is justified
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
Why this matters in production
There are four remedies and they differ by an order of magnitude in both cost and lead time. Attempting them in the wrong order wastes the time the nearfull warning bought.
The four remedies
| Remedy | Lead time | Cost | Capacity recovered |
|---|---|---|---|
| Rebalance | hours | none | the imbalance gap |
| Delete | minutes to hours | none, but permanent | whatever is deletable |
| Raise the ratio | seconds | consumes safety margin | 5–10% of nominal |
| Add capacity | weeks | hardware | as much as purchased |
1. Rebalance
ceph balancer status
ceph balancer mode upmap
ceph balancer optimize plan
ceph balancer eval plan
ceph balancer execute plan
# how much this can recover
ceph osd df | awk 'NR>1 {print $17}' | sort -n | sed -n '1p;$p'
The recoverable capacity is roughly the gap between the fullest OSD and
the average, since MAX AVAIL is set by the fullest.
2. Delete
# RBD snapshots — commonly the largest single win
BUCKET=acme-data
FS=cephfs
SUBVOL=subvol
for i in $(rbd ls rbd-vms); do rbd snap ls rbd-vms/$i; done
# RGW — incomplete multipart uploads accumulate silently
radosgw-admin bucket check --bucket=${BUCKET}
radosgw-admin bucket list --bucket=${BUCKET} --allow-unordered | head
# CephFS — old subvolume snapshots
ceph fs subvolume snapshot ls ${FS} ${SUBVOL}
# pools no longer in use
ceph df detail
Incomplete multipart uploads are the classic hidden consumer: they occupy space, do not appear in bucket listings, and accumulate indefinitely unless a lifecycle rule removes them.
# Substitute your own value before running:
BUCKET=acme-data
radosgw-admin bucket list --bucket="$BUCKET" --allow-unordered \
| grep -c multipart
3. Raise the ratio
ceph osd set-nearfull-ratio 0.87
ceph osd set-backfillfull-ratio 0.92
ceph osd set-full-ratio 0.96
This creates no space. It moves the line at which the cluster protects itself, which is justified only as a temporary measure to enable another remedy — most often to let a stalled backfill complete or a delete proceed.
# always paired with a restoration
ceph osd set-backfillfull-ratio 0.90
4. Add capacity
ceph orch device ls --wide
ceph orch apply osd --all-available-devices
watch -n 30 'ceph -s | grep misplaced'
The durable fix, and the one with a procurement lead time — which is why the projection alerting matters more than the threshold alerting.
The order
1. rebalance — free, fast, reversible
2. delete — free, fast, permanent
3. raise ratio — free, instant, reduces safety
4. add — costs money, takes weeks, durable
Steps 1 and 2 in either order depending on what is available; step 3 only to enable 1, 2, or 4; step 4 started as early as the projection allows.
Quiz
Knowledge check · 4 questions
Q1. How much capacity can a rebalance typically recover?
Q2. Raising the full ratio frees no capacity, yet it can still be the step that lets a delete succeed on a cluster at the wall.
Q3. Reclaim space on an RGW cluster at nearfull.
An RGW cluster is at nearfull. `ceph df` shows the buckets pool holding far more than the sum of the objects users report. No lifecycle rules are configured.
Q4. Why should raising a ratio always be paired with a restoration?
Passing score: 75%. Answers are checked in this browser.
Production discipline
Work the remedies in order — rebalance, delete, raise a ratio only to enable something else, expand — because they differ by an order of magnitude in both cost and lead time. On RGW clusters check incomplete multipart uploads first; they are invisible in listings and often substantial.
Cross-course references
- Kubernetes: reclaiming through eviction, then rescheduling, then scaling follows the same ordering
- Linux: clearing caches before extending a volume is the same cost-ordered approach