From: Sage Weil Date: Thu, 3 Mar 2016 18:46:12 +0000 (-0500) Subject: mon: make max_osds an optional arg X-Git-Tag: v10.1.0~198^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=651f05b6e6bec41b54c0a8f8ca6641ce3aa5dff3;p=ceph.git mon: make max_osds an optional arg We keep the config option with the default (4), but let you specify the max # of osds to reweight as a third optional arg. Signed-off-by: Sage Weil --- diff --git a/src/mon/MonCommands.h b/src/mon/MonCommands.h index 58b4d1d89469..a1287dfafce2 100644 --- a/src/mon/MonCommands.h +++ b/src/mon/MonCommands.h @@ -707,24 +707,28 @@ COMMAND("osd utilization", COMMAND("osd reweight-by-utilization " \ "name=oload,type=CephInt,range=100,req=false " \ "name=max_change,type=CephFloat,req=false " \ + "name=max_osds,type=CephInt,req=false " \ "name=no_increasing,type=CephChoices,strings=--no-increasing,req=false",\ "reweight OSDs by utilization [overload-percentage-for-consideration, default 120]", \ "osd", "rw", "cli,rest") COMMAND("osd test-reweight-by-utilization " \ "name=oload,type=CephInt,range=100,req=false " \ "name=max_change,type=CephFloat,req=false " \ + "name=max_osds,type=CephInt,req=false " \ "name=no_increasing,type=CephChoices,strings=--no-increasing,req=false",\ "dry run of reweight OSDs by utilization [overload-percentage-for-consideration, default 120]", \ "osd", "rw", "cli,rest") COMMAND("osd reweight-by-pg " \ "name=oload,type=CephInt,range=100,req=false " \ "name=max_change,type=CephFloat,req=false " \ + "name=max_osds,type=CephInt,req=false " \ "name=pools,type=CephPoolname,n=N,req=false", \ "reweight OSDs by PG distribution [overload-percentage-for-consideration, default 120]", \ "osd", "rw", "cli,rest") COMMAND("osd test-reweight-by-pg " \ "name=oload,type=CephInt,range=100,req=false " \ "name=max_change,type=CephFloat,req=false " \ + "name=max_osds,type=CephInt,req=false " \ "name=pools,type=CephPoolname,n=N,req=false", \ "dry run of reweight OSDs by PG distribution [overload-percentage-for-consideration, default 120]", \ "osd", "rw", "cli,rest") diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 6a22f9917682..f6bff252c78d 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -480,6 +480,7 @@ void OSDMonitor::update_logger() */ int OSDMonitor::reweight_by_utilization(int oload, double max_changef, + int max_osds, bool by_pg, const set *pools, bool no_increasing, bool dry_run, @@ -567,11 +568,13 @@ int OSDMonitor::reweight_by_utilization(int oload, f->open_object_section("reweight_by_utilization"); f->dump_unsigned("overload_min", oload); f->dump_float("max_change", max_changef); + f->dump_float("max_change_osds", max_osds); f->dump_float("average_utilization", average_util); f->dump_float("overload_utilization", overload_util); } else { oss << "oload " << oload << "\n"; oss << "max_change " << max_changef << "\n"; + oss << "max_change_osds " << max_osds << "\n"; char buf[128]; snprintf(buf, sizeof(buf), "average %04f\noverload %04f\n", average_util, overload_util); @@ -637,7 +640,7 @@ int OSDMonitor::reweight_by_utilization(int oload, (float)new_weight / (float)0x10000); oss << buf; } - if (++num_changed >= g_conf->mon_reweight_max_osds) + if (++num_changed >= max_osds) break; } if (!no_increasing && util <= underload_util) { @@ -658,7 +661,7 @@ int OSDMonitor::reweight_by_utilization(int oload, (float)weight / (float)0x10000, (float)new_weight / (float)0x10000); oss << buf; - if (++num_changed >= g_conf->mon_reweight_max_osds) + if (++num_changed >= max_osds) break; } } @@ -7523,11 +7526,14 @@ done: err = -EINVAL; goto reply; } + int64_t max_osds = g_conf->mon_reweight_max_osds; + cmd_getval(g_ceph_context, cmdmap, "max_osds", max_osds); string no_increasing; cmd_getval(g_ceph_context, cmdmap, "no_increasing", no_increasing); string out_str; err = reweight_by_utilization(oload, max_change, + max_osds, by_pg, pools.empty() ? NULL : &pools, no_increasing == "--no-increasing", diff --git a/src/mon/OSDMonitor.h b/src/mon/OSDMonitor.h index 85489f5427d5..9d4d33d239bf 100644 --- a/src/mon/OSDMonitor.h +++ b/src/mon/OSDMonitor.h @@ -230,6 +230,7 @@ public: private: int reweight_by_utilization(int oload, double max_change, + int max_osds, bool by_pg, const set *pools, bool no_increasing,