From 87df212cfca33efbbee6376f528cb7d4895d1dc0 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Tue, 18 Aug 2015 00:04:23 +0800 Subject: [PATCH] mon: add "ceph osd pool set $pool use_gmt_hitset true" cmd allow "ceph osd pool set $pool use_gmt_hitset " as long as the cluster supports gmt hitset. Fixes: #9732 Signed-off-by: Kefu Chai (cherry picked from commit 03a1a3cf023a9aeb2fa26820e49e5efe3f3b3789) --- src/mon/MonCommands.h | 2 +- src/mon/OSDMonitor.cc | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/mon/MonCommands.h b/src/mon/MonCommands.h index a75b067362c..4ddf7ba6d05 100644 --- a/src/mon/MonCommands.h +++ b/src/mon/MonCommands.h @@ -634,7 +634,7 @@ COMMAND("osd pool get " \ "get pool parameter ", "osd", "r", "cli,rest") COMMAND("osd pool set " \ "name=pool,type=CephPoolname " \ - "name=var,type=CephChoices,strings=size|min_size|crash_replay_interval|pg_num|pgp_num|crush_ruleset|hashpspool|nodelete|nopgchange|nosizechange|hit_set_type|hit_set_period|hit_set_count|hit_set_fpp|debug_fake_ec_pool|target_max_bytes|target_max_objects|cache_target_dirty_ratio|cache_target_full_ratio|cache_min_flush_age|cache_min_evict_age|auid|min_read_recency_for_promote|write_fadvise_dontneed " \ + "name=var,type=CephChoices,strings=size|min_size|crash_replay_interval|pg_num|pgp_num|crush_ruleset|hashpspool|nodelete|nopgchange|nosizechange|hit_set_type|hit_set_period|hit_set_count|hit_set_fpp|use_gmt_hitset|debug_fake_ec_pool|target_max_bytes|target_max_objects|cache_target_dirty_ratio|cache_target_full_ratio|cache_min_flush_age|cache_min_evict_age|auid|min_read_recency_for_promote|write_fadvise_dontneed " \ "name=val,type=CephString " \ "name=force,type=CephChoices,strings=--yes-i-really-mean-it,req=false", \ "set pool parameter to ", "osd", "rw", "cli,rest") diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 23fda28fcf3..169dafb5f74 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -4404,6 +4404,17 @@ int OSDMonitor::prepare_command_pool_set(map &cmdmap, } BloomHitSet::Params *bloomp = static_cast(p.hit_set_params.impl.get()); bloomp->set_fpp(f); + } else if (var == "use_gmt_hitset") { + if (val == "true" || (interr.empty() && n == 1)) { + if (!(osdmap.get_up_osd_features() & CEPH_FEATURE_OSD_HITSET_GMT)) { + ss << "not all OSDs support GMT hit set."; + return -EINVAL; + } + p.use_gmt_hitset = true; + } else { + ss << "expecting value 'true' or '1'"; + return -EINVAL; + } } else if (var == "debug_fake_ec_pool") { if (val == "true" || (interr.empty() && n == 1)) { p.flags |= pg_pool_t::FLAG_DEBUG_FAKE_EC_POOL; -- 2.47.3