mirror of
https://github.com/ceph/ceph
synced 2026-08-02 07:03:18 +00:00
Introduce a 'last_degraded' timestamp to the pg_stat_t structure to track
the initial point of redundancy loss. This field, used in conjunction
with 'last_clean', allows the manager to calculate a cluster-wide
durability score by measuring the duration of vulnerability windows.
Changes:
1) Add last_degraded (utime_t) to pg_stat_t in osd_types.h.
2) Increment pg_stat_t encoding version to 31. The decode logic
defaults last_degraded to last_clean for backward compatibility
during rolling upgrades.
3) Update operator==, dump(), and generate_test_instances() to
support ceph-dencoder testing and JSON output.
4) Implement latching logic in PeeringState::prepare_stats_for_publish():
- A PG is considered vulnerable if in DEGRADED or UNDERSIZED state.
- last_degraded is set to 'now' only if it is <= last_clean,
effectively latching the timestamp to the start of the failure
event until the PG next becomes clean.
5) Standalone tests to verify:
- The last_degraded timestamp latching logic.
- Verify last_degraded timestamp is modified when OSDs are marked 'out' for
draining purposes in which case PGs are marked undersized.
6) Release note the addition of 'last_degraded' field to PG stats.
Fixes: https://tracker.ceph.com/issues/76604
Signed-off-by: Sridhar Seshasayee <sridhar.seshasayee@ibm.com>
|
||
|---|---|---|
| .. | ||
| c2c | ||
| crush | ||
| erasure-code | ||
| mgr | ||
| misc | ||
| mon | ||
| mon-stretch | ||
| osd | ||
| osd-backfill | ||
| scrub | ||
| special | ||
| ceph-helpers.sh | ||
| README | ||
qa/standalone
=============
These scripts run standalone clusters, but not in a normal way. They make
use of functions ceph-helpers.sh to quickly start/stop daemons against
toy clusters in a single directory.
They are normally run via teuthology based on qa/suites/rados/standalone/*.yaml.
You can run them in a git checkout + build directory as well:
* The qa/run-standalone.sh will run all of them in sequence. This is slow
since there is no parallelism.
* You can run individual script(s) by specifying the basename or path below
qa/standalone as arguments to qa/run-standalone.sh.
../qa/run-standalone.sh misc.sh osd/osd-dup.sh
* Add support for specifying arguments to selected tests by simply adding
list of tests to each argument.
../qa/run-standalone.sh "test-ceph-helpers.sh test_get_last_scrub_stamp"