Skip to main content
RunBook Academy

CephCXVI · Network PartitionNetwork Partition

One-way reachability and the flap it produces

Advanced⏱ ~18 mincephssping

What you'll learn

  • Trace the flap loop from heartbeat loss to map re-peering
  • List the faults that produce one-way reachability
  • Test each direction independently rather than testing connectivity
  • Stop a flap safely while the fault is diagnosed

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

An OSD that goes down, comes back, and goes down again is almost never a failing disk. It is a directional network fault, and the flapping it causes damages client latency far more than the underlying fault would if the OSD simply stayed down.

The flap loop

1. Peers stop receiving from osd.42 and file failure reports
2. The monitors commit a new OSDMap with osd.42 down
3. osd.42 reads that map — its monitor session is unaffected — sees itself
   marked down, and objects
4. The monitors commit another map with osd.42 up
5. Every PG on osd.42 re-peers, twice
6. Twenty seconds later, step 1
2026-08-18T09:14:22.884 osd.42 map e91847 wrongly marked me down at e91846

That message is the diagnosis. An OSD can only send it if it reached a monitor, which means the public path to the monitors is intact while the heartbeat path to its peers is not.

Where the asymmetry comes from

FaultWhy it is directional
Asymmetric routingreturn path traverses a different, broken link
Stateful firewall rule applied on one hostinbound blocked, outbound permitted
Conntrack table exhaustionnew flows dropped in one direction only
Bond member failing on transmitreceive still works on the surviving member
Path MTU blackholelarge frames dropped one way, small ones pass
ACL or security group added to one sidethe change was never mirrored

Testing direction, not connectivity

# from osd.42's host, toward a peer
ping -c3 10.20.4.11
ss -tn state established '( dport = :6802 or sport = :6802 )'
# then the same two commands from the peer, toward osd.42
# a successful ping in one direction proves nothing about the other
ceph daemon osd.7 dump_osd_network 0

dump_osd_network reports measured ping times per peer for front and back interfaces, so a peer that appears in one direction’s table and not the other localises the break to a path rather than a host.

Stopping the flap while you diagnose

ceph osd set nodown
# and afterwards, without fail
ceph osd unset nodown
FlagEffectCost while set
nodownmonitors ignore failure reportsa genuinely dead OSD stays up in the map
noupOSDs cannot rejoinprevents a mass re-peer storm on repair
nooutdown OSDs are not removed by CRUSHno automatic rebuild if the loss is real

nodown freezes the map so peering stops churning and you get a stable cluster to investigate. It is a diagnostic aid with a real cost, so it belongs in the incident log with an owner and an expected removal time.

Quiz

Knowledge check · 4 questions

  1. Q1. An OSD logs that it was wrongly marked down and rejoins, repeatedly. What does the message prove about the fault?

  2. Q2. A flap that stops after several cycles indicates the underlying network fault has cleared.

  3. Q3. Contain a flapping OSD during a live incident.

    osd.42 has cycled down and up eleven times in nine minutes. Client write latency on several pools has risen sharply. A ping from the OSD host to its peers succeeds.

  4. Q4. Why does flapping harm clients more than the same OSD staying cleanly down?

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

Production discipline

Treat repeated wrongly marked me down messages as a network finding, not an OSD finding, and always test the reverse direction from the peer host before concluding anything. Set nodown early to stop the peering churn, and log the flag with an owner and a removal time — an unnoticed nodown means the next genuine failure goes undetected.

Cross-course references

  • Kubernetes: a pod that passes readiness locally but fails from the service mesh has the same directional shape
  • Linux: a successful ping proves one direction of one protocol at one packet size