]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: add sanity check/warning on a few key configs
authorSage Weil <sage@inktank.com>
Sat, 14 Jun 2014 17:30:50 +0000 (10:30 -0700)
committerSage Weil <sage@redhat.com>
Thu, 14 Aug 2014 00:21:18 +0000 (17:21 -0700)
Warn when certain config values are set to bad values.

Backport: firefly, dumpling
Signed-off-by: Sage Weil <sage@inktank.com>
(cherry picked from commit f3ec7d0b23fdee39a34bda7595cd2a79c08daf8a)

src/osd/OSD.cc
src/osd/OSD.h

index 9bcee749ed557291fd99b2df3ad400a80aabb930..f8961776fc515b2deac20d4bd2779bee4e493ea1 100644 (file)
@@ -1306,6 +1306,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();
@@ -7867,6 +7869,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;
@@ -7889,6 +7894,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 << ")";
+  }
 }
 
 // --------------------------------
index bd994df7cba8dcc433166799ed441af10e9080a1..d670111ea0c3663d7021ea4ebe5b422ffd2bc6d4 100644 (file)
@@ -820,6 +820,7 @@ public:
   virtual const char** get_tracked_conf_keys() const;
   virtual void handle_conf_change(const struct md_config_t *conf,
                                  const std::set <std::string> &changed);
+  void check_config();
 
 protected:
   Mutex osd_lock;                      // global lock