]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/mon/MonCommands.h
update sources to v12.1.0
[ceph.git] / ceph / src / mon / MonCommands.h
index 970a30b43d846ba9f76aa09ca2fa8315269de781..00a1642e07f566faed176d74665446a57838d507 100644 (file)
@@ -29,7 +29,7 @@
  * helpstring: displays in CLI help, API help (nice if it refers to
  *             parameter names from signature, 40-a few hundred chars)
  * modulename: the monitor module or daemon this applies to:
- *             mds, osd, pg (osd), mon, auth, log, config-key
+ *             mds, osd, pg (osd), mon, auth, log, config-key, mgr
  * req perms:  required permission in that modulename space to execute command
  *             this also controls what type of REST command is accepted
  * availability: cli, rest, or both
@@ -133,6 +133,9 @@ COMMAND("pg set_nearfull_ratio name=ratio,type=CephFloat,range=0.0|1.0", \
 
 COMMAND("pg map name=pgid,type=CephPgid", "show mapping of pg to osds", \
        "pg", "r", "cli,rest")
+COMMAND("osd last-stat-seq name=id,type=CephOsdName", \
+       "get the last pg stats sequence number reported for this osd", \
+       "osd", "r", "cli,rest")
 
 /*
  * auth commands AuthMonitor.cc
@@ -194,6 +197,9 @@ COMMAND_WITH_FLAG("scrub", "scrub the monitor stores", \
 COMMAND("fsid", "show cluster FSID/UUID", "mon", "r", "cli,rest")
 COMMAND("log name=logtext,type=CephString,n=N", \
        "log supplied text to the monitor log", "mon", "rw", "cli,rest")
+COMMAND("log last name=num,type=CephInt,range=1,req=false", \
+       "print last few lines of the cluster log", \
+       "mon", "rw", "cli,rest")
 COMMAND_WITH_FLAG("injectargs " \
             "name=injected_args,type=CephString,n=N",                  \
             "inject config arguments into monitor", "mon", "rw", "cli,rest",
@@ -206,6 +212,8 @@ COMMAND("df name=detail,type=CephChoices,strings=detail,req=false", \
 COMMAND("report name=tags,type=CephString,n=N,req=false", \
        "report full status of cluster, optional title tag strings", \
        "mon", "r", "cli,rest")
+COMMAND("features", "report of connected features", \
+        "mon", "r", "cli,rest")
 COMMAND("quorum_status", "report status of monitor quorum", \
        "mon", "r", "cli,rest")
 
@@ -253,6 +261,12 @@ COMMAND_WITH_FLAG("mon sync force " \
 COMMAND("mon metadata name=id,type=CephString,req=false",
        "fetch metadata for mon <id>",
        "mon", "r", "cli,rest")
+COMMAND("mon count-metadata name=property,type=CephString",
+       "count mons by metadata field property",
+       "mon", "r", "cli,rest")
+COMMAND("mon versions",
+       "check running versions of monitors",
+       "mon", "r", "cli,rest")
 
 
 /*
@@ -273,6 +287,12 @@ COMMAND_WITH_FLAG("mds getmap " \
 COMMAND("mds metadata name=who,type=CephString,req=false",
        "fetch metadata for mds <who>",
        "mds", "r", "cli,rest")
+COMMAND("mds count-metadata name=property,type=CephString",
+       "count MDSs by metadata field property",
+       "mds", "r", "cli,rest")
+COMMAND("mds versions",
+       "check running versions of MDSs",
+       "mds", "r", "cli,rest")
 COMMAND_WITH_FLAG("mds tell " \
        "name=who,type=CephString " \
        "name=args,type=CephString,n=N", \
@@ -421,7 +441,8 @@ COMMAND("osd dump " \
        "name=epoch,type=CephInt,range=0,req=false",
        "print summary of OSD map", "osd", "r", "cli,rest")
 COMMAND("osd tree " \
-       "name=epoch,type=CephInt,range=0,req=false", \
+       "name=epoch,type=CephInt,range=0,req=false " \
+       "name=states,type=CephChoices,strings=up|down|in|out,n=N,req=false", \
        "print OSD tree", "osd", "r", "cli,rest")
 COMMAND("osd ls " \
        "name=epoch,type=CephInt,range=0,req=false", \
@@ -433,6 +454,11 @@ COMMAND("osd getcrushmap " \
        "name=epoch,type=CephInt,range=0,req=false", \
        "get CRUSH map", "osd", "r", "cli,rest")
 COMMAND("osd getmaxosd", "show largest OSD id", "osd", "r", "cli,rest")
+COMMAND("osd ls-tree " \
+        "name=epoch,type=CephInt,range=0,req=false "
+        "name=name,type=CephString,req=true", \
+        "show OSD ids under bucket <name> in the CRUSH map", \
+        "osd", "r", "cli,rest")
 COMMAND("osd find " \
        "name=id,type=CephOsdName", \
        "find osd <id> in the CRUSH map and show its location", \
@@ -441,20 +467,17 @@ COMMAND("osd metadata " \
        "name=id,type=CephOsdName,req=false", \
        "fetch metadata for osd {id} (default all)", \
        "osd", "r", "cli,rest")
+COMMAND("osd count-metadata name=property,type=CephString",
+       "count OSDs by metadata field property",
+       "osd", "r", "cli,rest")
+COMMAND("osd versions", \
+       "check running versions of OSDs",
+       "osd", "r", "cli,rest")
 COMMAND("osd map " \
        "name=pool,type=CephPoolname " \
        "name=object,type=CephObjectname " \
        "name=nspace,type=CephString,req=false", \
        "find pg for <object> in <pool> with [namespace]", "osd", "r", "cli,rest")
-COMMAND("osd scrub " \
-       "name=who,type=CephString", \
-       "initiate scrub on osd <who>", "osd", "rw", "cli,rest")
-COMMAND("osd deep-scrub " \
-       "name=who,type=CephString", \
-       "initiate deep scrub on osd <who>", "osd", "rw", "cli,rest")
-COMMAND("osd repair " \
-       "name=who,type=CephString", \
-       "initiate repair on osd <who>", "osd", "rw", "cli,rest")
 COMMAND("osd lspools " \
        "name=auid,type=CephInt,req=false", \
        "list pools", "osd", "r", "cli,rest")
@@ -470,9 +493,11 @@ COMMAND("osd crush rule dump " \
 COMMAND("osd crush dump", \
        "dump crush map", \
        "osd", "r", "cli,rest")
-COMMAND("osd setcrushmap", "set crush map from input file", \
+COMMAND("osd setcrushmap name=prior_version,type=CephInt,req=false", \
+       "set crush map from input file",        \
        "osd", "rw", "cli,rest")
-COMMAND("osd crush set", "set crush map from input file", \
+COMMAND("osd crush set name=prior_version,type=CephInt,req=false", \
+       "set crush map from input file",        \
        "osd", "rw", "cli,rest")
 COMMAND("osd crush add-bucket " \
        "name=name,type=CephString,goodchars=[A-Za-z0-9-_.] " \
@@ -512,6 +537,12 @@ COMMAND("osd crush move " \
        "name=args,type=CephString,n=N,goodchars=[A-Za-z0-9-_.=]", \
        "move existing entry for <name> to location <args>", \
        "osd", "rw", "cli,rest")
+COMMAND("osd crush swap-bucket " \
+       "name=source,type=CephString,goodchars=[A-Za-z0-9-_.] " \
+       "name=dest,type=CephString,goodchars=[A-Za-z0-9-_.] " \
+       "name=force,type=CephChoices,strings=--yes-i-really-mean-it,req=false", \
+       "swap existing bucket contents from (orphan) bucket <source> and <target>", \
+       "osd", "rw", "cli,rest")
 COMMAND("osd crush link " \
        "name=name,type=CephString " \
        "name=args,type=CephString,n=N,goodchars=[A-Za-z0-9-_.=]", \
@@ -604,7 +635,8 @@ COMMAND("osd set-nearfull-ratio " \
        "set usage ratio at which OSDs are marked near-full",
        "osd", "rw", "cli,rest")
 COMMAND("osd set-require-min-compat-client " \
-       "name=version,type=CephString",
+       "name=version,type=CephString " \
+       "name=sure,type=CephChoices,strings=--yes-i-really-mean-it,req=false", \
        "set the minimum client version we will maintain compatibility with",
        "osd", "rw", "cli,rest")
 COMMAND("osd pause", "pause osd", "osd", "rw", "cli,rest")
@@ -626,25 +658,81 @@ COMMAND("osd erasure-code-profile ls", \
        "list all erasure code profiles", \
        "osd", "r", "cli,rest")
 COMMAND("osd set " \
-       "name=key,type=CephChoices,strings=full|pause|noup|nodown|noout|noin|nobackfill|norebalance|norecover|noscrub|nodeep-scrub|notieragent|sortbitwise|require_jewel_osds|require_kraken_osds|require_luminous_osds", \
+       "name=key,type=CephChoices,strings=full|pause|noup|nodown|noout|noin|nobackfill|norebalance|norecover|noscrub|nodeep-scrub|notieragent|sortbitwise|require_jewel_osds|require_kraken_osds", \
        "set <key>", "osd", "rw", "cli,rest")
 COMMAND("osd unset " \
        "name=key,type=CephChoices,strings=full|pause|noup|nodown|noout|noin|nobackfill|norebalance|norecover|noscrub|nodeep-scrub|notieragent", \
        "unset <key>", "osd", "rw", "cli,rest")
+COMMAND("osd require-osd-release "\
+       "name=release,type=CephChoices,strings=luminous",
+       "set the minimum allowed OSD release to participate in the cluster",
+       "osd", "rw", "cli,rest")
 COMMAND("osd cluster_snap", "take cluster snapshot (disabled)", \
        "osd", "r", "")
 COMMAND("osd down " \
        "type=CephString,name=ids,n=N", \
-       "set osd(s) <id> [<id>...] down", "osd", "rw", "cli,rest")
+       "set osd(s) <id> [<id>...] down, " \
+        "or use <any|all|*> to set all osds down", \
+        "osd", "rw", "cli,rest")
 COMMAND("osd out " \
        "name=ids,type=CephString,n=N", \
-       "set osd(s) <id> [<id>...] out", "osd", "rw", "cli,rest")
+       "set osd(s) <id> [<id>...] out, " \
+        "or use <any|all|*> to set all osds out", \
+        "osd", "rw", "cli,rest")
 COMMAND("osd in " \
        "name=ids,type=CephString,n=N", \
-       "set osd(s) <id> [<id>...] in", "osd", "rw", "cli,rest")
+       "set osd(s) <id> [<id>...] in, "
+        "can use <any|all|*> to automatically set all previously out osds in", \
+        "osd", "rw", "cli,rest")
 COMMAND("osd rm " \
        "name=ids,type=CephString,n=N", \
-       "remove osd(s) <id> [<id>...] in", "osd", "rw", "cli,rest")
+       "remove osd(s) <id> [<id>...], "
+        "or use <any|all|*> to remove all osds", \
+        "osd", "rw", "cli,rest")
+COMMAND("osd add-noup " \
+        "name=ids,type=CephString,n=N", \
+        "mark osd(s) <id> [<id>...] as noup, " \
+        "or use <all|any|*> to mark all osds as noup", \
+        "osd", "rw", "cli,rest")
+COMMAND("osd add-nodown " \
+        "name=ids,type=CephString,n=N", \
+        "mark osd(s) <id> [<id>...] as nodown, " \
+        "or use <all|any|*> to mark all osds as nodown", \
+        "osd", "rw", "cli,rest")
+COMMAND("osd add-noin " \
+        "name=ids,type=CephString,n=N", \
+        "mark osd(s) <id> [<id>...] as noin, " \
+        "or use <all|any|*> to mark all osds as noin", \
+        "osd", "rw", "cli,rest")
+COMMAND("osd add-noout " \
+        "name=ids,type=CephString,n=N", \
+        "mark osd(s) <id> [<id>...] as noout, " \
+        "or use <all|any|*> to mark all osds as noout", \
+        "osd", "rw", "cli,rest")
+COMMAND("osd rm-noup " \
+        "name=ids,type=CephString,n=N", \
+        "allow osd(s) <id> [<id>...] to be marked up " \
+        "(if they are currently marked as noup), " \
+        "can use <all|any|*> to automatically filter out all noup osds", \
+        "osd", "rw", "cli,rest")
+COMMAND("osd rm-nodown " \
+        "name=ids,type=CephString,n=N", \
+        "allow osd(s) <id> [<id>...] to be marked down " \
+        "(if they are currently marked as nodown), " \
+        "can use <all|any|*> to automatically filter out all nodown osds", \
+        "osd", "rw", "cli,rest")
+COMMAND("osd rm-noin " \
+        "name=ids,type=CephString,n=N", \
+        "allow osd(s) <id> [<id>...] to be marked in " \
+        "(if they are currently marked as noin), " \
+        "can use <all|any|*> to automatically filter out all noin osds", \
+        "osd", "rw", "cli,rest")
+COMMAND("osd rm-noout " \
+        "name=ids,type=CephString,n=N", \
+        "allow osd(s) <id> [<id>...] to be marked out " \
+        "(if they are currently marked as noout), " \
+        "can use <all|any|*> to automatically filter out all noout osds", \
+        "osd", "rw", "cli,rest")
 COMMAND("osd reweight " \
        "name=id,type=CephOsdName " \
        "type=CephFloat,name=weight,range=0.0|1.0", \
@@ -687,15 +775,36 @@ COMMAND("osd primary-affinity " \
        "type=CephFloat,name=weight,range=0.0|1.0", \
        "adjust osd primary-affinity from 0.0 <= <weight> <= 1.0", \
        "osd", "rw", "cli,rest")
+COMMAND("osd destroy " \
+        "name=id,type=CephOsdName " \
+        "name=sure,type=CephChoices,strings=--yes-i-really-mean-it,req=false", \
+        "mark osd as being destroyed. Keeps the ID intact (allowing reuse), " \
+        "but removes cephx keys, config-key data and lockbox keys, "\
+        "rendering data permanently unreadable.", \
+        "osd", "rw", "cli,rest")
+COMMAND("osd purge " \
+        "name=id,type=CephOsdName " \
+        "name=sure,type=CephChoices,strings=--yes-i-really-mean-it,req=false", \
+        "purge all osd data from the monitors. Combines `osd destroy`, " \
+        "`osd rm`, and `osd crush rm`.", \
+        "osd", "rw", "cli,rest")
 COMMAND("osd lost " \
        "name=id,type=CephOsdName " \
        "name=sure,type=CephChoices,strings=--yes-i-really-mean-it,req=false", \
        "mark osd as permanently lost. THIS DESTROYS DATA IF NO MORE REPLICAS EXIST, BE CAREFUL", \
        "osd", "rw", "cli,rest")
-COMMAND("osd create " \
+COMMAND_WITH_FLAG("osd create " \
        "name=uuid,type=CephUUID,req=false " \
        "name=id,type=CephOsdName,req=false", \
-       "create new osd (with optional UUID and ID)", "osd", "rw", "cli,rest")
+       "create new osd (with optional UUID and ID)", "osd", "rw", "cli,rest",
+       FLAG(DEPRECATED))
+COMMAND("osd new " \
+        "name=uuid,type=CephUUID,req=true " \
+        "name=id,type=CephOsdName,req=false", \
+        "Create a new OSD. If supplied, the `id` to be replaced needs to " \
+        "exist and have been previously destroyed. " \
+        "Reads secrets from JSON file via `-i <file>` (see man page).", \
+        "osd", "rw", "cli,rest")
 COMMAND("osd blacklist " \
        "name=blacklistop,type=CephChoices,strings=add|rm " \
        "name=addr,type=CephEntityAddr " \
@@ -719,7 +828,7 @@ COMMAND("osd pool create " \
        "name=pgp_num,type=CephInt,range=0,req=false " \
         "name=pool_type,type=CephChoices,strings=replicated|erasure,req=false " \
        "name=erasure_code_profile,type=CephString,req=false,goodchars=[A-Za-z0-9-_.] " \
-       "name=ruleset,type=CephString,req=false " \
+       "name=rule,type=CephString,req=false " \
         "name=expected_num_objects,type=CephInt,req=false", \
        "create pool", "osd", "rw", "cli,rest")
 COMMAND("osd pool delete " \
@@ -740,11 +849,11 @@ COMMAND("osd pool rename " \
        "rename <srcpool> to <destpool>", "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|crush_ruleset|hashpspool|nodelete|nopgchange|nosizechange|write_fadvise_dontneed|noscrub|nodeep-scrub|hit_set_type|hit_set_period|hit_set_count|hit_set_fpp|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|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", \
        "get pool parameter <var>", "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_rule|crush_ruleset|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|debug_fake_ec_pool|target_max_bytes|target_max_objects|cache_target_dirty_ratio|cache_target_dirty_high_ratio|cache_target_full_ratio|cache_min_flush_age|cache_min_evict_age|auid|min_read_recency_for_promote|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 " \
+       "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|debug_fake_ec_pool|target_max_bytes|target_max_objects|cache_target_dirty_ratio|cache_target_dirty_high_ratio|cache_target_full_ratio|cache_min_flush_age|cache_min_evict_age|auid|min_read_recency_for_promote|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 " \
        "name=val,type=CephString " \
        "name=force,type=CephChoices,strings=--yes-i-really-mean-it,req=false", \
        "set pool parameter <var> to <val>", "osd", "rw", "cli,rest")
@@ -763,9 +872,6 @@ COMMAND("osd pool get-quota " \
 COMMAND("osd utilization",
        "get basic pg distribution stats",
        "osd", "r", "cli,rest")
-COMMAND("osd df " \
-       "name=output_method,type=CephChoices,strings=plain|tree,req=false", \
-       "show OSD utilization", "osd", "r", "cli,rest")
 
 // tiering
 COMMAND("osd tier add " \
@@ -834,5 +940,9 @@ COMMAND("config-key dump", "dump keys and values", "config-key", "r", "cli,rest"
 /*
  * mon/MgrMonitor.cc
  */
+COMMAND("mgr dump "                                 \
+       "name=epoch,type=CephInt,range=0,req=false", \
+       "dump the latest MgrMap",                    \
+       "mgr", "rw", "cli,rest")
 COMMAND("mgr fail name=who,type=CephString", \
        "treat the named manager daemon as failed", "mgr", "rw", "cli,rest")