]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: add rgw_rados_pool_recovery_priority (default 5) 29181/head
authorSage Weil <sage@redhat.com>
Fri, 19 Apr 2019 14:45:01 +0000 (09:45 -0500)
committerSage Weil <sage@redhat.com>
Mon, 22 Jul 2019 20:45:38 +0000 (15:45 -0500)
By default, set a higher priority for recovery of rgw metadata pools.

Signed-off-by: Sage Weil <sage@redhat.com>
src/common/options.cc
src/rgw/rgw_tools.cc

index d270382b397a13a75273f9c3d9621ad7f18819dc..71c020103f066299e6dd17b5e08b5bd113f6d7ad 100644 (file)
@@ -6076,6 +6076,11 @@ std::vector<Option> get_rgw_options() {
     .set_min_max(1, 1024)
     .set_description("pg_num_min value for RGW metadata (omap-heavy) pools"),
 
+    Option("rgw_rados_pool_recovery_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+    .set_default(5)
+    .set_min_max(-10, 10)
+    .set_description("recovery_priority value for RGW metadata (omap-heavy) pools"),
+
     Option("rgw_zone", Option::TYPE_STR, Option::LEVEL_ADVANCED)
     .set_default("")
     .set_description("Zone name")
index 0f693cd137c494f5ebc6739889b9ae3336292fd1..31ff74508ca831c17307d8b953d0710447d9eb45 100644 (file)
@@ -81,9 +81,20 @@ int rgw_init_ioctx(librados::Rados *rados, const rgw_pool& pool,
        pool.name + "\", \"var\": \"pg_num_min\", \"val\": \"" +
        stringify(min) + "\"}",
        inbl, NULL, NULL);
-     if (r < 0) {
-       dout(10) << __func__ << " warning: failed to set pg_num_min on "
-               << pool.name << dendl;
+      if (r < 0) {
+       dout(10) << __func__ << " warning: failed to set pg_num_min on "
+                << pool.name << dendl;
+      }
+      // set recovery_priority
+      int p = g_conf().get_val<uint64_t>("rgw_rados_pool_recovery_priority");
+      r = rados->mon_command(
+       "{\"prefix\": \"osd pool set\", \"pool\": \"" +
+       pool.name + "\", \"var\": \"recovery_priority\": \"" +
+       stringify(p) + "\"}",
+       inbl, NULL, NULL);
+      if (r < 0) {
+       dout(10) << __func__ << " warning: failed to set recovery_priority on "
+                << pool.name << dendl;
       }
     }
   } else if (r < 0) {