From: Sage Weil Date: Sat, 14 Jun 2014 17:30:50 +0000 (-0700) Subject: osd: add sanity check/warning on a few key configs X-Git-Tag: v0.83~92^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F1964%2Fhead;p=ceph.git osd: add sanity check/warning on a few key configs Warn when certain config values are set to bad values. Backport: firefly, dumpling Signed-off-by: Sage Weil --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 2225c351c871..feb7e51a7f2d 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -1317,6 +1317,8 @@ int OSD::init() if (is_stopping()) return 0; + check_config(); + dout(10) << "ensuring pgs have consumed prior maps" << dendl; consume_map(); peering_wq.drain(); @@ -8233,6 +8235,9 @@ const char** OSD::get_tracked_conf_keys() const "osd_max_backfills", "osd_op_complaint_time", "osd_op_log_threshold", "osd_op_history_size", "osd_op_history_duration", + "osd_map_cache_size", + "osd_map_max_advance", + "osd_pg_epoch_persisted_max_stale", NULL }; return KEYS; @@ -8255,6 +8260,23 @@ void OSD::handle_conf_change(const struct md_config_t *conf, op_tracker.set_history_size_and_duration(cct->_conf->osd_op_history_size, cct->_conf->osd_op_history_duration); } + + check_config(); +} + +void OSD::check_config() +{ + // some sanity checks + if (g_conf->osd_map_cache_size <= g_conf->osd_map_max_advance + 2) { + clog.warn() << "osd_map_cache_size (" << g_conf->osd_map_cache_size << ")" + << " is not > osd_map_max_advance (" + << g_conf->osd_map_max_advance << ")"; + } + if (g_conf->osd_map_cache_size <= (int)g_conf->osd_pg_epoch_persisted_max_stale + 2) { + clog.warn() << "osd_map_cache_size (" << g_conf->osd_map_cache_size << ")" + << " is not > osd_pg_epoch_persisted_max_stale (" + << g_conf->osd_pg_epoch_persisted_max_stale << ")"; + } } // -------------------------------- diff --git a/src/osd/OSD.h b/src/osd/OSD.h index c392d9076013..ac1c2e712915 100644 --- a/src/osd/OSD.h +++ b/src/osd/OSD.h @@ -911,6 +911,7 @@ public: virtual const char** get_tracked_conf_keys() const; virtual void handle_conf_change(const struct md_config_t *conf, const std::set &changed); + void check_config(); protected: Mutex osd_lock; // global lock