From 54ba2dda2034dd80594f17261451832744d2c7bf Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 8 Sep 2017 08:08:30 -0400 Subject: [PATCH] mon/OSDMonitor: assume a minimum cluster size of 3 Signed-off-by: Sage Weil (cherry picked from commit 1010761e6ad392fcaa647ec0d1b3d071535adfb3) --- src/mon/OSDMonitor.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index a047b26f27ccf..a86df145a2a87 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -5800,7 +5800,8 @@ int OSDMonitor::get_crush_rule(const string &rule_name, int OSDMonitor::check_pg_num(int64_t pool, int pg_num, int size, ostream *ss) { int64_t max_pgs_per_osd = g_conf->mon_pg_warn_max_per_osd; - int64_t max_pgs = max_pgs_per_osd * osdmap.get_num_in_osds(); + int num_osds = MAX(osdmap.get_num_in_osds(), 3); // assume min cluster size 3 + int64_t max_pgs = max_pgs_per_osd * num_osds; int64_t projected = 0; if (pool < 0) { projected += pg_num * size; @@ -5820,7 +5821,7 @@ int OSDMonitor::check_pg_num(int64_t pool, int pg_num, int size, ostream *ss) << " would mean " << projected << " total pgs, which exceeds max " << max_pgs << " (mon_pg_warn_max_per_osd " << max_pgs_per_osd - << " * num_in_osds " << osdmap.get_num_in_osds() << ")"; + << " * num_in_osds " << num_osds << ")"; return -ERANGE; } return 0; -- 2.39.5