From: Mykola Golub Date: Wed, 28 Mar 2018 18:00:57 +0000 (+0300) Subject: mon: add 'ceph osd pool get erasure allow_ec_overwrites' command X-Git-Tag: v12.2.6~112^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0f680f26e2394b42916889c3ffbc48c9387d3163;p=ceph.git mon: add 'ceph osd pool get erasure allow_ec_overwrites' command Fixes: https://tracker.ceph.com/issues/23487 Signed-off-by: Mykola Golub (cherry picked from commit ce561ea204ab9a28a0b1adfc2f5687de9cc8d51c) Conflicts: src/mon/MonCommands.h : Resolved for pool get command src/mon/OSDMonitor.cc : Added EC_OVERWRITES to enum osd_pool_get_choices --- diff --git a/doc/rados/operations/pools.rst b/doc/rados/operations/pools.rst index 8dcccd63deb5..ae569f92a918 100644 --- a/doc/rados/operations/pools.rst +++ b/doc/rados/operations/pools.rst @@ -750,6 +750,13 @@ You may get values for the following keys: :Type: Double +``allow_ec_overwrites`` + +:Description: see allow_ec_overwrites_ + +:Type: Boolean + + Set the Number of Object Replicas ================================= diff --git a/src/mon/MonCommands.h b/src/mon/MonCommands.h index 176ca4055f5e..f5bb5c5bbf54 100644 --- a/src/mon/MonCommands.h +++ b/src/mon/MonCommands.h @@ -941,7 +941,7 @@ COMMAND("osd pool rename " \ "rename to ", "osd", "rw", "cli,rest") COMMAND("osd pool get " \ "name=pool,type=CephPoolname " \ - "name=var,type=CephChoices,strings=size|min_size|crash_replay_interval|pg_num|pgp_num|crush_rule|hashpspool|nodelete|nopgchange|nosizechange|write_fadvise_dontneed|noscrub|nodeep-scrub|hit_set_type|hit_set_period|hit_set_count|hit_set_fpp|use_gmt_hitset|auid|target_max_objects|target_max_bytes|cache_target_dirty_ratio|cache_target_dirty_high_ratio|cache_target_full_ratio|cache_min_flush_age|cache_min_evict_age|erasure_code_profile|min_read_recency_for_promote|all|min_write_recency_for_promote|fast_read|hit_set_grade_decay_rate|hit_set_search_last_n|scrub_min_interval|scrub_max_interval|deep_scrub_interval|recovery_priority|recovery_op_priority|scrub_priority|compression_mode|compression_algorithm|compression_required_ratio|compression_max_blob_size|compression_min_blob_size|csum_type|csum_min_block|csum_max_block", \ + "name=var,type=CephChoices,strings=size|min_size|crash_replay_interval|pg_num|pgp_num|crush_rule|hashpspool|nodelete|nopgchange|nosizechange|write_fadvise_dontneed|noscrub|nodeep-scrub|hit_set_type|hit_set_period|hit_set_count|hit_set_fpp|use_gmt_hitset|auid|target_max_objects|target_max_bytes|cache_target_dirty_ratio|cache_target_dirty_high_ratio|cache_target_full_ratio|cache_min_flush_age|cache_min_evict_age|erasure_code_profile|min_read_recency_for_promote|all|min_write_recency_for_promote|fast_read|hit_set_grade_decay_rate|hit_set_search_last_n|scrub_min_interval|scrub_max_interval|deep_scrub_interval|recovery_priority|recovery_op_priority|scrub_priority|compression_mode|compression_algorithm|compression_required_ratio|compression_max_blob_size|compression_min_blob_size|csum_type|csum_min_block|csum_max_block|allow_ec_overwrites", \ "get pool parameter ", "osd", "r", "cli,rest") COMMAND("osd pool set " \ "name=pool,type=CephPoolname " \ diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 17921fd077e2..6dd077b6ca07 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -4060,7 +4060,7 @@ void OSDMonitor::dump_info(Formatter *f) namespace { enum osd_pool_get_choices { SIZE, MIN_SIZE, CRASH_REPLAY_INTERVAL, - PG_NUM, PGP_NUM, CRUSH_RULE, HASHPSPOOL, + PG_NUM, PGP_NUM, CRUSH_RULE, HASHPSPOOL, EC_OVERWRITES, NODELETE, NOPGCHANGE, NOSIZECHANGE, WRITE_FADVISE_DONTNEED, NOSCRUB, NODEEP_SCRUB, HIT_SET_TYPE, HIT_SET_PERIOD, HIT_SET_COUNT, HIT_SET_FPP, @@ -4661,8 +4661,8 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) {"min_size", MIN_SIZE}, {"crash_replay_interval", CRASH_REPLAY_INTERVAL}, {"pg_num", PG_NUM}, {"pgp_num", PGP_NUM}, - {"crush_rule", CRUSH_RULE}, - {"hashpspool", HASHPSPOOL}, {"nodelete", NODELETE}, + {"crush_rule", CRUSH_RULE}, {"hashpspool", HASHPSPOOL}, + {"allow_ec_overwrites", EC_OVERWRITES}, {"nodelete", NODELETE}, {"nopgchange", NOPGCHANGE}, {"nosizechange", NOSIZECHANGE}, {"noscrub", NOSCRUB}, {"nodeep-scrub", NODEEP_SCRUB}, {"write_fadvise_dontneed", WRITE_FADVISE_DONTNEED}, @@ -4710,7 +4710,7 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) HIT_SET_GRADE_DECAY_RATE, HIT_SET_SEARCH_LAST_N }; const choices_set_t ONLY_ERASURE_CHOICES = { - ERASURE_CODE_PROFILE + EC_OVERWRITES, ERASURE_CODE_PROFILE }; choices_set_t selected_choices; @@ -4801,6 +4801,10 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) f->dump_string("crush_rule", stringify(p->get_crush_rule())); } break; + case EC_OVERWRITES: + f->dump_bool("allow_ec_overwrites", + p->has_flag(pg_pool_t::FLAG_EC_OVERWRITES)); + break; case HASHPSPOOL: case NODELETE: case NOPGCHANGE: @@ -5018,6 +5022,11 @@ bool OSDMonitor::preprocess_command(MonOpRequestRef op) ss << "hit_set_search_last_n: " << p->hit_set_search_last_n << "\n"; break; + case EC_OVERWRITES: + ss << "allow_ec_overwrites: " << + (p->has_flag(pg_pool_t::FLAG_EC_OVERWRITES) ? "true" : "false") << + "\n"; + break; case HASHPSPOOL: case NODELETE: case NOPGCHANGE: