From 158889b2e4089db2361b7f61d6e2e2c134fa26d6 Mon Sep 17 00:00:00 2001 From: Greg Farnum Date: Tue, 22 Feb 2011 08:00:15 -0800 Subject: [PATCH] PGMap: make osd_full and nearfull ratios configurable. These were previously set by #defines. Pretty stupid when we have a nice config system already! Signed-off-by: Greg Farnum --- src/config.cc | 2 ++ src/config.h | 2 ++ src/mon/PGMap.h | 5 +++-- src/osd/osd_types.h | 3 --- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/config.cc b/src/config.cc index 5c0f558f3638f..a38dd56dbb269 100644 --- a/src/config.cc +++ b/src/config.cc @@ -172,6 +172,8 @@ struct config_option config_optionsp[] = { OPTION(mon_clock_drift_warn_backoff, 0, OPT_FLOAT, 5), // exponential backoff for clock drift warnings OPTION(mon_accept_timeout, 0, OPT_FLOAT, 10.0), // on leader, if paxos update isn't accepted OPTION(mon_pg_create_interval, 0, OPT_FLOAT, 30.0), // no more than every 30s + OPTION(mon_osd_full_ratio, 0, OPT_INT, 95), // what % full makes an OSD "full" + OPTION(mon_osd_nearfull_ratio, 0, OPT_INT, 85), // what % full makes an OSD near full OPTION(mon_globalid_prealloc, 0, OPT_INT, 100), // how many globalids to prealloc OPTION(mon_osd_report_timeout, 0, OPT_INT, 900), // grace period before declaring unresponsive OSDs dead OPTION(paxos_propose_interval, 0, OPT_DOUBLE, 1.0), // gather updates for this long before proposing a map update diff --git a/src/config.h b/src/config.h index 9cb17bfe6ad65..e005d31681839 100644 --- a/src/config.h +++ b/src/config.h @@ -176,6 +176,8 @@ struct md_config_t { float mon_lease_ack_timeout; float mon_accept_timeout; float mon_pg_create_interval; + int mon_osd_full_ratio; + int mon_osd_nearfull_ratio; int mon_globalid_prealloc; int mon_osd_report_timeout; diff --git a/src/mon/PGMap.h b/src/mon/PGMap.h index ddd45cd096cd8..9c18cf4b2f886 100644 --- a/src/mon/PGMap.h +++ b/src/mon/PGMap.h @@ -22,6 +22,7 @@ #define CEPH_PGMAP_H #include "osd/osd_types.h" +#include "config.h" #include class PGMap { @@ -202,8 +203,8 @@ public: last_osdmap_epoch(0), last_pg_scan(0), num_pg(0), num_osd(0), - full_ratio(CEPH_OSD_FULL_RATIO), - nearfull_ratio(CEPH_OSD_NEARFULL_RATIO) {} + full_ratio(((float)g_conf.mon_osd_full_ratio)/100), + nearfull_ratio(((float)g_conf.mon_osd_nearfull_ratio)/100) {} void encode(bufferlist &bl) { __u8 v = 1; diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h index 424770b8fb86b..5ad80421ff77e 100644 --- a/src/osd/osd_types.h +++ b/src/osd/osd_types.h @@ -29,9 +29,6 @@ #define CEPH_OSD_ONDISK_MAGIC "ceph osd volume v026" -#define CEPH_OSD_NEARFULL_RATIO .8 -#define CEPH_OSD_FULL_RATIO .95 - #define CEPH_OSD_FEATURE_INCOMPAT_BASE CompatSet::Feature(1, "initial feature set(~v.18)") #define CEPH_OSD_FEATURE_INCOMPAT_PGINFO CompatSet::Feature(2, "pginfo object") #define CEPH_OSD_FEATURE_INCOMPAT_OLOC CompatSet::Feature(3, "object locator") -- 2.39.5