Skip to content

Commit

Permalink
mon: make the minimum crush tunables configurable
Browse files Browse the repository at this point in the history
If they cluster is using very old tunables, as inferred by whether it
requires a newer version of CRUSH, issue a health warning.

Signed-off-by: Sage Weil <sage@redhat.com>
  • Loading branch information
liewegas committed Mar 8, 2016
1 parent 92edf2f commit 2839fd1
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 3 deletions.
3 changes: 2 additions & 1 deletion src/common/config_opts.h
Expand Up @@ -265,7 +265,8 @@ OPTION(mon_globalid_prealloc, OPT_U32, 10000) // how many globalids to preallo
OPTION(mon_osd_report_timeout, OPT_INT, 900) // grace period before declaring unresponsive OSDs dead
OPTION(mon_force_standby_active, OPT_BOOL, true) // should mons force standby-replay mds to be active
OPTION(mon_warn_on_old_mons, OPT_BOOL, true) // should mons set health to WARN if part of quorum is old?
OPTION(mon_warn_on_legacy_crush_tunables, OPT_BOOL, true) // warn if crush tunables are not optimal
OPTION(mon_warn_on_legacy_crush_tunables, OPT_BOOL, true) // warn if crush tunables are too old (older than mon_min_crush_required_version)
OPTION(mon_crush_min_required_version, OPT_STRING, "firefly")
OPTION(mon_warn_on_crush_straw_calc_version_zero, OPT_BOOL, true) // warn if crush straw_calc_version==0
OPTION(mon_warn_on_osd_down_out_interval_zero, OPT_BOOL, true) // warn if 'mon_osd_down_out_interval == 0'
OPTION(mon_warn_on_cache_pools_without_hit_sets, OPT_BOOL, true)
Expand Down
6 changes: 4 additions & 2 deletions src/mon/OSDMonitor.cc
Expand Up @@ -2836,9 +2836,11 @@ void OSDMonitor::get_health(list<pair<health_status_t,string> >& summary,

// old crush tunables?
if (g_conf->mon_warn_on_legacy_crush_tunables) {
if (osdmap.crush->has_legacy_tunables()) {
string min = osdmap.crush->get_minimum_required_version();
if (min < g_conf->mon_crush_min_required_version) {
ostringstream ss;
ss << "crush map has legacy tunables";
ss << "crush map has legacy tunables (require " << min
<< ", min is " << g_conf->mon_crush_min_required_version << ")";
summary.push_back(make_pair(HEALTH_WARN, ss.str()));
if (detail) {
ss << "; see http://ceph.com/docs/master/rados/operations/crush-map/#tunables";
Expand Down

0 comments on commit 2839fd1

Please sign in to comment.