Skip to main content
RunBook Academy

CephCXVI · Network PartitionNetwork Partition

Why a partition does not corrupt your data

Advanced⏱ ~18 minceph

What you'll learn

  • Explain why map authority requires a monitor majority
  • Describe what an isolated PG can and cannot still do
  • Identify the fences that prevent two concurrent writers
  • Predict client behaviour on each side of a split

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

The reason a partitioned Ceph cluster stops serving rather than diverging is a deliberate design choice, and understanding it is what lets you leave a stalled cluster alone instead of forcing it into a state it cannot reconcile.

Authority has exactly one source

Every placement decision in RADOS derives from the OSDMap, and the OSDMap is mutated only by a Paxos commit across a majority of monitors. Only one side of any split can hold a majority, so only one side can change who is authoritative for anything.

ceph mon stat
ceph quorum_status -f json-pretty
ceph osd dump | head -5
epoch 91847
fsid 4d2b8c1e-9f0a-4c7d-b2e1-8a3f5c6d7e90
created 2024-03-11T08:22:41.113940+0000
modified 2026-08-18T09:14:22.884201+0000

What an isolated placement group can still do

OperationIsolated sideWhy
Serve an in-flight readbrieflythe readable lease has not yet expired
Complete a writeonly while min_size peers are reachablewrites need acknowledgement from the acting set
Form a new acting setneverthat requires a new OSDMap epoch
Mark a peer downneverthe monitors it can reach cannot commit
Renew a cephx ticketnotickets are issued by monitors
ceph osd pool get rbd-prod min_size
ceph config get osd osd_pool_default_read_lease_ratio

An isolated primary that cannot reach min_size of its acting set blocks writes. One that can reach min_size completes them for as long as its peers agree — and those peers are, by definition, on the same side of the break, holding the same map.

The fences, in order of effect

FenceWhat it prevents
Monitor majority for map commitsa second authoritative placement decision
min_size on writesa lone replica accepting writes it cannot durably replicate
PG readable leasea stale primary serving reads after a replacement went active
OSD blocklista returning client or OSD writing under a lock it has lost
ceph osd blocklist ls
ceph health detail | grep -E 'PG_AVAILABILITY|OSD_DOWN|MON_DOWN'

When neither side has quorum

A four-monitor deployment split three ways, or split two and two, leaves no side with a majority. Both halves stall completely: no map changes, no new client sessions, no peering. This is correct behaviour and it is also entirely avoidable, which is the argument for odd monitor counts and for placing them so that no single failure domain holds a majority.

What each side’s clients experience

SideExisting sessionNew session
Quorum sidecontinues, degraded pools may block on min_sizeconnects
Isolated sidereads until the lease expires, then blocksmonitor connect timeout

Blocked, not failed, is the important distinction. RBD and CephFS clients hang rather than returning errors, so the application sees stalled I/O and its own timeouts, not an explicit storage error.

Quiz

Knowledge check · 4 questions

  1. Q1. Why can only one side of a network partition change placement authority?

  2. Q2. Lowering `min_size` to 1 is a reasonable way to restore write availability on the surviving side during a partition.

  3. Q3. Advise during an active split with no quorum on either side.

    A four-monitor cluster has split two and two across two rooms. Neither side has quorum. A manager asks whether the larger room can be brought up independently to restore service.

  4. Q4. Why do clients on the isolated side hang instead of receiving errors?

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

Production discipline

During a split, the correct action is usually no action against the cluster: it is stalled because the design refuses to let two sides write. Never reduce min_size or force PGs active to create the appearance of progress, and never make one side authoritative while the other is still running — that is the one way to produce divergence Ceph cannot reconcile.

Cross-course references

  • Kubernetes: etcd behaves identically — the minority side serves nothing rather than diverging
  • Linux: a quorum device exists so that an even split has a decidable answer