Read Ceph HEALTH_WARN causes with ceph health detail
Read HEALTH_WARN codes with ceph health detail, learn six common codes and the first command for each, and mute a known warning for a set time.
Ceph reports problems as upper-case codes such as OSD_DOWN. Read the code first and you know where to look. Every command here is read-only; run them on a node that has an admin keyring.
[1] Check the overall cluster status. If the health: line is not HEALTH_OK, continue.
# ceph -s[2] List the warning codes and what they refer to. Each code gets one entry, followed by the OSDs, PGs or daemons involved.
# ceph health detailThe documentation shows the shape of an entry. A muted OSD_DOWN entry lists osd.1 is down under it.
HEALTH_OK (muted: OSD_DOWN)(MUTED) OSD_DOWN 1 osds down osd.1 is down[3] OSD_DOWN and PG_DEGRADED usually appear together. OSD_DOWN means one or more OSDs are marked down: the ceph-osd daemon or its host stopped, or peers cannot reach it over the network. Find the OSD, then check the host, the daemon and the network in that order.
# ceph osd tree downPG_DEGRADED means some data has fewer replicas (or erasure-code fragments) than desired, most often because of a down OSD. Inspect one PG with:
# ceph tell <pgid> query[4] OSD_NEARFULL is an early warning: one or more OSDs passed the nearfull threshold. Check usage before the cluster fills up.
# ceph dfPOOL_NEARFULL means a pool is approaching a configured limit; pool quotas, mon_osd_nearfull_ratio and mon_osd_full_ratio all play a part. View and change a pool quota as below. A value of 0 disables the quota.
# ceph osd pool get-quota <pool># ceph osd pool set-quota <pool> max_bytes <bytes>[5] MON_CLOCK_SKEW means the clocks on hosts running Monitors differ by more than mon_clock_drift_allowed. The documented fix is to synchronize the clocks with ntpd or chrony. Check the sync state on each monitor host.
# chronyc tracking[6] RECENT_CRASH means a daemon crashed recently and the crash has not been acknowledged (archived). List new crashes and read one in full.
# ceph crash ls-new# ceph crash info <crash-id>Once you know the cause, archive the report to clear the warning, one at a time or all at once.
# ceph crash archive <crash-id># ceph crash archive-all[7] Mute a warning you understand and can leave for now. With a duration, the mute expires on its own.
# ceph health mute OSD_DOWN 4h# ceph health mute MON_DOWN 15mIf nothing else is wrong, the status becomes HEALTH_OK, and ceph health lists the mute.
HEALTH_OK (muted: OSD_DOWN)Remove a mute with:
# ceph health unmute OSD_DOWN