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

Backport: firefly, dumpling
Signed-off-by: Sage Weil <sage@inktank.com>
src/osd/OSD.cc
src/osd/OSD.h

index 2225c351c8715a65c9a3f16f281496780bf9fc09..feb7e51a7f2d36d500e7f03ab2cdf4de1d69ef40 100644 (file)
@@ -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 << ")";
+  }
 }
 
 // --------------------------------
index c392d90760137e7e8c1ef7834b82d60043fff6ed..ac1c2e71291553eaf0f49800d23f892e84c080a8 100644 (file)
@@ -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 <std::string> &changed);
+  void check_config();
 
 protected:
   Mutex osd_lock;                      // global lock