CephV · Distributed Systems FoundationsDistributed Systems Foundations
Network partition — when both halves are alive and neither is sure
What you'll learn
- Define a network partition and distinguish it from node failure
- Explain why both sides of a partition believe the other has failed
- Describe how Ceph resolves a partition and which side survives
- Recognise asymmetric partitions and why they are harder
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
Node failure is asymmetric: one side stops, the other keeps going. A partition is symmetric. Both sides are running, both sides are serving requests, and each observes the other as unreachable — which is indistinguishable, from where each stands, from the other having died.
If both sides act on that belief, they diverge, and there is no correct way to merge divergent writes to the same object afterwards.
The shape of the problem
flowchart TD
subgraph "Side A: 3 monitors"
A1[mon.a] --- A2[mon.b] --- A3[mon.c]
end
subgraph "Side B: 2 monitors"
B1[mon.d] --- B2[mon.e]
end
A2 -.->|"link down"| B1
A1 -->|"quorum: 3 of 5"| OK[Serves I/O, marks side B out]
B1 -->|"no quorum: 2 of 5"| ST[Stops serving]
Ceph resolves this with a strict majority. The side with more than half the monitors keeps quorum, updates maps, marks the other side’s OSDs down and then out, and continues. The minority side cannot commit any map change, so its OSDs cannot obtain updates and stop serving — even though their disks are intact and their clients can reach them.
Why the minority stops rather than continuing read-only
It would be tempting to let the minority serve reads. Ceph does not, and the reason is that the minority cannot know whether it is the minority.
From inside the two-monitor side, the observation is “three monitors are unreachable”. That is consistent with a partition and equally consistent with three monitors having failed — in which case serving reads from stale data would be actively wrong, since the majority side may have accepted writes it knows nothing about.
Asymmetric partitions
The harder case is when connectivity is not symmetric: mon.a can
reach mon.b, but mon.b cannot reach mon.a. This happens with
one-way routing faults, asymmetric firewall rules, and MTU mismatches
that let small packets through and drop large ones.
The symptoms are confusing: monitors repeatedly calling elections,
quorum forming and dissolving, and ceph status timing out from some
hosts but not others. ceph health detail may report monitors as out
of quorum that themselves believe they are in it.
The diagnostic is direct connectivity testing from each monitor to
every other, in both directions, at the MTU actually in use — not
ping with default packet sizes, which is precisely the test that
passes when an MTU mismatch is the cause.
What to do when you meet one
- Do not restart monitors reflexively; that produces more elections.
- Establish which monitors are actually in quorum from a host that can reach all of them.
- Test connectivity between every monitor pair in both directions at the real MTU.
- Fix the network. Restoring connectivity restores quorum automatically, and the minority side rejoins and catches up without intervention.
Quiz
Knowledge check · 4 questions
Q1. Why does the minority side of a Ceph partition stop serving entirely rather than serving reads from its intact disks?
Q2. Adding a fourth monitor to a three-monitor cluster increases the number of failures the cluster can tolerate.
Q3. Monitors repeatedly call elections. ceph status times out from some hosts but succeeds from others. Monitor CPU and disk are idle. Diagnose.
Five monitors across two rooms. A network change last night adjusted MTU on the inter-room link. ceph status works from hosts in room 1 and times out from room 2. ceph health detail from room 1 lists two monitors as out of quorum, but those monitors log that they are in quorum. Monitor processes show low CPU and no RocksDB latency.
Q4. Explain why a congested network can produce monitor elections that look like a monitor problem, and how to tell the difference.
Passing score: 75%. Answers are checked in this browser.
Production discipline
Keep monitor counts odd and place them so that the majority side of any plausible partition is the side you want to survive. When elections start, resist restarting monitors — that generates more elections and destroys the evidence. Check monitor CPU and RocksDB latency first to separate a monitor problem from a network problem, then test every monitor pair in both directions at the real MTU with fragmentation disabled, because the default-size ping is exactly the test an MTU fault passes.
Cross-course references
- Ceph: Part IX (Monitor Quorum) for the quorum model in detail.
- Ceph: Part CXVI (Network Partition) for the incident runbook.
- Ceph: Part CXVII (Lost Monitor Quorum) for recovery when the majority is gone.