]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/PGMap: enable/disable TOO_FEW_OSDS warning with an option
authorSage Weil <sage@redhat.com>
Fri, 10 May 2019 19:45:12 +0000 (14:45 -0500)
committerNathan Cutler <ncutler@suse.com>
Wed, 16 Oct 2019 10:00:44 +0000 (12:00 +0200)
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 3b74fbc93d32d6cc367049d3bcbe83d3837abba5)

Conflicts
        src/mon/PGMap.cc
- cct->_conf->get_val in luminous
src/common/options.cc
- no mon_max_snap_prune_per_epoch in luminous
- in luminous, osd_pool_default_size is INT_T (int64_t). In master, it is UINT_T
  (uint64_t). So I changed the type to int64_t.

src/common/options.cc
src/mon/PGMap.cc

index da0184ffc39788d76bf7ca97b7682318b636ca57..527d08f93e167697c885934b1e85028d6a579f11 100644 (file)
@@ -1170,6 +1170,11 @@ std::vector<Option> get_global_options() {
     .set_default(true)
     .set_description("Enable POOL_APP_NOT_ENABLED health check"),
 
+    Option("mon_warn_on_too_few_osds", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+    .set_default(true)
+    .add_service("mgr")
+    .set_description("Issue a health warning if there are fewer OSDs than osd_pool_default_size"),
+
     Option("mon_min_osdmap_epochs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
     .set_default(500)
     .set_description(""),
index 1a005b24da5b3652eb5ec8c54ce2b55dcdd9b39e..5bab89d022d2e3ecb80adf41599c70b2414ad535 100644 (file)
@@ -3014,8 +3014,9 @@ void PGMap::get_health_checks(
   }
 
   // TOO_FEW_OSDS
-  auto osd_pool_default_size = cct->_conf->get_val<uint64_t>("osd_pool_default_size");
-  if (osdmap.get_num_osds() < osd_pool_default_size) {
+  auto warn_too_few_osds = cct->_conf->get_val<bool>("mon_warn_on_too_few_osds");
+  auto osd_pool_default_size = cct->_conf->get_val<int64_t>("osd_pool_default_size");
+  if (warn_too_few_osds && osdmap.get_num_osds() < osd_pool_default_size) {
     ostringstream ss;
     ss << "OSD count " << osdmap.get_num_osds()
         << " < osd_pool_default_size " << osd_pool_default_size;