ceph osd pool set $TEST_POOL_GETSET pg_num $new_pgs
ceph osd pool set $TEST_POOL_GETSET pgp_num $new_pgs
wait_for_clean
- old_pgs=$(ceph osd pool get $TEST_POOL_GETSET pg_num | sed -e 's/pg_num: //')
- new_pgs=$(($old_pgs + $(ceph osd stat --format json | jq '.num_osds') * 32 + 1))
- expect_false ceph osd pool set $TEST_POOL_GETSET pg_num $new_pgs
ceph osd pool set $TEST_POOL_GETSET nosizechange 1
expect_false ceph osd pool set $TEST_POOL_GETSET size 2
OPTION(mon_osd_min_in_ratio, OPT_DOUBLE) // min osds required to be in to mark things out
OPTION(mon_osd_warn_op_age, OPT_DOUBLE) // max op age before we generate a warning (make it a power of 2)
OPTION(mon_osd_err_op_age_ratio, OPT_DOUBLE) // when to generate an error, as multiple of mon_osd_warn_op_age
-OPTION(mon_osd_max_split_count, OPT_INT) // largest number of PGs per "involved" OSD to let split create
OPTION(mon_osd_prime_pg_temp, OPT_BOOL) // prime osdmap with pg mapping changes
OPTION(mon_osd_prime_pg_temp_max_time, OPT_FLOAT) // max time to spend priming
OPTION(mon_osd_prime_pg_temp_max_estimate, OPT_FLOAT) // max estimate of pg total before we do all pgs in parallel
.add_service("mgr")
.set_description("issue REQUEST_STUCK health error if OSD ops are slower than is age (seconds)"),
- Option("mon_osd_max_split_count", Option::TYPE_INT, Option::LEVEL_ADVANCED)
- .set_default(32)
- .add_service("mon")
- .set_description(""),
-
Option("mon_osd_prime_pg_temp", Option::TYPE_BOOL, Option::LEVEL_DEV)
.set_default(true)
.add_service("mon")
ss << "splits in cache pools must be followed by scrubs and leave sufficient free space to avoid overfilling. use --yes-i-really-mean-it to force.";
return -EPERM;
}
- int expected_osds = std::min(p.get_pg_num(), osdmap.get_num_osds());
- int64_t new_pgs = n - p.get_pg_num_target();
- if (new_pgs > g_conf()->mon_osd_max_split_count * expected_osds) {
- ss << "specified pg_num " << n << " is too large (creating "
- << new_pgs << " new PGs on ~" << expected_osds
- << " OSDs exceeds per-OSD max with mon_osd_max_split_count of "
- << g_conf()->mon_osd_max_split_count << ')';
- return -E2BIG;
- }
} else {
if (osdmap.require_osd_release < CEPH_RELEASE_NAUTILUS) {
ss << "nautilus OSDs are required to adjust pg_num_pending";