mon/OSDMonitor: generate health warnings for luminous

Note that this tells us how many OSDs are full or nearfull; it
does not include detailed warnings telling you exactly what the
utilization is because we don't have the full osd_stat_t
available.  We leave it to ceph-mgr to generate those health
messages.

Signed-off-by: Sage Weil <sage@redhat.com>
This commit is contained in:
Sage Weil 2017-02-23 16:35:40 -05:00
parent 8bab735909
commit d795c3c457

View File

@ -3171,7 +3171,25 @@ void OSDMonitor::get_health(list<pair<health_status_t,string> >& summary,
ss << " osds: [" << osds << "]";
detail->push_back(make_pair(HEALTH_WARN, ss.str()));
}
}
}
if (osdmap.test_flag(CEPH_OSDMAP_REQUIRE_LUMINOUS)) {
int full, nearfull;
osdmap.count_full_nearfull_osds(&full, &nearfull);
if (full > 0) {
ostringstream ss;
ss << full << " full osds(s)";
summary.push_back(make_pair(HEALTH_ERR, ss.str()));
}
if (nearfull > 0) {
ostringstream ss;
ss << nearfull << " nearfull osds(s)";
summary.push_back(make_pair(HEALTH_WARN, ss.str()));
}
}
// note: we leave it to ceph-mgr to generate details health warnings
// with actual osd utilizations
// warn about flags
uint64_t warn_flags =
CEPH_OSDMAP_FULL |