Skip to content

Commit

Permalink
Merge pull request #16465 from xiexingguo/wip-shutup-noscrub-warn
Browse files Browse the repository at this point in the history
mon: stop issuing not-[deep]-scrubbed warnings if disabled

Reviewed-by: Sage Weil <sage@redhat.com>
  • Loading branch information
liewegas committed Jul 22, 2017
2 parents 31e9061 + a495184 commit 165f80a
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 39 deletions.
12 changes: 6 additions & 6 deletions src/mgr/MgrCommands.h
Expand Up @@ -21,21 +21,21 @@ COMMAND("pg dump_pools_json", "show pg pools info in json only",\

COMMAND("pg ls-by-pool " \
"name=poolstr,type=CephString " \
"name=states,type=CephChoices,strings=active|clean|down|scrubbing|degraded|inconsistent|peering|repair|recovering|backfill_wait|incomplete|stale|remapped|deep_scrub|backfill|backfill_toofull|recovery_wait|undersized|activating|peered,n=N,req=false ", \
"name=states,type=CephString,n=N,req=false", \
"list pg with pool = [poolname]", "pg", "r", "cli,rest")
COMMAND("pg ls-by-primary " \
"name=osd,type=CephOsdName " \
"name=pool,type=CephInt,req=false " \
"name=states,type=CephChoices,strings=active|clean|down|scrubbing|degraded|inconsistent|peering|repair|recovering|backfill_wait|incomplete|stale|remapped|deep_scrub|backfill|backfill_toofull|recovery_wait|undersized|activating|peered,n=N,req=false ", \
"name=states,type=CephString,n=N,req=false", \
"list pg with primary = [osd]", "pg", "r", "cli,rest")
COMMAND("pg ls-by-osd " \
"name=osd,type=CephOsdName " \
"name=pool,type=CephInt,req=false " \
"name=states,type=CephChoices,strings=active|clean|down|scrubbing|degraded|inconsistent|peering|repair|recovering|backfill_wait|incomplete|stale|remapped|deep_scrub|backfill|backfill_toofull|recovery_wait|undersized|activating|peered,n=N,req=false ", \
"name=states,type=CephString,n=N,req=false", \
"list pg on osd [osd]", "pg", "r", "cli,rest")
COMMAND("pg ls " \
"name=pool,type=CephInt,req=false " \
"name=states,type=CephChoices,strings=active|clean|down|scrubbing|degraded|inconsistent|peering|repair|recovering|backfill_wait|incomplete|stale|remapped|deep_scrub|backfill|backfill_toofull|recovery_wait|undersized|activating|peered,n=N,req=false ", \
"name=states,type=CephString,n=N,req=false", \
"list pg with specific pool, osd, state", "pg", "r", "cli,rest")
COMMAND("pg dump_stuck " \
"name=stuckops,type=CephChoices,strings=inactive|unclean|stale|undersized|degraded,n=N,req=false " \
Expand Down Expand Up @@ -82,7 +82,7 @@ COMMAND("osd test-reweight-by-utilization " \
"name=max_osds,type=CephInt,req=false " \
"name=no_increasing,type=CephChoices,strings=--no-increasing,req=false",\
"dry run of reweight OSDs by utilization [overload-percentage-for-consideration, default 120]", \
"osd", "rw", "cli,rest")
"osd", "r", "cli,rest")
COMMAND("osd reweight-by-pg " \
"name=oload,type=CephInt,req=false " \
"name=max_change,type=CephFloat,req=false " \
Expand All @@ -96,7 +96,7 @@ COMMAND("osd test-reweight-by-pg " \
"name=max_osds,type=CephInt,req=false " \
"name=pools,type=CephPoolname,n=N,req=false", \
"dry run of reweight OSDs by PG distribution [overload-percentage-for-consideration, default 120]", \
"osd", "rw", "cli,rest")
"osd", "r", "cli,rest")

COMMAND("osd scrub " \
"name=who,type=CephString", \
Expand Down
74 changes: 41 additions & 33 deletions src/mon/PGMap.cc
Expand Up @@ -3146,40 +3146,45 @@ void PGMap::get_health_checks(
// PG_NOT_SCRUBBED
// PG_NOT_DEEP_SCRUBBED
{
list<string> detail, deep_detail;
const double age = cct->_conf->mon_warn_not_scrubbed +
cct->_conf->mon_scrub_interval;
utime_t cutoff = now;
cutoff -= age;
const double deep_age = cct->_conf->mon_warn_not_deep_scrubbed +
cct->_conf->osd_deep_scrub_interval;
utime_t deep_cutoff = now;
deep_cutoff -= deep_age;
for (auto& p : pg_stat) {
if (p.second.last_scrub_stamp < cutoff) {
ostringstream ss;
ss << "pg " << p.first << " not scrubbed since "
<< p.second.last_scrub_stamp;
detail.push_back(ss.str());
if (cct->_conf->mon_warn_not_scrubbed ||
cct->_conf->mon_warn_not_deep_scrubbed) {
list<string> detail, deep_detail;
const double age = cct->_conf->mon_warn_not_scrubbed +
cct->_conf->mon_scrub_interval;
utime_t cutoff = now;
cutoff -= age;
const double deep_age = cct->_conf->mon_warn_not_deep_scrubbed +
cct->_conf->osd_deep_scrub_interval;
utime_t deep_cutoff = now;
deep_cutoff -= deep_age;
for (auto& p : pg_stat) {
if (cct->_conf->mon_warn_not_scrubbed &&
p.second.last_scrub_stamp < cutoff) {
ostringstream ss;
ss << "pg " << p.first << " not scrubbed since "
<< p.second.last_scrub_stamp;
detail.push_back(ss.str());
}
if (cct->_conf->mon_warn_not_deep_scrubbed &&
p.second.last_deep_scrub_stamp < deep_cutoff) {
ostringstream ss;
ss << "pg " << p.first << " not deep-scrubbed since "
<< p.second.last_deep_scrub_stamp;
deep_detail.push_back(ss.str());
}
}
if (p.second.last_deep_scrub_stamp < deep_cutoff) {
ostringstream ss;
ss << "pg " << p.first << " not deep-scrubbed since "
<< p.second.last_deep_scrub_stamp;
deep_detail.push_back(ss.str());
if (!detail.empty()) {
ostringstream ss;
ss << detail.size() << " pgs not scrubbed for " << age;
auto& d = checks->add("PG_NOT_SCRUBBED", HEALTH_WARN, ss.str());
d.detail.swap(detail);
}
if (!deep_detail.empty()) {
ostringstream ss;
ss << deep_detail.size() << " pgs not deep-scrubbed for " << deep_age;
auto& d = checks->add("PG_NOT_DEEP_SCRUBBED", HEALTH_WARN, ss.str());
d.detail.swap(deep_detail);
}
}
if (!detail.empty()) {
ostringstream ss;
ss << detail.size() << " pgs not scrubbed for " << age;
auto& d = checks->add("PG_NOT_SCRUBBED", HEALTH_WARN, ss.str());
d.detail.swap(detail);
}
if (!deep_detail.empty()) {
ostringstream ss;
ss << deep_detail.size() << " pgs not deep-scrubbed for " << deep_age;
auto& d = checks->add("PG_NOT_DEEP_SCRUBBED", HEALTH_WARN, ss.str());
d.detail.swap(deep_detail);
}
}
}
Expand Down Expand Up @@ -3772,7 +3777,10 @@ int process_pg_map_command(
break;
} else {
int filter = pg_string_state(state_str);
assert(filter != -1);
if (filter < 0) {
*ss << "'" << state_str << "' is not a valid pg state";
return -EINVAL;
}
state |= filter;
}

Expand Down

0 comments on commit 165f80a

Please sign in to comment.