]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
common: separate out options by subsystem
authorJohn Spray <john.spray@redhat.com>
Sun, 23 Jul 2017 16:34:57 +0000 (12:34 -0400)
committerJohn Spray <john.spray@redhat.com>
Mon, 24 Jul 2017 13:03:59 +0000 (09:03 -0400)
This avoids compiler warning about one oversized
literal, allows us to add_service en-masse to
the whole collection, and avoids potential merge
conflicts when config changes in separate subsystems
are made.

Signed-off-by: John Spray <john.spray@redhat.com>
src/common/options.cc
src/common/options.h

index 343c2d5270f5a53ffe4458c7cbbb59f232801d41..92fb2ff5436bf47aacd53e1aa3345d4992ebd388 100644 (file)
@@ -130,10 +130,8 @@ void Option::dump(Formatter *f) const
   f->close_section();
 }
 
-const std::vector<Option> ceph_options = {
-
-  // ** global basics **
 
+std::vector<Option> global_options = {
   Option("host", Option::TYPE_STR, Option::LEVEL_BASIC)
   .set_description("local hostname")
   .set_long_description("if blank, ceph assumes the short hostname (hostname -s)")
@@ -274,8 +272,6 @@ const std::vector<Option> ceph_options = {
   Option("restapi_base_url", Option::TYPE_STR, Option::LEVEL_ADVANCED)
   .set_description("default set by python code"),
 
-
-
   Option("erasure_code_dir", Option::TYPE_STR, Option::LEVEL_ADVANCED)
   .set_default(CEPH_PKGLIBDIR"/erasure-code")
   .set_description("directory where erasure-code plugins can be found")
@@ -353,90 +349,7 @@ const std::vector<Option> ceph_options = {
   .set_description("port number for the remote graylog server")
   .add_see_also("log_graylog_host"),
 
-  Option("rbd_default_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("rbd")
-  .set_description("")
-  .set_validator([](std::string *value, std::string *error_message){
-    boost::regex pattern("^[^@/]+$");
-    if (!boost::regex_match (*value, pattern)) {
-      *value = "rbd";
-      *error_message = "invalid RBD default pool, resetting to 'rbd'";
-    }
-    return 0;
-  }),
-
-  Option("rbd_default_data_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
-  .set_description("")
-  .set_validator([](std::string *value, std::string *error_message){
-    boost::regex pattern("^[^@/]*$");
-    if (!boost::regex_match (*value, pattern)) {
-      *value = "";
-      *error_message = "ignoring invalid RBD data pool";
-    }
-    return 0;
-  }),
-
-  Option("rbd_default_features", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("layering,exclusive-lock,object-map,fast-diff,deep-flatten")
-  .set_description("")
-  .set_safe()
-  .set_validator([](std::string *value, std::string *error_message){
-    static const std::map<std::string, uint64_t> FEATURE_MAP = {
-      {RBD_FEATURE_NAME_LAYERING, RBD_FEATURE_LAYERING},
-      {RBD_FEATURE_NAME_STRIPINGV2, RBD_FEATURE_STRIPINGV2},
-      {RBD_FEATURE_NAME_EXCLUSIVE_LOCK, RBD_FEATURE_EXCLUSIVE_LOCK},
-      {RBD_FEATURE_NAME_OBJECT_MAP, RBD_FEATURE_OBJECT_MAP},
-      {RBD_FEATURE_NAME_FAST_DIFF, RBD_FEATURE_FAST_DIFF},
-      {RBD_FEATURE_NAME_DEEP_FLATTEN, RBD_FEATURE_DEEP_FLATTEN},
-      {RBD_FEATURE_NAME_JOURNALING, RBD_FEATURE_JOURNALING},
-      {RBD_FEATURE_NAME_DATA_POOL, RBD_FEATURE_DATA_POOL},
-    };
-    static_assert((RBD_FEATURE_DATA_POOL << 1) > RBD_FEATURES_ALL,
-                  "new RBD feature added");
-
-    // convert user-friendly comma delimited feature name list to a bitmask
-    // that is used by the librbd API
-    uint64_t features = 0;
-    error_message->clear();
-
-    try {
-      features = boost::lexical_cast<decltype(features)>(*value);
-
-      uint64_t unsupported_features = (features & ~RBD_FEATURES_ALL);
-      if (unsupported_features != 0ull) {
-        features &= RBD_FEATURES_ALL;
-
-        std::stringstream ss;
-        ss << "ignoring unknown feature mask 0x"
-           << std::hex << unsupported_features;
-        *error_message = ss.str();
-      }
-    } catch (const boost::bad_lexical_cast& ) {
-      int r = 0;
-      std::vector<std::string> feature_names;
-      boost::split(feature_names, *value, boost::is_any_of(","));
-      for (auto feature_name: feature_names) {
-        boost::trim(feature_name);
-        auto feature_it = FEATURE_MAP.find(feature_name);
-        if (feature_it != FEATURE_MAP.end()) {
-          features += feature_it->second;
-        } else {
-          if (!error_message->empty()) {
-            *error_message += ", ";
-          }
-          *error_message += "ignoring unknown feature " + feature_name;
-          r = -EINVAL;
-        }
-      }
 
-      if (features == 0 && r == -EINVAL) {
-        features = RBD_FEATURES_DEFAULT;
-      }
-    }
-    *value = stringify(features);
-    return 0;
-  }),
 
   // unmodified
   Option("clog_to_monitors", Option::TYPE_STR, Option::LEVEL_ADVANCED)
@@ -1510,3978 +1423,4094 @@ const std::vector<Option> ceph_options = {
   .set_default(0)
   .set_description(""),
 
-  Option("client_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(16384)
+  Option("crush_location", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("client_cache_mid", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.75)
+  Option("crush_location_hook", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("client_use_random_mds", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("crush_location_hook_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10)
   .set_description(""),
 
-  Option("client_mount_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(300.0)
+  Option("objecter_tick_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(5.0)
   .set_description(""),
 
-  Option("client_tick_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(1.0)
+  Option("objecter_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(10.0)
   .set_description(""),
 
-  Option("client_trace", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("objecter_inflight_op_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1024*1024*100)
   .set_description(""),
 
-  Option("client_readahead_min", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(128*1024)
+  Option("objecter_inflight_ops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1024)
   .set_description(""),
 
-  Option("client_readahead_max_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("objecter_completion_locks_per_session", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(32)
   .set_description(""),
 
-  Option("client_readahead_max_periods", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(4)
+  Option("objecter_inject_no_watch_ping", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("client_reconnect_stale", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("objecter_retry_writes_after_first_reply", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("client_snapdir", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default(".snap")
+  Option("objecter_debug_inject_relock_delay", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("client_mountpoint", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("/")
+  Option("filer_max_purge_ops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(10)
   .set_description(""),
 
-  Option("client_mount_uid", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(-1)
+  Option("filer_max_truncate_ops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(128)
   .set_description(""),
 
-  Option("client_mount_gid", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(-1)
+  Option("journaler_write_head_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(15)
   .set_description(""),
 
-  Option("client_notify_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  Option("journaler_prefetch_periods", Option::TYPE_INT, Option::LEVEL_ADVANCED)
   .set_default(10)
   .set_description(""),
 
-  Option("osd_client_watch_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(30)
-  .set_description(""),
-
-  Option("client_caps_release_delay", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  Option("journaler_prezero_periods", Option::TYPE_INT, Option::LEVEL_ADVANCED)
   .set_default(5)
   .set_description(""),
 
-  Option("client_quota_df", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("osd_check_max_object_name_len_on_startup", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(true)
   .set_description(""),
 
-  Option("client_oc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("osd_max_backfills", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1)
   .set_description(""),
 
-  Option("client_oc_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1024*1024* 200)
+  Option("osd_min_recovery_priority", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("client_oc_max_dirty", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1024*1024* 100)
+  Option("osd_backfill_retry_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(30.0)
   .set_description(""),
 
-  Option("client_oc_target_dirty", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1024*1024* 8)
+  Option("osd_recovery_retry_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(30.0)
   .set_description(""),
 
-  Option("client_oc_max_dirty_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(5.0)
+  Option("osd_agent_max_ops", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(4)
   .set_description(""),
 
-  Option("client_oc_max_objects", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1000)
+  Option("osd_agent_max_low_ops", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(2)
   .set_description(""),
 
-  Option("client_debug_getattr_caps", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("osd_agent_min_evict_effort", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.1)
   .set_description(""),
 
-  Option("client_debug_force_sync_read", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("osd_agent_quantize_effort", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.1)
   .set_description(""),
 
-  Option("client_debug_inject_tick_delay", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_agent_delay_time", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(5.0)
   .set_description(""),
 
-  Option("client_max_inline_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(4096)
+  Option("osd_find_best_info_ignore_history_les", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("client_inject_release_failure", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("osd_agent_hist_halflife", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1000)
   .set_description(""),
 
-  Option("client_inject_fixed_oldest_tid", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("osd_agent_slop", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.02)
   .set_description(""),
 
-  Option("client_metadata", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("osd_uuid", Option::TYPE_UUID, Option::LEVEL_ADVANCED)
+  .set_default(uuid_d())
   .set_description(""),
 
-  Option("client_acl_type", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("osd_data", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("/var/lib/ceph/osd/$cluster-$id")
   .set_description(""),
 
-  Option("client_permissions", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("osd_journal", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("/var/lib/ceph/osd/$cluster-$id/journal")
   .set_description(""),
 
-  Option("client_dirsize_rbytes", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("osd_journal_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(5120)
   .set_description(""),
 
-  Option("fuse_use_invalidate_cb", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("osd_journal_flush_on_shutdown", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(true)
   .set_description(""),
 
-  Option("fuse_disable_pagecache", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("osd_os_flags", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("fuse_allow_other", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("osd_max_write_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(90)
   .set_description(""),
 
-  Option("fuse_default_permissions", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("osd_max_pgls", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1024)
   .set_description(""),
 
-  Option("fuse_big_writes", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("osd_client_message_size_cap", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(500*1024L*1024L)
   .set_description(""),
 
-  Option("fuse_atomic_o_trunc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("osd_client_message_cap", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(100)
   .set_description(""),
 
-  Option("fuse_debug", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("osd_pg_bits", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(6)
   .set_description(""),
 
-  Option("fuse_multithreaded", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("osd_pgp_bits", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(6)
   .set_description(""),
 
-  Option("fuse_require_active_mds", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("osd_crush_update_weight_set", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(true)
   .set_description(""),
 
-  Option("fuse_syncfs_on_mksnap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("osd_crush_chooseleaf_type", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1)
   .set_description(""),
 
-  Option("fuse_set_user_groups", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("osd_pool_use_gmt_hitset", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("client_try_dentry_invalidate", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("osd_crush_update_on_start", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(true)
   .set_description(""),
 
-  Option("client_die_on_failed_remount", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("osd_class_update_on_start", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(true)
   .set_description(""),
 
-  Option("client_check_pool_perm", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("osd_crush_initial_weight", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(-1)
   .set_description(""),
 
-  Option("client_use_faked_inos", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("osd_pool_default_crush_rule", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(-1)
   .set_description(""),
 
-  Option("client_mds_namespace", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("osd_pool_erasure_code_stripe_unit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(4096)
   .set_description(""),
 
-  Option("crush_location", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("osd_pool_default_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(3)
   .set_description(""),
 
-  Option("crush_location_hook", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("osd_pool_default_min_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("crush_location_hook_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10)
+  Option("osd_pool_default_pg_num", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(8)
   .set_description(""),
 
-  Option("objecter_tick_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(5.0)
+  Option("osd_pool_default_pgp_num", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(8)
   .set_description(""),
 
-  Option("objecter_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(10.0)
+  Option("osd_pool_default_type", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("replicated")
   .set_description(""),
 
-  Option("objecter_inflight_op_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1024*1024*100)
+  Option("osd_pool_default_erasure_code_profile", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("plugin=jerasure " "technique=reed_sol_van " "k=2 " "m=1 ")
   .set_description(""),
 
-  Option("objecter_inflight_ops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1024)
+  Option("osd_erasure_code_plugins", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("jerasure" " lrc")
   .set_description(""),
 
-  Option("objecter_completion_locks_per_session", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(32)
+  Option("osd_allow_recovery_below_min_size", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("objecter_inject_no_watch_ping", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("osd_pool_default_flags", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("objecter_retry_writes_after_first_reply", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("osd_pool_default_flag_hashpspool", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
+  .set_description(""),
+
+  Option("osd_pool_default_flag_nodelete", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("objecter_debug_inject_relock_delay", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("osd_pool_default_flag_nopgchange", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("filer_max_purge_ops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(10)
+  Option("osd_pool_default_flag_nosizechange", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("filer_max_truncate_ops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(128)
+  Option("osd_pool_default_hit_set_bloom_fpp", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.05)
   .set_description(""),
 
-  Option("journaler_write_head_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(15)
+  Option("osd_pool_default_cache_target_dirty_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.4)
   .set_description(""),
 
-  Option("journaler_prefetch_periods", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10)
+  Option("osd_pool_default_cache_target_dirty_high_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.6)
   .set_description(""),
 
-  Option("journaler_prezero_periods", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("osd_pool_default_cache_target_full_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.8)
   .set_description(""),
 
-  Option("mds_data", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("/var/lib/ceph/mds/$cluster-$id")
+  Option("osd_pool_default_cache_min_flush_age", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("mds_max_file_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1ULL << 40)
+  Option("osd_pool_default_cache_min_evict_age", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("mds_max_xattr_pairs_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(64 << 10)
+  Option("osd_pool_default_cache_max_evict_check_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10)
   .set_description(""),
 
-  Option("mds_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(100000)
+  Option("osd_hit_set_min_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1000)
   .set_description(""),
 
-  Option("mds_cache_mid", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.7)
+  Option("osd_hit_set_max_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(100000)
   .set_description(""),
 
-  Option("mds_max_file_recover", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(32)
+  Option("osd_hit_set_namespace", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default(".ceph-internal")
   .set_description(""),
 
-  Option("mds_dir_max_commit_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10)
+  Option("osd_tier_promote_max_objects_sec", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(25)
   .set_description(""),
 
-  Option("mds_dir_keys_per_op", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(16384)
+  Option("osd_tier_promote_max_bytes_sec", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(5 * 1024*1024)
   .set_description(""),
 
-  Option("mds_decay_halflife", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("osd_tier_default_cache_mode", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("writeback")
   .set_description(""),
 
-  Option("mds_beacon_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  Option("osd_tier_default_cache_hit_set_count", Option::TYPE_INT, Option::LEVEL_ADVANCED)
   .set_default(4)
   .set_description(""),
 
-  Option("mds_beacon_grace", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(15)
+  Option("osd_tier_default_cache_hit_set_period", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1200)
   .set_description(""),
 
-  Option("mds_enforce_unique_name", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("osd_tier_default_cache_hit_set_type", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("bloom")
   .set_description(""),
 
-  Option("mds_blacklist_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(24.0*60.0)
+  Option("osd_tier_default_cache_min_read_recency_for_promote", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1)
   .set_description(""),
 
-  Option("mds_session_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(60)
+  Option("osd_tier_default_cache_min_write_recency_for_promote", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1)
   .set_description(""),
 
-  Option("mds_session_blacklist_on_timeout", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("osd_tier_default_cache_hit_set_grade_decay_rate", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(20)
   .set_description(""),
 
-  Option("mds_session_blacklist_on_evict", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("osd_tier_default_cache_hit_set_search_last_n", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1)
   .set_description(""),
 
-  Option("mds_sessionmap_keys_per_op", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1024)
+  Option("osd_map_dedup", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("mds_revoke_cap_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(60)
+  Option("osd_map_max_advance", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(40)
   .set_description(""),
 
-  Option("mds_recall_state_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(60)
+  Option("osd_map_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(50)
   .set_description(""),
 
-  Option("mds_freeze_tree_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(30)
+  Option("osd_map_message_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(40)
   .set_description(""),
 
-  Option("mds_session_autoclose", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(300)
+  Option("osd_map_share_max_epochs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(40)
   .set_description(""),
 
-  Option("mds_health_summarize_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10)
+  Option("osd_inject_bad_map_crc_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("mds_health_cache_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(1.5)
+  Option("osd_inject_failure_on_pg_removal", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("mds_reconnect_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(45)
+  Option("osd_max_markdown_period", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(600)
   .set_description(""),
 
-  Option("mds_tick_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  Option("osd_max_markdown_count", Option::TYPE_INT, Option::LEVEL_ADVANCED)
   .set_default(5)
   .set_description(""),
 
-  Option("mds_dirstat_min_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(1)
-  .set_description(""),
-
-  Option("mds_scatter_nudge_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("osd_peering_wq_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(2)
   .set_description(""),
 
-  Option("mds_client_prealloc_inos", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1000)
+  Option("osd_peering_wq_batch_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(20)
   .set_description(""),
 
-  Option("mds_early_reply", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("osd_op_pq_max_tokens_per_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(4194304)
   .set_description(""),
 
-  Option("mds_default_dir_hash", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(CEPH_STR_HASH_RJENKINS)
+  Option("osd_op_pq_min_cost", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(65536)
   .set_description(""),
 
-  Option("mds_log_pause", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("osd_disk_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1)
   .set_description(""),
 
-  Option("mds_log_skip_corrupt_events", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("osd_disk_thread_ioprio_class", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("mds_log_max_events", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  Option("osd_disk_thread_ioprio_priority", Option::TYPE_INT, Option::LEVEL_ADVANCED)
   .set_default(-1)
   .set_description(""),
 
-  Option("mds_log_events_per_segment", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1024)
+  Option("osd_recover_clone_overlap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("mds_log_segment_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  Option("osd_op_num_threads_per_shard", Option::TYPE_INT, Option::LEVEL_ADVANCED)
   .set_default(0)
   .set_description(""),
 
-  Option("mds_log_max_segments", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(30)
+  Option("osd_op_num_threads_per_shard_hdd", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1)
   .set_description(""),
 
-  Option("mds_log_max_expiring", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(20)
+  Option("osd_op_num_threads_per_shard_ssd", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(2)
   .set_description(""),
 
-  Option("mds_bal_export_pin", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("osd_op_num_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("mds_bal_sample_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(3.0)
+  Option("osd_op_num_shards_hdd", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("mds_bal_replicate_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(8000)
+  Option("osd_op_num_shards_ssd", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(8)
   .set_description(""),
 
-  Option("mds_bal_unreplicate_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_op_queue", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("wpq")
   .set_description(""),
 
-  Option("mds_bal_frag", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("osd_op_queue_cut_off", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("low")
   .set_description(""),
 
-  Option("mds_bal_split_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10000)
+  Option("osd_op_queue_mclock_client_op_res", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(1000.0)
   .set_description(""),
 
-  Option("mds_bal_split_rd", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(25000)
+  Option("osd_op_queue_mclock_client_op_wgt", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(500.0)
   .set_description(""),
 
-  Option("mds_bal_split_wr", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(10000)
+  Option("osd_op_queue_mclock_client_op_lim", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0.0)
   .set_description(""),
 
-  Option("mds_bal_split_bits", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(3)
+  Option("osd_op_queue_mclock_osd_subop_res", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(1000.0)
   .set_description(""),
 
-  Option("mds_bal_merge_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(50)
+  Option("osd_op_queue_mclock_osd_subop_wgt", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(500.0)
   .set_description(""),
 
-  Option("mds_bal_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10)
+  Option("osd_op_queue_mclock_osd_subop_lim", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0.0)
   .set_description(""),
 
-  Option("mds_bal_fragment_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("osd_op_queue_mclock_snap_res", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0.0)
   .set_description(""),
 
-  Option("mds_bal_fragment_size_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10000*10)
+  Option("osd_op_queue_mclock_snap_wgt", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(1.0)
   .set_description(""),
 
-  Option("mds_bal_fragment_fast_factor", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(1.5)
+  Option("osd_op_queue_mclock_snap_lim", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0.001)
   .set_description(""),
 
-  Option("mds_bal_idle_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_op_queue_mclock_recov_res", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0.0)
   .set_description(""),
 
-  Option("mds_bal_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(-1)
+  Option("osd_op_queue_mclock_recov_wgt", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(1.0)
   .set_description(""),
 
-  Option("mds_bal_max_until", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(-1)
+  Option("osd_op_queue_mclock_recov_lim", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0.001)
   .set_description(""),
 
-  Option("mds_bal_mode", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_op_queue_mclock_scrub_res", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0.0)
   .set_description(""),
 
-  Option("mds_bal_min_rebalance", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.1)
+  Option("osd_op_queue_mclock_scrub_wgt", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(1.0)
   .set_description(""),
 
-  Option("mds_bal_min_start", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.2)
+  Option("osd_op_queue_mclock_scrub_lim", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0.001)
   .set_description(""),
 
-  Option("mds_bal_need_min", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.8)
+  Option("osd_ignore_stale_divergent_priors", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("mds_bal_need_max", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(1.2)
+  Option("osd_read_ec_check_for_errors", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("mds_bal_midchunk", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.3)
+  Option("osd_recover_clone_overlap_limit", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10)
   .set_description(""),
 
-  Option("mds_bal_minchunk", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.001)
+  Option("osd_backfill_scan_min", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(64)
   .set_description(""),
 
-  Option("mds_bal_target_decay", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(10.0)
+  Option("osd_backfill_scan_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(512)
   .set_description(""),
 
-  Option("mds_replay_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(1.0)
+  Option("osd_op_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(15)
   .set_description(""),
 
-  Option("mds_shutdown_check", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_op_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(150)
   .set_description(""),
 
-  Option("mds_thrash_exports", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_recovery_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(30)
   .set_description(""),
 
-  Option("mds_thrash_fragments", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_recovery_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(300)
   .set_description(""),
 
-  Option("mds_dump_cache_on_map", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("osd_recovery_sleep", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0)                                                              
+  .set_description(""),                                                        
+                                                                               
+  Option("osd_recovery_sleep_hdd", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) 
+  .set_default(0.1)                                                            
+  .set_description(""),                                                        
+                                                                               
+  Option("osd_recovery_sleep_ssd", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) 
+  .set_default(0)   
   .set_description(""),
 
-  Option("mds_dump_cache_after_rejoin", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("osd_snap_trim_sleep", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("mds_verify_scatter", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("osd_scrub_invalid_stats", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("mds_debug_scatterstat", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("osd_remove_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(60*60)
   .set_description(""),
 
-  Option("mds_debug_frag", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("osd_remove_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10*60*60)
   .set_description(""),
 
-  Option("mds_debug_auth_pins", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("osd_command_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10*60)
   .set_description(""),
 
-  Option("mds_debug_subtrees", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("osd_command_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(15*60)
   .set_description(""),
 
-  Option("mds_kill_mdstable_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_heartbeat_addr", Option::TYPE_ADDR, Option::LEVEL_ADVANCED)
+  .set_default(entity_addr_t())
   .set_description(""),
 
-  Option("mds_kill_export_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_heartbeat_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(6)
   .set_description(""),
 
-  Option("mds_kill_import_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_heartbeat_grace", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(20)
   .set_description(""),
 
-  Option("mds_kill_link_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_heartbeat_min_peers", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10)
   .set_description(""),
 
-  Option("mds_kill_rename_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_heartbeat_use_min_delay_socket", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("mds_kill_openc_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_heartbeat_min_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(2000)
   .set_description(""),
 
-  Option("mds_kill_journal_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_pg_max_concurrent_snap_trims", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(2)
   .set_description(""),
 
-  Option("mds_kill_journal_expire_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_max_trimming_pgs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(2)
   .set_description(""),
 
-  Option("mds_kill_journal_replay_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_heartbeat_min_healthy_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.33)
   .set_description(""),
 
-  Option("mds_journal_format", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1)
+  Option("osd_mon_heartbeat_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(30)
   .set_description(""),
 
-  Option("mds_kill_create_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_mon_report_interval_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(600)
   .set_description(""),
 
-  Option("mds_inject_traceless_reply_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_mon_report_interval_min", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("mds_wipe_sessions", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_mon_report_max_in_flight", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(2)
   .set_description(""),
 
-  Option("mds_wipe_ino_prealloc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_beacon_report_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(300)
   .set_description(""),
 
-  Option("mds_skip_ino", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_pg_stat_report_interval_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(500)
   .set_description(""),
 
-  Option("mds_standby_for_name", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("osd_mon_ack_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(30.0)
   .set_description(""),
 
-  Option("mds_standby_for_rank", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(-1)
+  Option("osd_stats_ack_timeout_factor", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(2.0)
   .set_description(""),
 
-  Option("mds_standby_for_fscid", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(-1)
+  Option("osd_stats_ack_timeout_decay", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.9)
   .set_description(""),
 
-  Option("mds_standby_replay", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("osd_default_data_pool_replay_window", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(45)
   .set_description(""),
 
-  Option("mds_enable_op_tracker", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("osd_auto_mark_unfound_lost", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("mds_op_history_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(20)
+  Option("osd_recovery_delay_start", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("mds_op_history_duration", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(600)
+  Option("osd_recovery_max_active", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(3)
   .set_description(""),
 
-  Option("mds_op_complaint_time", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(30)
+  Option("osd_recovery_max_single_start", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1)
   .set_description(""),
 
-  Option("mds_op_log_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("osd_recovery_max_chunk", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(8<<20)
   .set_description(""),
 
-  Option("mds_snap_min_uid", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_recovery_max_omap_entries_per_chunk", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(64000)
   .set_description(""),
 
-  Option("mds_snap_max_uid", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(4294967294)
+  Option("osd_copyfrom_max_chunk", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(8<<20)
   .set_description(""),
 
-  Option("mds_snap_rstat", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("osd_push_per_object_cost", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1000)
   .set_description(""),
 
-  Option("mds_verify_backtrace", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1)
+  Option("osd_max_push_cost", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(8<<20)
   .set_description(""),
 
-  Option("mds_max_completed_flushes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(100000)
+  Option("osd_max_push_objects", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(10)
   .set_description(""),
 
-  Option("mds_max_completed_requests", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(100000)
+  Option("osd_recovery_forget_lost_objects", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("mds_action_on_write_error", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  Option("osd_max_scrubs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
   .set_default(1)
   .set_description(""),
 
-  Option("mds_mon_shutdown_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("osd_scrub_during_recovery", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("mds_max_purge_files", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(64)
+  Option("osd_scrub_begin_hour", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("mds_max_purge_ops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(8192)
+  Option("osd_scrub_end_hour", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(24)
   .set_description(""),
 
-  Option("mds_max_purge_ops_per_pg", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  Option("osd_scrub_load_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
   .set_default(0.5)
   .set_description(""),
 
-  Option("mds_purge_queue_busy_flush_period", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(1.0)
+  Option("osd_scrub_min_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(60*60*24)
   .set_description(""),
 
-  Option("mds_root_ino_uid", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_scrub_max_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(7*60*60*24)
   .set_description(""),
 
-  Option("mds_root_ino_gid", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_scrub_interval_randomize_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0.5)
   .set_description(""),
 
-  Option("mds_max_scrub_ops_in_progress", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  Option("osd_scrub_backoff_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.66)
+  .set_description(""),
+
+  Option("osd_scrub_chunk_min", Option::TYPE_INT, Option::LEVEL_ADVANCED)
   .set_default(5)
   .set_description(""),
 
-  Option("mds_damage_table_max_entries", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10000)
+  Option("osd_scrub_chunk_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(25)
   .set_description(""),
 
-  Option("mds_client_writeable_range_max_inc_objs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1024)
+  Option("osd_scrub_sleep", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("osd_check_max_object_name_len_on_startup", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("osd_scrub_auto_repair", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_max_backfills", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1)
+  Option("osd_scrub_auto_repair_num_errors", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("osd_min_recovery_priority", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_deep_scrub_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(60*60*24*7)
   .set_description(""),
 
-  Option("osd_backfill_retry_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(30.0)
+  Option("osd_deep_scrub_randomize_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0.15)
   .set_description(""),
 
-  Option("osd_recovery_retry_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(30.0)
+  Option("osd_deep_scrub_stride", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(524288)
   .set_description(""),
 
-  Option("osd_agent_max_ops", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(4)
+  Option("osd_deep_scrub_update_digest_min_age", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(2*60*60)
   .set_description(""),
 
-  Option("osd_agent_max_low_ops", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(2)
+  Option("osd_class_dir", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default(CEPH_LIBDIR "/rados-classes")
   .set_description(""),
 
-  Option("osd_agent_min_evict_effort", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.1)
+  Option("osd_open_classes_on_start", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("osd_agent_quantize_effort", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.1)
+  Option("osd_class_load_list", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("cephfs hello journal lock log numops " "rbd refcount replica_log rgw statelog timeindex user version")
   .set_description(""),
 
-  Option("osd_agent_delay_time", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(5.0)
+  Option("osd_class_default_list", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("cephfs hello journal lock log numops " "rbd refcount replica_log rgw statelog timeindex user version")
   .set_description(""),
 
-  Option("osd_find_best_info_ignore_history_les", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("osd_check_for_log_corruption", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("osd_agent_hist_halflife", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1000)
+  Option("osd_use_stale_snap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_agent_slop", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.02)
+  Option("osd_rollback_to_cluster_snap", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("osd_uuid", Option::TYPE_UUID, Option::LEVEL_ADVANCED)
-  .set_default(uuid_d())
+  Option("osd_default_notify_timeout", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(30)
   .set_description(""),
 
-  Option("osd_data", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("/var/lib/ceph/osd/$cluster-$id")
+  Option("osd_kill_backfill_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("osd_journal", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("/var/lib/ceph/osd/$cluster-$id/journal")
+  Option("osd_pg_epoch_persisted_max_stale", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(40)
   .set_description(""),
 
-  Option("osd_journal_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(5120)
+  Option("osd_min_pg_log_entries", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(3000)
   .set_description(""),
 
-  Option("osd_journal_flush_on_shutdown", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("osd_max_pg_log_entries", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(10000)
   .set_description(""),
 
-  Option("osd_os_flags", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_force_recovery_pg_log_entries_factor", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(1.3)
   .set_description(""),
 
-  Option("osd_max_write_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(90)
+  Option("osd_pg_log_trim_min", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(100)
   .set_description(""),
 
-  Option("osd_max_pgls", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1024)
+  Option("osd_op_complaint_time", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(30)
   .set_description(""),
 
-  Option("osd_client_message_size_cap", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(500*1024L*1024L)
+  Option("osd_command_max_records", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(256)
   .set_description(""),
 
-  Option("osd_client_message_cap", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(100)
+  Option("osd_max_pg_blocked_by", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(16)
   .set_description(""),
 
-  Option("osd_pg_bits", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(6)
+  Option("osd_op_log_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("osd_pgp_bits", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(6)
+  Option("osd_verify_sparse_read_holes", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_crush_update_weight_set", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("osd_backoff_on_unfound", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(true)
   .set_description(""),
 
-  Option("osd_crush_chooseleaf_type", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1)
-  .set_description(""),
-
-  Option("osd_pool_use_gmt_hitset", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("osd_backoff_on_degraded", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_crush_update_on_start", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("osd_backoff_on_down", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(true)
   .set_description(""),
 
-  Option("osd_class_update_on_start", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("osd_backoff_on_peering", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_crush_initial_weight", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(-1)
+  Option("osd_debug_crash_on_ignored_backoff", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_pool_default_crush_rule", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(-1)
+  Option("osd_debug_inject_dispatch_delay_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("osd_pool_erasure_code_stripe_unit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(4096)
+  Option("osd_debug_inject_dispatch_delay_duration", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.1)
   .set_description(""),
 
-  Option("osd_pool_default_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(3)
+  Option("osd_debug_drop_ping_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("osd_pool_default_min_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  Option("osd_debug_drop_ping_duration", Option::TYPE_INT, Option::LEVEL_ADVANCED)
   .set_default(0)
   .set_description(""),
 
-  Option("osd_pool_default_pg_num", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(8)
+  Option("osd_debug_op_order", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_pool_default_pgp_num", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(8)
+  Option("osd_debug_verify_missing_on_start", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_pool_default_type", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("replicated")
+  Option("osd_debug_scrub_chance_rewrite_digest", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("osd_pool_default_erasure_code_profile", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("plugin=jerasure " "technique=reed_sol_van " "k=2 " "m=1 ")
+  Option("osd_debug_verify_snaps_on_info", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_erasure_code_plugins", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("jerasure" " lrc")
+  Option("osd_debug_verify_stray_on_activate", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_allow_recovery_below_min_size", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("osd_debug_skip_full_check_in_backfill_reservation", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_pool_default_flags", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  Option("osd_debug_reject_backfill_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
   .set_default(0)
   .set_description(""),
 
-  Option("osd_pool_default_flag_hashpspool", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
-  .set_description(""),
-
-  Option("osd_pool_default_flag_nodelete", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("osd_debug_inject_copyfrom_error", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("osd_pool_default_flag_nopgchange", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("osd_debug_misdirected_ops", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("osd_pool_default_flag_nosizechange", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("osd_debug_skip_full_check_in_recovery", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("osd_pool_default_hit_set_bloom_fpp", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.05)
+  Option("osd_debug_random_push_read_error", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("osd_pool_default_cache_target_dirty_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.4)
+  Option("osd_debug_verify_cached_snaps", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_pool_default_cache_target_dirty_high_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.6)
+  Option("osd_enable_op_tracker", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("osd_pool_default_cache_target_full_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.8)
+  Option("osd_num_op_tracker_shard", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(32)
   .set_description(""),
 
-  Option("osd_pool_default_cache_min_flush_age", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_op_history_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(20)
   .set_description(""),
 
-  Option("osd_pool_default_cache_min_evict_age", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_op_history_duration", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(600)
   .set_description(""),
 
-  Option("osd_pool_default_cache_max_evict_check_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10)
+  Option("osd_op_history_slow_op_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(20)
   .set_description(""),
 
-  Option("osd_hit_set_min_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1000)
+  Option("osd_op_history_slow_op_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(10.0)
   .set_description(""),
 
-  Option("osd_hit_set_max_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(100000)
+  Option("osd_target_transaction_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(30)
   .set_description(""),
 
-  Option("osd_hit_set_namespace", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default(".ceph-internal")
+  Option("osd_failsafe_full_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.97)
   .set_description(""),
 
-  Option("osd_tier_promote_max_objects_sec", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(25)
+  Option("osd_fast_fail_on_connection_refused", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("osd_tier_promote_max_bytes_sec", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(5 * 1024*1024)
+  Option("osd_pg_object_context_cache_count", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(64)
   .set_description(""),
 
-  Option("osd_tier_default_cache_mode", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("writeback")
+  Option("osd_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_tier_default_cache_hit_set_count", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(4)
+  Option("osd_function_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_tier_default_cache_hit_set_period", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1200)
+  Option("osd_fast_info", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("osd_tier_default_cache_hit_set_type", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("bloom")
+  Option("osd_debug_pg_log_writeout", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_tier_default_cache_min_read_recency_for_promote", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1)
+  Option("osd_loop_before_reset_tphandle", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(64)
   .set_description(""),
 
-  Option("osd_tier_default_cache_min_write_recency_for_promote", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1)
-  .set_description(""),
-
-  Option("osd_tier_default_cache_hit_set_grade_decay_rate", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(20)
+  Option("threadpool_default_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(60)
   .set_description(""),
 
-  Option("osd_tier_default_cache_hit_set_search_last_n", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1)
+  Option("threadpool_empty_queue_max_wait", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(2)
   .set_description(""),
 
-  Option("osd_map_dedup", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("leveldb_log_to_ceph_log", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(true)
   .set_description(""),
 
-  Option("osd_map_max_advance", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(40)
+  Option("leveldb_write_buffer_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(8 *1024*1024)
   .set_description(""),
 
-  Option("osd_map_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(50)
+  Option("leveldb_cache_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(128 *1024*1024)
   .set_description(""),
 
-  Option("osd_map_message_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(40)
+  Option("leveldb_block_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("osd_map_share_max_epochs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(40)
+  Option("leveldb_bloom_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("osd_inject_bad_map_crc_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  Option("leveldb_max_open_files", Option::TYPE_INT, Option::LEVEL_ADVANCED)
   .set_default(0)
   .set_description(""),
 
-  Option("osd_inject_failure_on_pg_removal", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("leveldb_compression", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("osd_max_markdown_period", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(600)
+  Option("leveldb_paranoid", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_max_markdown_count", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("leveldb_log", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("/dev/null")
   .set_description(""),
 
-  Option("osd_peering_wq_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(2)
+  Option("leveldb_compact_on_mount", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_peering_wq_batch_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(20)
+  Option("kinetic_host", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("osd_op_pq_max_tokens_per_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(4194304)
+  Option("kinetic_port", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(8123)
   .set_description(""),
 
-  Option("osd_op_pq_min_cost", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(65536)
+  Option("kinetic_user_id", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1)
   .set_description(""),
 
-  Option("osd_disk_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1)
+  Option("kinetic_hmac_key", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("asdfasdf")
   .set_description(""),
 
-  Option("osd_disk_thread_ioprio_class", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("kinetic_use_ssl", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_disk_thread_ioprio_priority", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(-1)
+  Option("rocksdb_separate_wal_dir", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_recover_clone_overlap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("rocksdb_db_paths", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
+  .set_description("")
+  .set_safe(),
+
+  Option("rocksdb_log_to_ceph_log", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(true)
   .set_description(""),
 
-  Option("osd_op_num_threads_per_shard", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rocksdb_cache_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(128*1024*1024)
   .set_description(""),
 
-  Option("osd_op_num_threads_per_shard_hdd", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1)
+  Option("rocksdb_cache_row_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("osd_op_num_threads_per_shard_ssd", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(2)
+  Option("rocksdb_cache_shard_bits", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(4)
   .set_description(""),
 
-  Option("osd_op_num_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rocksdb_cache_type", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("lru")
   .set_description(""),
 
-  Option("osd_op_num_shards_hdd", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("rocksdb_block_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(4*1024)
   .set_description(""),
 
-  Option("osd_op_num_shards_ssd", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(8)
+  Option("rocksdb_perf", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_op_queue", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("wpq")
+  Option("rocksdb_collect_compaction_stats", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_op_queue_cut_off", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("low")
+  Option("rocksdb_collect_extended_stats", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_op_queue_mclock_client_op_res", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(1000.0)
+  Option("rocksdb_collect_memory_stats", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_op_queue_mclock_client_op_wgt", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(500.0)
+  Option("rocksdb_enable_rmrange", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_op_queue_mclock_client_op_lim", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0.0)
+  Option("filestore_rocksdb_options", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("osd_op_queue_mclock_osd_subop_res", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(1000.0)
+  Option("mon_rocksdb_options", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("write_buffer_size=33554432,compression=kNoCompression")
   .set_description(""),
 
-  Option("osd_op_queue_mclock_osd_subop_wgt", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(500.0)
+  Option("osd_client_op_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(63)
   .set_description(""),
 
-  Option("osd_op_queue_mclock_osd_subop_lim", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0.0)
+  Option("osd_recovery_op_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(3)
   .set_description(""),
 
-  Option("osd_op_queue_mclock_snap_res", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0.0)
+  Option("osd_snap_trim_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("osd_op_queue_mclock_snap_wgt", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(1.0)
+  Option("osd_snap_trim_cost", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1<<20)
   .set_description(""),
 
-  Option("osd_op_queue_mclock_snap_lim", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0.001)
+  Option("osd_scrub_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("osd_op_queue_mclock_recov_res", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0.0)
+  Option("osd_scrub_cost", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(50<<20)
   .set_description(""),
 
-  Option("osd_op_queue_mclock_recov_wgt", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(1.0)
+  Option("osd_requested_scrub_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(120)
   .set_description(""),
 
-  Option("osd_op_queue_mclock_recov_lim", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0.001)
+  Option("osd_recovery_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("osd_op_queue_mclock_scrub_res", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0.0)
+  Option("osd_recovery_cost", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(20<<20)
   .set_description(""),
 
-  Option("osd_op_queue_mclock_scrub_wgt", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(1.0)
+  Option("osd_recovery_op_warn_multiple", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(16)
   .set_description(""),
 
-  Option("osd_op_queue_mclock_scrub_lim", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0.001)
+  Option("osd_mon_shutdown_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("osd_ignore_stale_divergent_priors", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("osd_shutdown_pgref_assert", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("osd_read_ec_check_for_errors", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("osd_max_object_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(128*1024L*1024L)
   .set_description(""),
 
-  Option("osd_recover_clone_overlap_limit", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10)
+  Option("osd_max_object_name_len", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(2048)
   .set_description(""),
 
-  Option("osd_backfill_scan_min", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(64)
+  Option("osd_max_object_namespace_len", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(256)
   .set_description(""),
 
-  Option("osd_backfill_scan_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(512)
+  Option("osd_max_attr_name_len", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(100)
   .set_description(""),
 
-  Option("osd_op_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(15)
+  Option("osd_max_attr_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("osd_op_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(150)
+  Option("osd_max_omap_entries_per_request", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(131072)
   .set_description(""),
 
-  Option("osd_recovery_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(30)
+  Option("osd_max_omap_bytes_per_request", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1<<30)
   .set_description(""),
 
-  Option("osd_recovery_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(300)
+  Option("osd_objectstore", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("filestore")
   .set_description(""),
 
-  Option("osd_recovery_sleep", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0)                                                              
-  .set_description(""),                                                        
-                                                                               
-  Option("osd_recovery_sleep_hdd", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) 
-  .set_default(0.1)                                                            
-  .set_description(""),                                                        
-                                                                               
-  Option("osd_recovery_sleep_ssd", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) 
-  .set_default(0)   
+  Option("osd_objectstore_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_snap_trim_sleep", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("osd_objectstore_fuse", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_scrub_invalid_stats", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("osd_bench_small_size_max_iops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(100)
   .set_description(""),
 
-  Option("osd_remove_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(60*60)
+  Option("osd_bench_large_size_max_throughput", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(100 << 20)
   .set_description(""),
 
-  Option("osd_remove_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10*60*60)
+  Option("osd_bench_max_block_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(64 << 20)
   .set_description(""),
 
-  Option("osd_command_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10*60)
+  Option("osd_bench_duration", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(30)
   .set_description(""),
 
-  Option("osd_command_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(15*60)
+  Option("osd_blkin_trace_all", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_heartbeat_addr", Option::TYPE_ADDR, Option::LEVEL_ADVANCED)
-  .set_default(entity_addr_t())
+  Option("osdc_blkin_trace_all", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_heartbeat_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(6)
+  Option("osd_discard_disconnected_ops", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("osd_heartbeat_grace", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(20)
+  Option("memstore_device_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1024*1024*1024)
   .set_description(""),
 
-  Option("osd_heartbeat_min_peers", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10)
-  .set_description(""),
-
-  Option("osd_heartbeat_use_min_delay_socket", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
-  .set_description(""),
-
-  Option("osd_heartbeat_min_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(2000)
+  Option("memstore_page_set", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("osd_pg_max_concurrent_snap_trims", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(2)
+  Option("memstore_page_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(64 << 10)
   .set_description(""),
 
-  Option("osd_max_trimming_pgs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(2)
+  Option("bdev_debug_inflight_ios", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_heartbeat_min_healthy_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.33)
+  Option("bdev_inject_crash", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("osd_mon_heartbeat_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(30)
+  Option("bdev_inject_crash_flush_delay", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(2)
   .set_description(""),
 
-  Option("osd_mon_report_interval_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(600)
+  Option("bdev_aio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("osd_mon_report_interval_min", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("bdev_aio_poll_ms", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(250)
   .set_description(""),
 
-  Option("osd_mon_report_max_in_flight", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(2)
+  Option("bdev_aio_max_queue_depth", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1024)
   .set_description(""),
 
-  Option("osd_beacon_report_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(300)
+  Option("bdev_aio_reap_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(16)
   .set_description(""),
 
-  Option("osd_pg_stat_report_interval_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(500)
+  Option("bdev_block_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(4096)
   .set_description(""),
 
-  Option("osd_mon_ack_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(30.0)
+  Option("bdev_debug_aio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_stats_ack_timeout_factor", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(2.0)
+  Option("bdev_debug_aio_suicide_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(60.0)
   .set_description(""),
 
-  Option("osd_stats_ack_timeout_decay", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.9)
+  Option("bdev_nvme_unbind_from_kernel", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_default_data_pool_replay_window", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(45)
+  Option("bdev_nvme_retry_count", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(-1)
   .set_description(""),
 
-  Option("osd_auto_mark_unfound_lost", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("objectstore_blackhole", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("osd_recovery_delay_start", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("bluefs_alloc_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1048576)
   .set_description(""),
 
-  Option("osd_recovery_max_active", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(3)
+  Option("bluefs_max_prefetch", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1048576)
   .set_description(""),
 
-  Option("osd_recovery_max_single_start", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1)
+  Option("bluefs_min_log_runway", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1048576)
   .set_description(""),
 
-  Option("osd_recovery_max_chunk", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(8<<20)
+  Option("bluefs_max_log_runway", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(4194304)
   .set_description(""),
 
-  Option("osd_recovery_max_omap_entries_per_chunk", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(64000)
+  Option("bluefs_log_compact_min_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(5.0)
   .set_description(""),
 
-  Option("osd_copyfrom_max_chunk", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(8<<20)
+  Option("bluefs_log_compact_min_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(16*1048576)
   .set_description(""),
 
-  Option("osd_push_per_object_cost", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1000)
+  Option("bluefs_min_flush_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(524288)
   .set_description(""),
 
-  Option("osd_max_push_cost", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(8<<20)
+  Option("bluefs_compact_log_sync", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_max_push_objects", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(10)
+  Option("bluefs_buffered_io", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_recovery_forget_lost_objects", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("bluefs_sync_write", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("osd_max_scrubs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1)
+  Option("bluefs_allocator", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("bitmap")
   .set_description(""),
 
-  Option("osd_scrub_during_recovery", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("bluefs_preextend_wal_files", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("osd_scrub_begin_hour", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("bluestore_bluefs", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("osd_scrub_end_hour", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(24)
+  Option("bluestore_bluefs_env_mirror", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_scrub_load_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0.5)
+  Option("bluestore_bluefs_min", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1*1024*1024*1024)
   .set_description(""),
 
-  Option("osd_scrub_min_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(60*60*24)
+  Option("bluestore_bluefs_min_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.02)
   .set_description(""),
 
-  Option("osd_scrub_max_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(7*60*60*24)
+  Option("bluestore_bluefs_max_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.90)
   .set_description(""),
 
-  Option("osd_scrub_interval_randomize_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0.5)
+  Option("bluestore_bluefs_gift_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.02)
   .set_description(""),
 
-  Option("osd_scrub_backoff_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.66)
+  Option("bluestore_bluefs_reclaim_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.20)
   .set_description(""),
 
-  Option("osd_scrub_chunk_min", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("bluestore_bluefs_balance_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(1)
   .set_description(""),
 
-  Option("osd_scrub_chunk_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(25)
+  Option("bluestore_spdk_mem", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(512)
   .set_description(""),
 
-  Option("osd_scrub_sleep", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("bluestore_spdk_coremask", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("0x3")
   .set_description(""),
 
-  Option("osd_scrub_auto_repair", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("bluestore_spdk_max_io_completion", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("osd_scrub_auto_repair_num_errors", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("bluestore_block_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("osd_deep_scrub_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(60*60*24*7)
+  Option("bluestore_block_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(10ull * 1024*1024*1024)
   .set_description(""),
 
-  Option("osd_deep_scrub_randomize_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0.15)
+  Option("bluestore_block_create", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("osd_deep_scrub_stride", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(524288)
+  Option("bluestore_block_db_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("osd_deep_scrub_update_digest_min_age", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(2*60*60)
+  Option("bluestore_block_db_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("osd_class_dir", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default(CEPH_LIBDIR "/rados-classes")
+  Option("bluestore_block_db_create", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_open_classes_on_start", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("bluestore_block_wal_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("osd_class_load_list", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("cephfs hello journal lock log numops " "rbd refcount replica_log rgw statelog timeindex user version")
+  Option("bluestore_block_wal_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(96 * 1024*1024)
   .set_description(""),
 
-  Option("osd_class_default_list", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("cephfs hello journal lock log numops " "rbd refcount replica_log rgw statelog timeindex user version")
+  Option("bluestore_block_wal_create", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_check_for_log_corruption", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("bluestore_block_preallocate_file", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("osd_use_stale_snap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("bluestore_csum_type", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("crc32c")
   .set_description(""),
 
-  Option("osd_rollback_to_cluster_snap", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("bluestore_csum_min_block", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(4096)
   .set_description(""),
 
-  Option("osd_default_notify_timeout", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(30)
+  Option("bluestore_csum_max_block", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(64*1024)
   .set_description(""),
 
-  Option("osd_kill_backfill_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  Option("bluestore_min_alloc_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
   .set_default(0)
   .set_description(""),
 
-  Option("osd_pg_epoch_persisted_max_stale", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(40)
+  Option("bluestore_min_alloc_size_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(64*1024)
   .set_description(""),
 
-  Option("osd_min_pg_log_entries", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(3000)
+  Option("bluestore_min_alloc_size_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(16*1024)
   .set_description(""),
 
-  Option("osd_max_pg_log_entries", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(10000)
+  Option("bluestore_max_alloc_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("osd_force_recovery_pg_log_entries_factor", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(1.3)
+  Option("bluestore_prefer_deferred_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("osd_pg_log_trim_min", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(100)
+  Option("bluestore_prefer_deferred_size_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(32768)
   .set_description(""),
 
-  Option("osd_op_complaint_time", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(30)
+  Option("bluestore_prefer_deferred_size_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("osd_command_max_records", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(256)
+  Option("bluestore_compression_mode", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("none")
   .set_description(""),
 
-  Option("osd_max_pg_blocked_by", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(16)
+  Option("bluestore_compression_algorithm", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("snappy")
   .set_description(""),
 
-  Option("osd_op_log_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("bluestore_compression_min_blob_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("osd_verify_sparse_read_holes", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("bluestore_compression_min_blob_size_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(128*1024)
   .set_description(""),
 
-  Option("osd_backoff_on_unfound", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("bluestore_compression_min_blob_size_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(8*1024)
   .set_description(""),
 
-  Option("osd_backoff_on_degraded", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("bluestore_compression_max_blob_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("osd_backoff_on_down", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("bluestore_compression_max_blob_size_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(512*1024)
   .set_description(""),
 
-  Option("osd_backoff_on_peering", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("bluestore_compression_max_blob_size_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(64*1024)
   .set_description(""),
 
-  Option("osd_debug_crash_on_ignored_backoff", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("bluestore_gc_enable_blob_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("osd_debug_inject_dispatch_delay_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  Option("bluestore_gc_enable_total_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
   .set_default(0)
   .set_description(""),
 
-  Option("osd_debug_inject_dispatch_delay_duration", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.1)
+  Option("bluestore_max_blob_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("osd_debug_drop_ping_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("bluestore_max_blob_size_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(512*1024)
   .set_description(""),
 
-  Option("osd_debug_drop_ping_duration", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("bluestore_max_blob_size_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(64*1024)
   .set_description(""),
 
-  Option("osd_debug_op_order", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("bluestore_compression_required_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.875)
   .set_description(""),
 
-  Option("osd_debug_verify_missing_on_start", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("bluestore_extent_map_shard_max_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1200)
   .set_description(""),
 
-  Option("osd_debug_scrub_chance_rewrite_digest", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("bluestore_extent_map_shard_target_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(500)
   .set_description(""),
 
-  Option("osd_debug_verify_snaps_on_info", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("bluestore_extent_map_shard_min_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(150)
   .set_description(""),
 
-  Option("osd_debug_verify_stray_on_activate", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("bluestore_extent_map_shard_target_size_slop", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.2)
   .set_description(""),
 
-  Option("osd_debug_skip_full_check_in_backfill_reservation", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("bluestore_extent_map_inline_shard_prealloc_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(256)
   .set_description(""),
 
-  Option("osd_debug_reject_backfill_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("bluestore_cache_trim_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.2)
   .set_description(""),
 
-  Option("osd_debug_inject_copyfrom_error", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("bluestore_cache_trim_max_skip_pinned", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(64)
   .set_description(""),
 
-  Option("osd_debug_misdirected_ops", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("bluestore_cache_type", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("2q")
   .set_description(""),
 
-  Option("osd_debug_skip_full_check_in_recovery", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("bluestore_2q_cache_kin_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.5)
   .set_description(""),
 
-  Option("osd_debug_random_push_read_error", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  Option("bluestore_2q_cache_kout_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.5)
+  .set_description(""),
+
+  Option("bluestore_cache_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
   .set_default(0)
   .set_description(""),
 
-  Option("osd_debug_verify_cached_snaps", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("bluestore_cache_size_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1ull*1024*1024*1024)
   .set_description(""),
 
-  Option("osd_enable_op_tracker", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("bluestore_cache_size_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(3ull*1024*1024*1024)
   .set_description(""),
 
-  Option("osd_num_op_tracker_shard", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(32)
+  Option("bluestore_cache_meta_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.01)
   .set_description(""),
 
-  Option("osd_op_history_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(20)
+  Option("bluestore_cache_kv_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.99)
   .set_description(""),
 
-  Option("osd_op_history_duration", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(600)
+  Option("bluestore_cache_kv_max", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(512*1024*1024)
   .set_description(""),
 
-  Option("osd_op_history_slow_op_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(20)
+  Option("bluestore_kvbackend", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("rocksdb")
   .set_description(""),
 
-  Option("osd_op_history_slow_op_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(10.0)
+  Option("bluestore_allocator", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("bitmap")
   .set_description(""),
 
-  Option("osd_target_transaction_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(30)
+  Option("bluestore_freelist_blocks_per_key", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(128)
   .set_description(""),
 
-  Option("osd_failsafe_full_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.97)
+  Option("bluestore_bitmapallocator_blocks_per_zone", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1024)
   .set_description(""),
 
-  Option("osd_fast_fail_on_connection_refused", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("bluestore_bitmapallocator_span_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1024)
   .set_description(""),
 
-  Option("osd_pg_object_context_cache_count", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(64)
+  Option("bluestore_max_deferred_txc", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(32)
   .set_description(""),
 
-  Option("osd_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("bluestore_rocksdb_options", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("compression=kNoCompression,max_write_buffer_number=4,min_write_buffer_number_to_merge=1,recycle_log_file_num=4,write_buffer_size=268435456,writable_file_max_buffer_size=0,compaction_readahead_size=2097152")
   .set_description(""),
 
-  Option("osd_function_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("bluestore_fsck_on_mount", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("osd_fast_info", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("bluestore_fsck_on_mount_deep", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(true)
   .set_description(""),
 
-  Option("osd_debug_pg_log_writeout", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("bluestore_fsck_on_umount", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("osd_loop_before_reset_tphandle", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(64)
+  Option("bluestore_fsck_on_umount_deep", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("threadpool_default_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(60)
+  Option("bluestore_fsck_on_mkfs", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("threadpool_empty_queue_max_wait", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(2)
+  Option("bluestore_fsck_on_mkfs_deep", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("leveldb_log_to_ceph_log", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("bluestore_sync_submit_transaction", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("leveldb_write_buffer_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(*1024*1024)
+  Option("bluestore_throttle_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(64*1024*1024)
   .set_description(""),
 
-  Option("leveldb_cache_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(128 *1024*1024)
+  Option("bluestore_throttle_deferred_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(128*1024*1024)
   .set_description(""),
 
-  Option("leveldb_block_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("bluestore_throttle_cost_per_io_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(670000)
   .set_description(""),
 
-  Option("leveldb_bloom_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("bluestore_throttle_cost_per_io_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(4000)
   .set_description(""),
 
-  Option("leveldb_max_open_files", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  Option("bluestore_throttle_cost_per_io", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
   .set_default(0)
   .set_description(""),
 
-  Option("leveldb_compression", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("bluestore_deferred_batch_ops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("leveldb_paranoid", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("bluestore_deferred_batch_ops_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(64)
   .set_description(""),
 
-  Option("leveldb_log", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("/dev/null")
+  Option("bluestore_deferred_batch_ops_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(16)
   .set_description(""),
 
-  Option("leveldb_compact_on_mount", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("bluestore_nid_prealloc", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1024)
   .set_description(""),
 
-  Option("kinetic_host", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("bluestore_blobid_prealloc", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(10240)
   .set_description(""),
 
-  Option("kinetic_port", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(8123)
+  Option("bluestore_clone_cow", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("kinetic_user_id", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1)
+  Option("bluestore_default_buffered_read", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("kinetic_hmac_key", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("asdfasdf")
+  Option("bluestore_default_buffered_write", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("kinetic_use_ssl", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("bluestore_debug_misc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("rocksdb_separate_wal_dir", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("bluestore_debug_no_reuse_blocks", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("rocksdb_db_paths", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
-  .set_description("")
-  .set_safe(),
-
-  Option("rocksdb_log_to_ceph_log", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("bluestore_debug_small_allocations", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rocksdb_cache_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(128*1024*1024)
+  Option("bluestore_debug_freelist", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rocksdb_cache_row_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  Option("bluestore_debug_prefill", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
   .set_default(0)
   .set_description(""),
 
-  Option("rocksdb_cache_shard_bits", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(4)
+  Option("bluestore_debug_prefragment_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1048576)
   .set_description(""),
 
-  Option("rocksdb_cache_type", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("lru")
+  Option("bluestore_debug_inject_read_err", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rocksdb_block_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(4*1024)
+  Option("bluestore_debug_randomize_serial_transaction", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rocksdb_perf", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("bluestore_debug_omit_block_device_write", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("rocksdb_collect_compaction_stats", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("bluestore_debug_fsck_abort", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("rocksdb_collect_extended_stats", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("bluestore_debug_omit_kv_commit", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("rocksdb_collect_memory_stats", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("bluestore_debug_permit_any_bdev_label", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("rocksdb_enable_rmrange", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("bluestore_shard_finishers", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("filestore_rocksdb_options", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("bluestore_debug_random_read_err", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("mon_rocksdb_options", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("write_buffer_size=33554432,compression=kNoCompression")
+  Option("kstore_max_ops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(512)
   .set_description(""),
 
-  Option("osd_client_op_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(63)
+  Option("kstore_max_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(64*1024*1024)
   .set_description(""),
 
-  Option("osd_recovery_op_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(3)
+  Option("kstore_backend", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("rocksdb")
   .set_description(""),
 
-  Option("osd_snap_trim_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("kstore_rocksdb_options", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("compression=kNoCompression")
   .set_description(""),
 
-  Option("osd_snap_trim_cost", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1<<20)
+  Option("kstore_rocksdb_bloom_bits_per_key", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("osd_scrub_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("kstore_fsck_on_mount", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_scrub_cost", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(50<<20)
+  Option("kstore_fsck_on_mount_deep", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("osd_requested_scrub_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(120)
+  Option("kstore_nid_prealloc", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1024)
   .set_description(""),
 
-  Option("osd_recovery_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("kstore_sync_transaction", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_recovery_cost", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(20<<20)
+  Option("kstore_sync_submit_transaction", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("osd_recovery_op_warn_multiple", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(16)
+  Option("kstore_onode_map_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1024)
   .set_description(""),
 
-  Option("osd_mon_shutdown_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("kstore_default_stripe_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(65536)
   .set_description(""),
 
-  Option("osd_shutdown_pgref_assert", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("filestore_omap_backend", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("rocksdb")
   .set_description(""),
 
-  Option("osd_max_object_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(128*1024L*1024L)
+  Option("filestore_omap_backend_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("osd_max_object_name_len", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(2048)
+  Option("filestore_wbthrottle_enable", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("osd_max_object_namespace_len", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(256)
+  Option("filestore_wbthrottle_btrfs_bytes_start_flusher", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(41943040)
   .set_description(""),
 
-  Option("osd_max_attr_name_len", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(100)
+  Option("filestore_wbthrottle_btrfs_bytes_hard_limit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(419430400)
   .set_description(""),
 
-  Option("osd_max_attr_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("filestore_wbthrottle_btrfs_ios_start_flusher", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(500)
   .set_description(""),
 
-  Option("osd_max_omap_entries_per_request", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(131072)
+  Option("filestore_wbthrottle_btrfs_ios_hard_limit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(5000)
   .set_description(""),
 
-  Option("osd_max_omap_bytes_per_request", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1<<30)
+  Option("filestore_wbthrottle_btrfs_inodes_start_flusher", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(500)
   .set_description(""),
 
-  Option("osd_objectstore", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("filestore")
+  Option("filestore_wbthrottle_xfs_bytes_start_flusher", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(41943040)
   .set_description(""),
 
-  Option("osd_objectstore_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("filestore_wbthrottle_xfs_bytes_hard_limit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(419430400)
   .set_description(""),
 
-  Option("osd_objectstore_fuse", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("filestore_wbthrottle_xfs_ios_start_flusher", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(500)
   .set_description(""),
 
-  Option("osd_bench_small_size_max_iops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(100)
+  Option("filestore_wbthrottle_xfs_ios_hard_limit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(5000)
   .set_description(""),
 
-  Option("osd_bench_large_size_max_throughput", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(100 << 20)
+  Option("filestore_wbthrottle_xfs_inodes_start_flusher", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(500)
   .set_description(""),
 
-  Option("osd_bench_max_block_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(64 << 20)
+  Option("filestore_wbthrottle_btrfs_inodes_hard_limit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(5000)
   .set_description(""),
 
-  Option("osd_bench_duration", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(30)
+  Option("filestore_wbthrottle_xfs_inodes_hard_limit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(5000)
   .set_description(""),
 
-  Option("osd_blkin_trace_all", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("filestore_odsync_write", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("osdc_blkin_trace_all", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("filestore_index_retry_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("osd_discard_disconnected_ops", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("filestore_debug_inject_read_err", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("memstore_device_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1024*1024*1024)
+  Option("filestore_debug_random_read_err", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("memstore_page_set", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("filestore_debug_omap_check", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("memstore_page_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(64 << 10)
+  Option("filestore_omap_header_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1024)
   .set_description(""),
 
-  Option("bdev_debug_inflight_ios", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("filestore_max_inline_xattr_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("bdev_inject_crash", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("filestore_max_inline_xattr_size_xfs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(65536)
   .set_description(""),
 
-  Option("bdev_inject_crash_flush_delay", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(2)
+  Option("filestore_max_inline_xattr_size_btrfs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(2048)
   .set_description(""),
 
-  Option("bdev_aio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("filestore_max_inline_xattr_size_other", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(512)
   .set_description(""),
 
-  Option("bdev_aio_poll_ms", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(250)
+  Option("filestore_max_inline_xattrs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("bdev_aio_max_queue_depth", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1024)
+  Option("filestore_max_inline_xattrs_xfs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(10)
   .set_description(""),
 
-  Option("bdev_aio_reap_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(16)
+  Option("filestore_max_inline_xattrs_btrfs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(10)
   .set_description(""),
 
-  Option("bdev_block_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(4096)
+  Option("filestore_max_inline_xattrs_other", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(2)
   .set_description(""),
 
-  Option("bdev_debug_aio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("filestore_max_xattr_value_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("bdev_debug_aio_suicide_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(60.0)
+  Option("filestore_max_xattr_value_size_xfs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(64<<10)
   .set_description(""),
 
-  Option("bdev_nvme_unbind_from_kernel", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("filestore_max_xattr_value_size_btrfs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(64<<10)
   .set_description(""),
 
-  Option("bdev_nvme_retry_count", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(-1)
+  Option("filestore_max_xattr_value_size_other", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1<<10)
   .set_description(""),
 
-  Option("objectstore_blackhole", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("filestore_sloppy_crc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("bluefs_alloc_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1048576)
+  Option("filestore_sloppy_crc_block_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(65536)
   .set_description(""),
 
-  Option("bluefs_max_prefetch", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1048576)
+  Option("filestore_max_alloc_hint_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1ULL << 20)
   .set_description(""),
 
-  Option("bluefs_min_log_runway", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1048576)
+  Option("filestore_max_sync_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("bluefs_max_log_runway", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(4194304)
+  Option("filestore_min_sync_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.01)
   .set_description(""),
 
-  Option("bluefs_log_compact_min_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(5.0)
+  Option("filestore_btrfs_snap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("bluefs_log_compact_min_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(16*1048576)
+  Option("filestore_btrfs_clone_range", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("bluefs_min_flush_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(524288)
+  Option("filestore_zfs_snap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("bluefs_compact_log_sync", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("filestore_fsync_flushes_journal_data", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("bluefs_buffered_io", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("filestore_fiemap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("bluefs_sync_write", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("filestore_punch_hole", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("bluefs_allocator", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("bitmap")
+  Option("filestore_seek_data_hole", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("bluefs_preextend_wal_files", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("filestore_splice", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("bluestore_bluefs", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("filestore_fadvise", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(true)
   .set_description(""),
 
-  Option("bluestore_bluefs_env_mirror", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("filestore_collect_device_partition_information", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
+  .set_description(""),
+
+  Option("filestore_xfs_extsize", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("bluestore_bluefs_min", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1*1024*1024*1024)
+  Option("filestore_journal_parallel", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("bluestore_bluefs_min_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.02)
+  Option("filestore_journal_writeahead", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("bluestore_bluefs_max_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.90)
+  Option("filestore_journal_trailing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("bluestore_bluefs_gift_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.02)
+  Option("filestore_queue_max_ops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(50)
   .set_description(""),
 
-  Option("bluestore_bluefs_reclaim_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.20)
+  Option("filestore_queue_max_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(100 << 20)
   .set_description(""),
 
-  Option("bluestore_bluefs_balance_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(1)
+  Option("filestore_caller_concurrency", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10)
   .set_description(""),
 
-  Option("bluestore_spdk_mem", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(512)
+  Option("filestore_expected_throughput_bytes", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(200 << 20)
   .set_description(""),
 
-  Option("bluestore_spdk_coremask", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("0x3")
+  Option("filestore_expected_throughput_ops", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(200)
   .set_description(""),
 
-  Option("bluestore_spdk_max_io_completion", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  Option("filestore_queue_max_delay_multiple", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
   .set_default(0)
   .set_description(""),
 
-  Option("bluestore_block_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("filestore_queue_high_delay_multiple", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("bluestore_block_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(10ull * 1024*1024*1024)
+  Option("filestore_queue_low_threshhold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0.3)
   .set_description(""),
 
-  Option("bluestore_block_create", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("filestore_queue_high_threshhold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0.9)
   .set_description(""),
 
-  Option("bluestore_block_db_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("filestore_op_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(2)
   .set_description(""),
 
-  Option("bluestore_block_db_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("filestore_op_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(60)
   .set_description(""),
 
-  Option("bluestore_block_db_create", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("filestore_op_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(180)
   .set_description(""),
 
-  Option("bluestore_block_wal_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("filestore_commit_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(600)
   .set_description(""),
 
-  Option("bluestore_block_wal_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(96 * 1024*1024)
+  Option("filestore_fiemap_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(4096)
   .set_description(""),
 
-  Option("bluestore_block_wal_create", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("filestore_merge_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10)
   .set_description(""),
 
-  Option("bluestore_block_preallocate_file", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("filestore_split_multiple", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(2)
   .set_description(""),
 
-  Option("bluestore_csum_type", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("crc32c")
+  Option("filestore_split_rand_factor", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(20)
   .set_description(""),
 
-  Option("bluestore_csum_min_block", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(4096)
+  Option("filestore_update_to", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1000)
   .set_description(""),
 
-  Option("bluestore_csum_max_block", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(64*1024)
+  Option("filestore_blackhole", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("bluestore_min_alloc_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("filestore_fd_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(128)
   .set_description(""),
 
-  Option("bluestore_min_alloc_size_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(64*1024)
+  Option("filestore_fd_cache_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(16)
   .set_description(""),
 
-  Option("bluestore_min_alloc_size_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(16*1024)
+  Option("filestore_ondisk_finisher_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1)
   .set_description(""),
 
-  Option("bluestore_max_alloc_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  Option("filestore_apply_finisher_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1)
+  .set_description(""),
+
+  Option("filestore_dump_file", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
+  .set_description(""),
+
+  Option("filestore_kill_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
   .set_default(0)
   .set_description(""),
 
-  Option("bluestore_prefer_deferred_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  Option("filestore_inject_stall", Option::TYPE_INT, Option::LEVEL_ADVANCED)
   .set_default(0)
   .set_description(""),
 
-  Option("bluestore_prefer_deferred_size_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(32768)
+  Option("filestore_fail_eio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("bluestore_prefer_deferred_size_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("filestore_debug_verify_split", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("bluestore_compression_mode", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("none")
+  Option("journal_dio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("bluestore_compression_algorithm", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("snappy")
+  Option("journal_aio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("bluestore_compression_min_blob_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("journal_force_aio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("bluestore_compression_min_blob_size_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(128*1024)
+  Option("journal_block_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(4096)
   .set_description(""),
 
-  Option("bluestore_compression_min_blob_size_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(8*1024)
+  Option("journal_max_corrupt_search", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(10<<20)
   .set_description(""),
 
-  Option("bluestore_compression_max_blob_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  Option("journal_block_align", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
+  .set_description(""),
+
+  Option("journal_write_header_frequency", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
   .set_default(0)
   .set_description(""),
 
-  Option("bluestore_compression_max_blob_size_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(512*1024)
+  Option("journal_max_write_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10 << 20)
   .set_description(""),
 
-  Option("bluestore_compression_max_blob_size_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(64*1024)
+  Option("journal_max_write_entries", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(100)
   .set_description(""),
 
-  Option("bluestore_gc_enable_blob_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("journal_throttle_low_threshhold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0.6)
   .set_description(""),
 
-  Option("bluestore_gc_enable_total_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  Option("journal_throttle_high_threshhold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0.9)
+  .set_description(""),
+
+  Option("journal_throttle_high_multiple", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
   .set_default(0)
   .set_description(""),
 
-  Option("bluestore_max_blob_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  Option("journal_throttle_max_multiple", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
   .set_default(0)
   .set_description(""),
 
-  Option("bluestore_max_blob_size_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(512*1024)
+  Option("journal_align_min_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(64 << 10)
   .set_description(""),
 
-  Option("bluestore_max_blob_size_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(64*1024)
+  Option("journal_replay_from", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("bluestore_compression_required_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.875)
+  Option("journal_zero_on_create", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("bluestore_extent_map_shard_max_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1200)
+  Option("journal_ignore_corruption", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("bluestore_extent_map_shard_target_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(500)
+  Option("journal_discard", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("bluestore_extent_map_shard_min_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(150)
+  Option("fio_dir", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("/tmp/fio")
   .set_description(""),
 
-  Option("bluestore_extent_map_shard_target_size_slop", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.2)
+  Option("rados_mon_op_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("bluestore_extent_map_inline_shard_prealloc_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(256)
+  Option("rados_osd_op_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("bluestore_cache_trim_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.2)
+  Option("rados_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("bluestore_cache_trim_max_skip_pinned", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(64)
+  Option("nss_db_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("bluestore_cache_type", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("2q")
+  Option("mgr_module_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default(CEPH_PKGLIBDIR "/mgr")
   .set_description(""),
 
-  Option("bluestore_2q_cache_kin_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.5)
+  Option("mgr_initial_modules", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("restful status")
   .set_description(""),
 
-  Option("bluestore_2q_cache_kout_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.5)
+  Option("mgr_data", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("/var/lib/ceph/mgr/$cluster-$id")
   .set_description(""),
 
-  Option("bluestore_cache_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("mgr_tick_period", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(2)
   .set_description(""),
 
-  Option("bluestore_cache_size_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1ull*1024*1024*1024)
+  Option("mgr_stats_period", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("bluestore_cache_size_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(3ull*1024*1024*1024)
+  Option("mgr_client_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(128*1048576)
   .set_description(""),
 
-  Option("bluestore_cache_meta_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.01)
+  Option("mgr_client_messages", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(512)
   .set_description(""),
 
-  Option("bluestore_cache_kv_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.99)
+  Option("mgr_osd_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(512*1048576)
   .set_description(""),
 
-  Option("bluestore_cache_kv_max", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(512*1024*1024)
+  Option("mgr_osd_messages", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(8192)
   .set_description(""),
 
-  Option("bluestore_kvbackend", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("rocksdb")
+  Option("mgr_mds_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(128*1048576)
   .set_description(""),
 
-  Option("bluestore_allocator", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("bitmap")
+  Option("mgr_mds_messages", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(128)
   .set_description(""),
 
-  Option("bluestore_freelist_blocks_per_key", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  Option("mgr_mon_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(128*1048576)
+  .set_description(""),
+
+  Option("mgr_mon_messages", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
   .set_default(128)
   .set_description(""),
 
-  Option("bluestore_bitmapallocator_blocks_per_zone", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1024)
+  Option("mgr_connect_retry_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(1.0)
   .set_description(""),
 
-  Option("bluestore_bitmapallocator_span_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1024)
+  Option("mgr_service_beacon_grace", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(60.0)
   .set_description(""),
 
-  Option("bluestore_max_deferred_txc", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(32)
+  Option("mon_mgr_digest_period", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("bluestore_rocksdb_options", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("compression=kNoCompression,max_write_buffer_number=4,min_write_buffer_number_to_merge=1,recycle_log_file_num=4,write_buffer_size=268435456,writable_file_max_buffer_size=0,compaction_readahead_size=2097152")
+  Option("mon_mgr_beacon_grace", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(30)
   .set_description(""),
 
-  Option("bluestore_fsck_on_mount", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("mon_mgr_inactive_grace", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(60)
   .set_description(""),
 
-  Option("bluestore_fsck_on_mount_deep", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("mon_mgr_mkfs_grace", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(60)
   .set_description(""),
 
-  Option("bluestore_fsck_on_umount", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("mutex_perf_counter", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("bluestore_fsck_on_umount_deep", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("throttler_perf_counter", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(true)
   .set_description(""),
 
-  Option("bluestore_fsck_on_mkfs", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("event_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("bluestore_fsck_on_mkfs_deep", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("internal_safe_to_start_threads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("bluestore_sync_submit_transaction", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("debug_deliberately_leak_memory", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
+};
 
-  Option("bluestore_throttle_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(64*1024*1024)
+std::vector<Option> rgw_options = {
+  Option("rgw_acl_grants_max_num", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(100)
   .set_description(""),
 
-  Option("bluestore_throttle_deferred_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(128*1024*1024)
+  Option("rgw_max_chunk_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(4 * 1024 * 1024)
   .set_description(""),
 
-  Option("bluestore_throttle_cost_per_io_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(670000)
+  Option("rgw_put_obj_min_window_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(16 * 1024 * 1024)
   .set_description(""),
 
-  Option("bluestore_throttle_cost_per_io_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(4000)
+  Option("rgw_put_obj_max_window_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(64 * 1024 * 1024)
   .set_description(""),
 
-  Option("bluestore_throttle_cost_per_io", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(0)
-  .set_description(""),
-
-  Option("bluestore_deferred_batch_ops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(0)
-  .set_description(""),
-
-  Option("bluestore_deferred_batch_ops_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(64)
+  Option("rgw_max_put_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(5ULL*1024*1024*1024)
   .set_description(""),
 
-  Option("bluestore_deferred_batch_ops_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(16)
+  Option("rgw_max_put_param_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1 * 1024 * 1024)
   .set_description(""),
 
-  Option("bluestore_nid_prealloc", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1024)
+  Option("rgw_override_bucket_index_max_shards", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("bluestore_blobid_prealloc", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(10240)
+  Option("rgw_bucket_index_max_aio", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(8)
   .set_description(""),
 
-  Option("bluestore_clone_cow", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("rgw_enable_quota_threads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(true)
   .set_description(""),
 
-  Option("bluestore_default_buffered_read", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("rgw_enable_gc_threads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(true)
   .set_description(""),
 
-  Option("bluestore_default_buffered_write", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_enable_lc_threads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("bluestore_debug_misc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_data", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("/var/lib/ceph/radosgw/$cluster-$id")
   .set_description(""),
 
-  Option("bluestore_debug_no_reuse_blocks", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_enable_apis", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("s3, s3website, swift, swift_auth, admin")
   .set_description(""),
 
-  Option("bluestore_debug_small_allocations", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_cache_enabled", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("bluestore_debug_freelist", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_cache_lru_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10000)
   .set_description(""),
 
-  Option("bluestore_debug_prefill", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_socket_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("bluestore_debug_prefragment_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1048576)
+  Option("rgw_host", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("bluestore_debug_inject_read_err", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_port", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("bluestore_debug_randomize_serial_transaction", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_dns_name", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("bluestore_debug_omit_block_device_write", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_dns_s3website_name", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("bluestore_debug_fsck_abort", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("rgw_content_length_compat", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("bluestore_debug_omit_kv_commit", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_lifecycle_work_time", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("00:00-06:00")
   .set_description(""),
 
-  Option("bluestore_debug_permit_any_bdev_label", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_lc_lock_max_time", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(60)
   .set_description(""),
 
-  Option("bluestore_shard_finishers", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_lc_max_objs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(32)
   .set_description(""),
 
-  Option("bluestore_debug_random_read_err", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_lc_debug_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(-1)
   .set_description(""),
 
-  Option("kstore_max_ops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(512)
+  Option("rgw_script_uri", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("kstore_max_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(64*1024*1024)
+  Option("rgw_request_uri", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("kstore_backend", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("rocksdb")
+  Option("rgw_swift_url", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("kstore_rocksdb_options", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("compression=kNoCompression")
+  Option("rgw_swift_url_prefix", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("swift")
   .set_description(""),
 
-  Option("kstore_rocksdb_bloom_bits_per_key", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_swift_auth_url", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("kstore_fsck_on_mount", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_swift_auth_entry", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("auth")
   .set_description(""),
 
-  Option("kstore_fsck_on_mount_deep", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rgw_swift_tenant_name", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("kstore_nid_prealloc", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1024)
+  Option("rgw_swift_account_in_url", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("kstore_sync_transaction", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("rgw_swift_enforce_content_length", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("kstore_sync_submit_transaction", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_keystone_url", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("kstore_onode_map_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1024)
+  Option("rgw_keystone_admin_token", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("kstore_default_stripe_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(65536)
+  Option("rgw_keystone_admin_user", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("filestore_omap_backend", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("rocksdb")
+  Option("rgw_keystone_admin_password", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("filestore_omap_backend_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  Option("rgw_keystone_admin_tenant", Option::TYPE_STR, Option::LEVEL_ADVANCED)
   .set_default("")
   .set_description(""),
 
-  Option("filestore_wbthrottle_enable", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rgw_keystone_admin_project", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("filestore_wbthrottle_btrfs_bytes_start_flusher", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(41943040)
+  Option("rgw_keystone_admin_domain", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("filestore_wbthrottle_btrfs_bytes_hard_limit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(419430400)
+  Option("rgw_keystone_barbican_user", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("filestore_wbthrottle_btrfs_ios_start_flusher", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(500)
+  Option("rgw_keystone_barbican_password", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("filestore_wbthrottle_btrfs_ios_hard_limit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(5000)
+  Option("rgw_keystone_barbican_tenant", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("filestore_wbthrottle_btrfs_inodes_start_flusher", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(500)
+  Option("rgw_keystone_barbican_project", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("filestore_wbthrottle_xfs_bytes_start_flusher", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(41943040)
+  Option("rgw_keystone_barbican_domain", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("filestore_wbthrottle_xfs_bytes_hard_limit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(419430400)
+  Option("rgw_keystone_api_version", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(2)
   .set_description(""),
 
-  Option("filestore_wbthrottle_xfs_ios_start_flusher", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(500)
+  Option("rgw_keystone_accepted_roles", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("Member, admin")
   .set_description(""),
 
-  Option("filestore_wbthrottle_xfs_ios_hard_limit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(5000)
+  Option("rgw_keystone_accepted_admin_roles", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("filestore_wbthrottle_xfs_inodes_start_flusher", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(500)
+  Option("rgw_keystone_token_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10000)
   .set_description(""),
 
-  Option("filestore_wbthrottle_btrfs_inodes_hard_limit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(5000)
+  Option("rgw_keystone_revocation_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(15 * 60)
   .set_description(""),
 
-  Option("filestore_wbthrottle_xfs_inodes_hard_limit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(5000)
+  Option("rgw_keystone_verify_ssl", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("filestore_odsync_write", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("rgw_keystone_implicit_tenants", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("filestore_index_retry_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_cross_domain_policy", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("<allow-access-from domain=\"*\" secure=\"false\" />")
   .set_description(""),
 
-  Option("filestore_debug_inject_read_err", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_healthcheck_disabling_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("filestore_debug_random_read_err", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_s3_auth_use_rados", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("filestore_debug_omap_check", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("rgw_s3_auth_use_keystone", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("filestore_omap_header_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1024)
+  Option("rgw_s3_auth_aws4_force_boto2_compat", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("filestore_max_inline_xattr_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_barbican_url", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("filestore_max_inline_xattr_size_xfs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(65536)
+  Option("rgw_ldap_uri", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("ldaps://<ldap.your.domain>")
   .set_description(""),
 
-  Option("filestore_max_inline_xattr_size_btrfs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(2048)
+  Option("rgw_ldap_binddn", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("uid=admin,cn=users,dc=example,dc=com")
   .set_description(""),
 
-  Option("filestore_max_inline_xattr_size_other", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(512)
+  Option("rgw_ldap_searchdn", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("cn=users,cn=accounts,dc=example,dc=com")
   .set_description(""),
 
-  Option("filestore_max_inline_xattrs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_ldap_dnattr", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("uid")
   .set_description(""),
 
-  Option("filestore_max_inline_xattrs_xfs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(10)
+  Option("rgw_ldap_secret", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("/etc/openldap/secret")
   .set_description(""),
 
-  Option("filestore_max_inline_xattrs_btrfs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(10)
+  Option("rgw_s3_auth_use_ldap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("filestore_max_inline_xattrs_other", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(2)
+  Option("rgw_ldap_searchfilter", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("filestore_max_xattr_value_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_admin_entry", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("admin")
   .set_description(""),
 
-  Option("filestore_max_xattr_value_size_xfs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(64<<10)
+  Option("rgw_enforce_swift_acls", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("filestore_max_xattr_value_size_btrfs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(64<<10)
+  Option("rgw_swift_token_expiration", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(24 * 3600)
   .set_description(""),
 
-  Option("filestore_max_xattr_value_size_other", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1<<10)
-  .set_description(""),
+  Option("rgw_print_continue", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
+  .set_description(""),
 
-  Option("filestore_sloppy_crc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("rgw_print_prohibited_content_length", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("filestore_sloppy_crc_block_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(65536)
+  Option("rgw_remote_addr_param", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("REMOTE_ADDR")
   .set_description(""),
 
-  Option("filestore_max_alloc_hint_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1ULL << 20)
+  Option("rgw_op_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10*60)
   .set_description(""),
 
-  Option("filestore_max_sync_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("rgw_op_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("filestore_min_sync_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(.01)
+  Option("rgw_thread_pool_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(100)
   .set_description(""),
 
-  Option("filestore_btrfs_snap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rgw_num_control_oids", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(8)
   .set_description(""),
 
-  Option("filestore_btrfs_clone_range", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rgw_num_rados_handles", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1)
   .set_description(""),
 
-  Option("filestore_zfs_snap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_verify_ssl", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("filestore_fsync_flushes_journal_data", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_nfs_lru_lanes", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("filestore_fiemap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_nfs_lru_lane_hiwat", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(911)
   .set_description(""),
 
-  Option("filestore_punch_hole", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_nfs_fhcache_partitions", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(3)
   .set_description(""),
 
-  Option("filestore_seek_data_hole", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_nfs_fhcache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(2017)
   .set_description(""),
 
-  Option("filestore_splice", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_nfs_namespace_expire_secs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(300)
+  .set_min(1)
   .set_description(""),
 
-  Option("filestore_fadvise", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rgw_nfs_max_gc", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(300)
+  .set_min(1)
   .set_description(""),
 
-  Option("filestore_collect_device_partition_information", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rgw_nfs_write_completion_interval_s", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10)
   .set_description(""),
 
-  Option("filestore_xfs_extsize", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_zone", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("filestore_journal_parallel", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_zone_root_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default(".rgw.root")
   .set_description(""),
 
-  Option("filestore_journal_writeahead", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_default_zone_info_oid", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("default.zone")
   .set_description(""),
 
-  Option("filestore_journal_trailing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_region", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("filestore_queue_max_ops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(50)
+  Option("rgw_region_root_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default(".rgw.root")
   .set_description(""),
 
-  Option("filestore_queue_max_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(100 << 20)
+  Option("rgw_default_region_info_oid", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("default.region")
   .set_description(""),
 
-  Option("filestore_caller_concurrency", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10)
+  Option("rgw_zonegroup", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("filestore_expected_throughput_bytes", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(200 << 20)
+  Option("rgw_zonegroup_root_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default(".rgw.root")
   .set_description(""),
 
-  Option("filestore_expected_throughput_ops", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(200)
+  Option("rgw_default_zonegroup_info_oid", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("default.zonegroup")
   .set_description(""),
 
-  Option("filestore_queue_max_delay_multiple", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_realm", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("filestore_queue_high_delay_multiple", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_realm_root_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default(".rgw.root")
   .set_description(""),
 
-  Option("filestore_queue_low_threshhold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0.3)
+  Option("rgw_default_realm_info_oid", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("default.realm")
   .set_description(""),
 
-  Option("filestore_queue_high_threshhold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0.9)
+  Option("rgw_period_root_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default(".rgw.root")
   .set_description(""),
 
-  Option("filestore_op_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(2)
+  Option("rgw_period_latest_epoch_info_oid", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default(".latest_epoch")
   .set_description(""),
 
-  Option("filestore_op_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(60)
+  Option("rgw_log_nonexistent_bucket", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("filestore_op_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(180)
+  Option("rgw_log_object_name", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("%Y-%m-%d-%H-%i-%n")
   .set_description(""),
 
-  Option("filestore_commit_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(600)
+  Option("rgw_log_object_name_utc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("filestore_fiemap_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(4096)
+  Option("rgw_usage_max_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(32)
   .set_description(""),
 
-  Option("filestore_merge_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10)
+  Option("rgw_usage_max_user_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1)
+  .set_min(1)
   .set_description(""),
 
-  Option("filestore_split_multiple", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(2)
+  Option("rgw_enable_ops_log", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("filestore_split_rand_factor", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(20)
+  Option("rgw_enable_usage_log", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("filestore_update_to", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1000)
+  Option("rgw_ops_log_rados", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("filestore_blackhole", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_ops_log_socket_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("filestore_fd_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(128)
+  Option("rgw_ops_log_data_backlog", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(5 << 20)
   .set_description(""),
 
-  Option("filestore_fd_cache_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(16)
+  Option("rgw_fcgi_socket_backlog", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1024)
   .set_description(""),
 
-  Option("filestore_ondisk_finisher_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1)
+  Option("rgw_usage_log_flush_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1024)
   .set_description(""),
 
-  Option("filestore_apply_finisher_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1)
+  Option("rgw_usage_log_tick_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(30)
   .set_description(""),
 
-  Option("filestore_dump_file", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rgw_intent_log_object_name", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("%Y-%m-%d-%i-%n")
   .set_description(""),
 
-  Option("filestore_kill_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_intent_log_object_name_utc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("filestore_inject_stall", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_init_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(300)
   .set_description(""),
 
-  Option("filestore_fail_eio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rgw_mime_types_file", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("/etc/mime.types")
   .set_description(""),
 
-  Option("filestore_debug_verify_split", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_gc_max_objs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(32)
   .set_description(""),
 
-  Option("journal_dio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rgw_gc_obj_min_wait", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(2 * 3600)
   .set_description(""),
 
-  Option("journal_aio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rgw_gc_processor_max_time", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(3600)
   .set_description(""),
 
-  Option("journal_force_aio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_gc_processor_period", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(3600)
   .set_description(""),
 
-  Option("journal_block_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(4096)
+  Option("rgw_s3_success_create_obj_status", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("journal_max_corrupt_search", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(10<<20)
+  Option("rgw_resolve_cname", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("journal_block_align", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rgw_obj_stripe_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(4 << 20)
   .set_description(""),
 
-  Option("journal_write_header_frequency", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_extended_http_attrs", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("journal_max_write_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10 << 20)
+  Option("rgw_exit_timeout_secs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(120)
   .set_description(""),
 
-  Option("journal_max_write_entries", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(100)
+  Option("rgw_get_obj_window_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(16 << 20)
   .set_description(""),
 
-  Option("journal_throttle_low_threshhold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0.6)
+  Option("rgw_get_obj_max_req_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(4 << 20)
   .set_description(""),
 
-  Option("journal_throttle_high_threshhold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0.9)
+  Option("rgw_relaxed_s3_bucket_names", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("journal_throttle_high_multiple", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_defer_to_bucket_acls", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("journal_throttle_max_multiple", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_list_buckets_max_chunk", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1000)
   .set_description(""),
 
-  Option("journal_align_min_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(64 << 10)
+  Option("rgw_md_log_max_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(64)
   .set_description(""),
 
-  Option("journal_replay_from", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_num_zone_opstate_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(128)
   .set_description(""),
 
-  Option("journal_zero_on_create", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_opstate_ratelimit_sec", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(30)
   .set_description(""),
 
-  Option("journal_ignore_corruption", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_curl_wait_timeout_ms", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1000)
   .set_description(""),
 
-  Option("journal_discard", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_copy_obj_progress", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("fio_dir", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("/tmp/fio")
+  Option("rgw_copy_obj_progress_every_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1024 * 1024)
   .set_description(""),
 
-  Option("rados_mon_op_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_obj_tombstone_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1000)
   .set_description(""),
 
-  Option("rados_osd_op_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_data_log_window", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(30)
   .set_description(""),
 
-  Option("rados_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_data_log_changes_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1000)
   .set_description(""),
 
-  Option("rbd_op_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1)
+  Option("rgw_data_log_num_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(128)
   .set_description(""),
 
-  Option("rbd_op_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(60)
+  Option("rgw_data_log_obj_prefix", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("data_log")
   .set_description(""),
 
-  Option("rbd_non_blocking_aio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rgw_replica_log_obj_prefix", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("replica_log")
   .set_description(""),
 
-  Option("rbd_cache", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rgw_bucket_quota_ttl", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(600)
   .set_description(""),
 
-  Option("rbd_cache_writethrough_until_flush", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rgw_bucket_quota_soft_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0.95)
   .set_description(""),
 
-  Option("rbd_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(32<<20)
+  Option("rgw_bucket_quota_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10000)
   .set_description(""),
 
-  Option("rbd_cache_max_dirty", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(24<<20)
+  Option("rgw_bucket_default_quota_max_objects", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(-1)
   .set_description(""),
 
-  Option("rbd_cache_target_dirty", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(16<<20)
+  Option("rgw_bucket_default_quota_max_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(-1)
   .set_description(""),
 
-  Option("rbd_cache_max_dirty_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(1.0)
+  Option("rgw_expose_bucket", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rbd_cache_max_dirty_object", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_frontends", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("civetweb port=7480")
   .set_description(""),
 
-  Option("rbd_cache_block_writes_upfront", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_user_quota_bucket_sync_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(180)
   .set_description(""),
 
-  Option("rbd_concurrent_management_ops", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10)
-  .set_min(1)
+  Option("rgw_user_quota_sync_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(3600 * 24)
   .set_description(""),
 
-  Option("rbd_balance_snap_reads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("rgw_user_quota_sync_idle_users", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("rbd_localize_snap_reads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_user_quota_sync_wait_time", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(3600 * 24)
   .set_description(""),
 
-  Option("rbd_balance_parent_reads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_user_default_quota_max_objects", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(-1)
   .set_description(""),
 
-  Option("rbd_localize_parent_reads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rgw_user_default_quota_max_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(-1)
   .set_description(""),
 
-  Option("rbd_readahead_trigger_requests", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10)
+  Option("rgw_multipart_min_part_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(5 * 1024 * 1024)
   .set_description(""),
 
-  Option("rbd_readahead_max_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(512 * 1024)
+  Option("rgw_multipart_part_upload_limit", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10000)
   .set_description(""),
 
-  Option("rbd_readahead_disable_after_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(50 * 1024 * 1024)
+  Option("rgw_max_slo_entries", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1000)
   .set_description(""),
 
-  Option("rbd_clone_copy_on_read", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_olh_pending_timeout_sec", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(3600)
   .set_description(""),
 
-  Option("rbd_blacklist_on_break_lock", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rgw_user_max_buckets", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1000)
   .set_description(""),
 
-  Option("rbd_blacklist_expire_seconds", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_objexp_gc_interval", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(60 * 10)
   .set_description(""),
 
-  Option("rbd_request_timed_out_seconds", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(30)
+  Option("rgw_objexp_time_step", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(4096)
   .set_description(""),
 
-  Option("rbd_skip_partial_discard", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_objexp_hints_num_shards", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(127)
   .set_description(""),
 
-  Option("rbd_enable_alloc_hint", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rgw_objexp_chunk_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(100)
   .set_description(""),
 
-  Option("rbd_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("rgw_enable_static_website", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("rbd_blkin_trace_all", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_log_http_headers", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("rbd_validate_pool", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rgw_num_async_rados_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(32)
   .set_description(""),
 
-  Option("rbd_validate_names", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rgw_md_notify_interval_msec", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(200)
   .set_description(""),
 
-  Option("rbd_auto_exclusive_lock_until_manual_request", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("rgw_run_sync_thread", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(true)
   .set_description(""),
 
-  Option("rbd_mirroring_resync_after_disconnect", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rgw_sync_lease_period", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(120)
   .set_description(""),
 
-  Option("rbd_mirroring_replay_delay", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  Option("rgw_sync_log_trim_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1200)
+  .set_description(""),
+
+  Option("rgw_sync_data_inject_err_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
   .set_default(0)
   .set_description(""),
 
-  Option("rbd_default_format", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  Option("rgw_sync_meta_inject_err_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0)
+  .set_description(""),
+
+  Option("rgw_period_push_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
   .set_default(2)
   .set_description(""),
 
-  Option("rbd_default_order", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(22)
+  Option("rgw_period_push_interval_max", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(30)
   .set_description(""),
 
-  Option("rbd_default_stripe_count", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_safe_max_objects_per_shard", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(100*1024)
   .set_description(""),
 
-  Option("rbd_default_stripe_unit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_shard_warning_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(90)
   .set_description(""),
 
-  Option("rbd_default_map_options", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rgw_swift_versioning_enabled", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rbd_journal_order", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(24)
+  Option("rgw_swift_custom_header", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("rbd_journal_splay_width", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(4)
+  Option("rgw_swift_need_stats", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rbd_journal_commit_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("rgw_reshard_num_logs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(16)
   .set_description(""),
 
-  Option("rbd_journal_object_flush_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_reshard_bucket_lock_duration", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(120)
   .set_description(""),
 
-  Option("rbd_journal_object_flush_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_crypt_require_ssl", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rbd_journal_object_flush_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_crypt_default_encryption_key", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("rbd_journal_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  Option("rgw_crypt_s3_kms_encryption_keys", Option::TYPE_STR, Option::LEVEL_ADVANCED)
   .set_default("")
   .set_description(""),
 
-  Option("rbd_journal_max_payload_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(16384)
+  Option("rgw_crypt_suppress_logs", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rbd_journal_max_concurrent_object_sets", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rgw_list_bucket_min_readahead", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1000)
   .set_description(""),
 
-  Option("rbd_mirror_journal_commit_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("rgw_rest_getusage_op_compat", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rbd_mirror_journal_poll_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("rgw_torrent_flag", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rbd_mirror_journal_max_fetch_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(32768)
+  Option("rgw_torrent_tracker", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("rbd_mirror_sync_point_update_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(30)
+  Option("rgw_torrent_createby", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("rbd_mirror_concurrent_image_syncs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("rgw_torrent_comment", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("rbd_mirror_pool_replayers_refresh_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(30)
+  Option("rgw_torrent_encoding", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("rbd_mirror_delete_retry_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(30)
+  Option("rgw_torrent_origin", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("rbd_mirror_image_state_check_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(30)
-  .set_min(1)
+  Option("rgw_torrent_sha_unit", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(512*1024)
   .set_description(""),
 
-  Option("rbd_mirror_leader_heartbeat_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(5)
-  .set_min(1)
+  Option("rgw_dynamic_resharding", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rbd_mirror_leader_max_missed_heartbeats", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(2)
+  Option("rgw_max_objs_per_shard", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(100000)
   .set_description(""),
 
-  Option("rbd_mirror_leader_max_acquire_attempts_before_break", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(3)
+  Option("rgw_reshard_thread_interval", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(60 * 10)
   .set_description(""),
+};
 
-  Option("nss_db_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+std::vector<Option> rbd_options = {
+  Option("rbd_default_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("rbd")
+  .set_description("")
+  .set_validator([](std::string *value, std::string *error_message){
+    boost::regex pattern("^[^@/]+$");
+    if (!boost::regex_match (*value, pattern)) {
+      *value = "rbd";
+      *error_message = "invalid RBD default pool, resetting to 'rbd'";
+    }
+    return 0;
+  }),
+
+  Option("rbd_default_data_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
   .set_default("")
+  .set_description("")
+  .set_validator([](std::string *value, std::string *error_message){
+    boost::regex pattern("^[^@/]*$");
+    if (!boost::regex_match (*value, pattern)) {
+      *value = "";
+      *error_message = "ignoring invalid RBD data pool";
+    }
+    return 0;
+  }),
+
+  Option("rbd_default_features", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("layering,exclusive-lock,object-map,fast-diff,deep-flatten")
+  .set_description("")
+  .set_safe()
+  .set_validator([](std::string *value, std::string *error_message){
+    static const std::map<std::string, uint64_t> FEATURE_MAP = {
+      {RBD_FEATURE_NAME_LAYERING, RBD_FEATURE_LAYERING},
+      {RBD_FEATURE_NAME_STRIPINGV2, RBD_FEATURE_STRIPINGV2},
+      {RBD_FEATURE_NAME_EXCLUSIVE_LOCK, RBD_FEATURE_EXCLUSIVE_LOCK},
+      {RBD_FEATURE_NAME_OBJECT_MAP, RBD_FEATURE_OBJECT_MAP},
+      {RBD_FEATURE_NAME_FAST_DIFF, RBD_FEATURE_FAST_DIFF},
+      {RBD_FEATURE_NAME_DEEP_FLATTEN, RBD_FEATURE_DEEP_FLATTEN},
+      {RBD_FEATURE_NAME_JOURNALING, RBD_FEATURE_JOURNALING},
+      {RBD_FEATURE_NAME_DATA_POOL, RBD_FEATURE_DATA_POOL},
+    };
+    static_assert((RBD_FEATURE_DATA_POOL << 1) > RBD_FEATURES_ALL,
+                  "new RBD feature added");
+
+    // convert user-friendly comma delimited feature name list to a bitmask
+    // that is used by the librbd API
+    uint64_t features = 0;
+    error_message->clear();
+
+    try {
+      features = boost::lexical_cast<decltype(features)>(*value);
+
+      uint64_t unsupported_features = (features & ~RBD_FEATURES_ALL);
+      if (unsupported_features != 0ull) {
+        features &= RBD_FEATURES_ALL;
+
+        std::stringstream ss;
+        ss << "ignoring unknown feature mask 0x"
+           << std::hex << unsupported_features;
+        *error_message = ss.str();
+      }
+    } catch (const boost::bad_lexical_cast& ) {
+      int r = 0;
+      std::vector<std::string> feature_names;
+      boost::split(feature_names, *value, boost::is_any_of(","));
+      for (auto feature_name: feature_names) {
+        boost::trim(feature_name);
+        auto feature_it = FEATURE_MAP.find(feature_name);
+        if (feature_it != FEATURE_MAP.end()) {
+          features += feature_it->second;
+        } else {
+          if (!error_message->empty()) {
+            *error_message += ", ";
+          }
+          *error_message += "ignoring unknown feature " + feature_name;
+          r = -EINVAL;
+        }
+      }
+
+      if (features == 0 && r == -EINVAL) {
+        features = RBD_FEATURES_DEFAULT;
+      }
+    }
+    *value = stringify(features);
+    return 0;
+  }),
+
+  Option("rbd_op_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1)
   .set_description(""),
 
-  Option("rgw_acl_grants_max_num", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(100)
+  Option("rbd_op_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(60)
   .set_description(""),
 
-  Option("rgw_max_chunk_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(4 * 1024 * 1024)
+  Option("rbd_non_blocking_aio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rgw_put_obj_min_window_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(16 * 1024 * 1024)
+  Option("rbd_cache", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rgw_put_obj_max_window_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(64 * 1024 * 1024)
+  Option("rbd_cache_writethrough_until_flush", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rgw_max_put_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(5ULL*1024*1024*1024)
+  Option("rbd_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(32<<20)
   .set_description(""),
 
-  Option("rgw_max_put_param_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1 * 1024 * 1024)
+  Option("rbd_cache_max_dirty", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(24<<20)
   .set_description(""),
 
-  Option("rgw_override_bucket_index_max_shards", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("rbd_cache_target_dirty", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(16<<20)
   .set_description(""),
 
-  Option("rgw_bucket_index_max_aio", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(8)
+  Option("rbd_cache_max_dirty_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(1.0)
   .set_description(""),
 
-  Option("rgw_enable_quota_threads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rbd_cache_max_dirty_object", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_enable_gc_threads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rbd_cache_block_writes_upfront", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rgw_enable_lc_threads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rbd_concurrent_management_ops", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10)
+  .set_min(1)
   .set_description(""),
 
-  Option("rgw_data", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("/var/lib/ceph/radosgw/$cluster-$id")
+  Option("rbd_balance_snap_reads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rgw_enable_apis", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("s3, s3website, swift, swift_auth, admin")
+  Option("rbd_localize_snap_reads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rgw_cache_enabled", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rbd_balance_parent_reads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rgw_cache_lru_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10000)
+  Option("rbd_localize_parent_reads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rgw_socket_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rbd_readahead_trigger_requests", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10)
   .set_description(""),
 
-  Option("rgw_host", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rbd_readahead_max_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(512 * 1024)
   .set_description(""),
 
-  Option("rgw_port", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rbd_readahead_disable_after_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(50 * 1024 * 1024)
   .set_description(""),
 
-  Option("rgw_dns_name", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rbd_clone_copy_on_read", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rgw_dns_s3website_name", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rbd_blacklist_on_break_lock", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rgw_content_length_compat", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rbd_blacklist_expire_seconds", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_lifecycle_work_time", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("00:00-06:00")
+  Option("rbd_request_timed_out_seconds", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(30)
   .set_description(""),
 
-  Option("rgw_lc_lock_max_time", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(60)
+  Option("rbd_skip_partial_discard", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rgw_lc_max_objs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(32)
+  Option("rbd_enable_alloc_hint", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rgw_lc_debug_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(-1)
+  Option("rbd_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rgw_script_uri", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rbd_blkin_trace_all", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rgw_request_uri", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rbd_validate_pool", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rgw_swift_url", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rbd_validate_names", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rgw_swift_url_prefix", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("swift")
+  Option("rbd_auto_exclusive_lock_until_manual_request", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rgw_swift_auth_url", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rbd_mirroring_resync_after_disconnect", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rgw_swift_auth_entry", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("auth")
+  Option("rbd_mirroring_replay_delay", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_swift_tenant_name", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rbd_default_format", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(2)
   .set_description(""),
 
-  Option("rgw_swift_account_in_url", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rbd_default_order", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(22)
   .set_description(""),
 
-  Option("rgw_swift_enforce_content_length", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rbd_default_stripe_count", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_keystone_url", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rbd_default_stripe_unit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_keystone_admin_token", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  Option("rbd_default_map_options", Option::TYPE_STR, Option::LEVEL_ADVANCED)
   .set_default("")
   .set_description(""),
 
-  Option("rgw_keystone_admin_user", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rbd_journal_order", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(24)
   .set_description(""),
 
-  Option("rgw_keystone_admin_password", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rbd_journal_splay_width", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(4)
   .set_description(""),
 
-  Option("rgw_keystone_admin_tenant", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rbd_journal_commit_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("rgw_keystone_admin_project", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rbd_journal_object_flush_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_keystone_admin_domain", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rbd_journal_object_flush_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_keystone_barbican_user", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rbd_journal_object_flush_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_keystone_barbican_password", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  Option("rbd_journal_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
   .set_default("")
   .set_description(""),
 
-  Option("rgw_keystone_barbican_tenant", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rbd_journal_max_payload_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(16384)
   .set_description(""),
 
-  Option("rgw_keystone_barbican_project", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rbd_journal_max_concurrent_object_sets", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_keystone_barbican_domain", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rbd_mirror_journal_commit_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("rgw_keystone_api_version", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(2)
+  Option("rbd_mirror_journal_poll_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("rgw_keystone_accepted_roles", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("Member, admin")
+  Option("rbd_mirror_journal_max_fetch_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(32768)
   .set_description(""),
 
-  Option("rgw_keystone_accepted_admin_roles", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rbd_mirror_sync_point_update_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(30)
   .set_description(""),
 
-  Option("rgw_keystone_token_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10000)
+  Option("rbd_mirror_concurrent_image_syncs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("rgw_keystone_revocation_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(15 * 60)
+  Option("rbd_mirror_pool_replayers_refresh_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(30)
   .set_description(""),
 
-  Option("rgw_keystone_verify_ssl", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rbd_mirror_delete_retry_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(30)
   .set_description(""),
 
-  Option("rgw_keystone_implicit_tenants", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("rbd_mirror_image_state_check_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(30)
+  .set_min(1)
   .set_description(""),
 
-  Option("rgw_cross_domain_policy", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("<allow-access-from domain=\"*\" secure=\"false\" />")
+  Option("rbd_mirror_leader_heartbeat_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(5)
+  .set_min(1)
   .set_description(""),
 
-  Option("rgw_healthcheck_disabling_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("rbd_mirror_leader_max_missed_heartbeats", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(2)
   .set_description(""),
 
-  Option("rgw_s3_auth_use_rados", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("rbd_mirror_leader_max_acquire_attempts_before_break", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(3)
   .set_description(""),
+};
 
-  Option("rgw_s3_auth_use_keystone", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+std::vector<Option> mds_options = {
+  Option("mds_data", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("/var/lib/ceph/mds/$cluster-$id")
   .set_description(""),
 
-  Option("rgw_s3_auth_aws4_force_boto2_compat", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("mds_max_file_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1ULL << 40)
   .set_description(""),
 
-  Option("rgw_barbican_url", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("mds_max_xattr_pairs_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(64 << 10)
   .set_description(""),
 
-  Option("rgw_ldap_uri", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("ldaps://<ldap.your.domain>")
+  Option("mds_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(100000)
   .set_description(""),
 
-  Option("rgw_ldap_binddn", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("uid=admin,cn=users,dc=example,dc=com")
+  Option("mds_cache_mid", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.7)
   .set_description(""),
 
-  Option("rgw_ldap_searchdn", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("cn=users,cn=accounts,dc=example,dc=com")
+  Option("mds_max_file_recover", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(32)
   .set_description(""),
 
-  Option("rgw_ldap_dnattr", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("uid")
+  Option("mds_dir_max_commit_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10)
   .set_description(""),
 
-  Option("rgw_ldap_secret", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("/etc/openldap/secret")
+  Option("mds_dir_keys_per_op", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(16384)
   .set_description(""),
 
-  Option("rgw_s3_auth_use_ldap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("mds_decay_halflife", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("rgw_ldap_searchfilter", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("mds_beacon_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(4)
   .set_description(""),
 
-  Option("rgw_admin_entry", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("admin")
+  Option("mds_beacon_grace", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(15)
   .set_description(""),
 
-  Option("rgw_enforce_swift_acls", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("mds_enforce_unique_name", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(true)
   .set_description(""),
 
-  Option("rgw_swift_token_expiration", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(24 * 3600)
+  Option("mds_blacklist_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(24.0*60.0)
   .set_description(""),
 
-  Option("rgw_print_continue", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("mds_session_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(60)
   .set_description(""),
 
-  Option("rgw_print_prohibited_content_length", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("mds_session_blacklist_on_timeout", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rgw_remote_addr_param", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("REMOTE_ADDR")
+  Option("mds_session_blacklist_on_evict", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rgw_op_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10*60)
+  Option("mds_sessionmap_keys_per_op", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1024)
   .set_description(""),
 
-  Option("rgw_op_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("mds_revoke_cap_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(60)
   .set_description(""),
 
-  Option("rgw_thread_pool_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(100)
+  Option("mds_recall_state_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(60)
   .set_description(""),
 
-  Option("rgw_num_control_oids", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(8)
+  Option("mds_freeze_tree_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(30)
   .set_description(""),
 
-  Option("rgw_num_rados_handles", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(1)
+  Option("mds_session_autoclose", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(300)
   .set_description(""),
 
-  Option("rgw_verify_ssl", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("mds_health_summarize_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10)
   .set_description(""),
 
-  Option("rgw_nfs_lru_lanes", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("mds_health_cache_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(1.5)
   .set_description(""),
 
-  Option("rgw_nfs_lru_lane_hiwat", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(911)
+  Option("mds_reconnect_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(45)
   .set_description(""),
 
-  Option("rgw_nfs_fhcache_partitions", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(3)
+  Option("mds_tick_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("rgw_nfs_fhcache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(2017)
+  Option("mds_dirstat_min_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(1)
   .set_description(""),
 
-  Option("rgw_nfs_namespace_expire_secs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(300)
-  .set_min(1)
+  Option("mds_scatter_nudge_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("rgw_nfs_max_gc", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(300)
-  .set_min(1)
+  Option("mds_client_prealloc_inos", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1000)
   .set_description(""),
 
-  Option("rgw_nfs_write_completion_interval_s", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10)
+  Option("mds_early_reply", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rgw_zone", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("mds_default_dir_hash", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(CEPH_STR_HASH_RJENKINS)
   .set_description(""),
 
-  Option("rgw_zone_root_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default(".rgw.root")
+  Option("mds_log_pause", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rgw_default_zone_info_oid", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("default.zone")
+  Option("mds_log_skip_corrupt_events", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rgw_region", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("mds_log_max_events", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(-1)
   .set_description(""),
 
-  Option("rgw_region_root_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default(".rgw.root")
+  Option("mds_log_events_per_segment", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1024)
   .set_description(""),
 
-  Option("rgw_default_region_info_oid", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("default.region")
+  Option("mds_log_segment_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_zonegroup", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("mds_log_max_segments", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(30)
   .set_description(""),
 
-  Option("rgw_zonegroup_root_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default(".rgw.root")
+  Option("mds_log_max_expiring", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(20)
   .set_description(""),
 
-  Option("rgw_default_zonegroup_info_oid", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("default.zonegroup")
+  Option("mds_bal_export_pin", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rgw_realm", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("mds_bal_sample_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(3.0)
   .set_description(""),
 
-  Option("rgw_realm_root_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default(".rgw.root")
+  Option("mds_bal_replicate_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(8000)
   .set_description(""),
 
-  Option("rgw_default_realm_info_oid", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("default.realm")
+  Option("mds_bal_unreplicate_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_period_root_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default(".rgw.root")
+  Option("mds_bal_frag", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rgw_period_latest_epoch_info_oid", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default(".latest_epoch")
+  Option("mds_bal_split_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10000)
   .set_description(""),
 
-  Option("rgw_log_nonexistent_bucket", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("mds_bal_split_rd", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(25000)
   .set_description(""),
 
-  Option("rgw_log_object_name", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("%Y-%m-%d-%H-%i-%n")
+  Option("mds_bal_split_wr", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(10000)
   .set_description(""),
 
-  Option("rgw_log_object_name_utc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("mds_bal_split_bits", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(3)
   .set_description(""),
 
-  Option("rgw_usage_max_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(32)
+  Option("mds_bal_merge_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(50)
   .set_description(""),
 
-  Option("rgw_usage_max_user_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1)
-  .set_min(1)
+  Option("mds_bal_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10)
   .set_description(""),
 
-  Option("rgw_enable_ops_log", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("mds_bal_fragment_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("rgw_enable_usage_log", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("mds_bal_fragment_size_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10000*10)
   .set_description(""),
 
-  Option("rgw_ops_log_rados", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("mds_bal_fragment_fast_factor", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(1.5)
   .set_description(""),
 
-  Option("rgw_ops_log_socket_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("mds_bal_idle_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_ops_log_data_backlog", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(5 << 20)
+  Option("mds_bal_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(-1)
   .set_description(""),
 
-  Option("rgw_fcgi_socket_backlog", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1024)
+  Option("mds_bal_max_until", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(-1)
   .set_description(""),
 
-  Option("rgw_usage_log_flush_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1024)
+  Option("mds_bal_mode", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_usage_log_tick_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(30)
+  Option("mds_bal_min_rebalance", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.1)
   .set_description(""),
 
-  Option("rgw_intent_log_object_name", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("%Y-%m-%d-%i-%n")
+  Option("mds_bal_min_start", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.2)
   .set_description(""),
 
-  Option("rgw_intent_log_object_name_utc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("mds_bal_need_min", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.8)
   .set_description(""),
 
-  Option("rgw_init_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(300)
+  Option("mds_bal_need_max", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(1.2)
   .set_description(""),
 
-  Option("rgw_mime_types_file", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("/etc/mime.types")
+  Option("mds_bal_midchunk", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.3)
   .set_description(""),
 
-  Option("rgw_gc_max_objs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(32)
+  Option("mds_bal_minchunk", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.001)
   .set_description(""),
 
-  Option("rgw_gc_obj_min_wait", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(2 * 3600)
+  Option("mds_bal_target_decay", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(10.0)
   .set_description(""),
 
-  Option("rgw_gc_processor_max_time", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(3600)
+  Option("mds_replay_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(1.0)
   .set_description(""),
 
-  Option("rgw_gc_processor_period", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(3600)
+  Option("mds_shutdown_check", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_s3_success_create_obj_status", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  Option("mds_thrash_exports", Option::TYPE_INT, Option::LEVEL_ADVANCED)
   .set_default(0)
   .set_description(""),
 
-  Option("rgw_resolve_cname", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("mds_thrash_fragments", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_obj_stripe_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(4 << 20)
+  Option("mds_dump_cache_on_map", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rgw_extended_http_attrs", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("mds_dump_cache_after_rejoin", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rgw_exit_timeout_secs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(120)
+  Option("mds_verify_scatter", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rgw_get_obj_window_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(16 << 20)
+  Option("mds_debug_scatterstat", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rgw_get_obj_max_req_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(4 << 20)
+  Option("mds_debug_frag", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rgw_relaxed_s3_bucket_names", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("mds_debug_auth_pins", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("rgw_defer_to_bucket_acls", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("mds_debug_subtrees", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rgw_list_buckets_max_chunk", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1000)
+  Option("mds_kill_mdstable_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_md_log_max_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(64)
+  Option("mds_kill_export_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_num_zone_opstate_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(128)
+  Option("mds_kill_import_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_opstate_ratelimit_sec", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(30)
+  Option("mds_kill_link_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_curl_wait_timeout_ms", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1000)
+  Option("mds_kill_rename_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_copy_obj_progress", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("mds_kill_openc_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_copy_obj_progress_every_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1024 * 1024)
+  Option("mds_kill_journal_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_obj_tombstone_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1000)
+  Option("mds_kill_journal_expire_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_data_log_window", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(30)
+  Option("mds_kill_journal_replay_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_data_log_changes_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1000)
+  Option("mds_journal_format", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1)
   .set_description(""),
 
-  Option("rgw_data_log_num_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(128)
+  Option("mds_kill_create_at", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_data_log_obj_prefix", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("data_log")
+  Option("mds_inject_traceless_reply_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_replica_log_obj_prefix", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("replica_log")
+  Option("mds_wipe_sessions", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_bucket_quota_ttl", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(600)
+  Option("mds_wipe_ino_prealloc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_bucket_quota_soft_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0.95)
+  Option("mds_skip_ino", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_bucket_quota_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10000)
+  Option("mds_standby_for_name", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("rgw_bucket_default_quota_max_objects", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  Option("mds_standby_for_rank", Option::TYPE_INT, Option::LEVEL_ADVANCED)
   .set_default(-1)
   .set_description(""),
 
-  Option("rgw_bucket_default_quota_max_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  Option("mds_standby_for_fscid", Option::TYPE_INT, Option::LEVEL_ADVANCED)
   .set_default(-1)
   .set_description(""),
 
-  Option("rgw_expose_bucket", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("mds_standby_replay", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("rgw_frontends", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("civetweb port=7480")
+  Option("mds_enable_op_tracker", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rgw_user_quota_bucket_sync_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(180)
+  Option("mds_op_history_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(20)
   .set_description(""),
 
-  Option("rgw_user_quota_sync_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(3600 * 24)
+  Option("mds_op_history_duration", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(600)
   .set_description(""),
 
-  Option("rgw_user_quota_sync_idle_users", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("mds_op_complaint_time", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(30)
   .set_description(""),
 
-  Option("rgw_user_quota_sync_wait_time", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(3600 * 24)
+  Option("mds_op_log_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("rgw_user_default_quota_max_objects", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(-1)
+  Option("mds_snap_min_uid", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_user_default_quota_max_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(-1)
+  Option("mds_snap_max_uid", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(4294967294)
+  .set_description(""),
+
+  Option("mds_snap_rstat", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
+  .set_description(""),
+
+  Option("mds_verify_backtrace", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1)
   .set_description(""),
 
-  Option("rgw_multipart_min_part_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(5 * 1024 * 1024)
+  Option("mds_max_completed_flushes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(100000)
   .set_description(""),
 
-  Option("rgw_multipart_part_upload_limit", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(10000)
+  Option("mds_max_completed_requests", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(100000)
   .set_description(""),
 
-  Option("rgw_max_slo_entries", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1000)
+  Option("mds_action_on_write_error", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1)
   .set_description(""),
 
-  Option("rgw_olh_pending_timeout_sec", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(3600)
+  Option("mds_mon_shutdown_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("rgw_user_max_buckets", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1000)
+  Option("mds_max_purge_files", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(64)
   .set_description(""),
 
-  Option("rgw_objexp_gc_interval", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(60 * 10)
+  Option("mds_max_purge_ops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(8192)
   .set_description(""),
 
-  Option("rgw_objexp_time_step", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(4096)
+  Option("mds_max_purge_ops_per_pg", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(0.5)
   .set_description(""),
 
-  Option("rgw_objexp_hints_num_shards", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(127)
+  Option("mds_purge_queue_busy_flush_period", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(1.0)
   .set_description(""),
 
-  Option("rgw_objexp_chunk_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(100)
+  Option("mds_root_ino_uid", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_enable_static_website", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("mds_root_ino_gid", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_log_http_headers", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("mds_max_scrub_ops_in_progress", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("rgw_num_async_rados_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(32)
+  Option("mds_damage_table_max_entries", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10000)
   .set_description(""),
 
-  Option("rgw_md_notify_interval_msec", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(200)
+  Option("mds_client_writeable_range_max_inc_objs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(1024)
   .set_description(""),
+};
 
-  Option("rgw_run_sync_thread", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+std::vector<Option> mds_client_options = {
+  Option("client_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(16384)
   .set_description(""),
 
-  Option("rgw_sync_lease_period", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(120)
+  Option("client_cache_mid", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(.75)
   .set_description(""),
 
-  Option("rgw_sync_log_trim_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1200)
+  Option("client_use_random_mds", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rgw_sync_data_inject_err_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("client_mount_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(300.0)
   .set_description(""),
 
-  Option("rgw_sync_meta_inject_err_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(0)
+  Option("client_tick_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(1.0)
   .set_description(""),
 
-  Option("rgw_period_push_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(2)
+  Option("client_trace", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
 
-  Option("rgw_period_push_interval_max", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(30)
+  Option("client_readahead_min", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(128*1024)
   .set_description(""),
 
-  Option("rgw_safe_max_objects_per_shard", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(100*1024)
+  Option("client_readahead_max_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("rgw_shard_warning_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(90)
+  Option("client_readahead_max_periods", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(4)
   .set_description(""),
 
-  Option("rgw_swift_versioning_enabled", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("client_reconnect_stale", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("mgr_module_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default(CEPH_PKGLIBDIR "/mgr")
+  Option("client_snapdir", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default(".snap")
   .set_description(""),
 
-  Option("mgr_initial_modules", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("restful status")
+  Option("client_mountpoint", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("/")
   .set_description(""),
 
-  Option("mgr_data", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("/var/lib/ceph/mgr/$cluster-$id")
+  Option("client_mount_uid", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(-1)
   .set_description(""),
 
-  Option("mgr_tick_period", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(2)
+  Option("client_mount_gid", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(-1)
   .set_description(""),
 
-  Option("mgr_stats_period", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("client_notify_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(10)
   .set_description(""),
 
-  Option("mgr_client_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(128*1048576)
+  Option("osd_client_watch_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(30)
   .set_description(""),
 
-  Option("mgr_client_messages", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(512)
+  Option("client_caps_release_delay", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(5)
   .set_description(""),
 
-  Option("mgr_osd_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(512*1048576)
+  Option("client_quota_df", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("mgr_osd_messages", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(8192)
+  Option("client_oc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("mgr_mds_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(128*1048576)
+  Option("client_oc_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1024*1024* 200)
   .set_description(""),
 
-  Option("mgr_mds_messages", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(128)
+  Option("client_oc_max_dirty", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1024*1024* 100)
   .set_description(""),
 
-  Option("mgr_mon_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(128*1048576)
+  Option("client_oc_target_dirty", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1024*1024* 8)
   .set_description(""),
 
-  Option("mgr_mon_messages", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(128)
+  Option("client_oc_max_dirty_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+  .set_default(5.0)
   .set_description(""),
 
-  Option("mgr_connect_retry_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(1.0)
+  Option("client_oc_max_objects", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(1000)
   .set_description(""),
 
-  Option("mgr_service_beacon_grace", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
-  .set_default(60.0)
+  Option("client_debug_getattr_caps", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("mon_mgr_digest_period", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(5)
+  Option("client_debug_force_sync_read", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("mon_mgr_beacon_grace", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(30)
+  Option("client_debug_inject_tick_delay", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+  .set_default(0)
   .set_description(""),
 
-  Option("mon_mgr_inactive_grace", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(60)
+  Option("client_max_inline_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+  .set_default(4096)
   .set_description(""),
 
-  Option("mon_mgr_mkfs_grace", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(60)
+  Option("client_inject_release_failure", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rgw_crypt_require_ssl", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
+  Option("client_inject_fixed_oldest_tid", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rgw_crypt_default_encryption_key", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  Option("client_metadata", Option::TYPE_STR, Option::LEVEL_ADVANCED)
   .set_default("")
   .set_description(""),
 
-  Option("rgw_crypt_s3_kms_encryption_keys", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  Option("client_acl_type", Option::TYPE_STR, Option::LEVEL_ADVANCED)
   .set_default("")
   .set_description(""),
 
-  Option("rgw_crypt_suppress_logs", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("client_permissions", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(true)
   .set_description(""),
 
-  Option("rgw_list_bucket_min_readahead", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(1000)
+  Option("client_dirsize_rbytes", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rgw_rest_getusage_op_compat", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("fuse_use_invalidate_cb", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("mutex_perf_counter", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("fuse_disable_pagecache", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("throttler_perf_counter", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("fuse_allow_other", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(true)
   .set_description(""),
 
-  Option("rgw_torrent_flag", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("fuse_default_permissions", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("rgw_torrent_tracker", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
-  .set_description(""),
-
-  Option("rgw_torrent_createby", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("fuse_big_writes", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rgw_torrent_comment", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("fuse_atomic_o_trunc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rgw_torrent_encoding", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("fuse_debug", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rgw_torrent_origin", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("fuse_multithreaded", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rgw_torrent_sha_unit", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(512*1024)
+  Option("fuse_require_active_mds", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("event_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("fuse_syncfs_on_mksnap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("internal_safe_to_start_threads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("fuse_set_user_groups", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(false)
   .set_description(""),
 
-  Option("debug_deliberately_leak_memory", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(false)
+  Option("client_try_dentry_invalidate", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rgw_swift_custom_header", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-  .set_default("")
+  Option("client_die_on_failed_remount", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(true)
   .set_description(""),
 
-  Option("rgw_swift_need_stats", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  Option("client_check_pool_perm", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
   .set_default(true)
   .set_description(""),
 
-  Option("rgw_reshard_num_logs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(16)
+  Option("client_use_faked_inos", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
+  .set_default(false)
   .set_description(""),
 
-  Option("rgw_reshard_bucket_lock_duration", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(120)
+  Option("client_mds_namespace", Option::TYPE_STR, Option::LEVEL_ADVANCED)
+  .set_default("")
   .set_description(""),
+};
 
-  Option("rgw_dynamic_resharding", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-  .set_default(true)
-  .set_description(""),
 
-  Option("rgw_max_objs_per_shard", Option::TYPE_INT, Option::LEVEL_ADVANCED)
-  .set_default(100000)
-  .set_description(""),
+static std::vector<Option> build_options()
+{
+  std::vector<Option> result = global_options;
 
-  Option("rgw_reshard_thread_interval", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-  .set_default(60 * 10)
-  .set_description(""),
-};
+  auto ingest = [&result](std::vector<Option> &options, const std::string &svc) {
+    for (const auto &o_in : options) {
+      Option o(o_in);
+      o.add_service(svc);
+      result.push_back(o);
+    }
+  };
+
+  ingest(rgw_options, "rgw");
+  ingest(rbd_options, "rbd");
+  ingest(mds_options, "mds");
+  ingest(mds_client_options, "mds_client");
+
+  return result;
+}
+
+const std::vector<Option> ceph_options = build_options();
index 0db3057d5ebf1955cc58cd2984ecc448fc8f248a..3d0e928667140f685ff47e11872814a0fa462a58 100644 (file)
@@ -193,7 +193,7 @@ struct Option {
     }
     return *this;
   }
-  Option& add_service(const char* services_str) {
+  Option& add_service(const std::string &services_str) {
     for (const auto s: get_str_vec(services_str)) {
       services.push_back(s);
     }