CephIV · Failure DomainsFailure Domains
Correlated failure — why independent probability estimates mislead
What you'll learn
- Explain why independence assumptions overstate durability
- Identify the common sources of correlated failure in a storage fleet
- Estimate the effect of correlation on multi-replica loss probability
- Apply practical mitigations for correlated risk
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
The usual durability argument goes: each drive has an annualised failure rate of 1%, three replicas must all fail within the recovery window, so the probability is vanishingly small. The arithmetic is correct and the conclusion is wrong, because it assumes the three failures are independent events.
In a real cluster they frequently are not.
Where the independence assumption breaks
Manufacturing batch. Drives bought together often come from one production run. A batch defect affects them all, and they have all been running the same length of time.
Firmware. A firmware bug with a time or write-count trigger fires across every drive with that firmware at roughly the same point. There are documented cases of drives failing at a specific power-on-hour count.
Wear. Flash endurance is consumed roughly evenly by CRUSH, so identical drives commissioned together reach their limits together.
Environment. A cooling failure raises temperature across a rack. Vibration affects a chassis. Both act on many drives at once.
Operators. The single largest correlated cause. A command run against the wrong host, a configuration pushed everywhere, an upgrade applied fleet-wide.
What this changes about design
The mitigations are all about breaking the shared cause:
- Mix vendors or batches across failure domains where procurement allows, so a batch defect cannot take a whole domain.
- Stagger firmware upgrades across failure domains rather than applying fleet-wide, and leave time between them.
- Stagger commissioning, so the fleet does not age as one cohort.
- Spread failure domains across environmental boundaries — different cooling zones where possible.
- Rehearse operator procedures and require them to name the target host explicitly, because the operator-error correlation is not fixed by hardware diversity.
Estimating the effect
There is no clean formula, because correlation coefficients are not knowable in advance. The useful discipline is qualitative:
- List every property the devices in one failure domain share — model, batch, firmware, age, power, cooling, operator.
- For each, ask whether a single fault in that property could affect enough devices to exceed the redundancy.
- Where the answer is yes, either break the sharing or accept the risk explicitly and write it down.
That exercise is more valuable than any probability estimate, because it produces a list of actions rather than a number.
Quiz
Knowledge check · 4 questions
Q1. Why does the standard durability calculation — annualised failure rate cubed, over the recovery window — overstate the safety of a 3-replica pool?
Q2. Staggering firmware upgrades across failure domains is a meaningful mitigation for correlated failure.
Q3. Two OSDs fail within four hours of each other in the same rack. Both are the same drive model, same firmware, purchased in one order two years ago. Assess the risk to the remaining fleet.
42 OSDs of one model across 6 racks, all from a single purchase order. Two failed in rack C within four hours. Pool size 3, failure domain rack, min_size 2. Recovery from the first failure was still running when the second occurred. No spare drives on site. smartctl on the remaining drives shows no pending sectors but percentage-based wear indicators are similar across the fleet.
Q4. Name four sources of correlated failure in a storage fleet and one mitigation for each.
Passing score: 75%. Answers are checked in this browser.
Production discipline
Treat the independence assumption as a modelling convenience rather than a property of your cluster. Run the sharing audit at build time: for each failure domain, list what its devices have in common — model, batch, firmware, age, power, cooling, operator — and for each shared property ask whether one fault could exceed the redundancy. Break the sharing where it is cheap to break, and write down what you are accepting where it is not. Two failures close together from one batch is a fleet signal, and the correct first response is procurement, not tuning.
Cross-course references
- Ceph: Part XXVI (Erasure Coding Trade-offs) for stripe width and exposure.
- Ceph: Part III lesson on endurance for wear as a correlated cause.
- Ceph: Part CXIII (Multiple OSD Failure) for the incident response.