summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-08-22 21:44:31 -0700
committerSage Weil <sage@inktank.com>2013-08-22 21:44:31 -0700
commit5637516a30f83267747bb1d718ea6ca1998ec08e (patch)
tree77dd51b3c03f652b4a767d1ea624f0f4b21c9dbb
parent17859e147743fde5e160ad951d33afa57556f9b8 (diff)
downloadceph-5637516a30f83267747bb1d718ea6ca1998ec08e.tar.gz
osd: add 'osd heartbeat min healthy ratio' tunable
This was hard-coded to 1/3; make it tunable. Signed-off-by: Sage Weil <sage@inktank.com>
-rw-r--r--src/common/config_opts.h5
-rw-r--r--src/osd/OSD.cc2
2 files changed, 6 insertions, 1 deletions
diff --git a/src/common/config_opts.h b/src/common/config_opts.h
index b021651bd4d..ce3b78ca52e 100644
--- a/src/common/config_opts.h
+++ b/src/common/config_opts.h
@@ -425,6 +425,11 @@ OPTION(osd_heartbeat_addr, OPT_ADDR, entity_addr_t())
OPTION(osd_heartbeat_interval, OPT_INT, 6) // (seconds) how often we ping peers
OPTION(osd_heartbeat_grace, OPT_INT, 20) // (seconds) how long before we decide a peer has failed
OPTION(osd_heartbeat_min_peers, OPT_INT, 10) // minimum number of peers
+
+// minimum number of peers tha tmust be reachable to mark ourselves
+// back up after being wrongly marked down.
+OPTION(osd_heartbeat_min_healthy_ratio, OPT_FLOAT, .33)
+
OPTION(osd_mon_heartbeat_interval, OPT_INT, 30) // (seconds) how often to ping monitor if no peers
OPTION(osd_mon_report_interval_max, OPT_INT, 120)
OPTION(osd_mon_report_interval_min, OPT_INT, 5) // pg stats, failures, up_thru, boot.
diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc
index 55f11707189..1ad1949ac47 100644
--- a/src/osd/OSD.cc
+++ b/src/osd/OSD.cc
@@ -3513,7 +3513,7 @@ bool OSD::_is_healthy()
++up;
++num;
}
- if (up < num / 3) {
+ if ((float)up < (float)num * g_conf->osd_heartbeat_min_healthy_ratio) {
dout(1) << "is_healthy false -- only " << up << "/" << num << " up peers (less than 1/3)" << dendl;
return false;
}