Skip to main content
RunBook Academy

CephLIV · ceph status and health detailceph status and health detail

Reading ceph -s line by line

Foundation⏱ ~16 minceph

What you'll learn

  • Interpret every section of ceph -s output
  • Identify what each field is telling you
  • Spot the values that warrant attention
  • Use it as the entry point to a diagnosis

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

ceph -s is the first command in every investigation and the one whose output is most often skimmed. Reading it properly frequently answers the question without a second command.

The output

ceph -s
  cluster:
    id:     8f3a2b1c-4d5e-6f70-8192-a3b4c5d6e7f8
    health: HEALTH_WARN
            1 osds down
            Degraded data redundancy: 41213/18442104 objects degraded (0.223%)

  services:
    mon: 5 daemons, quorum ceph-mon-01,ceph-mon-02,ceph-mon-03,ceph-mon-04,ceph-mon-05 (age 3w)
    mgr: ceph-mon-01(active, since 3w), standbys: ceph-mon-02
    mds: 1/1 daemons up, 1 standby
    osd: 120 osds: 119 up (since 14m), 120 in (since 3w)
    rgw: 4 daemons active (4 hosts, 1 zones)

  data:
    volumes: 1/1 healthy
    pools:   9 pools, 4353 pgs
    objects: 18.44M objects, 62 TiB
    usage:   187 TiB used, 776 TiB / 963 TiB avail
    pgs:     4251 active+clean
             102  active+recovering+degraded

  io:
    client:   142 MiB/s rd, 88 MiB/s wr, 4.21k op/s rd, 1.84k op/s wr
    recovery: 412 MiB/s, 103 objects/s

The fields that matter

mon: ... (age 3w) — how long quorum has been stable. A short age means a recent election, which is worth explaining.

osd: 120 osds: 119 up (since 14m), 120 in (since 3w) — two counts and two ages. 119 up and 120 in means one OSD is down but not out, so no data has moved yet. The since 14m dates the failure.

mgr: ... (active, since 3w) — a recently-restarted manager explains missing metrics.

pgs: — the state breakdown. Anything other than active+clean is the thing to investigate, and the counts give the scale.

usage: — used, available, and total. The gap between available and total accounts for replication.

io: client — current client load, useful for judging whether an observation correlates with load.

io: recovery — the rate. Compare it across two samples to establish whether recovery is progressing.

Using it as an entry point

ObservationNext command
health not OKceph health detail
osd up < inceph osd tree | grep down
PGs not active+cleanceph pg dump_stuck
quorum age shortceph -w | grep election
recovery rate zero with degraded PGsceph pg dump_stuck unclean
usage highceph osd df | sort -k17 -rn

Quiz

Knowledge check · 4 questions

  1. Q1. `ceph -s` reports `osd: 120 osds: 119 up (since 14m), 120 in (since 3w)`. What does this tell you?

  2. Q2. A `ceph -s` that omits the data and io sections points at the manager rather than at the cluster.

  3. Q3. Extract a diagnosis from a single status output.

    `ceph -s` shows HEALTH_WARN, mon quorum age of 40 seconds, mgr active since 40 seconds, 120 osds all up and in, and all PGs active+clean.

  4. Q4. Why can `ceph -s` hang entirely?

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

Production discipline

Read the OSD up and in counts with their ages rather than skimming them; four facts about a failure come from that one line. Treat a ceph -s that hangs as a quorum diagnosis and one missing the data sections as a manager diagnosis, rather than as an unresponsive command.

Cross-course references

  • Kubernetes: kubectl get nodes with ages carries the same density of information
  • Linux: reading a status summary carefully before running further commands is general practice