Skip to main content
RunBook Academy

CephCXXI · Storage Architecture Decision-MakingStorage Architecture Decision-Making

Three hosts: the utilisation ceiling and the repair window

Intermediate⏱ ~18 minceph

What you'll learn

  • Distinguish OSD failure from host failure on three hosts
  • Compute the per-host utilisation ceiling
  • Plan maintenance that runs at reduced redundancy
  • State the accepted risks explicitly

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

Three hosts is a legitimate production choice, and it changes what the word redundant means in a way that has to be written down.

Two different failures

FailureThree hosts, size 3, host failure domain
One OSD failsrecovers automatically, within the same host
One host failsPGs go degraded and stay degraded until it returns
One host plus one OSD elsewherePGs below min_size; I/O stops for those PGs
Two hosts failmonitors lose quorum; the cluster stops
ceph -s
ceph osd pool get vms size min_size
ceph osd tree
CRUSH must place one copy per host. With exactly three hosts there is no
fourth candidate, so a host loss cannot be repaired by backfill — only by
repairing the host. The mean time to repair becomes hardware logistics.

The utilisation ceiling

An OSD failure is repaired inside its own host, so the surviving OSDs of
that host must have room for the failed one.
ceph osd df tree
ceph df detail
OSDs per hostRoom needed for one failurePractical per-host ceiling
4each survivor absorbs a thirdabout 67%
6each survivor absorbs a fifthabout 75%
8each survivor absorbs a seventhabout 78%
12each survivor absorbs an eleventhabout 82%
# the ratios the ceiling is derived from
ceph config get osd osd_backfillfull_ratio
ceph config get osd osd_failsafe_full_ratio
ceph osd dump | grep -E 'full_ratio'
Cluster-wide utilisation is the wrong number to watch here. One host
running hot while the others are empty still cannot absorb an OSD loss.

Maintenance

ceph osd set noout
ceph orch upgrade start --ceph-version 20.2.1
ceph orch upgrade status
During a host rebootState
Copies available2 of 3
min_size 2 satisfiedyes, with no margin
A second fault during the windowI/O stops for the affected PGs
Durationthe full reboot plus recovery of writes made meanwhile
Every maintenance window on three hosts is a window with no redundancy
margin. Shorten it and schedule it; do not lower `min_size` to widen it.

What to write down

Accepted: a host failure leaves the cluster degraded until the host is
repaired, with no automatic recovery. Mitigations: spare hardware on
site, per-host utilisation capped, maintenance windows scheduled and
short, min_size held at 2.

Quiz

Knowledge check · 4 questions

  1. Q1. A three-host cluster averages 40% utilisation but one host is at 85%. What happens when an OSD in that host fails?

  2. Q2. Erasure coding on three hosts reduces cost without reducing failure tolerance.

  3. Q3. Prepare a three-host cluster for a firmware upgrade.

    Three hosts, eight OSDs each, size 3 and min_size 2. Per-host utilisation is 61%, 64%, and 79%. Each host needs a reboot for firmware.

  4. Q4. Why is cluster-wide utilisation the wrong figure to watch on a three-host cluster?

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

Production discipline

Track per-host utilisation with ceph osd df tree and treat the busiest host as the cluster figure — an OSD failure is repaired inside its own host, so the cluster average is not the constraint. Write down that a host failure leaves the cluster degraded until the hardware is repaired, and keep spare hardware on site because that is the recovery mechanism.

Cross-course references

  • Kubernetes: a three-node control plane tolerates one failure and cannot reschedule its own quorum
  • Linux: an average across devices hides the one that is about to fill