]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
src/common/options: add config option for availability score
authorShraddha Agrawal <shraddha.agrawal000@gmail.com>
Tue, 6 May 2025 06:20:59 +0000 (11:50 +0530)
committerShraddha Agrawal <shraddha.agrawal000@gmail.com>
Thu, 19 Jun 2025 11:52:34 +0000 (17:22 +0530)
This commit modifies src/common/options/mon.yaml.in to add a
new config option to enable/disable tracking availability
score. This config option can be modified dynamically at
runtime as well.

To enable tracking availability score, we can run the
following command:

  ceph config set mon enable_availability_tracking true

By default, tracking availability score is enabled.

To disable tracking availability score:

  ceph config set mon enable_availablity_tracking false

When the feature is turned off, invoking the
`availability-status` command will display an error, prompting
the user to turn on the feature using the config option.

Fixes: https://tracker.ceph.com/issues/71494
Signed-off-by: Shraddha Agrawal <shraddhaag@ibm.com>
(cherry picked from commit 9ccef704550148b63f973ce69ab2147f7a162ba4)

src/common/options/mon.yaml.in
src/mon/OSDMonitor.cc

index dc8163ff48049af1226cd11ceb5c8660ef65148b..06db74895b80290d631f6cbde98d0bd1dd4f2a05 100644 (file)
@@ -1395,3 +1395,14 @@ options:
   default: 2
   services:
   - mon
+- name: enable_availability_tracking
+  type: bool
+  level: advanced
+  desc: Calculate and store availablity score for each pool in the 
+    cluster at regular intervals
+  default: true
+  services :
+  - mon
+  flags:
+  - runtime
\ No newline at end of file
index 0a9107c88392e0bf3654ad1a9c2351677cf571cb..3da45e2fabe39bb8f616a9e7b8efd947856fec3c 100644 (file)
@@ -14410,6 +14410,11 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op,
                                                   get_last_committed() + 1));
     return true;
   } else if (prefix == "osd pool availability-status") {
+    if (!g_conf().get_val<bool>("enable_availability_tracking")) {
+      ss << "availability tracking is disabled; you can enable it by setting the config option enable_availability_tracking";
+      err = -EPERM;
+      goto reply_no_propose;
+    }
     TextTable tbl;
     tbl.define_column("POOL", TextTable::LEFT, TextTable::LEFT);
     tbl.define_column("UPTIME", TextTable::LEFT, TextTable::RIGHT);