Ceph Cheatsheet

Ceph CheatsheetKapitel 05 von 8

Ceph-Betrieb und Diagnose

Stand Ceph Umbrella (v21) · Edition 2026.11 · Release-Daten geprüft am 10. November 2026

PG-States

Ziel: active+clean (bedient I/O, alle Replikate konsistent).

degraded: nicht alle Replikate da. undersized: Acting-Set < size. peering: OSDs einigen sich auf den PG-Stand. remapped: temporär anderes Set bis Backfill fertig.

backfilling/backfill_wait: Voll-Kopie läuft/wartet (backfill_toofull = Ziel-OSD zu voll). recovering: Delta aus dem Log.

incomplete: fehlende Schreib-Historie, Datenverlust-Risiko. inconsistent: Scrub-Abweichung → ceph pg repair <pgid>.

down: Replikat mit nötigen Daten down, PG offline. peered: unter min_size, kein Client-I/O. stale: MON ohne aktuellen PG-Status vom Primary.

Scrubbing & Rebalancing

Scrub light (täglich, Größe und Attribute) vs. deep-scrub (wöchentlich, liest die Daten, prüft Checksummen, I/O-intensiv). Flags noscrub/nodeep-scrub.

Rebalance entsteht durch CRUSH-Änderung, OSD in/out oder neue Kapazität. Drosseln unter mClock (Default seit Quincy) über osd_mclock_profile (high_client_ops); osd_max_backfills/osd_recovery_max_active greifen nur mit osd_mclock_override_recovery_settings=true. Flags norebalance/nobackfill.

Disk-Tausch (cephadm, Rook)

--replace setzt die OSD out, leert sie und hält die ID (destroyed). Erst ziehen, wenn OSD 5 nicht mehr in rm status steht; Disk schon tot: --force. cephadm legt die neue OSD per Spec auf demselben Host an. Kein noout: das hält clusterweit das Auto-Out anderer OSDs an. Rook 1.21 (nur Host-OSDs, osdsPerDevice 1) per Annotation, ziehen erst nach replace-ready-for-swap.

ceph orch osd rm 5 --replace   # out, leeren, ID halten
ceph orch osd rm status        # erst ziehen, wenn fertig
# Rook, ziehen erst nach replace-ready-for-swap:
kubectl -n rook-ceph annotate deploy rook-ceph-osd-5 \
  osd.rook.io/replace=yes-really-replace-osd-5

Health-Warnungen (typisch)

PG_DEGRADED/PG_AVAILABILITY: Redundanz bzw. Verfügbarkeit einer PG.

OSD_NEARFULL/OSD_BACKFILLFULL/OSD_FULL: Kapazität, FULL blockt Writes.

MON_CLOCK_SKEW: NTP/chrony driftet. SLOW_OPS (OSD/MON) / MDS_SLOW_REQUEST (CephFS): hängende Ops.

Weitere: POOL_NEAR_FULL, MON_DISK_LOW, TOO_MANY_PGS/TOO_FEW_PGS, MDS_SLOW_METADATA_IO, AUTH_INSECURE_*_KEY_TYPE u. a. (CephX-Rotation, ab 20.2.4/19.2.6), DEPRECATED_EC_PLUGIN (ab v21).

# Diagnose
ceph tell osd.5 bench          # Durchsatz je OSD
ceph tell mon.* mon_status     # Quorum / MonMap
ceph tell osd.5 perf dump      # remote, kein cephadm enter
ceph tell osd.5 dump_ops_in_flight
ceph pg 3.1a query             # Peering-/Recovery-Detail
ceph osd perf                  # commit/apply-Latenz