From 5505fc0051a302fed46aa2ecaa8c8aa2a75b9e91 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Tue, 13 Apr 2021 13:43:57 +0800 Subject: [PATCH] common: generate legacy_config_opts.h from .yaml.in files * add a setting named "with_legacy" to .yaml.in files, so each option with a true "with_legacy" will have an entry in legacy_config_opts.h. * preserve the comments from legacy_config_opts.h to .yaml.in, some of them are solely for developers, but some of them are good reading for users as well. we can use them for "desc" field in a follow-up change. * move common/legacy_config_opts.h to common/options/legacy_config_opts.h as legacy_config_opts.h is "closer" to the options directory than other sources files under src/common. * update y2c.py to generate separate .h files which are in turn included by legacy_config_opts.h * add a target named "legacy-option-headers", and let some targets depend on it so that these headers generated by y2c.py can be generated before the .cc files including them are compiled. Signed-off-by: Kefu Chai --- src/CMakeLists.txt | 1 + src/auth/CMakeLists.txt | 1 + src/common/CMakeLists.txt | 2 + src/common/config.cc | 2 +- src/common/config_values.h | 2 +- src/common/legacy_config_opts.h | 1564 ----------------------- src/common/options/CMakeLists.txt | 20 +- src/common/options/global.yaml.in | 1109 +++++++++++++++- src/common/options/legacy_config_opts.h | 8 + src/common/options/mds-client.yaml.in | 44 + src/common/options/mds.yaml.in | 128 ++ src/common/options/rgw.yaml.in | 292 ++++- src/common/options/y2c.py | 34 +- 13 files changed, 1625 insertions(+), 1582 deletions(-) delete mode 100644 src/common/legacy_config_opts.h create mode 100644 src/common/options/legacy_config_opts.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 12e8300efaf..01a4bf69e6d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -399,6 +399,7 @@ endif() set_source_files_properties(ceph_ver.c APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_BINARY_DIR}/src/include/ceph_ver.h) add_library(common-objs OBJECT ${libcommon_files}) +add_dependencies(common-objs legacy-option-headers) if(WITH_JAEGER) find_package(yaml-cpp 0.6.0) diff --git a/src/auth/CMakeLists.txt b/src/auth/CMakeLists.txt index 8e849373a0b..1ab294332cb 100644 --- a/src/auth/CMakeLists.txt +++ b/src/auth/CMakeLists.txt @@ -22,3 +22,4 @@ endif() add_library(common-auth-objs OBJECT ${auth_srcs}) target_include_directories(common-auth-objs PRIVATE ${OPENSSL_INCLUDE_DIR}) +add_dependencies(common-auth-objs legacy-option-headers) diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 2feaa80800d..e16b5aba346 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -6,6 +6,7 @@ add_library(common_texttable_obj OBJECT add_library(common_prioritycache_obj OBJECT PriorityCache.cc) +add_dependencies(common_prioritycache_obj legacy-option-headers) if(WIN32) add_library(dlfcn_win32 STATIC win32/dlfcn.cc win32/errno.cc) @@ -188,6 +189,7 @@ target_compile_definitions(common-common-objs PRIVATE "CMAKE_INSTALL_LIBDIR=\"${CMAKE_INSTALL_LIBDIR}\"" "CEPH_INSTALL_FULL_PKGLIBDIR=\"${CEPH_INSTALL_FULL_PKGLIBDIR}\"" "CEPH_INSTALL_DATADIR=\"${CEPH_INSTALL_DATADIR}\"") +add_dependencies(common-common-objs legacy-option-headers) set(common_mountcephfs_srcs armor.c diff --git a/src/common/config.cc b/src/common/config.cc index b110e997727..700352ed1fb 100644 --- a/src/common/config.cc +++ b/src/common/config.cc @@ -185,7 +185,7 @@ md_config_t::md_config_t(ConfigValues& values, #define OPTION(name, type) \ {STRINGIFY(name), &ConfigValues::name}, #define SAFE_OPTION(name, type) OPTION(name, type) -#include "common/legacy_config_opts.h" +#include "options/legacy_config_opts.h" #undef OPTION #undef SAFE_OPTION }; diff --git a/src/common/config_values.h b/src/common/config_values.h index 5cf79eee659..6347709cc98 100644 --- a/src/common/config_values.h +++ b/src/common/config_values.h @@ -56,7 +56,7 @@ public: #define SAFE_OPTION(name, ty) \ protected: \ OPTION_##ty(name) -#include "common/legacy_config_opts.h" +#include "common/options/legacy_config_opts.h" #undef OPTION_OPT_INT #undef OPTION_OPT_LONGLONG #undef OPTION_OPT_STR diff --git a/src/common/legacy_config_opts.h b/src/common/legacy_config_opts.h deleted file mode 100644 index 52820319bc5..00000000000 --- a/src/common/legacy_config_opts.h +++ /dev/null @@ -1,1564 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab -/* - * Ceph - scalable distributed file system - * - * Copyright (C) 2004-2006 Sage Weil - * - * This is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License version 2.1, as published by the Free Software - * Foundation. See file COPYING. - * - */ - -/* note: no header guard */ -OPTION(host, OPT_STR) // "" means that ceph will use short hostname -OPTION(public_addr, OPT_ADDR) -OPTION(public_addrv, OPT_ADDRVEC) -OPTION(public_bind_addr, OPT_ADDR) -OPTION(cluster_addr, OPT_ADDR) -OPTION(public_network, OPT_STR) -OPTION(cluster_network, OPT_STR) -OPTION(lockdep, OPT_BOOL) -OPTION(lockdep_force_backtrace, OPT_BOOL) // always gather current backtrace at every lock -OPTION(run_dir, OPT_STR) // the "/var/run/ceph" dir, created on daemon startup -OPTION(admin_socket, OPT_STR) // default changed by common_preinit() -OPTION(admin_socket_mode, OPT_STR) // permission bits to set for admin socket file, e.g., "0775", "0755" - -OPTION(daemonize, OPT_BOOL) // default changed by common_preinit() -OPTION(setuser, OPT_STR) // uid or user name -OPTION(setgroup, OPT_STR) // gid or group name -OPTION(setuser_match_path, OPT_STR) // make setuser/group conditional on this path matching ownership -OPTION(pid_file, OPT_STR) // default changed by common_preinit() -OPTION(chdir, OPT_STR) -OPTION(restapi_log_level, OPT_STR) // default set by Python code -OPTION(restapi_base_url, OPT_STR) // " -OPTION(fatal_signal_handlers, OPT_BOOL) -OPTION(crash_dir, OPT_STR) -SAFE_OPTION(erasure_code_dir, OPT_STR) // default location for erasure-code plugins - -OPTION(log_file, OPT_STR) // default changed by common_preinit() -OPTION(log_max_new, OPT_INT) // default changed by common_preinit() -OPTION(log_max_recent, OPT_INT) // default changed by common_preinit() -OPTION(log_to_file, OPT_BOOL) -OPTION(log_to_stderr, OPT_BOOL) // default changed by common_preinit() -OPTION(err_to_stderr, OPT_BOOL) // default changed by common_preinit() -OPTION(log_to_syslog, OPT_BOOL) -OPTION(err_to_syslog, OPT_BOOL) -OPTION(log_flush_on_exit, OPT_BOOL) // default changed by common_preinit() -OPTION(log_stop_at_utilization, OPT_FLOAT) // stop logging at (near) full -OPTION(log_to_graylog, OPT_BOOL) -OPTION(err_to_graylog, OPT_BOOL) -OPTION(log_graylog_host, OPT_STR) -OPTION(log_graylog_port, OPT_INT) - -// options will take k/v pairs, or single-item that will be assumed as general -// default for all, regardless of channel. -// e.g., "info" would be taken as the same as "default=info" -// also, "default=daemon audit=local0" would mean -// "default all to 'daemon', override 'audit' with 'local0' -OPTION(clog_to_monitors, OPT_STR) -OPTION(clog_to_syslog, OPT_STR) -OPTION(clog_to_syslog_level, OPT_STR) // this level and above -OPTION(clog_to_syslog_facility, OPT_STR) -OPTION(clog_to_graylog, OPT_STR) -OPTION(clog_to_graylog_host, OPT_STR) -OPTION(clog_to_graylog_port, OPT_STR) - -OPTION(mon_cluster_log_to_syslog, OPT_STR) -OPTION(mon_cluster_log_to_syslog_level, OPT_STR) // this level and above -OPTION(mon_cluster_log_to_syslog_facility, OPT_STR) -OPTION(mon_cluster_log_to_file, OPT_BOOL) -OPTION(mon_cluster_log_file, OPT_STR) -OPTION(mon_cluster_log_file_level, OPT_STR) -OPTION(mon_cluster_log_to_graylog, OPT_STR) -OPTION(mon_cluster_log_to_graylog_host, OPT_STR) -OPTION(mon_cluster_log_to_graylog_port, OPT_STR) - -OPTION(enable_experimental_unrecoverable_data_corrupting_features, OPT_STR) - -SAFE_OPTION(plugin_dir, OPT_STR) - -OPTION(compressor_zlib_isal, OPT_BOOL) -OPTION(compressor_zlib_level, OPT_INT) //regular zlib compression level, not applicable to isa-l optimized version -OPTION(compressor_zlib_winsize, OPT_INT) //regular zlib compression winsize, not applicable to isa-l optimized version -OPTION(compressor_zstd_level, OPT_INT) //regular zstd compression level - -OPTION(qat_compressor_enabled, OPT_BOOL) - -OPTION(plugin_crypto_accelerator, OPT_STR) - -OPTION(mempool_debug, OPT_BOOL) - -OPTION(openssl_engine_opts, OPT_STR) - -OPTION(key, OPT_STR) -OPTION(keyfile, OPT_STR) -OPTION(keyring, OPT_STR) -OPTION(heartbeat_interval, OPT_INT) -OPTION(heartbeat_file, OPT_STR) -OPTION(heartbeat_inject_failure, OPT_INT) // force an unhealthy heartbeat for N seconds -OPTION(perf, OPT_BOOL) // enable internal perf counters - -SAFE_OPTION(ms_type, OPT_STR) // messenger backend. It will be modified in runtime, so use SAFE_OPTION -OPTION(ms_public_type, OPT_STR) // messenger backend -OPTION(ms_cluster_type, OPT_STR) // messenger backend -OPTION(ms_learn_addr_from_peer, OPT_BOOL) -OPTION(ms_tcp_nodelay, OPT_BOOL) -OPTION(ms_tcp_rcvbuf, OPT_INT) -OPTION(ms_tcp_prefetch_max_size, OPT_U32) // max prefetch size, we limit this to avoid extra memcpy -OPTION(ms_initial_backoff, OPT_DOUBLE) -OPTION(ms_max_backoff, OPT_DOUBLE) -OPTION(ms_crc_data, OPT_BOOL) -OPTION(ms_crc_header, OPT_BOOL) -OPTION(ms_die_on_bad_msg, OPT_BOOL) -OPTION(ms_die_on_unhandled_msg, OPT_BOOL) -OPTION(ms_die_on_old_message, OPT_BOOL) // assert if we get a dup incoming message and shouldn't have (may be triggered by pre-541cd3c64be0dfa04e8a2df39422e0eb9541a428 code) -OPTION(ms_die_on_skipped_message, OPT_BOOL) // assert if we skip a seq (kernel client does this intentionally) -OPTION(ms_die_on_bug, OPT_BOOL) -OPTION(ms_dispatch_throttle_bytes, OPT_U64) -OPTION(ms_bind_ipv6, OPT_BOOL) -OPTION(ms_bind_port_min, OPT_INT) -OPTION(ms_bind_port_max, OPT_INT) -OPTION(ms_bind_retry_count, OPT_INT) // If binding fails, how many times do we retry to bind -OPTION(ms_bind_retry_delay, OPT_INT) // Delay between attempts to bind -OPTION(ms_bind_before_connect, OPT_BOOL) -OPTION(ms_tcp_listen_backlog, OPT_INT) -OPTION(ms_connection_ready_timeout, OPT_U64) -OPTION(ms_connection_idle_timeout, OPT_U64) -OPTION(ms_pq_max_tokens_per_priority, OPT_U64) -OPTION(ms_pq_min_cost, OPT_U64) -OPTION(ms_inject_socket_failures, OPT_U64) -SAFE_OPTION(ms_inject_delay_type, OPT_STR) // "osd mds mon client" allowed -OPTION(ms_inject_delay_max, OPT_DOUBLE) // seconds -OPTION(ms_inject_delay_probability, OPT_DOUBLE) // range [0, 1] -OPTION(ms_inject_internal_delays, OPT_DOUBLE) // seconds -OPTION(ms_blackhole_osd, OPT_BOOL) -OPTION(ms_blackhole_mon, OPT_BOOL) -OPTION(ms_blackhole_mds, OPT_BOOL) -OPTION(ms_blackhole_mgr, OPT_BOOL) -OPTION(ms_blackhole_client, OPT_BOOL) -OPTION(ms_dump_on_send, OPT_BOOL) // hexdump msg to log on send -OPTION(ms_dump_corrupt_message_level, OPT_INT) // debug level to hexdump undecodeable messages at -OPTION(ms_async_op_threads, OPT_U64) // number of worker processing threads for async messenger created on init -OPTION(ms_async_rdma_device_name, OPT_STR) -OPTION(ms_async_rdma_enable_hugepage, OPT_BOOL) -OPTION(ms_async_rdma_buffer_size, OPT_INT) -OPTION(ms_async_rdma_send_buffers, OPT_U32) -//size of the receive buffer pool, 0 is unlimited -OPTION(ms_async_rdma_receive_buffers, OPT_U32) -// max number of wr in srq -OPTION(ms_async_rdma_receive_queue_len, OPT_U32) -// support srq -OPTION(ms_async_rdma_support_srq, OPT_BOOL) -OPTION(ms_async_rdma_port_num, OPT_U32) -OPTION(ms_async_rdma_polling_us, OPT_U32) -OPTION(ms_async_rdma_local_gid, OPT_STR) // GID format: "fe80:0000:0000:0000:7efe:90ff:fe72:6efe", no zero folding -OPTION(ms_async_rdma_roce_ver, OPT_INT) // 0=RoCEv1, 1=RoCEv2, 2=RoCEv1.5 -OPTION(ms_async_rdma_sl, OPT_INT) // in RoCE, this means PCP -OPTION(ms_async_rdma_dscp, OPT_INT) // in RoCE, this means DSCP - -// rdma connection management -OPTION(ms_async_rdma_cm, OPT_BOOL) -OPTION(ms_async_rdma_type, OPT_STR) - -// when there are enough accept failures, indicating there are unrecoverable failures, -// just do ceph_abort() . Here we make it configurable. -OPTION(ms_max_accept_failures, OPT_INT) - -OPTION(ms_dpdk_port_id, OPT_INT) -SAFE_OPTION(ms_dpdk_coremask, OPT_STR) // it is modified in unittest so that use SAFE_OPTION to declare -OPTION(ms_dpdk_memory_channel, OPT_STR) -OPTION(ms_dpdk_hugepages, OPT_STR) -OPTION(ms_dpdk_pmd, OPT_STR) -SAFE_OPTION(ms_dpdk_host_ipv4_addr, OPT_STR) -SAFE_OPTION(ms_dpdk_gateway_ipv4_addr, OPT_STR) -SAFE_OPTION(ms_dpdk_netmask_ipv4_addr, OPT_STR) -OPTION(ms_dpdk_lro, OPT_BOOL) -OPTION(ms_dpdk_hw_flow_control, OPT_BOOL) -// Weighing of a hardware network queue relative to a software queue (0=no work, 1= equal share)") -OPTION(ms_dpdk_hw_queue_weight, OPT_FLOAT) -OPTION(ms_dpdk_debug_allow_loopback, OPT_BOOL) -OPTION(ms_dpdk_rx_buffer_count_per_core, OPT_INT) - -OPTION(inject_early_sigterm, OPT_BOOL) - -OPTION(mon_data, OPT_STR) -OPTION(mon_initial_members, OPT_STR) // list of initial cluster mon ids; if specified, need majority to form initial quorum and create new cluster -OPTION(mon_compact_on_start, OPT_BOOL) // compact leveldb on ceph-mon start -OPTION(mon_compact_on_bootstrap, OPT_BOOL) // trigger leveldb compaction on bootstrap -OPTION(mon_compact_on_trim, OPT_BOOL) // compact (a prefix) when we trim old states -OPTION(mon_osd_cache_size, OPT_INT) // the size of osdmaps cache, not to rely on underlying store's cache - -OPTION(mon_osd_cache_size_min, OPT_U64) // minimum amount of memory to cache osdmaps -OPTION(mon_memory_target, OPT_U64) // amount of mapped memory for osdmaps -OPTION(mon_memory_autotune, OPT_BOOL) // autotune cache memory for osdmap -OPTION(mon_cpu_threads, OPT_INT) -OPTION(mon_osd_mapping_pgs_per_chunk, OPT_INT) -OPTION(mon_clean_pg_upmaps_per_chunk, OPT_U64) -OPTION(mon_osd_max_creating_pgs, OPT_INT) -OPTION(mon_tick_interval, OPT_INT) -OPTION(mon_session_timeout, OPT_INT) // must send keepalive or subscribe -OPTION(mon_subscribe_interval, OPT_DOUBLE) // for legacy clients only -OPTION(mon_delta_reset_interval, OPT_DOUBLE) // seconds of inactivity before we reset the pg delta to 0 -OPTION(mon_osd_laggy_halflife, OPT_INT) // (seconds) how quickly our laggy estimations decay -OPTION(mon_osd_laggy_weight, OPT_DOUBLE) // weight for new 'samples's in laggy estimations -OPTION(mon_osd_laggy_max_interval, OPT_INT) // maximum value of laggy_interval in laggy estimations -OPTION(mon_osd_adjust_heartbeat_grace, OPT_BOOL) // true if we should scale based on laggy estimations -OPTION(mon_osd_adjust_down_out_interval, OPT_BOOL) // true if we should scale based on laggy estimations -OPTION(mon_osd_auto_mark_in, OPT_BOOL) // mark any booting osds 'in' -OPTION(mon_osd_auto_mark_auto_out_in, OPT_BOOL) // mark booting auto-marked-out osds 'in' -OPTION(mon_osd_auto_mark_new_in, OPT_BOOL) // mark booting new osds 'in' -OPTION(mon_osd_destroyed_out_interval, OPT_INT) // seconds -OPTION(mon_osd_down_out_interval, OPT_INT) // seconds -OPTION(mon_osd_min_up_ratio, OPT_DOUBLE) // min osds required to be up to mark things down -OPTION(mon_osd_min_in_ratio, OPT_DOUBLE) // min osds required to be in to mark things out -OPTION(mon_osd_warn_op_age, OPT_DOUBLE) // max op age before we generate a warning (make it a power of 2) -OPTION(mon_osd_err_op_age_ratio, OPT_DOUBLE) // when to generate an error, as multiple of mon_osd_warn_op_age -OPTION(mon_osd_prime_pg_temp, OPT_BOOL) // prime osdmap with pg mapping changes -OPTION(mon_osd_prime_pg_temp_max_time, OPT_FLOAT) // max time to spend priming -OPTION(mon_osd_prime_pg_temp_max_estimate, OPT_FLOAT) // max estimate of pg total before we do all pgs in parallel -OPTION(mon_election_timeout, OPT_FLOAT) // on election proposer, max waiting time for all ACKs -OPTION(mon_lease, OPT_FLOAT) // lease interval -OPTION(mon_lease_renew_interval_factor, OPT_FLOAT) // on leader, to renew the lease -OPTION(mon_lease_ack_timeout_factor, OPT_FLOAT) // on leader, if lease isn't acked by all peons -OPTION(mon_accept_timeout_factor, OPT_FLOAT) // on leader, if paxos update isn't accepted - -OPTION(mon_clock_drift_allowed, OPT_FLOAT) // allowed clock drift between monitors -OPTION(mon_clock_drift_warn_backoff, OPT_FLOAT) // exponential backoff for clock drift warnings -OPTION(mon_timecheck_interval, OPT_FLOAT) // on leader, timecheck (clock drift check) interval (seconds) -OPTION(mon_timecheck_skew_interval, OPT_FLOAT) // on leader, timecheck (clock drift check) interval when in presence of a skew (seconds) -OPTION(mon_pg_check_down_all_threshold, OPT_FLOAT) // threshold of down osds after which we check all pgs -OPTION(mon_cache_target_full_warn_ratio, OPT_FLOAT) // position between pool cache_target_full and max where we start warning -OPTION(mon_osd_full_ratio, OPT_FLOAT) // what % full makes an OSD "full" -OPTION(mon_osd_backfillfull_ratio, OPT_FLOAT) // what % full makes an OSD backfill full (backfill halted) -OPTION(mon_osd_nearfull_ratio, OPT_FLOAT) // what % full makes an OSD near full -OPTION(mon_osd_initial_require_min_compat_client, OPT_STR) -OPTION(mon_allow_pool_delete, OPT_BOOL) // allow pool deletion -OPTION(mon_fake_pool_delete, OPT_BOOL) // fake pool deletion (add _DELETED suffix) -OPTION(mon_globalid_prealloc, OPT_U32) // how many globalids to prealloc -OPTION(mon_osd_report_timeout, OPT_INT) // grace period before declaring unresponsive OSDs dead -OPTION(mon_warn_on_legacy_crush_tunables, OPT_BOOL) // warn if crush tunables are too old (older than mon_min_crush_required_version) -OPTION(mon_crush_min_required_version, OPT_STR) -OPTION(mon_warn_on_crush_straw_calc_version_zero, OPT_BOOL) // warn if crush straw_calc_version==0 -OPTION(mon_warn_on_osd_down_out_interval_zero, OPT_BOOL) // warn if 'mon_osd_down_out_interval == 0' -OPTION(mon_warn_on_cache_pools_without_hit_sets, OPT_BOOL) -OPTION(mon_warn_on_misplaced, OPT_BOOL) -OPTION(mon_min_osdmap_epochs, OPT_INT) -OPTION(mon_max_log_epochs, OPT_INT) -OPTION(mon_max_mdsmap_epochs, OPT_INT) -OPTION(mon_max_osd, OPT_INT) -OPTION(mon_probe_timeout, OPT_DOUBLE) -OPTION(mon_client_bytes, OPT_U64) // client msg data allowed in memory (in bytes) -OPTION(mon_log_max_summary, OPT_U64) -OPTION(mon_daemon_bytes, OPT_U64) // mds, osd message memory cap (in bytes) -OPTION(mon_max_log_entries_per_event, OPT_INT) -OPTION(mon_reweight_min_pgs_per_osd, OPT_U64) // min pgs per osd for reweight-by-pg command -OPTION(mon_reweight_min_bytes_per_osd, OPT_U64) // min bytes per osd for reweight-by-utilization command -OPTION(mon_reweight_max_osds, OPT_INT) // max osds to change per reweight-by-* command -OPTION(mon_reweight_max_change, OPT_DOUBLE) -OPTION(mon_health_to_clog, OPT_BOOL) -OPTION(mon_health_to_clog_interval, OPT_INT) -OPTION(mon_health_to_clog_tick_interval, OPT_DOUBLE) -OPTION(mon_health_detail_to_clog, OPT_BOOL) -OPTION(mon_data_avail_crit, OPT_INT) -OPTION(mon_data_avail_warn, OPT_INT) -OPTION(mon_data_size_warn, OPT_U64) // issue a warning when the monitor's data store goes over 15GB (in bytes) -OPTION(mon_warn_pg_not_scrubbed_ratio, OPT_FLOAT) -OPTION(mon_warn_pg_not_deep_scrubbed_ratio, OPT_FLOAT) -OPTION(mon_scrub_timeout, OPT_INT) // let's give it 5 minutes; why not. -OPTION(mon_scrub_max_keys, OPT_INT) // max number of keys to scrub each time -OPTION(mon_scrub_inject_crc_mismatch, OPT_DOUBLE) // probability of injected crc mismatch [0.0, 1.0] -OPTION(mon_scrub_inject_missing_keys, OPT_DOUBLE) // probability of injected missing keys [0.0, 1.0] -OPTION(mon_config_key_max_entry_size, OPT_INT) // max num bytes per config-key entry -OPTION(mon_sync_timeout, OPT_DOUBLE) -OPTION(mon_sync_max_payload_size, OPT_SIZE) -OPTION(mon_sync_max_payload_keys, OPT_INT) -OPTION(mon_sync_debug, OPT_BOOL) // enable sync-specific debug -OPTION(mon_inject_sync_get_chunk_delay, OPT_DOUBLE) // inject N second delay on each get_chunk request -OPTION(mon_osd_force_trim_to, OPT_INT) // force mon to trim maps to this point, regardless of min_last_epoch_clean (dangerous) -OPTION(mon_mds_force_trim_to, OPT_INT) // force mon to trim mdsmaps to this point (dangerous) -OPTION(mon_mds_skip_sanity, OPT_BOOL) // skip safety assertions on FSMap (in case of bugs where we want to continue anyway) -OPTION(mon_osd_snap_trim_queue_warn_on, OPT_INT) - -// monitor debug options -OPTION(mon_debug_deprecated_as_obsolete, OPT_BOOL) // consider deprecated commands as obsolete - -// dump transactions -OPTION(mon_debug_dump_transactions, OPT_BOOL) -OPTION(mon_debug_dump_json, OPT_BOOL) -OPTION(mon_debug_dump_location, OPT_STR) -OPTION(mon_debug_no_require_bluestore_for_ec_overwrites, OPT_BOOL) -OPTION(mon_debug_no_initial_persistent_features, OPT_BOOL) -OPTION(mon_inject_transaction_delay_max, OPT_DOUBLE) // seconds -OPTION(mon_inject_transaction_delay_probability, OPT_DOUBLE) // range [0, 1] - -OPTION(mon_sync_provider_kill_at, OPT_INT) // kill the sync provider at a specific point in the work flow -OPTION(mon_sync_requester_kill_at, OPT_INT) // kill the sync requester at a specific point in the work flow -OPTION(mon_force_quorum_join, OPT_BOOL) // force monitor to join quorum even if it has been previously removed from the map -OPTION(mon_keyvaluedb, OPT_STR) // type of keyvaluedb backend - -// UNSAFE -- TESTING ONLY! Allows addition of a cache tier with preexisting snaps -OPTION(mon_debug_unsafe_allow_tier_with_nonempty_snaps, OPT_BOOL) -OPTION(mon_osd_blocklist_default_expire, OPT_DOUBLE) // default one hour -OPTION(mon_osd_crush_smoke_test, OPT_BOOL) - -OPTION(paxos_stash_full_interval, OPT_INT) // how often (in commits) to stash a full copy of the PaxosService state -OPTION(paxos_max_join_drift, OPT_INT) // max paxos iterations before we must first sync the monitor stores -OPTION(paxos_propose_interval, OPT_DOUBLE) // gather updates for this long before proposing a map update -OPTION(paxos_min_wait, OPT_DOUBLE) // min time to gather updates for after period of inactivity -OPTION(paxos_min, OPT_INT) // minimum number of paxos states to keep around -OPTION(paxos_trim_min, OPT_INT) // number of extra proposals tolerated before trimming -OPTION(paxos_trim_max, OPT_INT) // max number of extra proposals to trim at a time -OPTION(paxos_service_trim_min, OPT_INT) // minimum amount of versions to trigger a trim (0 disables it) -OPTION(paxos_service_trim_max, OPT_INT) // maximum amount of versions to trim during a single proposal (0 disables it) -OPTION(paxos_kill_at, OPT_INT) -OPTION(auth_cluster_required, OPT_STR) // required of mon, mds, osd daemons -OPTION(auth_service_required, OPT_STR) // required by daemons of clients -OPTION(auth_client_required, OPT_STR) // what clients require of daemons -OPTION(auth_supported, OPT_STR) // deprecated; default value for above if they are not defined. -OPTION(max_rotating_auth_attempts, OPT_INT) -OPTION(cephx_require_signatures, OPT_BOOL) -OPTION(cephx_cluster_require_signatures, OPT_BOOL) -OPTION(cephx_service_require_signatures, OPT_BOOL) -OPTION(cephx_require_version, OPT_INT) -OPTION(cephx_cluster_require_version, OPT_INT) -OPTION(cephx_service_require_version, OPT_INT) -OPTION(cephx_sign_messages, OPT_BOOL) // Default to signing session messages if supported -OPTION(auth_mon_ticket_ttl, OPT_DOUBLE) -OPTION(auth_service_ticket_ttl, OPT_DOUBLE) -OPTION(auth_allow_insecure_global_id_reclaim, OPT_BOOL) -OPTION(auth_expose_insecure_global_id_reclaim, OPT_BOOL) -OPTION(auth_debug, OPT_BOOL) // if true, assert when weird things happen -OPTION(mon_client_hunt_parallel, OPT_U32) // how many mons to try to connect to in parallel during hunt -OPTION(mon_client_hunt_interval, OPT_DOUBLE) // try new mon every N seconds until we connect -OPTION(mon_client_log_interval, OPT_DOUBLE) // send logs every N seconds -OPTION(mon_client_ping_interval, OPT_DOUBLE) // ping every N seconds -OPTION(mon_client_ping_timeout, OPT_DOUBLE) // fail if we don't hear back -OPTION(mon_client_hunt_interval_backoff, OPT_DOUBLE) // each time we reconnect to a monitor, double our timeout -OPTION(mon_client_hunt_interval_max_multiple, OPT_DOUBLE) // up to a max of 10*default (30 seconds) -OPTION(mon_client_max_log_entries_per_message, OPT_INT) -OPTION(mon_client_directed_command_retry, OPT_INT) -OPTION(client_cache_size, OPT_INT) -OPTION(client_cache_mid, OPT_FLOAT) -OPTION(client_use_random_mds, OPT_BOOL) -OPTION(client_mount_timeout, OPT_DOUBLE) -OPTION(client_trace, OPT_STR) -OPTION(client_readahead_min, OPT_LONGLONG) // readahead at _least_ this much. -OPTION(client_readahead_max_bytes, OPT_LONGLONG) // default unlimited -OPTION(client_readahead_max_periods, OPT_LONGLONG) // as multiple of file layout period (object size * num stripes) -OPTION(client_snapdir, OPT_STR) -OPTION(client_mount_uid, OPT_INT) -OPTION(client_mount_gid, OPT_INT) -OPTION(client_notify_timeout, OPT_INT) // in seconds -OPTION(osd_client_watch_timeout, OPT_INT) // in seconds -OPTION(client_caps_release_delay, OPT_INT) // in seconds -OPTION(client_quota_df, OPT_BOOL) // use quota for df on subdir mounts -OPTION(client_oc, OPT_BOOL) -OPTION(client_oc_size, OPT_INT) // MB * n -OPTION(client_oc_max_dirty, OPT_INT) // MB * n (dirty OR tx.. bigish) -OPTION(client_oc_target_dirty, OPT_INT) // target dirty (keep this smallish) -OPTION(client_oc_max_dirty_age, OPT_DOUBLE) // max age in cache before writeback -OPTION(client_oc_max_objects, OPT_INT) // max objects in cache -OPTION(client_debug_getattr_caps, OPT_BOOL) // check if MDS reply contains wanted caps -OPTION(client_debug_force_sync_read, OPT_BOOL) // always read synchronously (go to osds) -OPTION(client_max_inline_size, OPT_U64) -OPTION(client_inject_release_failure, OPT_BOOL) // synthetic client bug for testing -OPTION(client_inject_fixed_oldest_tid, OPT_BOOL) // synthetic client bug for testing -OPTION(client_metadata, OPT_STR) -OPTION(client_acl_type, OPT_STR) -OPTION(client_permissions, OPT_BOOL) -OPTION(client_dirsize_rbytes, OPT_BOOL) - -OPTION(client_try_dentry_invalidate, OPT_BOOL) // the client should try to use dentry invaldation instead of remounting, on kernels it believes that will work for -OPTION(client_check_pool_perm, OPT_BOOL) -OPTION(client_use_faked_inos, OPT_BOOL) - -OPTION(crush_location, OPT_STR) // whitespace-separated list of key=value pairs describing crush location -OPTION(crush_location_hook, OPT_STR) -OPTION(crush_location_hook_timeout, OPT_INT) - -OPTION(objecter_tick_interval, OPT_DOUBLE) -OPTION(objecter_timeout, OPT_DOUBLE) // before we ask for a map -OPTION(objecter_inflight_op_bytes, OPT_U64) // max in-flight data (both directions) -OPTION(objecter_inflight_ops, OPT_U64) // max in-flight ios -OPTION(objecter_completion_locks_per_session, OPT_U64) // num of completion locks per each session, for serializing same object responses -OPTION(objecter_inject_no_watch_ping, OPT_BOOL) // suppress watch pings -OPTION(objecter_retry_writes_after_first_reply, OPT_BOOL) // ignore the first reply for each write, and resend the osd op instead -OPTION(objecter_debug_inject_relock_delay, OPT_BOOL) - -// Max number of deletes at once in a single Filer::purge call -OPTION(filer_max_purge_ops, OPT_U32) -// Max number of truncate at once in a single Filer::truncate call -OPTION(filer_max_truncate_ops, OPT_U32) - -OPTION(mds_data, OPT_STR) -// max xattr kv pairs size for each dir/file -OPTION(mds_max_xattr_pairs_size, OPT_U32) -OPTION(mds_max_file_recover, OPT_U32) -OPTION(mds_dir_max_commit_size, OPT_INT) // MB -OPTION(mds_dir_keys_per_op, OPT_INT) -OPTION(mds_decay_halflife, OPT_FLOAT) -OPTION(mds_beacon_interval, OPT_FLOAT) -OPTION(mds_beacon_grace, OPT_FLOAT) -OPTION(mds_enforce_unique_name, OPT_BOOL) - -OPTION(mds_session_blocklist_on_timeout, OPT_BOOL) // whether to blocklist clients whose sessions are dropped due to timeout -OPTION(mds_session_blocklist_on_evict, OPT_BOOL) // whether to blocklist clients whose sessions are dropped via admin commands - -OPTION(mds_sessionmap_keys_per_op, OPT_U32) // how many sessions should I try to load/store in a single OMAP operation? -OPTION(mds_freeze_tree_timeout, OPT_FLOAT) // detecting freeze tree deadlock -OPTION(mds_health_summarize_threshold, OPT_INT) // collapse N-client health metrics to a single 'many' -OPTION(mds_reconnect_timeout, OPT_FLOAT) // seconds to wait for clients during mds restart - // make it (mdsmap.session_timeout - mds_beacon_grace) -OPTION(mds_tick_interval, OPT_FLOAT) -OPTION(mds_dirstat_min_interval, OPT_FLOAT) // try to avoid propagating more often than this -OPTION(mds_scatter_nudge_interval, OPT_FLOAT) // how quickly dirstat changes propagate up the hierarchy -OPTION(mds_client_prealloc_inos, OPT_INT) -OPTION(mds_early_reply, OPT_BOOL) -OPTION(mds_default_dir_hash, OPT_INT) -OPTION(mds_log_pause, OPT_BOOL) -OPTION(mds_log_skip_corrupt_events, OPT_BOOL) -OPTION(mds_log_max_events, OPT_INT) -OPTION(mds_log_events_per_segment, OPT_INT) -OPTION(mds_log_segment_size, OPT_INT) // segment size for mds log, default to default file_layout_t -OPTION(mds_log_max_segments, OPT_U32) -OPTION(mds_bal_export_pin, OPT_BOOL) // allow clients to pin directory trees to ranks -OPTION(mds_bal_sample_interval, OPT_DOUBLE) // every 3 seconds -OPTION(mds_bal_replicate_threshold, OPT_FLOAT) -OPTION(mds_bal_unreplicate_threshold, OPT_FLOAT) -OPTION(mds_bal_split_size, OPT_INT) -OPTION(mds_bal_split_rd, OPT_FLOAT) -OPTION(mds_bal_split_wr, OPT_FLOAT) -OPTION(mds_bal_split_bits, OPT_INT) -OPTION(mds_bal_merge_size, OPT_INT) -OPTION(mds_bal_fragment_size_max, OPT_INT) // order of magnitude higher than split size -OPTION(mds_bal_fragment_fast_factor, OPT_FLOAT) // multiple of size_max that triggers immediate split -OPTION(mds_bal_idle_threshold, OPT_FLOAT) -OPTION(mds_bal_max, OPT_INT) -OPTION(mds_bal_max_until, OPT_INT) -OPTION(mds_bal_mode, OPT_INT) -OPTION(mds_bal_min_rebalance, OPT_FLOAT) // must be this much above average before we export anything -OPTION(mds_bal_min_start, OPT_FLOAT) // if we need less than this, we don't do anything -OPTION(mds_bal_need_min, OPT_FLOAT) // take within this range of what we need -OPTION(mds_bal_need_max, OPT_FLOAT) -OPTION(mds_bal_midchunk, OPT_FLOAT) // any sub bigger than this taken in full -OPTION(mds_bal_minchunk, OPT_FLOAT) // never take anything smaller than this -OPTION(mds_bal_target_decay, OPT_DOUBLE) // target decay half-life in MDSMap (2x larger is approx. 2x slower) -OPTION(mds_replay_interval, OPT_FLOAT) // time to wait before starting replay again -OPTION(mds_shutdown_check, OPT_INT) -OPTION(mds_thrash_exports, OPT_INT) -OPTION(mds_thrash_fragments, OPT_INT) -OPTION(mds_dump_cache_on_map, OPT_BOOL) -OPTION(mds_dump_cache_after_rejoin, OPT_BOOL) -OPTION(mds_verify_scatter, OPT_BOOL) -OPTION(mds_debug_scatterstat, OPT_BOOL) -OPTION(mds_debug_frag, OPT_BOOL) -OPTION(mds_debug_auth_pins, OPT_BOOL) -OPTION(mds_debug_subtrees, OPT_BOOL) -OPTION(mds_kill_mdstable_at, OPT_INT) -OPTION(mds_kill_export_at, OPT_INT) -OPTION(mds_kill_import_at, OPT_INT) -OPTION(mds_kill_link_at, OPT_INT) -OPTION(mds_kill_rename_at, OPT_INT) -OPTION(mds_kill_openc_at, OPT_INT) -OPTION(mds_kill_journal_expire_at, OPT_INT) -OPTION(mds_kill_journal_replay_at, OPT_INT) -OPTION(mds_journal_format, OPT_U32) // Default to most recent JOURNAL_FORMAT_* -OPTION(mds_kill_create_at, OPT_INT) -OPTION(mds_inject_traceless_reply_probability, OPT_DOUBLE) /* percentage - of MDS modify replies to skip sending the - client a trace on [0-1]*/ -OPTION(mds_wipe_sessions, OPT_BOOL) -OPTION(mds_wipe_ino_prealloc, OPT_BOOL) -OPTION(mds_skip_ino, OPT_INT) -OPTION(mds_enable_op_tracker, OPT_BOOL) // enable/disable MDS op tracking -OPTION(mds_op_history_size, OPT_U32) // Max number of completed ops to track -OPTION(mds_op_history_duration, OPT_U32) // Oldest completed op to track -OPTION(mds_op_complaint_time, OPT_FLOAT) // how many seconds old makes an op complaint-worthy -OPTION(mds_op_log_threshold, OPT_INT) // how many op log messages to show in one go -OPTION(mds_snap_min_uid, OPT_U32) // The minimum UID required to create a snapshot -OPTION(mds_snap_max_uid, OPT_U32) // The maximum UID allowed to create a snapshot -OPTION(mds_snap_rstat, OPT_BOOL) // enable/disable nested stat for snapshot -OPTION(mds_verify_backtrace, OPT_U32) -// detect clients which aren't trimming completed requests -OPTION(mds_max_completed_flushes, OPT_U32) -OPTION(mds_max_completed_requests, OPT_U32) - -OPTION(mds_action_on_write_error, OPT_U32) // 0: ignore; 1: force readonly; 2: crash -OPTION(mds_mon_shutdown_timeout, OPT_DOUBLE) - -// Maximum number of concurrent stray files to purge -OPTION(mds_max_purge_files, OPT_U32) -// Maximum number of concurrent RADOS ops to issue in purging -OPTION(mds_max_purge_ops, OPT_U32) -// Maximum number of concurrent RADOS ops to issue in purging, scaled by PG count -OPTION(mds_max_purge_ops_per_pg, OPT_FLOAT) - -OPTION(mds_purge_queue_busy_flush_period, OPT_FLOAT) - -OPTION(mds_root_ino_uid, OPT_INT) // The UID of / on new filesystems -OPTION(mds_root_ino_gid, OPT_INT) // The GID of / on new filesystems - -OPTION(mds_max_scrub_ops_in_progress, OPT_INT) // the number of simultaneous scrubs allowed - -// Maximum number of damaged frags/dentries before whole MDS rank goes damaged -OPTION(mds_damage_table_max_entries, OPT_INT) - -// Maximum increment for client writable range, counted by number of objects -OPTION(mds_client_writeable_range_max_inc_objs, OPT_U32) - -// verify backend can support configured max object name length -OPTION(osd_check_max_object_name_len_on_startup, OPT_BOOL) - -// Maximum number of backfills to or from a single osd -OPTION(osd_max_backfills, OPT_U64) - -// Minimum recovery priority (255 = max, smaller = lower) -OPTION(osd_min_recovery_priority, OPT_INT) - -// Seconds to wait before retrying refused backfills -OPTION(osd_backfill_retry_interval, OPT_DOUBLE) - -// Seconds to wait before retrying refused recovery -OPTION(osd_recovery_retry_interval, OPT_DOUBLE) - -// max agent flush ops -OPTION(osd_agent_max_ops, OPT_INT) -OPTION(osd_agent_max_low_ops, OPT_INT) -OPTION(osd_agent_min_evict_effort, OPT_FLOAT) -OPTION(osd_agent_quantize_effort, OPT_FLOAT) -OPTION(osd_agent_delay_time, OPT_FLOAT) - -// osd ignore history.last_epoch_started in find_best_info -OPTION(osd_find_best_info_ignore_history_les, OPT_BOOL) - -// decay atime and hist histograms after how many objects go by -OPTION(osd_agent_hist_halflife, OPT_INT) - -// must be this amount over the threshold to enable, -// this amount below the threshold to disable. -OPTION(osd_agent_slop, OPT_FLOAT) - -OPTION(osd_uuid, OPT_UUID) -OPTION(osd_data, OPT_STR) -OPTION(osd_journal, OPT_STR) -OPTION(osd_journal_size, OPT_INT) // in mb -OPTION(osd_journal_flush_on_shutdown, OPT_BOOL) // Flush journal to data store on shutdown -// flags for specific control purpose during osd mount() process. -// e.g., can be 1 to skip over replaying journal -// or 2 to skip over mounting omap or 3 to skip over both. -// This might be helpful in case the journal is totally corrupted -// and we still want to bring the osd daemon back normally, etc. -OPTION(osd_os_flags, OPT_U32) -OPTION(osd_max_write_size, OPT_INT) -OPTION(osd_max_pgls, OPT_U64) // max number of pgls entries to return -OPTION(osd_client_message_size_cap, OPT_U64) // client data allowed in-memory (in bytes) -OPTION(osd_client_message_cap, OPT_U64) // num client messages allowed in-memory -OPTION(osd_crush_update_weight_set, OPT_BOOL) // update weight set while updating weights -OPTION(osd_crush_chooseleaf_type, OPT_INT) // 1 = host -OPTION(osd_pool_use_gmt_hitset, OPT_BOOL) // try to use gmt for hitset archive names if all osds in cluster support it. -OPTION(osd_crush_update_on_start, OPT_BOOL) -OPTION(osd_class_update_on_start, OPT_BOOL) // automatically set device class on start -OPTION(osd_crush_initial_weight, OPT_DOUBLE) // if >=0, the initial weight is for newly added osds. -OPTION(osd_erasure_code_plugins, OPT_STR) // list of erasure code plugins - -// Allows the "peered" state for recovery and backfill below min_size -OPTION(osd_allow_recovery_below_min_size, OPT_BOOL) - -OPTION(osd_pool_default_ec_fast_read, OPT_BOOL) // whether turn on fast read on the pool or not -OPTION(osd_pool_default_flags, OPT_INT) // default flags for new pools -OPTION(osd_pool_default_flag_hashpspool, OPT_BOOL) // use new pg hashing to prevent pool/pg overlap -OPTION(osd_pool_default_flag_nodelete, OPT_BOOL) // pool can't be deleted -OPTION(osd_pool_default_flag_nopgchange, OPT_BOOL) // pool's pg and pgp num can't be changed -OPTION(osd_pool_default_flag_nosizechange, OPT_BOOL) // pool's size and min size can't be changed -OPTION(osd_pool_default_hit_set_bloom_fpp, OPT_FLOAT) -OPTION(osd_pool_default_cache_target_dirty_ratio, OPT_FLOAT) -OPTION(osd_pool_default_cache_target_dirty_high_ratio, OPT_FLOAT) -OPTION(osd_pool_default_cache_target_full_ratio, OPT_FLOAT) -OPTION(osd_pool_default_cache_min_flush_age, OPT_INT) // seconds -OPTION(osd_pool_default_cache_min_evict_age, OPT_INT) // seconds -OPTION(osd_pool_default_cache_max_evict_check_size, OPT_INT) // max size to check for eviction -OPTION(osd_pool_default_read_lease_ratio, OPT_FLOAT) -OPTION(osd_hit_set_min_size, OPT_INT) // min target size for a HitSet -OPTION(osd_hit_set_max_size, OPT_INT) // max target size for a HitSet -OPTION(osd_hit_set_namespace, OPT_STR) // rados namespace for hit_set tracking - -// conservative default throttling values -OPTION(osd_tier_promote_max_objects_sec, OPT_U64) -OPTION(osd_tier_promote_max_bytes_sec, OPT_U64) - -OPTION(osd_objecter_finishers, OPT_INT) - -OPTION(osd_map_dedup, OPT_BOOL) -OPTION(osd_map_cache_size, OPT_INT) -OPTION(osd_map_message_max, OPT_INT) // max maps per MOSDMap message -OPTION(osd_map_message_max_bytes, OPT_SIZE) // max bytes of maps per MOSDMap message -OPTION(osd_map_share_max_epochs, OPT_INT) // cap on # of inc maps we send to peers, clients -OPTION(osd_inject_bad_map_crc_probability, OPT_FLOAT) -OPTION(osd_inject_failure_on_pg_removal, OPT_BOOL) -// shutdown the OSD if stuatus flipping more than max_markdown_count times in recent max_markdown_period seconds -OPTION(osd_max_markdown_period , OPT_INT) -OPTION(osd_max_markdown_count, OPT_INT) - -OPTION(osd_op_pq_max_tokens_per_priority, OPT_U64) -OPTION(osd_op_pq_min_cost, OPT_U64) -OPTION(osd_recover_clone_overlap, OPT_BOOL) // preserve clone_overlap during recovery/migration -OPTION(osd_op_num_threads_per_shard, OPT_INT) -OPTION(osd_op_num_threads_per_shard_hdd, OPT_INT) -OPTION(osd_op_num_threads_per_shard_ssd, OPT_INT) -OPTION(osd_op_num_shards, OPT_INT) -OPTION(osd_op_num_shards_hdd, OPT_INT) -OPTION(osd_op_num_shards_ssd, OPT_INT) - -// PrioritzedQueue (prio), Weighted Priority Queue (wpq ; default), -// mclock_opclass, mclock_client, or debug_random. "mclock_opclass" -// and "mclock_client" are based on the mClock/dmClock algorithm -// (Gulati, et al. 2010). "mclock_opclass" prioritizes based on the -// class the operation belongs to. "mclock_client" does the same but -// also works to ienforce fairness between clients. "debug_random" -// chooses among all four with equal probability. -OPTION(osd_op_queue, OPT_STR) - -OPTION(osd_op_queue_cut_off, OPT_STR) // Min priority to go to strict queue. (low, high) - -OPTION(osd_ignore_stale_divergent_priors, OPT_BOOL) // do not assert on divergent_prior entries which aren't in the log and whose on-disk objects are newer - -// Set to true for testing. Users should NOT set this. -// If set to true even after reading enough shards to -// decode the object, any error will be reported. -OPTION(osd_read_ec_check_for_errors, OPT_BOOL) // return error if any ec shard has an error - -OPTION(osd_debug_feed_pullee, OPT_INT) - -OPTION(osd_backfill_scan_min, OPT_INT) -OPTION(osd_backfill_scan_max, OPT_INT) -OPTION(osd_op_thread_timeout, OPT_INT) -OPTION(osd_op_thread_suicide_timeout, OPT_INT) -OPTION(osd_recovery_sleep, OPT_FLOAT) // seconds to sleep between recovery ops -OPTION(osd_recovery_sleep_hdd, OPT_FLOAT) -OPTION(osd_recovery_sleep_ssd, OPT_FLOAT) -OPTION(osd_snap_trim_sleep, OPT_DOUBLE) -OPTION(osd_scrub_invalid_stats, OPT_BOOL) -OPTION(osd_command_thread_timeout, OPT_INT) -OPTION(osd_command_thread_suicide_timeout, OPT_INT) -OPTION(osd_heartbeat_interval, OPT_INT) // (seconds) how often we ping peers - -// (seconds) how long before we decide a peer has failed -// This setting is read by the MONs and OSDs and has to be set to a equal value in both settings of the configuration -OPTION(osd_heartbeat_grace, OPT_INT) -OPTION(osd_heartbeat_min_peers, OPT_INT) // minimum number of peers -OPTION(osd_heartbeat_use_min_delay_socket, OPT_BOOL) // prio the heartbeat tcp socket and set dscp as CS6 on it if true -OPTION(osd_heartbeat_min_size, OPT_INT) // the minimum size of OSD heartbeat messages to send - -// max number of parallel snap trims/pg -OPTION(osd_pg_max_concurrent_snap_trims, OPT_U64) -// max number of trimming pgs -OPTION(osd_max_trimming_pgs, OPT_U64) - -// minimum number of peers that must be reachable to mark ourselves -// back up after being wrongly marked down. -OPTION(osd_heartbeat_min_healthy_ratio, OPT_FLOAT) - -OPTION(osd_mon_heartbeat_interval, OPT_INT) // (seconds) how often to ping monitor if no peers -OPTION(osd_mon_report_interval, OPT_INT) // failures, up_thru, boot. -OPTION(osd_mon_report_max_in_flight, OPT_INT) // max updates in flight -OPTION(osd_beacon_report_interval, OPT_INT) // (second) how often to send beacon message to monitor -OPTION(osd_pg_stat_report_interval_max, OPT_INT) // report pg stats for any given pg at least this often -OPTION(osd_default_data_pool_replay_window, OPT_INT) -OPTION(osd_auto_mark_unfound_lost, OPT_BOOL) -OPTION(osd_recovery_delay_start, OPT_FLOAT) -OPTION(osd_recovery_max_active, OPT_U64) -OPTION(osd_recovery_max_active_hdd, OPT_U64) -OPTION(osd_recovery_max_active_ssd, OPT_U64) -OPTION(osd_recovery_max_single_start, OPT_U64) -OPTION(osd_recovery_max_chunk, OPT_U64) // max size of push chunk -OPTION(osd_recovery_max_omap_entries_per_chunk, OPT_U64) // max number of omap entries per chunk; 0 to disable limit -OPTION(osd_copyfrom_max_chunk, OPT_U64) // max size of a COPYFROM chunk -OPTION(osd_push_per_object_cost, OPT_U64) // push cost per object -OPTION(osd_max_push_cost, OPT_U64) // max size of push message -OPTION(osd_max_push_objects, OPT_U64) // max objects in single push op -OPTION(osd_max_scrubs, OPT_INT) -OPTION(osd_scrub_during_recovery, OPT_BOOL) // Allow new scrubs to start while recovery is active on the OSD -OPTION(osd_repair_during_recovery, OPT_BOOL) // Allow new requested repairs to start while recovery is active on the OSD -OPTION(osd_scrub_begin_hour, OPT_INT) -OPTION(osd_scrub_end_hour, OPT_INT) -OPTION(osd_scrub_begin_week_day, OPT_INT) -OPTION(osd_scrub_end_week_day, OPT_INT) -OPTION(osd_scrub_load_threshold, OPT_FLOAT) -OPTION(osd_scrub_min_interval, OPT_FLOAT) // if load is low -OPTION(osd_scrub_max_interval, OPT_FLOAT) // regardless of load -OPTION(osd_scrub_interval_randomize_ratio, OPT_FLOAT) // randomize the scheduled scrub in the span of [min,min*(1+randomize_ratio)) -OPTION(osd_scrub_backoff_ratio, OPT_DOUBLE) // the probability to back off the scheduled scrub -OPTION(osd_scrub_chunk_min, OPT_INT) -OPTION(osd_scrub_chunk_max, OPT_INT) -OPTION(osd_scrub_sleep, OPT_FLOAT) // sleep between [deep]scrub ops -OPTION(osd_scrub_extended_sleep, OPT_FLOAT) // more sleep between [deep]scrub ops -OPTION(osd_scrub_auto_repair, OPT_BOOL) // whether auto-repair inconsistencies upon deep-scrubbing -OPTION(osd_scrub_auto_repair_num_errors, OPT_U32) // only auto-repair when number of errors is below this threshold -OPTION(osd_deep_scrub_interval, OPT_FLOAT) // once a week -OPTION(osd_deep_scrub_randomize_ratio, OPT_FLOAT) // scrubs will randomly become deep scrubs at this rate (0.15 -> 15% of scrubs are deep) -OPTION(osd_deep_scrub_stride, OPT_INT) -OPTION(osd_deep_scrub_keys, OPT_INT) -OPTION(osd_deep_scrub_update_digest_min_age, OPT_INT) // objects must be this old (seconds) before we update the whole-object digest on scrub -OPTION(osd_skip_data_digest, OPT_BOOL) -OPTION(osd_deep_scrub_large_omap_object_key_threshold, OPT_U64) -OPTION(osd_deep_scrub_large_omap_object_value_sum_threshold, OPT_U64) -OPTION(osd_class_dir, OPT_STR) // where rados plugins are stored -OPTION(osd_open_classes_on_start, OPT_BOOL) -OPTION(osd_class_load_list, OPT_STR) // list of object classes allowed to be loaded (allow all: *) -OPTION(osd_class_default_list, OPT_STR) // list of object classes with default execute perm (allow all: *) -OPTION(osd_check_for_log_corruption, OPT_BOOL) -OPTION(osd_use_stale_snap, OPT_BOOL) -OPTION(osd_rollback_to_cluster_snap, OPT_STR) -OPTION(osd_default_notify_timeout, OPT_U32) // default notify timeout in seconds -OPTION(osd_kill_backfill_at, OPT_INT) - -// Bounds how infrequently a new map epoch will be persisted for a pg -OPTION(osd_pg_epoch_persisted_max_stale, OPT_U32) // make this < map_cache_size! - -OPTION(osd_target_pg_log_entries_per_osd, OPT_U32) -OPTION(osd_min_pg_log_entries, OPT_U32) // number of entries to keep in the pg log when trimming it -OPTION(osd_max_pg_log_entries, OPT_U32) // max entries, say when degraded, before we trim -OPTION(osd_pg_log_dups_tracked, OPT_U32) // how many versions back to track combined in both pglog's regular + dup logs -OPTION(osd_object_clean_region_max_num_intervals, OPT_INT) // number of intervals in clean_offsets -OPTION(osd_force_recovery_pg_log_entries_factor, OPT_FLOAT) // max entries factor before force recovery -OPTION(osd_pg_log_trim_min, OPT_U32) -OPTION(osd_pg_log_trim_max, OPT_U32) -OPTION(osd_op_complaint_time, OPT_FLOAT) // how many seconds old makes an op complaint-worthy -OPTION(osd_command_max_records, OPT_INT) -OPTION(osd_max_pg_blocked_by, OPT_U32) // max peer osds to report that are blocking our progress -OPTION(osd_op_log_threshold, OPT_INT) // how many op log messages to show in one go -OPTION(osd_backoff_on_unfound, OPT_BOOL) // object unfound -OPTION(osd_backoff_on_degraded, OPT_BOOL) // [mainly for debug?] object unreadable/writeable -OPTION(osd_backoff_on_peering, OPT_BOOL) // [debug] pg peering -OPTION(osd_debug_crash_on_ignored_backoff, OPT_BOOL) // crash osd if client ignores a backoff; useful for debugging -OPTION(osd_debug_inject_dispatch_delay_probability, OPT_DOUBLE) -OPTION(osd_debug_inject_dispatch_delay_duration, OPT_DOUBLE) -OPTION(osd_debug_drop_ping_probability, OPT_DOUBLE) -OPTION(osd_debug_drop_ping_duration, OPT_INT) -OPTION(osd_debug_op_order, OPT_BOOL) -OPTION(osd_debug_verify_missing_on_start, OPT_BOOL) -OPTION(osd_debug_verify_snaps, OPT_BOOL) -OPTION(osd_debug_verify_stray_on_activate, OPT_BOOL) -OPTION(osd_debug_skip_full_check_in_backfill_reservation, OPT_BOOL) -OPTION(osd_debug_reject_backfill_probability, OPT_DOUBLE) -OPTION(osd_debug_inject_copyfrom_error, OPT_BOOL) // inject failure during copyfrom completion -OPTION(osd_debug_misdirected_ops, OPT_BOOL) -OPTION(osd_debug_skip_full_check_in_recovery, OPT_BOOL) -OPTION(osd_debug_random_push_read_error, OPT_DOUBLE) -OPTION(osd_debug_verify_cached_snaps, OPT_BOOL) -OPTION(osd_debug_deep_scrub_sleep, OPT_FLOAT) -OPTION(osd_debug_no_acting_change, OPT_BOOL) -OPTION(osd_debug_pretend_recovery_active, OPT_BOOL) -OPTION(osd_enable_op_tracker, OPT_BOOL) // enable/disable OSD op tracking -OPTION(osd_num_op_tracker_shard, OPT_U32) // The number of shards for holding the ops -OPTION(osd_op_history_size, OPT_U32) // Max number of completed ops to track -OPTION(osd_op_history_duration, OPT_U32) // Oldest completed op to track -OPTION(osd_op_history_slow_op_size, OPT_U32) // Max number of slow ops to track -OPTION(osd_op_history_slow_op_threshold, OPT_DOUBLE) // track the op if over this threshold -OPTION(osd_target_transaction_size, OPT_INT) // to adjust various transactions that batch smaller items -OPTION(osd_failsafe_full_ratio, OPT_FLOAT) // what % full makes an OSD "full" (failsafe) -OPTION(osd_fast_shutdown, OPT_BOOL) -OPTION(osd_fast_shutdown_notify_mon, OPT_BOOL) // tell mon the OSD is shutting down on osd_fast_shutdown -OPTION(osd_fast_fail_on_connection_refused, OPT_BOOL) // immediately mark OSDs as down once they refuse to accept connections - -OPTION(osd_pg_object_context_cache_count, OPT_INT) -OPTION(osd_tracing, OPT_BOOL) // true if LTTng-UST tracepoints should be enabled -OPTION(osd_function_tracing, OPT_BOOL) // true if function instrumentation should use LTTng - -OPTION(osd_fast_info, OPT_BOOL) // use fast info attr, if we can - -// determines whether PGLog::check() compares written out log to stored log -OPTION(osd_debug_pg_log_writeout, OPT_BOOL) -OPTION(osd_loop_before_reset_tphandle, OPT_U32) // Max number of loop before we reset thread-pool's handle -OPTION(osd_max_snap_prune_intervals_per_epoch, OPT_U64) // Max number of snap intervals to report to mgr in pg_stat_t - -// default timeout while caling WaitInterval on an empty queue -OPTION(threadpool_default_timeout, OPT_INT) -// default wait time for an empty queue before pinging the hb timeout -OPTION(threadpool_empty_queue_max_wait, OPT_INT) - -OPTION(leveldb_log_to_ceph_log, OPT_BOOL) -OPTION(leveldb_write_buffer_size, OPT_U64) // leveldb write buffer size -OPTION(leveldb_cache_size, OPT_U64) // leveldb cache size -OPTION(leveldb_block_size, OPT_U64) // leveldb block size -OPTION(leveldb_bloom_size, OPT_INT) // leveldb bloom bits per entry -OPTION(leveldb_max_open_files, OPT_INT) // leveldb max open files -OPTION(leveldb_compression, OPT_BOOL) // leveldb uses compression -OPTION(leveldb_paranoid, OPT_BOOL) // leveldb paranoid flag -OPTION(leveldb_log, OPT_STR) // enable leveldb log file -OPTION(leveldb_compact_on_mount, OPT_BOOL) - -OPTION(rocksdb_log_to_ceph_log, OPT_BOOL) // log to ceph log -OPTION(rocksdb_cache_size, OPT_U64) // rocksdb cache size (unless set by bluestore/etc) -OPTION(rocksdb_cache_row_ratio, OPT_FLOAT) // ratio of cache for row (vs block) -OPTION(rocksdb_cache_shard_bits, OPT_INT) // rocksdb block cache shard bits, 4 bit -> 16 shards -OPTION(rocksdb_cache_type, OPT_STR) // 'lru' or 'clock' -OPTION(rocksdb_block_size, OPT_INT) // default rocksdb block size -OPTION(rocksdb_perf, OPT_BOOL) // Enabling this will have 5-10% impact on performance for the stats collection -OPTION(rocksdb_collect_compaction_stats, OPT_BOOL) //For rocksdb, this behavior will be an overhead of 5%~10%, collected only rocksdb_perf is enabled. -OPTION(rocksdb_collect_extended_stats, OPT_BOOL) //For rocksdb, this behavior will be an overhead of 5%~10%, collected only rocksdb_perf is enabled. -OPTION(rocksdb_collect_memory_stats, OPT_BOOL) //For rocksdb, this behavior will be an overhead of 5%~10%, collected only rocksdb_perf is enabled. - -// rocksdb options that will be used for omap(if omap_backend is rocksdb) -OPTION(filestore_rocksdb_options, OPT_STR) -// rocksdb options that will be used in monstore -OPTION(mon_rocksdb_options, OPT_STR) - -/** - * osd_*_priority adjust the relative priority of client io, recovery io, - * snaptrim io, etc - * - * osd_*_priority determines the ratio of available io between client and - * recovery. Each option may be set between - * 1..63. - */ -OPTION(osd_client_op_priority, OPT_U32) -OPTION(osd_recovery_op_priority, OPT_U32) -OPTION(osd_peering_op_priority, OPT_U32) - -OPTION(osd_snap_trim_priority, OPT_U32) -OPTION(osd_snap_trim_cost, OPT_U32) // set default cost equal to 1MB io - -OPTION(osd_scrub_priority, OPT_U32) -// set default cost equal to 50MB io -OPTION(osd_scrub_cost, OPT_U32) -// set requested scrub priority higher than scrub priority to make the -// requested scrubs jump the queue of scheduled scrubs -OPTION(osd_requested_scrub_priority, OPT_U32) - -OPTION(osd_pg_delete_priority, OPT_U32) -OPTION(osd_pg_delete_cost, OPT_U32) // set default cost equal to 1MB io - -OPTION(osd_recovery_priority, OPT_U32) -// set default cost equal to 20MB io -OPTION(osd_recovery_cost, OPT_U32) - -/** - * osd_recovery_op_warn_multiple scales the normal warning threshold, - * osd_op_complaint_time, so that slow recovery ops won't cause noise - */ -OPTION(osd_recovery_op_warn_multiple, OPT_U32) - -// Max time to wait between notifying mon of shutdown and shutting down -OPTION(osd_mon_shutdown_timeout, OPT_DOUBLE) -OPTION(osd_shutdown_pgref_assert, OPT_BOOL) // crash if the OSD has stray PG refs on shutdown - -OPTION(osd_max_object_size, OPT_U64) // OSD's maximum object size -OPTION(osd_max_object_name_len, OPT_U32) // max rados object name len -OPTION(osd_max_object_namespace_len, OPT_U32) // max rados object namespace len -OPTION(osd_max_attr_name_len, OPT_U32) // max rados attr name len; cannot go higher than 100 chars for file system backends -OPTION(osd_max_attr_size, OPT_U64) - -OPTION(osd_max_omap_entries_per_request, OPT_U64) -OPTION(osd_max_omap_bytes_per_request, OPT_U64) -OPTION(osd_max_write_op_reply_len, OPT_U64) - -OPTION(osd_objectstore, OPT_STR) // ObjectStore backend type -OPTION(osd_objectstore_tracing, OPT_BOOL) // true if LTTng-UST tracepoints should be enabled -OPTION(osd_objectstore_fuse, OPT_BOOL) - -OPTION(osd_bench_small_size_max_iops, OPT_U32) // 100 IOPS -OPTION(osd_bench_large_size_max_throughput, OPT_U64) // 100 MB/s -OPTION(osd_bench_max_block_size, OPT_U64) // cap the block size at 64MB -OPTION(osd_bench_duration, OPT_U32) // duration of 'osd bench', capped at 30s to avoid triggering timeouts - -OPTION(osd_blkin_trace_all, OPT_BOOL) // create a blkin trace for all osd requests -OPTION(osdc_blkin_trace_all, OPT_BOOL) // create a blkin trace for all objecter requests - -OPTION(osd_discard_disconnected_ops, OPT_BOOL) - -OPTION(memstore_device_bytes, OPT_U64) -OPTION(memstore_page_set, OPT_BOOL) -OPTION(memstore_page_size, OPT_U64) -OPTION(memstore_debug_omit_block_device_write, OPT_BOOL) - -OPTION(bdev_debug_inflight_ios, OPT_BOOL) -OPTION(bdev_inject_crash, OPT_INT) // if N>0, then ~ 1/N IOs will complete before we crash on flush. -OPTION(bdev_inject_crash_flush_delay, OPT_INT) // wait N more seconds on flush -OPTION(bdev_aio, OPT_BOOL) -OPTION(bdev_aio_poll_ms, OPT_INT) // milliseconds -OPTION(bdev_aio_max_queue_depth, OPT_INT) -OPTION(bdev_aio_reap_max, OPT_INT) -OPTION(bdev_block_size, OPT_INT) -OPTION(bdev_debug_aio, OPT_BOOL) -OPTION(bdev_debug_aio_suicide_timeout, OPT_FLOAT) -OPTION(bdev_debug_aio_log_age, OPT_DOUBLE) - -// if yes, osd will unbind all NVMe devices from kernel driver and bind them -// to the uio_pci_generic driver. The purpose is to prevent the case where -// NVMe driver is loaded while osd is running. -OPTION(bdev_nvme_unbind_from_kernel, OPT_BOOL) -OPTION(bdev_enable_discard, OPT_BOOL) -OPTION(bdev_async_discard, OPT_BOOL) - -OPTION(objectstore_blackhole, OPT_BOOL) - -OPTION(bluefs_alloc_size, OPT_U64) -OPTION(bluefs_shared_alloc_size, OPT_U64) -OPTION(bluefs_max_prefetch, OPT_U64) -OPTION(bluefs_min_log_runway, OPT_U64) // alloc when we get this low -OPTION(bluefs_max_log_runway, OPT_U64) // alloc this much at a time -OPTION(bluefs_log_compact_min_ratio, OPT_FLOAT) // before we consider -OPTION(bluefs_log_compact_min_size, OPT_U64) // before we consider -OPTION(bluefs_min_flush_size, OPT_U64) // ignore flush until its this big -OPTION(bluefs_compact_log_sync, OPT_BOOL) // sync or async log compaction? -OPTION(bluefs_buffered_io, OPT_BOOL) -OPTION(bluefs_sync_write, OPT_BOOL) -OPTION(bluefs_allocator, OPT_STR) // stupid | bitmap -OPTION(bluefs_log_replay_check_allocations, OPT_BOOL) -OPTION(bluefs_replay_recovery, OPT_BOOL) -OPTION(bluefs_replay_recovery_disable_compact, OPT_BOOL) -OPTION(bluefs_check_for_zeros, OPT_BOOL) - -OPTION(bluestore_bluefs, OPT_BOOL) -OPTION(bluestore_bluefs_env_mirror, OPT_BOOL) // mirror to normal Env for debug -// how often (sec) to dump allocator on allocation failure -OPTION(bluestore_bluefs_alloc_failure_dump_interval, OPT_FLOAT) - -// If you want to use spdk driver, you need to specify NVMe serial number here -// with "spdk:" prefix. -// Users can use 'lspci -vvv -d 8086:0953 | grep "Device Serial Number"' to -// get the serial number of Intel(R) Fultondale NVMe controllers. -// Example: -// bluestore_block_path = spdk:55cd2e404bd73932 -OPTION(bluestore_block_path, OPT_STR) -OPTION(bluestore_block_size, OPT_U64) // 10gb for testing -OPTION(bluestore_block_create, OPT_BOOL) -OPTION(bluestore_block_db_path, OPT_STR) -OPTION(bluestore_block_db_size, OPT_U64) // rocksdb ssts (hot/warm) -OPTION(bluestore_block_db_create, OPT_BOOL) -OPTION(bluestore_block_wal_path, OPT_STR) -OPTION(bluestore_block_wal_size, OPT_U64) // rocksdb wal -OPTION(bluestore_block_wal_create, OPT_BOOL) -OPTION(bluestore_block_preallocate_file, OPT_BOOL) //whether preallocate space if block/db_path/wal_path is file rather that block device. -OPTION(bluestore_ignore_data_csum, OPT_BOOL) -OPTION(bluestore_csum_type, OPT_STR) // none|xxhash32|xxhash64|crc32c|crc32c_16|crc32c_8 -OPTION(bluestore_retry_disk_reads, OPT_U64) -OPTION(bluestore_min_alloc_size, OPT_U32) -OPTION(bluestore_min_alloc_size_hdd, OPT_U32) -OPTION(bluestore_min_alloc_size_ssd, OPT_U32) -OPTION(bluestore_max_alloc_size, OPT_U32) -OPTION(bluestore_prefer_deferred_size, OPT_U32) -OPTION(bluestore_prefer_deferred_size_hdd, OPT_U32) -OPTION(bluestore_prefer_deferred_size_ssd, OPT_U32) -OPTION(bluestore_compression_mode, OPT_STR) // force|aggressive|passive|none -OPTION(bluestore_compression_algorithm, OPT_STR) -OPTION(bluestore_compression_min_blob_size, OPT_U32) -OPTION(bluestore_compression_min_blob_size_hdd, OPT_U32) -OPTION(bluestore_compression_min_blob_size_ssd, OPT_U32) -OPTION(bluestore_compression_max_blob_size, OPT_U32) -OPTION(bluestore_compression_max_blob_size_hdd, OPT_U32) -OPTION(bluestore_compression_max_blob_size_ssd, OPT_U32) -/* - * Specifies minimum expected amount of saved allocation units - * per single blob to enable compressed blobs garbage collection - * - */ -OPTION(bluestore_gc_enable_blob_threshold, OPT_INT) -/* - * Specifies minimum expected amount of saved allocation units - * per all blobsb to enable compressed blobs garbage collection - * - */ -OPTION(bluestore_gc_enable_total_threshold, OPT_INT) - -OPTION(bluestore_max_blob_size, OPT_U32) -OPTION(bluestore_max_blob_size_hdd, OPT_U32) -OPTION(bluestore_max_blob_size_ssd, OPT_U32) -/* - * Require the net gain of compression at least to be at this ratio, - * otherwise we don't compress. - * And ask for compressing at least 12.5%(1/8) off, by default. - */ -OPTION(bluestore_compression_required_ratio, OPT_DOUBLE) -OPTION(bluestore_extent_map_shard_max_size, OPT_U32) -OPTION(bluestore_extent_map_shard_target_size, OPT_U32) -OPTION(bluestore_extent_map_shard_min_size, OPT_U32) -OPTION(bluestore_extent_map_shard_target_size_slop, OPT_DOUBLE) -OPTION(bluestore_extent_map_inline_shard_prealloc_size, OPT_U32) -OPTION(bluestore_cache_trim_interval, OPT_DOUBLE) -OPTION(bluestore_cache_trim_max_skip_pinned, OPT_U32) // skip this many onodes pinned in cache before we give up -OPTION(bluestore_cache_type, OPT_STR) // lru, 2q -OPTION(bluestore_2q_cache_kin_ratio, OPT_DOUBLE) // kin page slot size / max page slot size -OPTION(bluestore_2q_cache_kout_ratio, OPT_DOUBLE) // number of kout page slot / total number of page slot -OPTION(bluestore_cache_size, OPT_U64) -OPTION(bluestore_cache_size_hdd, OPT_U64) -OPTION(bluestore_cache_size_ssd, OPT_U64) -OPTION(bluestore_cache_meta_ratio, OPT_DOUBLE) -OPTION(bluestore_cache_kv_ratio, OPT_DOUBLE) -OPTION(bluestore_alloc_stats_dump_interval, OPT_DOUBLE) -OPTION(bluestore_kvbackend, OPT_STR) -OPTION(bluestore_allocator, OPT_STR) // stupid | bitmap -OPTION(bluestore_freelist_blocks_per_key, OPT_INT) -OPTION(bluestore_bitmapallocator_blocks_per_zone, OPT_INT) // must be power of 2 aligned, e.g., 512, 1024, 2048... -OPTION(bluestore_bitmapallocator_span_size, OPT_INT) // must be power of 2 aligned, e.g., 512, 1024, 2048... -OPTION(bluestore_max_deferred_txc, OPT_U64) -OPTION(bluestore_max_defer_interval, OPT_U64) -OPTION(bluestore_rocksdb_options, OPT_STR) -OPTION(bluestore_rocksdb_options_annex, OPT_STR) -OPTION(bluestore_fsck_on_mount, OPT_BOOL) -OPTION(bluestore_fsck_on_mount_deep, OPT_BOOL) -OPTION(bluestore_fsck_quick_fix_on_mount, OPT_BOOL) -OPTION(bluestore_fsck_on_umount, OPT_BOOL) -OPTION(bluestore_fsck_on_umount_deep, OPT_BOOL) -OPTION(bluestore_fsck_on_mkfs, OPT_BOOL) -OPTION(bluestore_fsck_on_mkfs_deep, OPT_BOOL) -OPTION(bluestore_sync_submit_transaction, OPT_BOOL) // submit kv txn in queueing thread (not kv_sync_thread) -OPTION(bluestore_fsck_read_bytes_cap, OPT_U64) -OPTION(bluestore_fsck_quick_fix_threads, OPT_INT) -OPTION(bluestore_throttle_bytes, OPT_U64) -OPTION(bluestore_throttle_deferred_bytes, OPT_U64) -OPTION(bluestore_throttle_cost_per_io_hdd, OPT_U64) -OPTION(bluestore_throttle_cost_per_io_ssd, OPT_U64) -OPTION(bluestore_throttle_cost_per_io, OPT_U64) -OPTION(bluestore_deferred_batch_ops, OPT_U64) -OPTION(bluestore_deferred_batch_ops_hdd, OPT_U64) -OPTION(bluestore_deferred_batch_ops_ssd, OPT_U64) -OPTION(bluestore_nid_prealloc, OPT_INT) -OPTION(bluestore_blobid_prealloc, OPT_U64) -OPTION(bluestore_clone_cow, OPT_BOOL) // do copy-on-write for clones -OPTION(bluestore_default_buffered_read, OPT_BOOL) -OPTION(bluestore_default_buffered_write, OPT_BOOL) -OPTION(bluestore_debug_no_reuse_blocks, OPT_BOOL) -OPTION(bluestore_debug_small_allocations, OPT_INT) -OPTION(bluestore_debug_too_many_blobs_threshold, OPT_INT) -OPTION(bluestore_debug_freelist, OPT_BOOL) -OPTION(bluestore_debug_prefill, OPT_FLOAT) -OPTION(bluestore_debug_prefragment_max, OPT_INT) -OPTION(bluestore_debug_inject_read_err, OPT_BOOL) -OPTION(bluestore_debug_randomize_serial_transaction, OPT_INT) -OPTION(bluestore_debug_omit_block_device_write, OPT_BOOL) -OPTION(bluestore_debug_fsck_abort, OPT_BOOL) -OPTION(bluestore_debug_omit_kv_commit, OPT_BOOL) -OPTION(bluestore_debug_permit_any_bdev_label, OPT_BOOL) -OPTION(bluestore_debug_random_read_err, OPT_DOUBLE) -OPTION(bluestore_debug_inject_bug21040, OPT_BOOL) -OPTION(bluestore_debug_inject_csum_err_probability, OPT_FLOAT) -OPTION(bluestore_fsck_error_on_no_per_pool_stats, OPT_BOOL) -OPTION(bluestore_warn_on_bluefs_spillover, OPT_BOOL) -OPTION(bluestore_warn_on_legacy_statfs, OPT_BOOL) -OPTION(bluestore_warn_on_spurious_read_errors, OPT_BOOL) -OPTION(bluestore_fsck_error_on_no_per_pool_omap, OPT_BOOL) -OPTION(bluestore_fsck_error_on_no_per_pg_omap, OPT_BOOL) -OPTION(bluestore_warn_on_no_per_pool_omap, OPT_BOOL) -OPTION(bluestore_warn_on_no_per_pg_omap, OPT_BOOL) -OPTION(bluestore_log_op_age, OPT_DOUBLE) -OPTION(bluestore_log_omap_iterator_age, OPT_DOUBLE) -OPTION(bluestore_log_collection_list_age, OPT_DOUBLE) -OPTION(bluestore_debug_enforce_settings, OPT_STR) -OPTION(bluestore_volume_selection_policy, OPT_STR) -OPTION(bluestore_volume_selection_reserved_factor, OPT_DOUBLE) -OPTION(bluestore_volume_selection_reserved, OPT_INT) -OPTION(bluestore_kv_sync_util_logging_s, OPT_DOUBLE) - -OPTION(kstore_max_ops, OPT_U64) -OPTION(kstore_max_bytes, OPT_U64) -OPTION(kstore_backend, OPT_STR) -OPTION(kstore_rocksdb_options, OPT_STR) -OPTION(kstore_fsck_on_mount, OPT_BOOL) -OPTION(kstore_fsck_on_mount_deep, OPT_BOOL) -OPTION(kstore_nid_prealloc, OPT_U64) -OPTION(kstore_sync_transaction, OPT_BOOL) -OPTION(kstore_sync_submit_transaction, OPT_BOOL) -OPTION(kstore_onode_map_size, OPT_U64) -OPTION(kstore_default_stripe_size, OPT_INT) - -OPTION(filestore_omap_backend, OPT_STR) -OPTION(filestore_omap_backend_path, OPT_STR) - -/// filestore wb throttle limits -OPTION(filestore_wbthrottle_enable, OPT_BOOL) -OPTION(filestore_wbthrottle_btrfs_bytes_start_flusher, OPT_U64) -OPTION(filestore_wbthrottle_btrfs_bytes_hard_limit, OPT_U64) -OPTION(filestore_wbthrottle_btrfs_ios_start_flusher, OPT_U64) -OPTION(filestore_wbthrottle_btrfs_ios_hard_limit, OPT_U64) -OPTION(filestore_wbthrottle_btrfs_inodes_start_flusher, OPT_U64) -OPTION(filestore_wbthrottle_xfs_bytes_start_flusher, OPT_U64) -OPTION(filestore_wbthrottle_xfs_bytes_hard_limit, OPT_U64) -OPTION(filestore_wbthrottle_xfs_ios_start_flusher, OPT_U64) -OPTION(filestore_wbthrottle_xfs_ios_hard_limit, OPT_U64) -OPTION(filestore_wbthrottle_xfs_inodes_start_flusher, OPT_U64) - -/// These must be less than the fd limit -OPTION(filestore_wbthrottle_btrfs_inodes_hard_limit, OPT_U64) -OPTION(filestore_wbthrottle_xfs_inodes_hard_limit, OPT_U64) - -//Introduce a O_DSYNC write in the filestore -OPTION(filestore_odsync_write, OPT_BOOL) - -// Tests index failure paths -OPTION(filestore_index_retry_probability, OPT_DOUBLE) - -// Allow object read error injection -OPTION(filestore_debug_inject_read_err, OPT_BOOL) -OPTION(filestore_debug_random_read_err, OPT_DOUBLE) - -OPTION(filestore_debug_omap_check, OPT_BOOL) // Expensive debugging check on sync -OPTION(filestore_omap_header_cache_size, OPT_INT) - -// Use omap for xattrs for attrs over -// filestore_max_inline_xattr_size or -OPTION(filestore_max_inline_xattr_size, OPT_U32) //Override -OPTION(filestore_max_inline_xattr_size_xfs, OPT_U32) -OPTION(filestore_max_inline_xattr_size_btrfs, OPT_U32) -OPTION(filestore_max_inline_xattr_size_other, OPT_U32) - -// for more than filestore_max_inline_xattrs attrs -OPTION(filestore_max_inline_xattrs, OPT_U32) //Override -OPTION(filestore_max_inline_xattrs_xfs, OPT_U32) -OPTION(filestore_max_inline_xattrs_btrfs, OPT_U32) -OPTION(filestore_max_inline_xattrs_other, OPT_U32) - -// max xattr value size -OPTION(filestore_max_xattr_value_size, OPT_U32) //Override -OPTION(filestore_max_xattr_value_size_xfs, OPT_U32) -OPTION(filestore_max_xattr_value_size_btrfs, OPT_U32) -// ext4 allows 4k xattrs total including some smallish extra fields and the -// keys. We're allowing 2 512 inline attrs in addition some some filestore -// replay attrs. After accounting for those, we still need to fit up to -// two attrs of this value. That means we need this value to be around 1k -// to be safe. This is hacky, but it's not worth complicating the code -// to work around ext4's total xattr limit. -OPTION(filestore_max_xattr_value_size_other, OPT_U32) - -OPTION(filestore_sloppy_crc, OPT_BOOL) // track sloppy crcs -OPTION(filestore_sloppy_crc_block_size, OPT_INT) - -OPTION(filestore_max_alloc_hint_size, OPT_U64) // bytes - -OPTION(filestore_max_sync_interval, OPT_DOUBLE) // seconds -OPTION(filestore_min_sync_interval, OPT_DOUBLE) // seconds -OPTION(filestore_btrfs_snap, OPT_BOOL) -OPTION(filestore_btrfs_clone_range, OPT_BOOL) -OPTION(filestore_zfs_snap, OPT_BOOL) // zfsonlinux is still unstable -OPTION(filestore_fsync_flushes_journal_data, OPT_BOOL) -OPTION(filestore_fiemap, OPT_BOOL) // (try to) use fiemap -OPTION(filestore_punch_hole, OPT_BOOL) -OPTION(filestore_seek_data_hole, OPT_BOOL) // (try to) use seek_data/hole -OPTION(filestore_splice, OPT_BOOL) -OPTION(filestore_fadvise, OPT_BOOL) -//collect device partition information for management application to use -OPTION(filestore_collect_device_partition_information, OPT_BOOL) - -// (try to) use extsize for alloc hint NOTE: extsize seems to trigger -// data corruption in xfs prior to kernel 3.5. filestore will -// implicitly disable this if it cannot confirm the kernel is newer -// than that. -// NOTE: This option involves a tradeoff: When disabled, fragmentation is -// worse, but large sequential writes are faster. When enabled, large -// sequential writes are slower, but fragmentation is reduced. -OPTION(filestore_xfs_extsize, OPT_BOOL) - -OPTION(filestore_journal_parallel, OPT_BOOL) -OPTION(filestore_journal_writeahead, OPT_BOOL) -OPTION(filestore_journal_trailing, OPT_BOOL) -OPTION(filestore_queue_max_ops, OPT_U64) -OPTION(filestore_queue_max_bytes, OPT_U64) - -OPTION(filestore_caller_concurrency, OPT_INT) - -/// Expected filestore throughput in B/s -OPTION(filestore_expected_throughput_bytes, OPT_DOUBLE) -/// Expected filestore throughput in ops/s -OPTION(filestore_expected_throughput_ops, OPT_DOUBLE) - -/// Filestore max delay multiple. Defaults to 0 (disabled) -OPTION(filestore_queue_max_delay_multiple, OPT_DOUBLE) -/// Filestore high delay multiple. Defaults to 0 (disabled) -OPTION(filestore_queue_high_delay_multiple, OPT_DOUBLE) - -/// Filestore max delay multiple bytes. Defaults to 0 (disabled) -OPTION(filestore_queue_max_delay_multiple_bytes, OPT_DOUBLE) -/// Filestore high delay multiple bytes. Defaults to 0 (disabled) -OPTION(filestore_queue_high_delay_multiple_bytes, OPT_DOUBLE) - -/// Filestore max delay multiple ops. Defaults to 0 (disabled) -OPTION(filestore_queue_max_delay_multiple_ops, OPT_DOUBLE) -/// Filestore high delay multiple ops. Defaults to 0 (disabled) -OPTION(filestore_queue_high_delay_multiple_ops, OPT_DOUBLE) - -/// Use above to inject delays intended to keep the op queue between low and high -OPTION(filestore_queue_low_threshhold, OPT_DOUBLE) -OPTION(filestore_queue_high_threshhold, OPT_DOUBLE) - -OPTION(filestore_op_threads, OPT_INT) -OPTION(filestore_op_thread_timeout, OPT_INT) -OPTION(filestore_op_thread_suicide_timeout, OPT_INT) -OPTION(filestore_commit_timeout, OPT_FLOAT) -OPTION(filestore_fiemap_threshold, OPT_INT) -OPTION(filestore_merge_threshold, OPT_INT) -OPTION(filestore_split_multiple, OPT_INT) -OPTION(filestore_split_rand_factor, OPT_U32) // randomize the split threshold by adding 16 * [0) -OPTION(filestore_update_to, OPT_INT) -OPTION(filestore_blackhole, OPT_BOOL) // drop any new transactions on the floor -OPTION(filestore_fd_cache_size, OPT_INT) // FD lru size -OPTION(filestore_fd_cache_shards, OPT_INT) // FD number of shards -OPTION(filestore_ondisk_finisher_threads, OPT_INT) -OPTION(filestore_apply_finisher_threads, OPT_INT) -OPTION(filestore_dump_file, OPT_STR) // file onto which store transaction dumps -OPTION(filestore_kill_at, OPT_INT) // inject a failure at the n'th opportunity -OPTION(filestore_inject_stall, OPT_INT) // artificially stall for N seconds in op queue thread -OPTION(filestore_fail_eio, OPT_BOOL) // fail/crash on EIO -OPTION(filestore_debug_verify_split, OPT_BOOL) -OPTION(journal_dio, OPT_BOOL) -OPTION(journal_aio, OPT_BOOL) -OPTION(journal_force_aio, OPT_BOOL) -OPTION(journal_block_size, OPT_INT) - -OPTION(journal_block_align, OPT_BOOL) -OPTION(journal_write_header_frequency, OPT_U64) -OPTION(journal_max_write_bytes, OPT_INT) -OPTION(journal_max_write_entries, OPT_INT) - -/// Target range for journal fullness -OPTION(journal_throttle_low_threshhold, OPT_DOUBLE) -OPTION(journal_throttle_high_threshhold, OPT_DOUBLE) - -/// Multiple over expected at high_threshhold. Defaults to 0 (disabled). -OPTION(journal_throttle_high_multiple, OPT_DOUBLE) -/// Multiple over expected at max. Defaults to 0 (disabled). -OPTION(journal_throttle_max_multiple, OPT_DOUBLE) - -OPTION(journal_align_min_size, OPT_INT) // align data payloads >= this. -OPTION(journal_replay_from, OPT_INT) -OPTION(journal_zero_on_create, OPT_BOOL) -OPTION(journal_ignore_corruption, OPT_BOOL) // assume journal is not corrupt -OPTION(journal_discard, OPT_BOOL) //using ssd disk as journal, whether support discard nouse journal-data. - -OPTION(fio_dir, OPT_STR) // fio data directory for fio-objectstore - -OPTION(rados_tracing, OPT_BOOL) // true if LTTng-UST tracepoints should be enabled - - -OPTION(rgw_max_attr_name_len, OPT_SIZE) -OPTION(rgw_max_attr_size, OPT_SIZE) -OPTION(rgw_max_attrs_num_in_req, OPT_U64) - -OPTION(rgw_max_chunk_size, OPT_INT) -OPTION(rgw_put_obj_min_window_size, OPT_INT) -OPTION(rgw_put_obj_max_window_size, OPT_INT) -OPTION(rgw_max_put_size, OPT_U64) -OPTION(rgw_max_put_param_size, OPT_U64) // max input size for PUT requests accepting json/xml params - -/** - * override max bucket index shards in zone configuration (if not zero) - * - * Represents the number of shards for the bucket index object, a value of zero - * indicates there is no sharding. By default (no sharding, the name of the object - * is '.dir.{marker}', with sharding, the name is '.dir.{markder}.{sharding_id}', - * sharding_id is zero-based value. It is not recommended to set a too large value - * (e.g. thousand) as it increases the cost for bucket listing. - */ -OPTION(rgw_override_bucket_index_max_shards, OPT_U32) - -/** - * Represents the maximum AIO pending requests for the bucket index object shards. - */ -OPTION(rgw_bucket_index_max_aio, OPT_U32) - -/** - * whether or not the quota/gc threads should be started - */ -OPTION(rgw_enable_quota_threads, OPT_BOOL) -OPTION(rgw_enable_gc_threads, OPT_BOOL) -OPTION(rgw_enable_lc_threads, OPT_BOOL) - -/* overrides for librgw/nfs */ -OPTION(rgw_nfs_run_gc_threads, OPT_BOOL) -OPTION(rgw_nfs_run_lc_threads, OPT_BOOL) -OPTION(rgw_nfs_run_quota_threads, OPT_BOOL) -OPTION(rgw_nfs_run_sync_thread, OPT_BOOL) - -OPTION(rgw_data, OPT_STR) -OPTION(rgw_enable_apis, OPT_STR) -OPTION(rgw_cache_enabled, OPT_BOOL) // rgw cache enabled -OPTION(rgw_cache_lru_size, OPT_INT) // num of entries in rgw cache -OPTION(rgw_socket_path, OPT_STR) // path to unix domain socket, if not specified, rgw will not run as external fcgi -OPTION(rgw_host, OPT_STR) // host for radosgw, can be an IP, default is 0.0.0.0 -OPTION(rgw_port, OPT_STR) // port to listen, format as "8080" "5000", if not specified, rgw will not run external fcgi -OPTION(rgw_dns_name, OPT_STR) // hostname suffix on buckets -OPTION(rgw_dns_s3website_name, OPT_STR) // hostname suffix on buckets for s3-website endpoint -OPTION(rgw_service_provider_name, OPT_STR) //service provider name which is contained in http response headers -OPTION(rgw_content_length_compat, OPT_BOOL) // Check both HTTP_CONTENT_LENGTH and CONTENT_LENGTH in fcgi env -OPTION(rgw_lifecycle_work_time, OPT_STR) //job process lc at 00:00-06:00s -OPTION(rgw_lc_lock_max_time, OPT_INT) // total run time for a single lc processor work -OPTION(rgw_lc_max_worker, OPT_INT)// number of (parellized) LCWorker threads -OPTION(rgw_lc_max_wp_worker, OPT_INT)// number of per-LCWorker pool threads -OPTION(rgw_lc_max_objs, OPT_INT) -OPTION(rgw_lc_max_rules, OPT_U32) // Max rules set on one bucket -OPTION(rgw_lc_debug_interval, OPT_INT) // Debug run interval, in seconds -OPTION(rgw_script_uri, OPT_STR) // alternative value for SCRIPT_URI if not set in request -OPTION(rgw_request_uri, OPT_STR) // alternative value for REQUEST_URI if not set in request -OPTION(rgw_ignore_get_invalid_range, OPT_BOOL) // treat invalid (e.g., negative) range requests as full -OPTION(rgw_swift_url, OPT_STR) // the swift url, being published by the internal swift auth -OPTION(rgw_swift_url_prefix, OPT_STR) // entry point for which a url is considered a swift url -OPTION(rgw_swift_auth_url, OPT_STR) // default URL to go and verify tokens for v1 auth (if not using internal swift auth) -OPTION(rgw_swift_auth_entry, OPT_STR) // entry point for which a url is considered a swift auth url -OPTION(rgw_swift_tenant_name, OPT_STR) // tenant name to use for swift access -OPTION(rgw_swift_account_in_url, OPT_BOOL) // assume that URL always contain the account (aka tenant) part -OPTION(rgw_swift_enforce_content_length, OPT_BOOL) // enforce generation of Content-Length even in cost of performance or scalability -OPTION(rgw_keystone_url, OPT_STR) // url for keystone server -OPTION(rgw_keystone_admin_token, OPT_STR) // keystone admin token (shared secret) -OPTION(rgw_keystone_admin_token_path, OPT_STR) // path to keystone admin token (shared secret) -OPTION(rgw_keystone_admin_user, OPT_STR) // keystone admin user name -OPTION(rgw_keystone_admin_password, OPT_STR) // keystone admin user password -OPTION(rgw_keystone_admin_password_path, OPT_STR) // path to keystone admin user password -OPTION(rgw_keystone_admin_tenant, OPT_STR) // keystone admin user tenant (for keystone v2.0) -OPTION(rgw_keystone_admin_project, OPT_STR) // keystone admin user project (for keystone v3) -OPTION(rgw_keystone_admin_domain, OPT_STR) // keystone admin user domain -OPTION(rgw_keystone_barbican_user, OPT_STR) // keystone user to access barbican secrets -OPTION(rgw_keystone_barbican_password, OPT_STR) // keystone password for barbican user -OPTION(rgw_keystone_barbican_tenant, OPT_STR) // keystone barbican user tenant (for keystone v2.0) -OPTION(rgw_keystone_barbican_project, OPT_STR) // keystone barbican user project (for keystone v3) -OPTION(rgw_keystone_barbican_domain, OPT_STR) // keystone barbican user domain -OPTION(rgw_keystone_api_version, OPT_INT) // Version of Keystone API to use (2 or 3) -OPTION(rgw_keystone_accepted_roles, OPT_STR) // roles required to serve requests -OPTION(rgw_keystone_accepted_admin_roles, OPT_STR) // list of roles allowing an user to gain admin privileges -OPTION(rgw_keystone_token_cache_size, OPT_INT) // max number of entries in keystone token cache -OPTION(rgw_keystone_verify_ssl, OPT_BOOL) // should we try to verify keystone's ssl -OPTION(rgw_cross_domain_policy, OPT_STR) -OPTION(rgw_healthcheck_disabling_path, OPT_STR) // path that existence causes the healthcheck to respond 503 -OPTION(rgw_s3_auth_use_rados, OPT_BOOL) // should we try to use the internal credentials for s3? -OPTION(rgw_s3_auth_use_keystone, OPT_BOOL) // should we try to use keystone for s3? -OPTION(rgw_s3_auth_order, OPT_STR) // s3 authentication order to try -OPTION(rgw_barbican_url, OPT_STR) // url for barbican server -OPTION(rgw_opa_url, OPT_STR) // url for OPA server -OPTION(rgw_opa_token, OPT_STR) // Bearer token OPA uses to authenticate client requests -OPTION(rgw_opa_verify_ssl, OPT_BOOL) // should we try to verify OPA's ssl -OPTION(rgw_use_opa_authz, OPT_BOOL) // should we use OPA to authorize client requests? - -/* OpenLDAP-style LDAP parameter strings */ -/* rgw_ldap_uri space-separated list of LDAP servers in URI format */ -OPTION(rgw_ldap_uri, OPT_STR) -/* rgw_ldap_binddn LDAP entry RGW will bind with (user match) */ -OPTION(rgw_ldap_binddn, OPT_STR) -/* rgw_ldap_searchdn LDAP search base (basedn) */ -OPTION(rgw_ldap_searchdn, OPT_STR) -/* rgw_ldap_dnattr LDAP attribute containing RGW user names (to form binddns)*/ -OPTION(rgw_ldap_dnattr, OPT_STR) -/* rgw_ldap_secret file containing credentials for rgw_ldap_binddn */ -OPTION(rgw_ldap_secret, OPT_STR) -/* rgw_s3_auth_use_ldap use LDAP for RGW auth? */ -OPTION(rgw_s3_auth_use_ldap, OPT_BOOL) -/* rgw_ldap_searchfilter LDAP search filter */ -OPTION(rgw_ldap_searchfilter, OPT_STR) - -OPTION(rgw_admin_entry, OPT_STR) // entry point for which a url is considered an admin request -OPTION(rgw_enforce_swift_acls, OPT_BOOL) -OPTION(rgw_swift_token_expiration, OPT_INT) // time in seconds for swift token expiration -OPTION(rgw_print_continue, OPT_BOOL) // enable if 100-Continue works -OPTION(rgw_print_prohibited_content_length, OPT_BOOL) // violate RFC 7230 and send Content-Length in 204 and 304 -OPTION(rgw_remote_addr_param, OPT_STR) // e.g. X-Forwarded-For, if you have a reverse proxy -OPTION(rgw_op_thread_timeout, OPT_INT) -OPTION(rgw_op_thread_suicide_timeout, OPT_INT) -OPTION(rgw_thread_pool_size, OPT_INT) -OPTION(rgw_num_control_oids, OPT_INT) -OPTION(rgw_verify_ssl, OPT_BOOL) // should http_client try to verify ssl when sent https request - -/* The following are tunables for caches of RGW NFS (and other file - * client) objects. - * - * The file handle cache is a partitioned hash table - * (fhcache_partitions), each with a closed hash part and backing - * b-tree mapping. The number of partions is expected to be a small - * prime, the cache size something larger but less than 5K, the total - * size of the cache is n_part * cache_size. - */ -OPTION(rgw_nfs_lru_lanes, OPT_INT) -OPTION(rgw_nfs_lru_lane_hiwat, OPT_INT) -OPTION(rgw_nfs_fhcache_partitions, OPT_INT) -OPTION(rgw_nfs_fhcache_size, OPT_INT) /* 3*2017=6051 */ -OPTION(rgw_nfs_namespace_expire_secs, OPT_INT) /* namespace invalidate - * timer */ -OPTION(rgw_nfs_max_gc, OPT_INT) /* max gc events per cycle */ -OPTION(rgw_nfs_write_completion_interval_s, OPT_INT) /* stateless (V3) - * commit - * delay */ -OPTION(rgw_nfs_s3_fast_attrs, OPT_BOOL) /* use fast S3 attrs from - * bucket index--currently - * assumes NFS mounts are - * immutable */ - -OPTION(rgw_zone, OPT_STR) // zone name -OPTION(rgw_zone_root_pool, OPT_STR) // pool where zone specific info is stored -OPTION(rgw_default_zone_info_oid, OPT_STR) // oid where default zone info is stored -OPTION(rgw_region, OPT_STR) // region name -OPTION(rgw_region_root_pool, OPT_STR) // pool where all region info is stored -OPTION(rgw_default_region_info_oid, OPT_STR) // oid where default region info is stored -OPTION(rgw_zonegroup, OPT_STR) // zone group name -OPTION(rgw_zonegroup_root_pool, OPT_STR) // pool where all zone group info is stored -OPTION(rgw_default_zonegroup_info_oid, OPT_STR) // oid where default zone group info is stored -OPTION(rgw_realm, OPT_STR) // realm name -OPTION(rgw_realm_root_pool, OPT_STR) // pool where all realm info is stored -OPTION(rgw_default_realm_info_oid, OPT_STR) // oid where default realm info is stored -OPTION(rgw_period_root_pool, OPT_STR) // pool where all period info is stored -OPTION(rgw_period_latest_epoch_info_oid, OPT_STR) // oid where current period info is stored -OPTION(rgw_log_nonexistent_bucket, OPT_BOOL) -OPTION(rgw_log_object_name, OPT_STR) // man date to see codes (a subset are supported) -OPTION(rgw_log_object_name_utc, OPT_BOOL) -OPTION(rgw_usage_max_shards, OPT_INT) -OPTION(rgw_usage_max_user_shards, OPT_INT) -OPTION(rgw_enable_ops_log, OPT_BOOL) // enable logging every rgw operation -OPTION(rgw_enable_usage_log, OPT_BOOL) // enable logging bandwidth usage -OPTION(rgw_ops_log_rados, OPT_BOOL) // whether ops log should go to rados -OPTION(rgw_ops_log_socket_path, OPT_STR) // path to unix domain socket where ops log can go -OPTION(rgw_ops_log_data_backlog, OPT_INT) // max data backlog for ops log -OPTION(rgw_fcgi_socket_backlog, OPT_INT) // socket backlog for fcgi -OPTION(rgw_usage_log_flush_threshold, OPT_INT) // threshold to flush pending log data -OPTION(rgw_usage_log_tick_interval, OPT_INT) // flush pending log data every X seconds -OPTION(rgw_init_timeout, OPT_INT) // time in seconds -OPTION(rgw_mime_types_file, OPT_STR) -OPTION(rgw_gc_max_objs, OPT_INT) -OPTION(rgw_gc_obj_min_wait, OPT_INT) // wait time before object may be handled by gc, recommended lower limit is 30 mins -OPTION(rgw_gc_processor_max_time, OPT_INT) // total run time for a single gc processor work -OPTION(rgw_gc_processor_period, OPT_INT) // gc processor cycle time -OPTION(rgw_gc_max_concurrent_io, OPT_INT) // gc processor cycle time -OPTION(rgw_gc_max_trim_chunk, OPT_INT) // gc trim chunk size -OPTION(rgw_s3_success_create_obj_status, OPT_INT) // alternative success status response for create-obj (0 - default) -OPTION(rgw_resolve_cname, OPT_BOOL) // should rgw try to resolve hostname as a dns cname record -OPTION(rgw_obj_stripe_size, OPT_INT) -OPTION(rgw_extended_http_attrs, OPT_STR) // list of extended attrs that can be set on objects (beyond the default) -OPTION(rgw_exit_timeout_secs, OPT_INT) // how many seconds to wait for process to go down before exiting unconditionally -OPTION(rgw_get_obj_window_size, OPT_INT) // window size in bytes for single get obj request -OPTION(rgw_get_obj_max_req_size, OPT_INT) // max length of a single get obj rados op -OPTION(rgw_relaxed_s3_bucket_names, OPT_BOOL) // enable relaxed bucket name rules for US region buckets -OPTION(rgw_defer_to_bucket_acls, OPT_STR) // if the user has bucket perms) -OPTION(rgw_list_buckets_max_chunk, OPT_INT) // max buckets to retrieve in a single op when listing user buckets -OPTION(rgw_md_log_max_shards, OPT_INT) // max shards for metadata log -OPTION(rgw_curl_buffersize, OPT_INT) // set preferred receive buffer size for curl calls -OPTION(rgw_curl_wait_timeout_ms, OPT_INT) // timeout for certain curl calls -OPTION(rgw_curl_low_speed_limit, OPT_INT) // low speed limit for certain curl calls -OPTION(rgw_curl_low_speed_time, OPT_INT) // low speed time for certain curl calls -OPTION(rgw_copy_obj_progress, OPT_BOOL) // should dump progress during long copy operations? -OPTION(rgw_copy_obj_progress_every_bytes, OPT_INT) // min bytes between copy progress output -OPTION(rgw_sync_obj_etag_verify, OPT_BOOL) // verify if the copied object from remote is identical to source -OPTION(rgw_obj_tombstone_cache_size, OPT_INT) // how many objects in tombstone cache, which is used in multi-zone sync to keep - // track of removed objects' mtime - -OPTION(rgw_data_log_window, OPT_INT) // data log entries window (in seconds) -OPTION(rgw_data_log_changes_size, OPT_INT) // number of in-memory entries to hold for data changes log -OPTION(rgw_data_log_num_shards, OPT_INT) // number of objects to keep data changes log on -OPTION(rgw_data_log_obj_prefix, OPT_STR) // - -OPTION(rgw_bucket_quota_ttl, OPT_INT) // time for cached bucket stats to be cached within rgw instance -OPTION(rgw_bucket_quota_soft_threshold, OPT_DOUBLE) // threshold from which we don't rely on cached info for quota decisions -OPTION(rgw_bucket_quota_cache_size, OPT_INT) // number of entries in bucket quota cache -OPTION(rgw_bucket_default_quota_max_objects, OPT_INT) // number of objects allowed -OPTION(rgw_bucket_default_quota_max_size, OPT_LONGLONG) // Max size of object in bytes - -OPTION(rgw_expose_bucket, OPT_BOOL) // Return the bucket name in the 'Bucket' response header - -OPTION(rgw_frontends, OPT_STR) // rgw front ends - -OPTION(rgw_user_quota_bucket_sync_interval, OPT_INT) // time period for accumulating modified buckets before syncing stats -OPTION(rgw_user_quota_sync_interval, OPT_INT) // time period for accumulating modified buckets before syncing entire user stats -OPTION(rgw_user_quota_sync_idle_users, OPT_BOOL) // whether stats for idle users be fully synced -OPTION(rgw_user_quota_sync_wait_time, OPT_INT) // min time between two full stats sync for non-idle users -OPTION(rgw_user_default_quota_max_objects, OPT_INT) // number of objects allowed -OPTION(rgw_user_default_quota_max_size, OPT_LONGLONG) // Max size of object in bytes - -OPTION(rgw_multipart_min_part_size, OPT_INT) // min size for each part (except for last one) in multipart upload -OPTION(rgw_multipart_part_upload_limit, OPT_INT) // parts limit in multipart upload - -OPTION(rgw_max_slo_entries, OPT_INT) // default number of max entries in slo - -OPTION(rgw_olh_pending_timeout_sec, OPT_INT) // time until we retire a pending olh change -OPTION(rgw_user_max_buckets, OPT_INT) // global option to set max buckets count for all user - -OPTION(rgw_objexp_gc_interval, OPT_U32) // maximum time between round of expired objects garbage collecting -OPTION(rgw_objexp_hints_num_shards, OPT_U32) // maximum number of parts in which the hint index is stored in -OPTION(rgw_objexp_chunk_size, OPT_U32) // maximum number of entries in a single operation when processing objexp data - -OPTION(rgw_enable_static_website, OPT_BOOL) // enable static website feature -OPTION(rgw_log_http_headers, OPT_STR) // list of HTTP headers to log when seen, ignores case (e.g., http_x_forwarded_for - -OPTION(rgw_num_async_rados_threads, OPT_INT) // num of threads to use for async rados operations -OPTION(rgw_md_notify_interval_msec, OPT_INT) // metadata changes notification interval to followers -OPTION(rgw_run_sync_thread, OPT_BOOL) // whether radosgw (not radosgw-admin) spawns the sync thread -OPTION(rgw_sync_lease_period, OPT_INT) // time in second for lease that rgw takes on a specific log (or log shard) -OPTION(rgw_sync_log_trim_interval, OPT_INT) // time in seconds between attempts to trim sync logs - -OPTION(rgw_sync_data_inject_err_probability, OPT_DOUBLE) // range [0, 1] -OPTION(rgw_sync_meta_inject_err_probability, OPT_DOUBLE) // range [0, 1] -OPTION(rgw_sync_trace_history_size, OPT_INT) // max number of complete sync trace entries to keep -OPTION(rgw_sync_trace_per_node_log_size, OPT_INT) // how many log entries to keep per node -OPTION(rgw_sync_trace_servicemap_update_interval, OPT_INT) // interval in seconds between sync trace servicemap update - - -OPTION(rgw_period_push_interval, OPT_DOUBLE) // seconds to wait before retrying "period push" -OPTION(rgw_period_push_interval_max, OPT_DOUBLE) // maximum interval after exponential backoff - -OPTION(rgw_safe_max_objects_per_shard, OPT_INT) // safe max loading -OPTION(rgw_shard_warning_threshold, OPT_DOUBLE) // pct of safe max - // at which to warn - -OPTION(rgw_swift_versioning_enabled, OPT_BOOL) // whether swift object versioning feature is enabled - -OPTION(rgw_trust_forwarded_https, OPT_BOOL) // trust Forwarded and X-Forwarded-Proto headers for ssl termination -OPTION(rgw_crypt_require_ssl, OPT_BOOL) // requests including encryption key headers must be sent over ssl -OPTION(rgw_crypt_default_encryption_key, OPT_STR) // base64 encoded key for encryption of rgw objects - -OPTION(rgw_crypt_s3_kms_backend, OPT_STR) // Where SSE-KMS encryption keys are stored -OPTION(rgw_crypt_vault_auth, OPT_STR) // Type of authentication method to be used with Vault -OPTION(rgw_crypt_vault_token_file, OPT_STR) // Path to the token file for Vault authentication -OPTION(rgw_crypt_vault_addr, OPT_STR) // Vault server base address -OPTION(rgw_crypt_vault_prefix, OPT_STR) // Optional URL prefix to Vault secret path -OPTION(rgw_crypt_vault_secret_engine, OPT_STR) // kv, transit or other supported secret engines -OPTION(rgw_crypt_vault_namespace, OPT_STR) // Vault Namespace (only availabe in Vault Enterprise Version) - -OPTION(rgw_crypt_kmip_addr, OPT_STR) // kmip server address -OPTION(rgw_crypt_kmip_ca_path, OPT_STR) // ca for kmip servers -OPTION(rgw_crypt_kmip_username, OPT_STR) // when authenticating via username -OPTION(rgw_crypt_kmip_password, OPT_STR) // optional w/ username -OPTION(rgw_crypt_kmip_client_cert, OPT_STR) // connect using client certificate -OPTION(rgw_crypt_kmip_client_key, OPT_STR) // connect using client certificate -OPTION(rgw_crypt_kmip_kms_key_template, OPT_STR) // sse-kms; kmip key names -OPTION(rgw_crypt_kmip_s3_key_template, OPT_STR) // sse-s3; kmip key names - -OPTION(rgw_crypt_s3_kms_encryption_keys, OPT_STR) // extra keys that may be used for aws:kms - // defined as map "key1=YmluCmJvb3N0CmJvb3N0LQ== key2=b3V0CnNyYwpUZXN0aW5nCg==" -OPTION(rgw_crypt_suppress_logs, OPT_BOOL) // suppress logs that might print customer key -OPTION(rgw_list_bucket_min_readahead, OPT_INT) // minimum number of entries to read from rados for bucket listing - -OPTION(rgw_rest_getusage_op_compat, OPT_BOOL) // dump description of total stats for s3 GetUsage API - -OPTION(throttler_perf_counter, OPT_BOOL) // enable/disable throttler perf counter - -/* The following are tunables for torrent data */ -OPTION(rgw_torrent_flag, OPT_BOOL) // produce torrent function flag -OPTION(rgw_torrent_tracker, OPT_STR) // torrent field announce and announce list -OPTION(rgw_torrent_createby, OPT_STR) // torrent field created by -OPTION(rgw_torrent_comment, OPT_STR) // torrent field comment -OPTION(rgw_torrent_encoding, OPT_STR) // torrent field encoding -OPTION(rgw_torrent_origin, OPT_STR) // torrent origin -OPTION(rgw_torrent_sha_unit, OPT_INT) // torrent field piece length 512K - -OPTION(event_tracing, OPT_BOOL) // true if LTTng-UST tracepoints should be enabled - -OPTION(debug_deliberately_leak_memory, OPT_BOOL) -OPTION(debug_asok_assert_abort, OPT_BOOL) - -OPTION(rgw_swift_custom_header, OPT_STR) // option to enable swift custom headers - -OPTION(rgw_swift_need_stats, OPT_BOOL) // option to enable stats on bucket listing for swift - -OPTION(rgw_acl_grants_max_num, OPT_INT) // According to AWS S3(http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html), An ACL can have up to 100 grants. -OPTION(rgw_cors_rules_max_num, OPT_INT) // According to AWS S3(http://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html), An cors can have up to 100 rules. -OPTION(rgw_delete_multi_obj_max_num, OPT_INT) // According to AWS S3(https://docs.aws.amazon.com/AmazonS3/latest/dev/DeletingObjects.html), Amazon S3 also provides the Multi-Object Delete API that you can use to delete up to 1000 objects in a single HTTP request. -OPTION(rgw_website_routing_rules_max_num, OPT_INT) // According to AWS S3, An website routing config can have up to 50 rules. -OPTION(rgw_sts_entry, OPT_STR) -OPTION(rgw_sts_key, OPT_STR) -OPTION(rgw_s3_auth_use_sts, OPT_BOOL) // should we try to use sts for s3? -OPTION(rgw_sts_max_session_duration, OPT_U64) // Max duration in seconds for which the session token is valid. -OPTION(rgw_sts_min_session_duration, OPT_U64) // Min duration in seconds for which the session token is valid. -OPTION(fake_statfs_for_testing, OPT_INT) // Set a value for kb and compute kb_used from total of num_bytes -OPTION(rgw_sts_token_introspection_url, OPT_STR) // url for introspecting web tokens -OPTION(rgw_sts_client_id, OPT_STR) // Client Id -OPTION(rgw_sts_client_secret, OPT_STR) // Client Secret -OPTION(debug_allow_any_pool_priority, OPT_BOOL) -OPTION(rgw_gc_max_deferred_entries_size, OPT_U64) // GC deferred entries size in queue head -OPTION(rgw_gc_max_queue_size, OPT_U64) // GC max queue size -OPTION(rgw_gc_max_deferred, OPT_U64) // GC max number of deferred entries diff --git a/src/common/options/CMakeLists.txt b/src/common/options/CMakeLists.txt index c886bb640fc..8e3cecacd97 100644 --- a/src/common/options/CMakeLists.txt +++ b/src/common/options/CMakeLists.txt @@ -1,4 +1,5 @@ set(common_options_srcs build_options.cc) +set(legacy_options_headers) # to mimic the behavior of file(CONFIGURE ...) file(GENERATE OUTPUT configure_file.cmake @@ -25,17 +26,20 @@ function(add_options name) set(yaml_file ${CMAKE_CURRENT_BINARY_DIR}/${name}.yaml) file_configure("${yaml_in_file}" "${yaml_file}" @ONLY) - set(src_file "${name}_options.cc") - add_custom_command( - OUTPUT ${src_file} + set(cc_file "${name}_options.cc") + set(h_file "${PROJECT_BINARY_DIR}/include/${name}_legacy_options.h") + add_custom_command(PRE_BUILD + OUTPUT ${cc_file} ${h_file} COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/y2c.py --input ${yaml_file} - --output ${src_file} + --output ${cc_file} + --legacy ${h_file} --name ${name} - DEPENDS ${yaml_file}) - list(APPEND common_options_srcs - ${src_file}) + DEPENDS ${yaml_file}) + list(APPEND common_options_srcs ${cc_file}) set(common_options_srcs ${common_options_srcs} PARENT_SCOPE) + list(APPEND legacy_options_headers ${h_file}) + set(legacy_options_headers ${legacy_options_headers} PARENT_SCOPE) endfunction() set(osd_erasure_code_plugins "jerasure" "lrc") @@ -92,3 +96,5 @@ add_options(rgw) add_library(common-options-objs OBJECT ${common_options_srcs}) +add_custom_target(legacy-option-headers + DEPENDS ${legacy_options_headers}) diff --git a/src/common/options/global.yaml.in b/src/common/options/global.yaml.in index 34e9a11b452..05b8f3330fe 100644 --- a/src/common/options/global.yaml.in +++ b/src/common/options/global.yaml.in @@ -13,6 +13,7 @@ options: - common flags: - no_mon_update + with_legacy: true - name: fsid type: uuid level: basic @@ -35,6 +36,7 @@ options: - mgr flags: - startup + with_legacy: true - name: public_addrv type: addrvec level: basic @@ -46,6 +48,7 @@ options: - mgr flags: - startup + with_legacy: true - name: public_bind_addr type: addr level: advanced @@ -53,6 +56,7 @@ options: - mon flags: - startup + with_legacy: true - name: cluster_addr type: addr level: basic @@ -63,6 +67,7 @@ options: - osd flags: - startup + with_legacy: true - name: public_network type: str level: advanced @@ -76,6 +81,7 @@ options: - mgr flags: - startup + with_legacy: true - name: public_network_interface type: str level: advanced @@ -102,6 +108,7 @@ options: - osd flags: - startup + with_legacy: true - name: cluster_network_interface type: str level: advanced @@ -195,6 +202,7 @@ options: flags: - no_mon_update - startup + with_legacy: true - name: lockdep_force_backtrace type: bool level: dev @@ -206,6 +214,7 @@ options: - lockdep flags: - startup + with_legacy: true - name: run_dir type: str level: advanced @@ -217,6 +226,7 @@ options: - admin_socket flags: - startup + with_legacy: true - name: admin_socket type: str level: advanced @@ -226,6 +236,8 @@ options: - common flags: - startup + # default changed by common_preinit() + with_legacy: true - name: admin_socket_mode type: str level: advanced @@ -236,6 +248,7 @@ options: - admin_socket flags: - startup + with_legacy: true - name: daemonize type: bool level: advanced @@ -255,6 +268,8 @@ options: flags: - no_mon_update - startup + # default changed by common_preinit() + with_legacy: true - name: setuser type: str level: advanced @@ -271,6 +286,7 @@ options: - setgroup flags: - startup + with_legacy: true - name: setgroup type: str level: advanced @@ -287,6 +303,7 @@ options: - setuser flags: - startup + with_legacy: true - name: setuser_match_path type: str level: advanced @@ -309,6 +326,7 @@ options: - setgroup flags: - startup + with_legacy: true - name: pid_file type: str level: advanced @@ -322,6 +340,7 @@ options: - mds flags: - startup + with_legacy: true - name: chdir type: str level: advanced @@ -338,6 +357,7 @@ options: flags: - no_mon_update - startup + with_legacy: true - name: fatal_signal_handlers type: bool level: advanced @@ -353,6 +373,7 @@ options: - mds flags: - startup + with_legacy: true - name: crash_dir type: str level: advanced @@ -360,14 +381,17 @@ options: default: /var/lib/ceph/crash flags: - startup + with_legacy: true - name: restapi_log_level type: str level: advanced desc: default set by python code + with_legacy: true - name: restapi_base_url type: str level: advanced desc: default set by python code + with_legacy: true - name: erasure_code_dir type: str level: advanced @@ -378,6 +402,7 @@ options: - osd flags: - startup + with_legacy: true - name: log_file type: str level: basic @@ -389,6 +414,8 @@ options: - err_to_stderr - log_to_syslog - err_to_syslog + # default changed by common_preinit() + with_legacy: true - name: log_max_new type: int level: advanced @@ -396,6 +423,8 @@ options: default: 1000 see_also: - log_max_recent + # default changed by common_preinit() + with_legacy: true - name: log_max_recent type: int level: advanced @@ -408,6 +437,8 @@ options: or assertion failure, all entries will be dumped to the log. default: 500 daemon_default: 10000 + # default changed by common_preinit() + with_legacy: true - name: log_to_file type: bool level: basic @@ -415,18 +446,21 @@ options: default: true see_also: - log_file + with_legacy: true - name: log_to_stderr type: bool level: basic desc: send log lines to stderr default: true daemon_default: false + with_legacy: true - name: err_to_stderr type: bool level: basic desc: send critical error log lines to stderr default: false daemon_default: true + with_legacy: true - name: log_stderr_prefix type: str level: advanced @@ -441,16 +475,19 @@ options: level: basic desc: send log lines to syslog facility default: false + with_legacy: true - name: err_to_syslog type: bool level: basic desc: send critical error log lines to syslog facility default: false + with_legacy: true - name: log_flush_on_exit type: bool level: advanced desc: set a process exit handler to ensure the log is flushed on exit default: false + with_legacy: true - name: log_stop_at_utilization type: float level: basic @@ -460,6 +497,7 @@ options: - log_file min: 0 max: 1 + with_legacy: true - name: log_to_graylog type: bool level: basic @@ -469,6 +507,7 @@ options: - err_to_graylog - log_graylog_host - log_graylog_port + with_legacy: true - name: err_to_graylog type: bool level: basic @@ -478,6 +517,7 @@ options: - log_to_graylog - log_graylog_host - log_graylog_port + with_legacy: true - name: log_graylog_host type: str level: basic @@ -487,6 +527,7 @@ options: - log_to_graylog - err_to_graylog - log_graylog_port + with_legacy: true - name: log_graylog_port type: int level: basic @@ -494,6 +535,7 @@ options: default: 12201 see_also: - log_graylog_host + with_legacy: true - name: log_to_journald type: bool level: basic @@ -518,6 +560,11 @@ options: - service services: - common +# options will take k/v pairs, or single-item that will be assumed as general +# default for all, regardless of channel. +# e.g., "info" would be taken as the same as "default=info" +# also, "default=daemon audit=local0" would mean +# "default all to 'daemon', override 'audit' with 'local0' - name: clog_to_monitors type: str level: advanced @@ -525,6 +572,7 @@ options: default: default=true flags: - runtime + with_legacy: true - name: clog_to_syslog type: str level: advanced @@ -532,6 +580,7 @@ options: default: 'false' flags: - runtime + with_legacy: true - name: clog_to_syslog_level type: str level: advanced @@ -541,6 +590,7 @@ options: - clog_to_syslog flags: - runtime + with_legacy: true - name: clog_to_syslog_facility type: str level: advanced @@ -550,6 +600,7 @@ options: - clog_to_syslog flags: - runtime + with_legacy: true - name: clog_to_graylog type: str level: advanced @@ -566,6 +617,7 @@ options: - clog_to_graylog flags: - runtime + with_legacy: true - name: clog_to_graylog_port type: str level: advanced @@ -575,6 +627,7 @@ options: - clog_to_graylog flags: - runtime + with_legacy: true - name: mon_cluster_log_to_stderr type: bool level: advanced @@ -586,6 +639,7 @@ options: - log_stderr_prefix flags: - runtime + with_legacy: true - name: mon_cluster_log_to_syslog type: str level: advanced @@ -595,6 +649,7 @@ options: - mon flags: - runtime + with_legacy: true - name: mon_cluster_log_to_syslog_level type: str level: advanced @@ -606,6 +661,7 @@ options: - mon_cluster_log_to_syslog flags: - runtime + with_legacy: true - name: mon_cluster_log_to_syslog_facility type: str level: advanced @@ -617,6 +673,7 @@ options: - mon_cluster_log_to_syslog flags: - runtime + with_legacy: true - name: mon_cluster_log_to_file type: bool level: advanced @@ -628,6 +685,7 @@ options: - mon_cluster_log_file flags: - runtime + with_legacy: true - name: mon_cluster_log_file type: str level: advanced @@ -642,6 +700,7 @@ options: - mon_cluster_log_to_file flags: - runtime + with_legacy: true - name: mon_cluster_log_file_level type: str level: advanced @@ -653,6 +712,7 @@ options: - mon_cluster_log_file flags: - runtime + with_legacy: true - name: mon_cluster_log_to_graylog type: str level: advanced @@ -662,6 +722,7 @@ options: - mon flags: - runtime + with_legacy: true - name: mon_cluster_log_to_graylog_host type: str level: advanced @@ -673,6 +734,7 @@ options: - mon_cluster_log_to_graylog flags: - runtime + with_legacy: true - name: mon_cluster_log_to_graylog_port type: str level: advanced @@ -684,6 +746,7 @@ options: - mon_cluster_log_to_graylog flags: - runtime + with_legacy: true - name: mon_cluster_log_to_journald type: str level: advanced @@ -700,6 +763,7 @@ options: dangerous, and/or cause permanent data loss flags: - runtime + with_legacy: true - name: plugin_dir type: str level: advanced @@ -715,11 +779,15 @@ options: level: advanced desc: Use Intel ISA-L accelerated zlib implementation if available default: false + with_legacy: true +# regular zlib compression level, not applicable to isa-l optimized version - name: compressor_zlib_level type: int level: advanced desc: Zlib compression level to use default: 5 + with_legacy: true +# regular zlib compression winsize, not applicable to isa-l optimized version - name: compressor_zlib_winsize type: int level: advanced @@ -727,21 +795,26 @@ options: default: -15 min: -15 max: 32 + with_legacy: true +# regular zstd compression level - name: compressor_zstd_level type: int level: advanced desc: Zstd compression level to use default: 1 + with_legacy: true - name: qat_compressor_enabled type: bool level: advanced desc: Enable Intel QAT acceleration support for compression if available default: false + with_legacy: true - name: plugin_crypto_accelerator type: str level: advanced desc: Crypto accelerator library to use default: crypto_isal + with_legacy: true - name: openssl_engine_opts type: str level: advanced @@ -749,12 +822,14 @@ options: long_desc: 'Pass opts in this way: engine_id=engine1,dynamic_path=/some/path/engine1.so,default_algorithms=DIGESTS:engine_id=engine2,dynamic_path=/some/path/engine2.so,default_algorithms=CIPHERS,other_ctrl=other_value' flags: - startup + with_legacy: true - name: mempool_debug type: bool level: dev default: false flags: - no_mon_update + with_legacy: true - name: thp type: bool level: dev @@ -777,6 +852,7 @@ options: flags: - no_mon_update - startup + with_legacy: true - name: keyfile type: str level: advanced @@ -788,6 +864,7 @@ options: flags: - no_mon_update - startup + with_legacy: true - name: keyring type: str level: advanced @@ -802,6 +879,7 @@ options: flags: - no_mon_update - startup + with_legacy: true - name: heartbeat_interval type: int level: advanced @@ -809,6 +887,7 @@ options: default: 5 flags: - startup + with_legacy: true - name: heartbeat_file type: str level: advanced @@ -819,16 +898,19 @@ options: - heartbeat_interval flags: - startup + with_legacy: true - name: heartbeat_inject_failure type: int level: dev default: 0 + with_legacy: true - name: perf type: bool level: advanced desc: Enable internal performance metrics long_desc: If enabled, collect and expose internal health metrics default: true + with_legacy: true - name: ms_type type: str level: advanced @@ -836,6 +918,7 @@ options: default: async+posix flags: - startup + with_legacy: true - name: ms_public_type type: str level: advanced @@ -845,6 +928,7 @@ options: - ms_type flags: - startup + with_legacy: true - name: ms_cluster_type type: str level: advanced @@ -854,6 +938,7 @@ options: - ms_type flags: - startup + with_legacy: true - name: ms_mon_cluster_mode type: str level: basic @@ -932,26 +1017,31 @@ options: connecting from. This is useful if a client is behind some sort of NAT and we want to see it identified by its local (not NATed) address. default: true + with_legacy: true - name: ms_tcp_nodelay type: bool level: advanced desc: Disable Nagle's algorithm and send queued network traffic immediately default: true + with_legacy: true - name: ms_tcp_rcvbuf type: size level: advanced desc: Size of TCP socket receive buffer default: 0 + with_legacy: true - name: ms_tcp_prefetch_max_size type: size level: advanced desc: Maximum amount of data to prefetch out of the socket receive buffer default: 4_K + with_legacy: true - name: ms_initial_backoff type: float level: advanced desc: Initial backoff after a network error is detected (seconds) default: 0.2 + with_legacy: true - name: ms_max_backoff type: float level: advanced @@ -959,46 +1049,55 @@ options: default: 15 see_also: - ms_initial_backoff + with_legacy: true - name: ms_crc_data type: bool level: dev desc: Set and/or verify crc32c checksum on data payload sent over network default: true + with_legacy: true - name: ms_crc_header type: bool level: dev desc: Set and/or verify crc32c checksum on header payload sent over network default: true + with_legacy: true - name: ms_die_on_bad_msg type: bool level: dev desc: Induce a daemon crash/exit when a bad network message is received default: false + with_legacy: true - name: ms_die_on_unhandled_msg type: bool level: dev desc: Induce a daemon crash/exit when an unrecognized message is received default: false + with_legacy: true - name: ms_die_on_old_message type: bool level: dev desc: Induce a daemon crash/exit when a old, undecodable message is received default: false + with_legacy: true - name: ms_die_on_skipped_message type: bool level: dev desc: Induce a daemon crash/exit if sender skips a message sequence number default: false + with_legacy: true - name: ms_die_on_bug type: bool level: dev desc: Induce a crash/exit on various bugs (for testing purposes) default: false + with_legacy: true - name: ms_dispatch_throttle_bytes type: size level: advanced desc: Limit messages that are read off the network but still being processed default: 100_M + with_legacy: true - name: ms_bind_exclude_lo_iface type: bool level: advanced @@ -1020,6 +1119,7 @@ options: default: false see_also: - ms_bind_ipv4 + with_legacy: true - name: ms_bind_prefer_ipv4 type: bool level: advanced @@ -1044,106 +1144,129 @@ options: level: advanced desc: Lowest port number to bind daemon(s) to default: 6800 + with_legacy: true - name: ms_bind_port_max type: int level: advanced desc: Highest port number to bind daemon(s) to default: 7300 + with_legacy: true # FreeBSD does not use SO_REAUSEADDR so allow for a bit more time per default - name: ms_bind_retry_count type: int level: advanced desc: Number of attempts to make while bind(2)ing to a port default: @ms_bind_retry_count@ + with_legacy: true # FreeBSD does not use SO_REAUSEADDR so allow for a bit more time per default - name: ms_bind_retry_delay type: int level: advanced desc: Delay between bind(2) attempts (seconds) default: @ms_bind_retry_delay@ + with_legacy: true - name: ms_bind_before_connect type: bool level: advanced desc: Call bind(2) on client sockets default: false + with_legacy: true - name: ms_tcp_listen_backlog type: int level: advanced desc: Size of queue of incoming connections for accept(2) default: 512 + with_legacy: true - name: ms_connection_ready_timeout type: uint level: advanced desc: Time before we declare a not yet ready connection as dead (seconds) default: 10 + with_legacy: true - name: ms_connection_idle_timeout type: uint level: advanced desc: Time before an idle connection is closed (seconds) default: 900 + with_legacy: true - name: ms_pq_max_tokens_per_priority type: uint level: dev default: 16_M + with_legacy: true - name: ms_pq_min_cost type: size level: dev default: 64_K + with_legacy: true - name: ms_inject_socket_failures type: uint level: dev desc: Inject a socket failure every Nth socket operation default: 0 + with_legacy: true - name: ms_inject_delay_type type: str level: dev desc: Entity type to inject delays for flags: - runtime + with_legacy: true - name: ms_inject_delay_max type: float level: dev desc: Max delay to inject default: 1 + with_legacy: true - name: ms_inject_delay_probability type: float level: dev default: 0 + with_legacy: true - name: ms_inject_internal_delays type: float level: dev desc: Inject various internal delays to induce races (seconds) default: 0 + with_legacy: true - name: ms_blackhole_osd type: bool level: dev default: false + with_legacy: true - name: ms_blackhole_mon type: bool level: dev default: false + with_legacy: true - name: ms_blackhole_mds type: bool level: dev default: false + with_legacy: true - name: ms_blackhole_mgr type: bool level: dev default: false + with_legacy: true - name: ms_blackhole_client type: bool level: dev default: false + with_legacy: true - name: ms_dump_on_send type: bool level: advanced desc: Hexdump message to debug log on message send default: false + with_legacy: true - name: ms_dump_corrupt_message_level type: int level: advanced desc: Log level at which to hexdump corrupt messages we receive default: 1 + with_legacy: true +# number of worker processing threads for async messenger created on init - name: ms_async_op_threads type: uint level: advanced @@ -1151,129 +1274,173 @@ options: default: 3 min: 1 max: 24 + with_legacy: true - name: ms_async_rdma_device_name type: str level: advanced + with_legacy: true - name: ms_async_rdma_enable_hugepage type: bool level: advanced default: false + with_legacy: true - name: ms_async_rdma_buffer_size type: size level: advanced default: 128_K + with_legacy: true - name: ms_async_rdma_send_buffers type: uint level: advanced default: 1_K + with_legacy: true +# size of the receive buffer pool, 0 is unlimited - name: ms_async_rdma_receive_buffers type: uint level: advanced default: 32_K + with_legacy: true +# max number of wr in srq - name: ms_async_rdma_receive_queue_len type: uint level: advanced default: 4_K + with_legacy: true +# support srq - name: ms_async_rdma_support_srq type: bool level: advanced default: true + with_legacy: true - name: ms_async_rdma_port_num type: uint level: advanced default: 1 + with_legacy: true - name: ms_async_rdma_polling_us type: uint level: advanced default: 1000 + with_legacy: true - name: ms_async_rdma_gid_idx type: int level: advanced desc: use gid_idx to select GID for choosing RoCEv1 or RoCEv2 default: 0 + with_legacy: true +# GID format: "fe80:0000:0000:0000:7efe:90ff:fe72:6efe", no zero folding - name: ms_async_rdma_local_gid type: str level: advanced + with_legacy: true +# 0=RoCEv1, 1=RoCEv2, 2=RoCEv1.5 - name: ms_async_rdma_roce_ver type: int level: advanced default: 1 + with_legacy: true +# in RoCE, this means PCP - name: ms_async_rdma_sl type: int level: advanced default: 3 + with_legacy: true +# in RoCE, this means DSCP - name: ms_async_rdma_dscp type: int level: advanced default: 96 + with_legacy: true +# when there are enough accept failures, indicating there are unrecoverable failures, +# just do ceph_abort() . Here we make it configurable. - name: ms_max_accept_failures type: int level: advanced desc: The maximum number of consecutive failed accept() calls before considering the daemon is misconfigured and abort it. default: 4 + with_legacy: true +# rdma connection management - name: ms_async_rdma_cm type: bool level: advanced default: false + with_legacy: true - name: ms_async_rdma_type type: str level: advanced default: ib + with_legacy: true - name: ms_dpdk_port_id type: int level: advanced default: 0 + with_legacy: true +# it is modified in unittest so that use SAFE_OPTION to declare - name: ms_dpdk_coremask type: str level: advanced default: '0xF' see_also: - ms_async_op_threads + with_legacy: true - name: ms_dpdk_memory_channel type: str level: advanced default: '4' + with_legacy: true - name: ms_dpdk_hugepages type: str level: advanced + with_legacy: true - name: ms_dpdk_pmd type: str level: advanced + with_legacy: true - name: ms_dpdk_host_ipv4_addr type: str level: advanced + with_legacy: true - name: ms_dpdk_gateway_ipv4_addr type: str level: advanced + with_legacy: true - name: ms_dpdk_netmask_ipv4_addr type: str level: advanced + with_legacy: true - name: ms_dpdk_lro type: bool level: advanced default: true + with_legacy: true - name: ms_dpdk_hw_flow_control type: bool level: advanced default: true + with_legacy: true +# Weighing of a hardware network queue relative to a software queue (0=no work, 1= equal share)") - name: ms_dpdk_hw_queue_weight type: float level: advanced default: 1 + with_legacy: true - name: ms_dpdk_debug_allow_loopback type: bool level: dev default: false + with_legacy: true - name: ms_dpdk_rx_buffer_count_per_core type: int level: advanced default: 8192 + with_legacy: true - name: inject_early_sigterm type: bool level: dev desc: send ourselves a SIGTERM early during startup default: false + with_legacy: true - name: mon_enable_op_tracker type: bool level: advanced @@ -1332,6 +1499,8 @@ options: - mon flags: - no_mon_update + with_legacy: true +# list of initial cluster mon ids; if specified, need majority to form initial quorum and create new cluster - name: mon_initial_members type: str level: advanced @@ -1340,24 +1509,31 @@ options: flags: - no_mon_update - cluster_create + with_legacy: true +# compact leveldb on ceph-mon start - name: mon_compact_on_start type: bool level: advanced default: false services: - mon + with_legacy: true +# trigger leveldb compaction on bootstrap - name: mon_compact_on_bootstrap type: bool level: advanced default: false services: - mon + with_legacy: true +# compact (a prefix) when we trim old states - name: mon_compact_on_trim type: bool level: advanced default: true services: - mon + with_legacy: true - name: mon_osdmap_full_prune_enabled type: bool level: advanced @@ -1410,6 +1586,7 @@ options: default: 500 services: - mon + with_legacy: true - name: mon_osd_cache_size_min type: size level: advanced @@ -1417,6 +1594,7 @@ options: default: 128_M services: - mon + with_legacy: true - name: mon_memory_target type: size level: basic @@ -1427,6 +1605,7 @@ options: - mon flags: - runtime + with_legacy: true - name: mon_memory_autotune type: bool level: basic @@ -1436,6 +1615,7 @@ options: - mon flags: - runtime + with_legacy: true - name: mon_cpu_threads type: int level: advanced @@ -1443,6 +1623,7 @@ options: default: 4 services: - mon + with_legacy: true - name: mon_osd_mapping_pgs_per_chunk type: int level: dev @@ -1450,6 +1631,7 @@ options: default: 4096 services: - mon + with_legacy: true - name: mon_clean_pg_upmaps_per_chunk type: uint level: dev @@ -1457,6 +1639,7 @@ options: default: 256 services: - mon + with_legacy: true - name: mon_osd_max_creating_pgs type: int level: advanced @@ -1464,6 +1647,7 @@ options: default: 1024 services: - mon + with_legacy: true - name: mon_osd_max_initial_pgs type: int level: advanced @@ -1480,6 +1664,7 @@ options: default: 5 services: - mon + with_legacy: true - name: mon_session_timeout type: int level: advanced @@ -1487,6 +1672,7 @@ options: default: 5_min services: - mon + with_legacy: true - name: mon_subscribe_interval type: float level: dev @@ -1494,6 +1680,7 @@ options: default: 1_day services: - mon + with_legacy: true - name: mon_delta_reset_interval type: float level: advanced @@ -1502,6 +1689,7 @@ options: services: - mon - mon + with_legacy: true - name: mon_osd_laggy_halflife type: int level: advanced @@ -1509,6 +1697,7 @@ options: default: 1_hr services: - mon + with_legacy: true - name: mon_osd_laggy_weight type: float level: advanced @@ -1521,6 +1710,7 @@ options: - mon min: 0 max: 1 + with_legacy: true - name: mon_osd_laggy_max_interval type: int level: advanced @@ -1528,6 +1718,7 @@ options: default: 5_min services: - mon + with_legacy: true - name: mon_osd_adjust_heartbeat_grace type: bool level: advanced @@ -1546,6 +1737,7 @@ options: - mon_osd_laggy_halflife - mon_osd_laggy_weight - mon_osd_laggy_max_interval + with_legacy: true - name: mon_osd_adjust_down_out_interval type: bool level: advanced @@ -1555,6 +1747,7 @@ options: - mon see_also: - mon_osd_adjust_heartbeat_grace + with_legacy: true - name: mon_osd_auto_mark_in type: bool level: advanced @@ -1562,6 +1755,7 @@ options: default: false services: - mon + with_legacy: true - name: mon_osd_auto_mark_auto_out_in type: bool level: advanced @@ -1571,6 +1765,7 @@ options: - mon see_also: - mon_osd_down_out_interval + with_legacy: true - name: mon_osd_auto_mark_new_in type: bool level: advanced @@ -1578,6 +1773,7 @@ options: default: true services: - mon + with_legacy: true - name: mon_osd_destroyed_out_interval type: int level: advanced @@ -1585,6 +1781,7 @@ options: default: 10_min services: - mon + with_legacy: true - name: mon_osd_down_out_interval type: int level: advanced @@ -1592,6 +1789,7 @@ options: default: 10_min services: - mon + with_legacy: true - name: mon_osd_down_out_subtree_limit type: str level: advanced @@ -1613,6 +1811,7 @@ options: - mon see_also: - mon_osd_down_out_interval + with_legacy: true - name: mon_osd_min_in_ratio type: float level: advanced @@ -1622,6 +1821,7 @@ options: - mon see_also: - mon_osd_down_out_interval + with_legacy: true - name: mon_osd_warn_op_age type: float level: advanced @@ -1629,6 +1829,7 @@ options: default: 32 services: - mgr + with_legacy: true - name: mon_osd_warn_num_repaired type: uint level: advanced @@ -1644,6 +1845,7 @@ options: default: 128 services: - mgr + with_legacy: true - name: mon_osd_prime_pg_temp type: bool level: dev @@ -1651,6 +1853,7 @@ options: default: true services: - mon + with_legacy: true - name: mon_osd_prime_pg_temp_max_time type: float level: dev @@ -1658,6 +1861,7 @@ options: default: 0.5 services: - mon + with_legacy: true - name: mon_osd_prime_pg_temp_max_estimate type: float level: advanced @@ -1666,6 +1870,7 @@ options: default: 0.25 services: - mon + with_legacy: true - name: mon_stat_smooth_intervals type: uint level: advanced @@ -1682,6 +1887,7 @@ options: default: 5 services: - mon + with_legacy: true - name: mon_election_default_strategy type: uint level: advanced @@ -1698,6 +1904,7 @@ options: default: 5 services: - mon + with_legacy: true - name: mon_lease_renew_interval_factor type: float level: advanced @@ -1711,6 +1918,7 @@ options: - mon_lease min: 0 max: 0.9999999 + with_legacy: true - name: mon_lease_ack_timeout_factor type: float level: advanced @@ -1722,6 +1930,7 @@ options: - mon_lease min: 1.0001 max: 100 + with_legacy: true - name: mon_accept_timeout_factor type: float level: advanced @@ -1732,6 +1941,7 @@ options: - mon see_also: - mon_lease + with_legacy: true - name: mon_elector_ping_timeout type: float level: advanced @@ -1823,6 +2033,8 @@ options: default: 0.05 services: - mon + with_legacy: true +# exponential backoff for clock drift warnings - name: mon_clock_drift_warn_backoff type: float level: advanced @@ -1831,6 +2043,8 @@ options: default: 5 services: - mon + with_legacy: true +# on leader, timecheck (clock drift check) interval (seconds) - name: mon_timecheck_interval type: float level: advanced @@ -1838,6 +2052,8 @@ options: default: 5_min services: - mon + with_legacy: true +# on leader, timecheck (clock drift check) interval when in presence of a skew (seconds) - name: mon_timecheck_skew_interval type: float level: advanced @@ -1848,6 +2064,7 @@ options: - mon see_also: - mon_timecheck_interval + with_legacy: true - name: mon_pg_stuck_threshold type: int level: advanced @@ -1914,6 +2131,7 @@ options: default: 0.5 services: - mgr + with_legacy: true - name: mon_cache_target_full_warn_ratio type: float level: advanced @@ -1925,6 +2143,7 @@ options: flags: - no_mon_update - cluster_create + with_legacy: true - name: mon_osd_full_ratio type: float level: advanced @@ -1933,6 +2152,7 @@ options: flags: - no_mon_update - cluster_create + with_legacy: true - name: mon_osd_backfillfull_ratio type: float level: advanced @@ -1940,6 +2160,7 @@ options: flags: - no_mon_update - cluster_create + with_legacy: true - name: mon_osd_nearfull_ratio type: float level: advanced @@ -1948,6 +2169,7 @@ options: flags: - no_mon_update - cluster_create + with_legacy: true - name: mon_osd_initial_require_min_compat_client type: str level: advanced @@ -1955,6 +2177,7 @@ options: flags: - no_mon_update - cluster_create + with_legacy: true - name: mon_allow_pool_delete type: bool level: advanced @@ -1962,6 +2185,7 @@ options: default: false services: - mon + with_legacy: true - name: mon_fake_pool_delete type: bool level: advanced @@ -1969,6 +2193,7 @@ options: default: false services: - mon + with_legacy: true - name: mon_globalid_prealloc type: uint level: advanced @@ -1979,6 +2204,7 @@ options: default: 10000 services: - mon + with_legacy: true - name: mon_osd_report_timeout type: int level: advanced @@ -1986,6 +2212,7 @@ options: default: 15_min services: - mon + with_legacy: true - name: mon_warn_on_insecure_global_id_reclaim type: bool level: advanced @@ -2029,6 +2256,7 @@ options: - mgr see_also: - mon_crush_min_required_version + with_legacy: true - name: mon_crush_min_required_version type: str level: advanced @@ -2038,6 +2266,7 @@ options: - mgr see_also: - mon_warn_on_legacy_crush_tunables + with_legacy: true - name: mon_warn_on_crush_straw_calc_version_zero type: bool level: advanced @@ -2046,6 +2275,7 @@ options: default: true services: - mgr + with_legacy: true - name: mon_warn_on_osd_down_out_interval_zero type: bool level: advanced @@ -2059,6 +2289,7 @@ options: - mgr see_also: - mon_osd_down_out_interval + with_legacy: true - name: mon_warn_on_cache_pools_without_hit_sets type: bool level: advanced @@ -2067,6 +2298,7 @@ options: default: true services: - mgr + with_legacy: true - name: mon_warn_on_pool_no_app type: bool level: dev @@ -2106,6 +2338,7 @@ options: default: false services: - mgr + with_legacy: true - name: mon_warn_on_too_few_osds type: bool level: advanced @@ -2146,6 +2379,7 @@ options: default: 500 services: - mon + with_legacy: true - name: mon_max_log_epochs type: int level: advanced @@ -2153,6 +2387,7 @@ options: default: 500 services: - mon + with_legacy: true - name: mon_max_mdsmap_epochs type: int level: advanced @@ -2160,6 +2395,7 @@ options: default: 500 services: - mon + with_legacy: true - name: mon_max_mgrmap_epochs type: int level: advanced @@ -2174,6 +2410,7 @@ options: default: 10000 services: - mon + with_legacy: true - name: mon_probe_timeout type: float level: advanced @@ -2181,6 +2418,7 @@ options: default: 2 services: - mon + with_legacy: true - name: mon_client_bytes type: size level: advanced @@ -2188,6 +2426,7 @@ options: default: 100_M services: - mon + with_legacy: true - name: mon_daemon_bytes type: size level: advanced @@ -2195,6 +2434,7 @@ options: default: 400_M services: - mon + with_legacy: true - name: mon_mgr_proxy_client_bytes_ratio type: float level: dev @@ -2210,6 +2450,7 @@ options: default: 50 services: - mon + with_legacy: true - name: mon_max_log_entries_per_event type: int level: advanced @@ -2217,30 +2458,38 @@ options: default: 4096 services: - mon + with_legacy: true +# min pgs per osd for reweight-by-pg command - name: mon_reweight_min_pgs_per_osd type: uint level: advanced default: 10 services: - mgr + with_legacy: true +# min bytes per osd for reweight-by-utilization command - name: mon_reweight_min_bytes_per_osd type: size level: advanced default: 100_M services: - mgr + with_legacy: true +# max osds to change per reweight-by-* command - name: mon_reweight_max_osds type: int level: advanced default: 4 services: - mgr + with_legacy: true - name: mon_reweight_max_change type: float level: advanced default: 0.05 services: - mgr + with_legacy: true - name: mon_health_to_clog type: bool level: advanced @@ -2248,6 +2497,7 @@ options: default: true services: - mon + with_legacy: true - name: mon_health_to_clog_interval type: int level: advanced @@ -2257,17 +2507,20 @@ options: - mon see_also: - mon_health_to_clog + with_legacy: true - name: mon_health_to_clog_tick_interval type: float level: dev default: 1_min services: - mon + with_legacy: true - name: mon_health_detail_to_clog type: bool level: dev desc: log health detail to cluster log default: true + with_legacy: true - name: mon_health_max_detail type: uint level: advanced @@ -2290,6 +2543,7 @@ options: default: 5 services: - mon + with_legacy: true - name: mon_data_avail_warn type: int level: advanced @@ -2297,6 +2551,7 @@ options: default: 30 services: - mon + with_legacy: true - name: mon_data_size_warn type: size level: advanced @@ -2304,6 +2559,7 @@ options: default: 15_G services: - mon + with_legacy: true - name: mon_warn_pg_not_scrubbed_ratio type: float level: advanced @@ -2312,6 +2568,7 @@ options: see_also: - osd_scrub_max_interval min: 0 + with_legacy: true - name: mon_warn_pg_not_deep_scrubbed_ratio type: float level: advanced @@ -2320,6 +2577,7 @@ options: see_also: - osd_deep_scrub_interval min: 0 + with_legacy: true - name: mon_scrub_interval type: secs level: advanced @@ -2335,6 +2593,7 @@ options: default: 5_min services: - mon + with_legacy: true - name: mon_scrub_max_keys type: int level: advanced @@ -2342,6 +2601,8 @@ options: default: 100 services: - mon + with_legacy: true +# probability of injected crc mismatch [0.0, 1.0] - name: mon_scrub_inject_crc_mismatch type: float level: dev @@ -2349,6 +2610,8 @@ options: default: 0 services: - mon + with_legacy: true +# probability of injected missing keys [0.0, 1.0] - name: mon_scrub_inject_missing_keys type: float level: dev @@ -2356,6 +2619,7 @@ options: default: 0 services: - mon + with_legacy: true - name: mon_config_key_max_entry_size type: size level: advanced @@ -2363,6 +2627,7 @@ options: default: 64_K services: - mon + with_legacy: true - name: mon_sync_timeout type: float level: advanced @@ -2370,6 +2635,7 @@ options: default: 1_min services: - mon + with_legacy: true - name: mon_sync_max_payload_size type: size level: advanced @@ -2377,6 +2643,7 @@ options: default: 1_M services: - mon + with_legacy: true - name: mon_sync_max_payload_keys type: int level: advanced @@ -2384,6 +2651,7 @@ options: default: 2000 services: - mon + with_legacy: true - name: mon_sync_debug type: bool level: dev @@ -2391,6 +2659,7 @@ options: default: false services: - mon + with_legacy: true - name: mon_inject_sync_get_chunk_delay type: float level: dev @@ -2398,6 +2667,7 @@ options: default: 0 services: - mon + with_legacy: true - name: mon_osd_min_down_reporters type: uint level: advanced @@ -2426,6 +2696,8 @@ options: default: 32768 services: - mon + with_legacy: true +# force mon to trim maps to this point, regardless of min_last_epoch_clean (dangerous) - name: mon_osd_force_trim_to type: int level: dev @@ -2433,6 +2705,8 @@ options: default: 0 services: - mon + with_legacy: true +# force mon to trim mdsmaps to this point (dangerous) - name: mon_mds_force_trim_to type: int level: dev @@ -2440,6 +2714,8 @@ options: default: 0 services: - mon + with_legacy: true +# skip safety assertions on FSMap (in case of bugs where we want to continue anyway) - name: mon_mds_skip_sanity type: bool level: advanced @@ -2447,6 +2723,7 @@ options: default: false services: - mon + with_legacy: true - name: mon_debug_extra_checks type: bool level: dev @@ -2472,6 +2749,7 @@ options: default: false services: - mon + with_legacy: true - name: mon_debug_dump_transactions type: bool level: dev @@ -2481,6 +2759,7 @@ options: - mon see_also: - mon_debug_dump_location + with_legacy: true - name: mon_debug_dump_json type: bool level: dev @@ -2490,6 +2769,7 @@ options: - mon see_also: - mon_debug_dump_transactions + with_legacy: true - name: mon_debug_dump_location type: str level: dev @@ -2499,6 +2779,7 @@ options: - mon see_also: - mon_debug_dump_transactions + with_legacy: true - name: mon_debug_no_require_pacific type: bool level: dev @@ -2524,6 +2805,7 @@ options: default: false services: - mon + with_legacy: true - name: mon_debug_no_initial_persistent_features type: bool level: dev @@ -2533,6 +2815,7 @@ options: - mon flags: - cluster_create + with_legacy: true - name: mon_inject_transaction_delay_max type: float level: dev @@ -2540,6 +2823,8 @@ options: default: 10 services: - mon + with_legacy: true +# range [0, 1] - name: mon_inject_transaction_delay_probability type: float level: dev @@ -2547,6 +2832,7 @@ options: default: 0 services: - mon + with_legacy: true - name: mon_inject_pg_merge_bounce_probability type: float level: dev @@ -2554,6 +2840,7 @@ options: default: 0 services: - mon +# kill the sync provider at a specific point in the work flow - name: mon_sync_provider_kill_at type: int level: dev @@ -2561,6 +2848,8 @@ options: default: 0 services: - mon + with_legacy: true +# kill the sync requester at a specific point in the work flow - name: mon_sync_requester_kill_at type: int level: dev @@ -2568,6 +2857,8 @@ options: default: 0 services: - mon + with_legacy: true +# force monitor to join quorum even if it has been previously removed from the map - name: mon_force_quorum_join type: bool level: advanced @@ -2575,6 +2866,8 @@ options: default: false services: - mon + with_legacy: true +# type of keyvaluedb backend - name: mon_keyvaluedb type: str level: advanced @@ -2587,12 +2880,15 @@ options: - rocksdb flags: - create + with_legacy: true +# UNSAFE -- TESTING ONLY! Allows addition of a cache tier with preexisting snaps - name: mon_debug_unsafe_allow_tier_with_nonempty_snaps type: bool level: dev default: false services: - mon + with_legacy: true - name: mon_osd_blocklist_default_expire type: float level: advanced @@ -2600,6 +2896,7 @@ options: default: 1_hr services: - mon + with_legacy: true - name: mon_mds_blocklist_interval type: float level: dev @@ -2629,6 +2926,7 @@ options: default: true services: - mon + with_legacy: true - name: mon_smart_report_timeout type: uint level: advanced @@ -2662,60 +2960,78 @@ options: default: 7_day services: - mon +# how often (in commits) to stash a full copy of the PaxosService state - name: paxos_stash_full_interval type: int level: advanced default: 25 services: - mon + with_legacy: true +# max paxos iterations before we must first sync the monitor stores - name: paxos_max_join_drift type: int level: advanced default: 10 services: - mon + with_legacy: true +# gather updates for this long before proposing a map update - name: paxos_propose_interval type: float level: advanced default: 1 services: - mon + with_legacy: true +# min time to gather updates for after period of inactivity - name: paxos_min_wait type: float level: advanced default: 0.05 services: - mon + with_legacy: true +# minimum number of paxos states to keep around - name: paxos_min type: int level: advanced default: 500 services: - mon + with_legacy: true +# number of extra proposals tolerated before trimming - name: paxos_trim_min type: int level: advanced default: 250 services: - mon + with_legacy: true +# maximum amount of versions to trim during a single proposal (0 disables it) - name: paxos_trim_max type: int level: advanced default: 500 services: - mon + with_legacy: true +# minimum amount of versions to trigger a trim (0 disables it) - name: paxos_service_trim_min type: uint level: advanced default: 250 services: - mon + with_legacy: true +# maximum amount of versions to trim during a single proposal (0 disables it) - name: paxos_service_trim_max type: uint level: advanced default: 500 services: - mon + with_legacy: true - name: paxos_service_trim_max_multiplier type: uint level: advanced @@ -2733,30 +3049,40 @@ options: default: 0 services: - mon + with_legacy: true +# required of mon, mds, osd daemons - name: auth_cluster_required type: str level: advanced desc: authentication methods required by the cluster default: cephx + with_legacy: true +# required by daemons of clients - name: auth_service_required type: str level: advanced desc: authentication methods required by service daemons default: cephx + with_legacy: true +# what clients require of daemons - name: auth_client_required type: str level: advanced desc: authentication methods allowed by clients default: cephx, none + with_legacy: true +# deprecated; default value for above if they are not defined. - name: auth_supported type: str level: advanced desc: authentication methods required (deprecated) + with_legacy: true - name: max_rotating_auth_attempts type: int level: advanced desc: number of attempts to initialize rotating keys before giving up default: 10 + with_legacy: true - name: rotating_keys_bootstrap_timeout type: int level: advanced @@ -2771,41 +3097,52 @@ options: type: bool level: advanced default: false + with_legacy: true - name: cephx_require_version type: int level: advanced desc: Cephx version required (1 = pre-mimic, 2 = mimic+) default: 2 + with_legacy: true - name: cephx_cluster_require_signatures type: bool level: advanced default: false + with_legacy: true - name: cephx_cluster_require_version type: int level: advanced desc: Cephx version required by the cluster from clients (1 = pre-mimic, 2 = mimic+) default: 2 + with_legacy: true - name: cephx_service_require_signatures type: bool level: advanced default: false + with_legacy: true - name: cephx_service_require_version type: int level: advanced desc: Cephx version required from ceph services (1 = pre-mimic, 2 = mimic+) default: 2 + with_legacy: true +# Default to signing session messages if supported - name: cephx_sign_messages type: bool level: advanced default: true + with_legacy: true - name: auth_mon_ticket_ttl type: float level: advanced default: 72_hr + default: 12_hr + with_legacy: true - name: auth_service_ticket_ttl type: float level: advanced default: 1_hr + with_legacy: true - name: auth_allow_insecure_global_id_reclaim type: bool level: advanced @@ -2824,6 +3161,7 @@ options: - mon_warn_on_insecure_global_id_reclaim - mon_warn_on_insecure_global_id_reclaim_allowed - auth_expose_insecure_global_id_reclaim + with_legacy: true - name: auth_expose_insecure_global_id_reclaim type: bool level: advanced @@ -2839,52 +3177,70 @@ options: - mon_warn_on_insecure_global_id_reclaim - mon_warn_on_insecure_global_id_reclaim_allowed - auth_allow_insecure_global_id_reclaim + with_legacy: true +# if true, assert when weird things happen - name: auth_debug type: bool level: dev default: false + with_legacy: true +# how many mons to try to connect to in parallel during hunt - name: mon_client_hunt_parallel type: uint level: advanced default: 3 + with_legacy: true +# try new mon every N seconds until we connect - name: mon_client_hunt_interval type: float level: advanced default: 3 + with_legacy: true +# send logs every N seconds - name: mon_client_log_interval type: float level: advanced desc: How frequently we send queued cluster log messages to mon default: 1 + with_legacy: true +# ping every N seconds - name: mon_client_ping_interval type: float level: advanced default: 10 + with_legacy: true +# fail if we don't hear back - name: mon_client_ping_timeout type: float level: advanced default: 30 + with_legacy: true - name: mon_client_hunt_interval_backoff type: float level: advanced default: 1.5 + with_legacy: true - name: mon_client_hunt_interval_min_multiple type: float level: advanced default: 1 + with_legacy: true - name: mon_client_hunt_interval_max_multiple type: float level: advanced default: 10 + with_legacy: true - name: mon_client_max_log_entries_per_message type: int level: advanced default: 1000 + with_legacy: true - name: mon_client_directed_command_retry type: int level: dev desc: Number of times to try sending a command directed at a specific monitor default: 2 + with_legacy: true - name: mon_max_pool_pg_num type: uint level: advanced @@ -2903,63 +3259,81 @@ options: default: 0 services: - mgr +# whitespace-separated list of key=value pairs describing crush location - name: crush_location type: str level: advanced + with_legacy: true - name: crush_location_hook type: str level: advanced + with_legacy: true - name: crush_location_hook_timeout type: int level: advanced default: 10 + with_legacy: true - name: objecter_tick_interval type: float level: dev default: 5 + with_legacy: true +# before we ask for a map - name: objecter_timeout type: float level: advanced desc: Seconds before in-flight op is considered 'laggy' and we query mon for the latest OSDMap default: 10 + with_legacy: true - name: objecter_inflight_op_bytes type: size level: advanced desc: Max in-flight data in bytes (both directions) default: 100_M + with_legacy: true - name: objecter_inflight_ops type: uint level: advanced desc: Max in-flight operations default: 1_K + with_legacy: true +# num of completion locks per each session, for serializing same object responses - name: objecter_completion_locks_per_session type: uint level: dev default: 32 + with_legacy: true +# suppress watch pings - name: objecter_inject_no_watch_ping type: bool level: dev default: false + with_legacy: true +# ignore the first reply for each write, and resend the osd op instead - name: objecter_retry_writes_after_first_reply type: bool level: dev default: false + with_legacy: true - name: objecter_debug_inject_relock_delay type: bool level: dev default: false + with_legacy: true - name: filer_max_purge_ops type: uint level: advanced desc: Max in-flight operations for purging a striped range (e.g., MDS journal) default: 10 + with_legacy: true - name: filer_max_truncate_ops type: uint level: advanced desc: Max in-flight operations for truncating/deleting a striped sequence (e.g., MDS journal) default: 128 + with_legacy: true - name: journaler_write_head_interval type: int level: advanced @@ -3028,21 +3402,25 @@ options: level: advanced desc: Timeout (in seconds) for smarctl to run, default is set to 5 default: 5 +# verify backend can support configured max object name length - name: osd_check_max_object_name_len_on_startup type: bool level: dev default: true + with_legacy: true - name: osd_max_backfills type: uint level: advanced - desc: 'Maximum number of concurrent local and remote backfills or recoveries per - OSD ' + desc: Maximum number of concurrent local and remote backfills or recoveries per + OSD long_desc: There can be osd_max_backfills local reservations AND the same remote reservations per OSD. So a value of 1 lets this OSD participate as 1 PG primary in recovery and 1 shard of another recovering PG. default: 1 flags: - runtime + with_legacy: true +# Minimum recovery priority (255 = max, smaller = lower) - name: osd_min_recovery_priority type: int level: advanced @@ -3051,28 +3429,33 @@ options: work (e.g., rebalancing) below this threshold and focus solely on higher priority work (e.g., replicating degraded objects). default: 0 + with_legacy: true - name: osd_backfill_retry_interval type: float level: advanced desc: how frequently to retry backfill reservations after being denied (e.g., due to a full OSD) default: 30 + with_legacy: true - name: osd_recovery_retry_interval type: float level: advanced desc: how frequently to retry recovery reservations after being denied (e.g., due to a full OSD) default: 30 + with_legacy: true - name: osd_agent_max_ops type: int level: advanced desc: maximum concurrent tiering operations for tiering agent default: 4 + with_legacy: true - name: osd_agent_max_low_ops type: int level: advanced desc: maximum concurrent low-priority tiering operations for tiering agent default: 2 + with_legacy: true - name: osd_agent_min_evict_effort type: float level: advanced @@ -3080,16 +3463,19 @@ options: default: 0.1 min: 0 max: 0.99 + with_legacy: true - name: osd_agent_quantize_effort type: float level: advanced desc: size of quantize unit for eviction effort default: 0.1 + with_legacy: true - name: osd_agent_delay_time type: float level: advanced desc: how long agent should sleep if it has no work to do default: 5 + with_legacy: true - name: osd_find_best_info_ignore_history_les type: bool level: dev @@ -3100,22 +3486,28 @@ options: of a PG's contents even when it is in fact old and stale, typically leading to data loss (by believing a stale PG is up to date). default: false + with_legacy: true +# decay atime and hist histograms after how many objects go by - name: osd_agent_hist_halflife type: int level: advanced desc: halflife of agent atime and temp histograms default: 1000 + with_legacy: true +# decay atime and hist histograms after how many objects go by - name: osd_agent_slop type: float level: advanced desc: slop factor to avoid switching tiering flush and eviction mode default: 0.02 + with_legacy: true - name: osd_uuid type: uuid level: advanced desc: uuid label for a new OSD flags: - create + with_legacy: true - name: osd_data type: str level: advanced @@ -3123,6 +3515,7 @@ options: default: /var/lib/ceph/osd/$cluster-$id flags: - no_mon_update + with_legacy: true - name: osd_journal type: str level: advanced @@ -3130,6 +3523,7 @@ options: default: /var/lib/ceph/osd/$cluster-$id/journal flags: - no_mon_update + with_legacy: true - name: osd_journal_size type: size level: advanced @@ -3137,16 +3531,23 @@ options: default: 5_K flags: - create + with_legacy: true - name: osd_journal_flush_on_shutdown type: bool level: advanced desc: flush FileStore journal contents during clean OSD shutdown default: true + with_legacy: true - name: osd_compact_on_start type: bool level: advanced desc: compact OSD's object store's OMAP on start default: false +# flags for specific control purpose during osd mount() process. +# e.g., can be 1 to skip over replaying journal +# or 2 to skip over mounting omap or 3 to skip over both. +# This might be helpful in case the journal is totally corrupted +# and we still want to bring the osd daemon back normally, etc. - name: osd_os_flags type: uint level: dev @@ -3161,11 +3562,13 @@ options: when attempting to write to the cluster. default: 90 min: 4 + with_legacy: true - name: osd_max_pgls type: uint level: advanced desc: maximum number of results when listing objects in a pool default: 1_K + with_legacy: true - name: osd_client_message_size_cap type: size level: advanced @@ -3173,11 +3576,13 @@ options: long_desc: If this value is exceeded, the OSD will not read any new client data off of the network until memory is freed. default: 500_M + with_legacy: true - name: osd_client_message_cap type: uint level: advanced desc: maximum number of in-flight client requests default: 0 + with_legacy: true - name: osd_crush_update_weight_set type: bool level: advanced @@ -3188,6 +3593,8 @@ options: will leave it to the balancer to (slowly, presumably) adjust weights to approach the new target value. default: true + with_legacy: true +# 1 = host - name: osd_crush_chooseleaf_type type: int level: dev @@ -3195,28 +3602,35 @@ options: default: 1 flags: - cluster_create + with_legacy: true +# try to use gmt for hitset archive names if all osds in cluster support it - name: osd_pool_use_gmt_hitset type: bool level: dev desc: use UTC for hitset timestamps long_desc: This setting only exists for compatibility with hammer (and older) clusters. default: true + with_legacy: true - name: osd_crush_update_on_start type: bool level: advanced desc: update OSD CRUSH location on startup default: true + with_legacy: true - name: osd_class_update_on_start type: bool level: advanced desc: set OSD device class on startup default: true + with_legacy: true - name: osd_crush_initial_weight type: float level: advanced desc: if >= 0, initial CRUSH weight for newly created OSDs long_desc: If this value is negative, the size of the OSD in TiB is used. default: -1 + with_legacy: true +# whether turn on fast read on the pool or not - name: osd_pool_default_ec_fast_read type: bool level: advanced @@ -3224,6 +3638,7 @@ options: default: false services: - mon + with_legacy: true - name: osd_pool_default_crush_rule type: int level: advanced @@ -3315,6 +3730,8 @@ options: - osd flags: - startup + with_legacy: true +# Allows the "peered" state for recovery and backfill below min_size - name: osd_allow_recovery_below_min_size type: bool level: dev @@ -3322,6 +3739,7 @@ options: default: true services: - osd + with_legacy: true - name: osd_pool_default_flags type: int level: dev @@ -3329,6 +3747,8 @@ options: default: 0 services: - mon + with_legacy: true +# use new pg hashing to prevent pool/pg overlap - name: osd_pool_default_flag_hashpspool type: bool level: advanced @@ -3336,6 +3756,8 @@ options: default: true services: - mon + with_legacy: true +# pool can't be deleted - name: osd_pool_default_flag_nodelete type: bool level: advanced @@ -3343,6 +3765,8 @@ options: default: false services: - mon + with_legacy: true +# pool's pg and pgp num can't be changed - name: osd_pool_default_flag_nopgchange type: bool level: advanced @@ -3350,6 +3774,8 @@ options: default: false services: - mon + with_legacy: true +# pool's size and min size can't be changed - name: osd_pool_default_flag_nosizechange type: bool level: advanced @@ -3357,6 +3783,7 @@ options: default: false services: - mon + with_legacy: true - name: osd_pool_default_hit_set_bloom_fpp type: float level: advanced @@ -3365,30 +3792,40 @@ options: - mon see_also: - osd_tier_default_cache_hit_set_type + with_legacy: true - name: osd_pool_default_cache_target_dirty_ratio type: float level: advanced default: 0.4 + with_legacy: true - name: osd_pool_default_cache_target_dirty_high_ratio type: float level: advanced default: 0.6 + with_legacy: true - name: osd_pool_default_cache_target_full_ratio type: float level: advanced default: 0.8 + with_legacy: true +# seconds - name: osd_pool_default_cache_min_flush_age type: int level: advanced default: 0 + with_legacy: true +# seconds - name: osd_pool_default_cache_min_evict_age type: int level: advanced default: 0 + with_legacy: true +# max size to check for eviction - name: osd_pool_default_cache_max_evict_check_size type: int level: advanced default: 10 + with_legacy: true - name: osd_pool_default_pg_autoscale_mode type: str level: advanced @@ -3411,26 +3848,36 @@ options: - osd_heartbeat_grace flags: - runtime + with_legacy: true +# min target size for a HitSet - name: osd_hit_set_min_size type: int level: advanced default: 1000 + with_legacy: true +# max target size for a HitSet - name: osd_hit_set_max_size type: int level: advanced default: 100000 + with_legacy: true +# rados namespace for hit_set tracking - name: osd_hit_set_namespace type: str level: advanced default: .ceph-internal + with_legacy: true +# conservative default throttling values - name: osd_tier_promote_max_objects_sec type: uint level: advanced default: 25 + with_legacy: true - name: osd_tier_promote_max_bytes_sec type: size level: advanced default: 5_M + with_legacy: true - name: osd_tier_default_cache_mode type: str level: advanced @@ -3487,28 +3934,35 @@ options: default: 1 flags: - startup + with_legacy: true - name: osd_map_dedup type: bool level: advanced default: true + with_legacy: true - name: osd_map_cache_size type: int level: advanced default: 50 + with_legacy: true - name: osd_map_message_max type: int level: advanced desc: maximum number of OSDMaps to include in a single message default: 40 + with_legacy: true - name: osd_map_message_max_bytes type: size level: advanced desc: maximum number of bytes worth of OSDMaps to include in a single message default: 10_M + with_legacy: true +# cap on # of inc maps we send to peers, clients - name: osd_map_share_max_epochs type: int level: advanced default: 40 + with_legacy: true - name: osd_pg_epoch_max_lag_factor type: float level: advanced @@ -3520,30 +3974,39 @@ options: type: float level: dev default: 0 + with_legacy: true - name: osd_inject_failure_on_pg_removal type: bool level: dev default: false + with_legacy: true +# shutdown the OSD if stuatus flipping more than max_markdown_count times in recent max_markdown_period seconds - name: osd_max_markdown_period type: int level: advanced default: 10_min + with_legacy: true - name: osd_max_markdown_count type: int level: advanced default: 5 + with_legacy: true - name: osd_op_pq_max_tokens_per_priority type: uint level: advanced default: 4_M + with_legacy: true - name: osd_op_pq_min_cost type: size level: advanced default: 64_K + with_legacy: true +# preserve clone_overlap during recovery/migration - name: osd_recover_clone_overlap type: bool level: advanced default: true + with_legacy: true - name: osd_num_cache_shards type: size level: advanced @@ -3557,6 +4020,7 @@ options: default: 0 flags: - startup + with_legacy: true - name: osd_op_num_threads_per_shard_hdd type: int level: advanced @@ -3565,6 +4029,7 @@ options: - osd_op_num_threads_per_shard flags: - startup + with_legacy: true - name: osd_op_num_threads_per_shard_ssd type: int level: advanced @@ -3573,12 +4038,14 @@ options: - osd_op_num_threads_per_shard flags: - startup + with_legacy: true - name: osd_op_num_shards type: int level: advanced default: 0 flags: - startup + with_legacy: true - name: osd_op_num_shards_hdd type: int level: advanced @@ -3587,6 +4054,7 @@ options: - osd_op_num_shards flags: - startup + with_legacy: true - name: osd_op_num_shards_ssd type: int level: advanced @@ -3595,12 +4063,20 @@ options: - osd_op_num_shards flags: - startup + with_legacy: true - name: osd_skip_data_digest type: bool level: dev desc: Do not store full-object checksums if the backend (bluestore) does its own checksums. Only usable with all BlueStore OSDs. default: false +# PrioritzedQueue (prio), Weighted Priority Queue (wpq ; default), +# mclock_opclass, mclock_client, or debug_random. "mclock_opclass" +# and "mclock_client" are based on the mClock/dmClock algorithm +# (Gulati, et al. 2010). "mclock_opclass" prioritizes based on the +# class the operation belongs to. "mclock_client" does the same but +# also works to ienforce fairness between clients. "debug_random" +# chooses among all four with equal probability. - name: osd_op_queue type: str level: advanced @@ -3614,6 +4090,8 @@ options: - wpq - mclock_scheduler - debug_random + with_legacy: true +# Min priority to go to strict queue. (low, high) - name: osd_op_queue_cut_off type: str level: advanced @@ -3628,6 +4106,7 @@ options: - low - high - debug_random + with_legacy: true - name: osd_mclock_scheduler_client_res type: uint level: advanced @@ -3820,14 +4299,20 @@ options: - custom flags: - runtime +# do not assert on divergent_prior entries which aren't in the log and whose on-disk objects are newer - name: osd_ignore_stale_divergent_priors type: bool level: advanced default: false + with_legacy: true +# Set to true for testing. Users should NOT set this. +# If set to true even after reading enough shards to +# decode the object, any error will be reported. - name: osd_read_ec_check_for_errors type: bool level: advanced default: false + with_legacy: true # Only use clone_overlap for recovery if there are fewer than # osd_recover_clone_overlap_limit entries in the overlap set - name: osd_recover_clone_overlap_limit @@ -3841,22 +4326,27 @@ options: level: dev desc: Feed a pullee, and force primary to pull a currently missing object from it default: -1 + with_legacy: true - name: osd_backfill_scan_min type: int level: advanced default: 64 + with_legacy: true - name: osd_backfill_scan_max type: int level: advanced default: 512 + with_legacy: true - name: osd_op_thread_timeout type: int level: advanced default: 15 + with_legacy: true - name: osd_op_thread_suicide_timeout type: int level: advanced default: 150 + with_legacy: true - name: osd_recovery_sleep type: float level: advanced @@ -3864,6 +4354,7 @@ options: default: 0 flags: - runtime + with_legacy: true - name: osd_recovery_sleep_hdd type: float level: advanced @@ -3871,6 +4362,7 @@ options: default: 0.1 flags: - runtime + with_legacy: true - name: osd_recovery_sleep_ssd type: float level: advanced @@ -3880,6 +4372,7 @@ options: - osd_recovery_sleep flags: - runtime + with_legacy: true - name: osd_recovery_sleep_hybrid type: float level: advanced @@ -3895,6 +4388,7 @@ options: level: advanced desc: Time in seconds to sleep before next snap trim (overrides values below) default: 0 + with_legacy: true - name: osd_snap_trim_sleep_hdd type: float level: advanced @@ -3915,14 +4409,17 @@ options: type: bool level: advanced default: true + with_legacy: true - name: osd_command_thread_timeout type: int level: advanced default: 10_min + with_legacy: true - name: osd_command_thread_suicide_timeout type: int level: advanced default: 15_min + with_legacy: true - name: osd_heartbeat_interval type: int level: dev @@ -3930,10 +4427,14 @@ options: default: 6 min: 1 max: 1_min + with_legacy: true +# (seconds) how long before we decide a peer has failed +# This setting is read by the MONs and OSDs and has to be set to a equal value in both settings of the configuration - name: osd_heartbeat_grace type: int level: advanced default: 20 + with_legacy: true - name: osd_heartbeat_stale type: int level: advanced @@ -3942,59 +4443,82 @@ options: them down. The primary benefit is that OSD doesn't need to keep a flood of blocked heartbeat messages around in memory. default: 10_min +# minimum number of peers - name: osd_heartbeat_min_peers type: int level: advanced default: 10 + with_legacy: true +# prio the heartbeat tcp socket and set dscp as CS6 on it if true - name: osd_heartbeat_use_min_delay_socket type: bool level: advanced default: false + with_legacy: true +# the minimum size of OSD heartbeat messages to send - name: osd_heartbeat_min_size type: size level: advanced desc: Minimum heartbeat packet size in bytes. Will add dummy payload if heartbeat packet is smaller than this. default: 2000 + with_legacy: true +# max number of parallel snap trims/pg - name: osd_pg_max_concurrent_snap_trims type: uint level: advanced default: 2 + with_legacy: true +# max number of trimming pgs - name: osd_max_trimming_pgs type: uint level: advanced default: 2 + with_legacy: true +# minimum number of peers that must be reachable to mark ourselves +# back up after being wrongly marked down. - name: osd_heartbeat_min_healthy_ratio type: float level: advanced default: 0 + with_legacy: true +# (seconds) how often to ping monitor if no peers - name: osd_mon_heartbeat_interval type: int level: advanced default: 30 + with_legacy: true - name: osd_mon_heartbeat_stat_stale type: int level: advanced desc: Stop reporting on heartbeat ping times not updated for this many seconds. long_desc: Stop reporting on old heartbeat information unless this is set to zero default: 1_hr +# failures, up_thru, boot. - name: osd_mon_report_interval type: int level: advanced desc: Frequency of OSD reports to mon for peer failures, fullness status changes default: 5 + with_legacy: true +# max updates in flight - name: osd_mon_report_max_in_flight type: int level: advanced default: 2 + with_legacy: true +# (second) how often to send beacon message to monitor - name: osd_beacon_report_interval type: int level: advanced default: 5_min + with_legacy: true +# report pg stats for any given pg at least this often - name: osd_pg_stat_report_interval_max type: int level: advanced default: 500 + with_legacy: true - name: osd_mon_ack_timeout type: float level: advanced @@ -4007,11 +4531,13 @@ options: type: float level: advanced default: 0.9 +# Max number of snap intervals to report to mgr in pg_stat_t - name: osd_max_snap_prune_intervals_per_epoch type: uint level: dev desc: Max number of snap intervals to report to mgr in pg_stat_t default: 512 + with_legacy: true - name: osd_default_data_pool_replay_window type: int level: advanced @@ -4020,10 +4546,12 @@ options: type: bool level: advanced default: false + with_legacy: true - name: osd_recovery_delay_start type: float level: advanced default: 0 + with_legacy: true - name: osd_recovery_max_active type: uint level: advanced @@ -4035,6 +4563,7 @@ options: - osd_recovery_max_active_ssd flags: - runtime + with_legacy: true - name: osd_recovery_max_active_hdd type: uint level: advanced @@ -4046,6 +4575,7 @@ options: - osd_recovery_max_active_ssd flags: - runtime + with_legacy: true - name: osd_recovery_max_active_ssd type: uint level: advanced @@ -4057,49 +4587,66 @@ options: - osd_recovery_max_active_hdd flags: - runtime + with_legacy: true - name: osd_recovery_max_single_start type: uint level: advanced default: 1 + with_legacy: true +# max size of push chunk - name: osd_recovery_max_chunk type: size level: advanced default: 8_M + with_legacy: true +# max number of omap entries per chunk; 0 to disable limit - name: osd_recovery_max_omap_entries_per_chunk type: uint level: advanced default: 8096 + with_legacy: true +# max size of a COPYFROM chunk - name: osd_copyfrom_max_chunk type: size level: advanced default: 8_M + with_legacy: true +# push cost per object - name: osd_push_per_object_cost type: size level: advanced default: 1000 + with_legacy: true +# max size of push message - name: osd_max_push_cost type: size level: advanced default: 8_M + with_legacy: true +# max objects in single push op - name: osd_max_push_objects type: uint level: advanced default: 10 + with_legacy: true - name: osd_max_scrubs type: int level: advanced desc: Maximum concurrent scrubs on a single OSD default: 1 + with_legacy: true - name: osd_scrub_during_recovery type: bool level: advanced desc: Allow scrubbing when PGs on the OSD are undergoing recovery default: false + with_legacy: true - name: osd_repair_during_recovery type: bool level: advanced desc: Allow requested repairing when PGs on the OSD are undergoing recovery default: false + with_legacy: true - name: osd_scrub_begin_hour type: int level: advanced @@ -4110,6 +4657,7 @@ options: - osd_scrub_end_hour min: 0 max: 23 + with_legacy: true - name: osd_scrub_end_hour type: int level: advanced @@ -4120,6 +4668,7 @@ options: - osd_scrub_begin_hour min: 0 max: 23 + with_legacy: true - name: osd_scrub_begin_week_day type: int level: advanced @@ -4131,6 +4680,7 @@ options: - osd_scrub_end_week_day min: 0 max: 6 + with_legacy: true - name: osd_scrub_end_week_day type: int level: advanced @@ -4142,11 +4692,14 @@ options: - osd_scrub_begin_week_day min: 0 max: 6 + with_legacy: true - name: osd_scrub_load_threshold type: float level: advanced desc: Allow scrubbing when system load divided by number of CPUs is below this value default: 0.5 + with_legacy: true +# if load is low - name: osd_scrub_min_interval type: float level: advanced @@ -4154,6 +4707,8 @@ options: default: 1_day see_also: - osd_scrub_max_interval + with_legacy: true +# regardless of load - name: osd_scrub_max_interval type: float level: advanced @@ -4161,6 +4716,8 @@ options: default: 7_day see_also: - osd_scrub_min_interval + with_legacy: true +# randomize the scheduled scrub in the span of [min,min*(1+randomize_ratio)) - name: osd_scrub_interval_randomize_ratio type: float level: advanced @@ -4170,6 +4727,8 @@ options: default: 0.5 see_also: - osd_scrub_min_interval + with_legacy: true +# the probability to back off the scheduled scrub - name: osd_scrub_backoff_ratio type: float level: dev @@ -4177,6 +4736,7 @@ options: long_desc: This is the precentage of ticks that do NOT schedule scrubs, 66% means that 1 out of 3 ticks will schedule scrubs default: 0.66 + with_legacy: true - name: osd_scrub_chunk_min type: int level: advanced @@ -4184,6 +4744,7 @@ options: default: 5 see_also: - osd_scrub_chunk_max + with_legacy: true - name: osd_scrub_chunk_max type: int level: advanced @@ -4191,11 +4752,15 @@ options: default: 25 see_also: - osd_scrub_chunk_min + with_legacy: true +# sleep between [deep]scrub ops - name: osd_scrub_sleep type: float level: advanced desc: Duration to inject a delay during scrubbing default: 0 + with_legacy: true +# more sleep between [deep]scrub ops - name: osd_scrub_extended_sleep type: float level: advanced @@ -4206,11 +4771,15 @@ options: - osd_scrub_end_hour - osd_scrub_begin_week_day - osd_scrub_end_week_day + with_legacy: true +# whether auto-repair inconsistencies upon deep-scrubbing - name: osd_scrub_auto_repair type: bool level: advanced desc: Automatically repair damaged objects detected during scrub default: false + with_legacy: true +# only auto-repair when number of errors is below this threshold - name: osd_scrub_auto_repair_num_errors type: uint level: advanced @@ -4218,6 +4787,7 @@ options: default: 5 see_also: - osd_scrub_auto_repair + with_legacy: true - name: osd_scrub_max_preemptions type: uint level: advanced @@ -4231,6 +4801,7 @@ options: level: advanced desc: Deep scrub each PG (i.e., verify data checksums) at least this often default: 7_day + with_legacy: true - name: osd_deep_scrub_randomize_ratio type: float level: advanced @@ -4239,22 +4810,27 @@ options: long_desc: This prevents a deep scrub 'stampede' by spreading deep scrubs so they are uniformly distributed over the week default: 0.15 + with_legacy: true - name: osd_deep_scrub_stride type: size level: advanced desc: Number of bytes to read from an object at a time during deep scrub default: 512_K + with_legacy: true - name: osd_deep_scrub_keys type: int level: advanced desc: Number of keys to read from an object at a time during deep scrub default: 1024 + with_legacy: true +# objects must be this old (seconds) before we update the whole-object digest on scrub - name: osd_deep_scrub_update_digest_min_age type: int level: advanced desc: Update overall object digest only if object was last modified longer ago than this default: 2_hr + with_legacy: true - name: osd_deep_scrub_large_omap_object_key_threshold type: uint level: advanced @@ -4264,6 +4840,7 @@ options: - osd see_also: - osd_deep_scrub_large_omap_object_value_sum_threshold + with_legacy: true - name: osd_deep_scrub_large_omap_object_value_sum_threshold type: size level: advanced @@ -4273,49 +4850,65 @@ options: - osd see_also: - osd_deep_scrub_large_omap_object_key_threshold + with_legacy: true +# where rados plugins are stored - name: osd_class_dir type: str level: advanced default: @CMAKE_INSTALL_LIBDIR@/rados-classes + with_legacy: true - name: osd_open_classes_on_start type: bool level: advanced default: true + with_legacy: true +# list of object classes allowed to be loaded (allow all: *) - name: osd_class_load_list type: str level: advanced default: cephfs hello journal lock log numops otp rbd refcount rgw rgw_gc timeindex user version cas cmpomap queue 2pc_queue fifo + with_legacy: true +# list of object classes with default execute perm (allow all: *) - name: osd_class_default_list type: str level: advanced default: cephfs hello journal lock log numops otp rbd refcount rgw rgw_gc timeindex user version cas cmpomap queue 2pc_queue fifo + with_legacy: true - name: osd_check_for_log_corruption type: bool level: advanced default: false + with_legacy: true - name: osd_use_stale_snap type: bool level: advanced default: false + with_legacy: true - name: osd_rollback_to_cluster_snap type: str level: advanced + with_legacy: true - name: osd_default_notify_timeout type: uint level: advanced desc: default number of seconds after which notify propagation times out. used if a client has not specified other value default: 30 + with_legacy: true - name: osd_kill_backfill_at type: int level: dev default: 0 + with_legacy: true +# Bounds how infrequently a new map epoch will be persisted for a pg +# make this < map_cache_size! - name: osd_pg_epoch_persisted_max_stale type: uint level: advanced default: 40 + with_legacy: true - name: osd_target_pg_log_entries_per_osd type: uint level: dev @@ -4325,6 +4918,7 @@ options: see_also: - osd_max_pg_log_entries - osd_min_pg_log_entries + with_legacy: true - name: osd_min_pg_log_entries type: uint level: dev @@ -4336,6 +4930,7 @@ options: - osd_max_pg_log_entries - osd_pg_log_dups_tracked - osd_target_pg_log_entries_per_osd + with_legacy: true - name: osd_max_pg_log_entries type: uint level: dev @@ -4347,6 +4942,7 @@ options: - osd_min_pg_log_entries - osd_pg_log_dups_tracked - osd_target_pg_log_entries_per_osd + with_legacy: true - name: osd_pg_log_dups_tracked type: uint level: dev @@ -4359,6 +4955,7 @@ options: see_also: - osd_min_pg_log_entries - osd_max_pg_log_entries + with_legacy: true - name: osd_object_clean_region_max_num_intervals type: int level: dev @@ -4369,10 +4966,13 @@ options: default: 10 services: - osd + with_legacy: true +# max entries factor before force recovery - name: osd_force_recovery_pg_log_entries_factor type: float level: dev default: 1.3 + with_legacy: true - name: osd_pg_log_trim_min type: uint level: dev @@ -4382,6 +4982,7 @@ options: see_also: - osd_max_pg_log_entries - osd_min_pg_log_entries + with_legacy: true - name: osd_force_auth_primary_missing_objects type: uint level: advanced @@ -4416,149 +5017,199 @@ options: see_also: - osd_min_pg_log_entries - osd_max_pg_log_entries + with_legacy: true +# how many seconds old makes an op complaint-worthy - name: osd_op_complaint_time type: float level: advanced default: 30 + with_legacy: true - name: osd_command_max_records type: int level: advanced default: 256 + with_legacy: true +# max peer osds to report that are blocking our progress - name: osd_max_pg_blocked_by type: uint level: advanced default: 16 + with_legacy: true - name: osd_op_log_threshold type: int level: advanced default: 5 + with_legacy: true - name: osd_backoff_on_unfound type: bool level: advanced default: true + with_legacy: true +# [mainly for debug?] object unreadable/writeable - name: osd_backoff_on_degraded type: bool level: advanced default: false + with_legacy: true +# [debug] pg peering - name: osd_backoff_on_peering type: bool level: advanced default: false + with_legacy: true - name: osd_debug_shutdown type: bool level: dev desc: Turn up debug levels during shutdown default: false + with_legacy: true +# crash osd if client ignores a backoff; useful for debugging - name: osd_debug_crash_on_ignored_backoff type: bool level: dev default: false + with_legacy: true - name: osd_debug_inject_dispatch_delay_probability type: float level: dev default: 0 + with_legacy: true - name: osd_debug_inject_dispatch_delay_duration type: float level: dev default: 0.1 + with_legacy: true - name: osd_debug_drop_ping_probability type: float level: dev default: 0 + with_legacy: true - name: osd_debug_drop_ping_duration type: int level: dev default: 0 + with_legacy: true - name: osd_debug_op_order type: bool level: dev default: false + with_legacy: true - name: osd_debug_verify_missing_on_start type: bool level: dev default: false + with_legacy: true - name: osd_debug_verify_snaps type: bool level: dev default: false + with_legacy: true - name: osd_debug_verify_stray_on_activate type: bool level: dev default: false + with_legacy: true - name: osd_debug_skip_full_check_in_backfill_reservation type: bool level: dev default: false + with_legacy: true - name: osd_debug_reject_backfill_probability type: float level: dev default: 0 + with_legacy: true +# inject failure during copyfrom completion - name: osd_debug_inject_copyfrom_error type: bool level: dev default: false + with_legacy: true - name: osd_debug_misdirected_ops type: bool level: dev default: false + with_legacy: true - name: osd_debug_skip_full_check_in_recovery type: bool level: dev default: false + with_legacy: true - name: osd_debug_random_push_read_error type: float level: dev default: 0 + with_legacy: true - name: osd_debug_verify_cached_snaps type: bool level: dev default: false + with_legacy: true - name: osd_debug_deep_scrub_sleep type: float level: dev desc: Inject an expensive sleep during deep scrub IO to make it easier to induce preemption default: 0 + with_legacy: true - name: osd_debug_no_acting_change type: bool level: dev default: false + with_legacy: true - name: osd_debug_no_purge_strays type: bool level: dev default: false + with_legacy: truen - name: osd_debug_pretend_recovery_active type: bool level: dev default: false + with_legacy: true +# enable/disable OSD op tracking - name: osd_enable_op_tracker type: bool level: advanced default: true + with_legacy: true +# The number of shards for holding the ops - name: osd_num_op_tracker_shard type: uint level: advanced default: 32 + with_legacy: true +# Max number of completed ops to track - name: osd_op_history_size type: uint level: advanced default: 20 + with_legacy: true +# Oldest completed op to track - name: osd_op_history_duration type: uint level: advanced default: 600 + with_legacy: true +# Max number of slow ops to track - name: osd_op_history_slow_op_size type: uint level: advanced default: 20 + with_legacy: true +# track the op if over this threshold - name: osd_op_history_slow_op_threshold type: float level: advanced default: 10 + with_legacy: true +# to adjust various transactions that batch smaller items - name: osd_target_transaction_size type: int level: advanced default: 30 + with_legacy: true + with_legacy: true - name: osd_delete_sleep type: float level: advanced @@ -4581,10 +5232,12 @@ options: desc: Time in seconds to sleep before next removal transaction when data is on HDD and journal is on SSD default: 1 +# what % full makes an OSD "full" (failsafe) - name: osd_failsafe_full_ratio type: float level: advanced default: 0.97 + with_legacy: true - name: osd_fast_shutdown type: bool level: advanced @@ -4593,6 +5246,7 @@ options: when it receives a SIGINT or SIGTERM or when shutting down for any other reason. That slow shutdown is primarilyy useful for doing memory leak checking with valgrind. default: true + with_legacy: true - name: osd_fast_shutdown_notify_mon type: bool level: advanced @@ -4603,124 +5257,169 @@ options: see_also: - osd_fast_shutdown - osd_mon_shutdown_timeout + with_legacy: true +# immediately mark OSDs as down once they refuse to accept connections - name: osd_fast_fail_on_connection_refused type: bool level: advanced default: true + with_legacy: true - name: osd_pg_object_context_cache_count type: int level: advanced default: 64 + with_legacy: true +# true if LTTng-UST tracepoints should be enabled - name: osd_tracing type: bool level: advanced default: false + with_legacy: true +# true if function instrumentation should use LTTng - name: osd_function_tracing type: bool level: advanced default: false + with_legacy: true +# use fast info attr, if we can - name: osd_fast_info type: bool level: advanced default: true + with_legacy: true +# determines whether PGLog::check() compares written out log to stored log - name: osd_debug_pg_log_writeout type: bool level: dev default: false + with_legacy: true +# Max number of loop before we reset thread-pool's handle - name: osd_loop_before_reset_tphandle type: uint level: advanced default: 64 + with_legacy: true +# default timeout while caling WaitInterval on an empty queue - name: threadpool_default_timeout type: int level: advanced default: 1_min + with_legacy: true +# default wait time for an empty queue before pinging the hb timeout - name: threadpool_empty_queue_max_wait type: int level: advanced default: 2 + with_legacy: true - name: leveldb_log_to_ceph_log type: bool level: advanced default: true + with_legacy: true - name: leveldb_write_buffer_size type: size level: advanced default: 8_M + with_legacy: true - name: leveldb_cache_size type: size level: advanced default: 128_M + with_legacy: true - name: leveldb_block_size type: size level: advanced default: 0 + with_legacy: true - name: leveldb_bloom_size type: int level: advanced default: 0 + with_legacy: true - name: leveldb_max_open_files type: int level: advanced default: 0 + with_legacy: true - name: leveldb_compression type: bool level: advanced default: true + with_legacy: true - name: leveldb_paranoid type: bool level: advanced default: false + with_legacy: true - name: leveldb_log type: str level: advanced default: /dev/null + with_legacy: true - name: leveldb_compact_on_mount type: bool level: advanced default: false + with_legacy: true - name: rocksdb_log_to_ceph_log type: bool level: advanced default: true + with_legacy: true - name: rocksdb_cache_size type: size level: advanced default: 512_M flags: - runtime + with_legacy: true +# ratio of cache for row (vs block) - name: rocksdb_cache_row_ratio type: float level: advanced default: 0 + with_legacy: true +# rocksdb block cache shard bits, 4 bit -> 16 shards - name: rocksdb_cache_shard_bits type: int level: advanced default: 4 + with_legacy: true +# 'lru' or 'clock' - name: rocksdb_cache_type type: str level: advanced default: binned_lru + with_legacy: true - name: rocksdb_block_size type: size level: advanced default: 4_K + with_legacy: true +# Enabling this will have 5-10% impact on performance for the stats collection - name: rocksdb_perf type: bool level: advanced default: false + with_legacy: true +# For rocksdb, this behavior will be an overhead of 5%~10%, collected only rocksdb_perf is enabled. - name: rocksdb_collect_compaction_stats type: bool level: advanced default: false + with_legacy: true +# For rocksdb, this behavior will be an overhead of 5%~10%, collected only rocksdb_perf is enabled. - name: rocksdb_collect_extended_stats type: bool level: advanced default: false + with_legacy: true +# For rocksdb, this behavior will be an overhead of 5%~10%, collected only rocksdb_perf is enabled. - name: rocksdb_collect_memory_stats type: bool level: advanced default: false + with_legacy: true - name: rocksdb_delete_range_threshold type: uint level: advanced @@ -4802,99 +5501,141 @@ options: type: str level: advanced default: write_buffer_size=33554432,compression=kNoCompression,level_compaction_dynamic_level_bytes=true + with_legacy: true +# osd_*_priority adjust the relative priority of client io, recovery io, +# snaptrim io, etc +# +# osd_*_priority determines the ratio of available io between client and +# recovery. Each option may be set between +# 1..63. - name: osd_client_op_priority type: uint level: advanced default: 63 + with_legacy: true - name: osd_recovery_op_priority type: uint level: advanced desc: Priority to use for recovery operations if not specified for the pool default: 3 + with_legacy: true - name: osd_peering_op_priority type: uint level: dev default: 255 + with_legacy: true - name: osd_snap_trim_priority type: uint level: advanced default: 5 + with_legacy: true - name: osd_snap_trim_cost type: size level: advanced default: 1_M + with_legacy: true - name: osd_pg_delete_priority type: uint level: advanced default: 5 + with_legacy: true - name: osd_pg_delete_cost type: size level: advanced default: 1_M + with_legacy: true - name: osd_scrub_priority type: uint level: advanced desc: Priority for scrub operations in work queue default: 5 + with_legacy: true - name: osd_scrub_cost type: size level: advanced desc: Cost for scrub operations in work queue default: 50_M + with_legacy: true +# set requested scrub priority higher than scrub priority to make the +# requested scrubs jump the queue of scheduled scrubs - name: osd_requested_scrub_priority type: uint level: advanced default: 120 + with_legacy: true - name: osd_recovery_priority type: uint level: advanced desc: Priority of recovery in the work queue long_desc: Not related to a pool's recovery_priority default: 5 + with_legacy: true +# set default cost equal to 20MB io - name: osd_recovery_cost type: size level: advanced default: 20_M + with_legacy: true +# osd_recovery_op_warn_multiple scales the normal warning threshold, +# osd_op_complaint_time, so that slow recovery ops won't cause noise - name: osd_recovery_op_warn_multiple type: uint level: advanced default: 16 + with_legacy: true +# Max time to wait between notifying mon of shutdown and shutting down - name: osd_mon_shutdown_timeout type: float level: advanced default: 5 + with_legacy: true +# crash if the OSD has stray PG refs on shutdown - name: osd_shutdown_pgref_assert type: bool level: advanced default: false + with_legacy: true +# OSD's maximum object size - name: osd_max_object_size type: size level: advanced default: 128_M + with_legacy: true +# max rados object name len - name: osd_max_object_name_len type: uint level: advanced default: 2_K + with_legacy: true +# max rados object namespace len - name: osd_max_object_namespace_len type: uint level: advanced default: 256 + with_legacy: true +# max rados attr name len; cannot go higher than 100 chars for file system backends - name: osd_max_attr_name_len type: uint level: advanced default: 100 + with_legacy: true - name: osd_max_attr_size type: uint level: advanced default: 0 + with_legacy: true - name: osd_max_omap_entries_per_request type: uint level: advanced default: 1_K + with_legacy: true - name: osd_max_omap_bytes_per_request type: size level: advanced default: 1_G + with_legacy: true +# osd_recovery_op_warn_multiple scales the normal warning threshold, +# osd_op_complaint_time, so that slow recovery ops won't cause noise - name: osd_max_write_op_reply_len type: size level: advanced @@ -4902,6 +5643,7 @@ options: long_desc: This value caps the amount of data (per op; a request may have many ops) that will be sent back to the client and recorded in the PG log. default: 32 + with_legacy: true - name: osd_objectstore type: str level: advanced @@ -4914,42 +5656,56 @@ options: - kstore flags: - create + with_legacy: true +# true if LTTng-UST tracepoints should be enabled - name: osd_objectstore_tracing type: bool level: advanced default: false + with_legacy: true - name: osd_objectstore_fuse type: bool level: advanced default: false + with_legacy: true - name: osd_bench_small_size_max_iops type: uint level: advanced default: 100 + with_legacy: true - name: osd_bench_large_size_max_throughput type: size level: advanced default: 100_M + with_legacy: true - name: osd_bench_max_block_size type: size level: advanced default: 64_M + with_legacy: true +# duration of 'osd bench', capped at 30s to avoid triggering timeouts - name: osd_bench_duration type: uint level: advanced default: 30 + with_legacy: true +# create a blkin trace for all osd requests - name: osd_blkin_trace_all type: bool level: advanced default: false + with_legacy: true +# create a blkin trace for all objecter requests - name: osdc_blkin_trace_all type: bool level: advanced default: false + with_legacy: true - name: osd_discard_disconnected_ops type: bool level: advanced default: true + with_legacy: true - name: osd_memory_target type: size level: basic @@ -5020,14 +5776,17 @@ options: type: size level: advanced default: 1_G + with_legacy: true - name: memstore_page_set type: bool level: advanced default: false + with_legacy: true - name: memstore_page_size type: size level: advanced default: 64_K + with_legacy: true - name: memstore_debug_omit_block_device_write type: bool level: dev @@ -5035,66 +5794,88 @@ options: default: false see_also: - bluestore_debug_omit_block_device_write + with_legacy: true - name: objectstore_blackhole type: bool level: advanced default: false + with_legacy: true - name: bdev_debug_inflight_ios type: bool level: dev default: false + with_legacy: true +# if N>0, then ~ 1/N IOs will complete before we crash on flush - name: bdev_inject_crash type: int level: dev default: 0 + with_legacy: true +# wait N more seconds on flush - name: bdev_inject_crash_flush_delay type: int level: dev default: 2 + with_legacy: true - name: bdev_aio type: bool level: advanced default: true + with_legacy: true +# milliseconds - name: bdev_aio_poll_ms type: int level: advanced default: 250 + with_legacy: true - name: bdev_aio_max_queue_depth type: int level: advanced default: 1024 + with_legacy: true - name: bdev_aio_reap_max type: int level: advanced default: 16 + with_legacy: true - name: bdev_block_size type: size level: advanced default: 4_K + with_legacy: true - name: bdev_debug_aio type: bool level: dev default: false + with_legacy: true - name: bdev_debug_aio_suicide_timeout type: float level: dev default: 1_min + with_legacy: true - name: bdev_debug_aio_log_age type: float level: dev default: 5 + with_legacy: true +# if yes, osd will unbind all NVMe devices from kernel driver and bind them +# to the uio_pci_generic driver. The purpose is to prevent the case where +# NVMe driver is loaded while osd is running. - name: bdev_nvme_unbind_from_kernel type: bool level: advanced default: false + with_legacy: true - name: bdev_enable_discard type: bool level: advanced default: false + with_legacy: true - name: bdev_async_discard type: bool level: advanced default: false + with_legacy: true - name: bdev_flock_retry_interval type: float level: advanced @@ -5112,39 +5893,54 @@ options: level: advanced desc: Allocation unit size for DB and WAL devices default: 1_M + with_legacy: true - name: bluefs_shared_alloc_size type: size level: advanced desc: Allocation unit size for primary/shared device default: 64_K + with_legacy: true - name: bluefs_max_prefetch type: size level: advanced default: 1_M + with_legacy: true +# alloc when we get this low - name: bluefs_min_log_runway type: size level: advanced default: 1_M + with_legacy: true +# alloc this much at a time - name: bluefs_max_log_runway type: size level: advanced default: 4_M + with_legacy: true +# before we consider - name: bluefs_log_compact_min_ratio type: float level: advanced default: 5 + with_legacy: true +# before we consider - name: bluefs_log_compact_min_size type: size level: advanced default: 16_M + with_legacy: true +# ignore flush until its this big - name: bluefs_min_flush_size type: size level: advanced default: 512_K + with_legacy: true +# sync or async log compaction - name: bluefs_compact_log_sync type: bool level: advanced default: false + with_legacy: true - name: bluefs_buffered_io type: bool level: advanced @@ -5155,10 +5951,12 @@ options: enough to hold blocks from the compressed SST files itself, they can be read from page cache instead of from the disk. default: true + with_legacy: true - name: bluefs_sync_write type: bool level: advanced default: false + with_legacy: true - name: bluefs_allocator type: str level: dev @@ -5168,11 +5966,13 @@ options: - stupid - avl - hybrid + with_legacy: true - name: bluefs_log_replay_check_allocations type: bool level: advanced desc: Enables checks for allocations consistency during log replay default: true + with_legacy: true - name: bluefs_replay_recovery type: bool level: dev @@ -5181,10 +5981,12 @@ options: unreadable. This options enables heuristics that scans devices for missing data. DO NOT ENABLE BY DEFAULT default: false + with_legacy: true - name: bluefs_replay_recovery_disable_compact type: bool level: advanced default: false + with_legacy: true - name: bluefs_check_for_zeros type: bool level: dev @@ -5197,6 +5999,7 @@ options: - bluestore_retry_disk_reads flags: - runtime + with_legacy: true - name: bluestore_bluefs type: bool level: dev @@ -5207,6 +6010,8 @@ options: default: true flags: - create + with_legacy: true +# mirror to normal Env for debug - name: bluestore_bluefs_env_mirror type: bool level: dev @@ -5214,6 +6019,7 @@ options: default: false flags: - create + with_legacy: true - name: bluestore_bluefs_min type: size level: advanced @@ -5259,6 +6065,7 @@ options: level: advanced desc: How frequently (in seconds) to dump allocator onBlueFS space allocation failure default: 0 + with_legacy: true - name: bluestore_spdk_mem type: size level: dev @@ -5284,12 +6091,19 @@ options: level: dev desc: Time period to wait if there is no completed I/O from polling default: 5 +# If you want to use spdk driver, you need to specify NVMe serial number here +# with "spdk:" prefix. +# Users can use 'lspci -vvv -d 8086:0953 | grep "Device Serial Number"' to +# get the serial number of Intel(R) Fultondale NVMe controllers. +# Example: +# bluestore_block_path = spdk:55cd2e404bd73932 - name: bluestore_block_path type: str level: dev desc: Path to block device/file flags: - create + with_legacy: true - name: bluestore_block_size type: size level: dev @@ -5297,6 +6111,7 @@ options: default: 100_G flags: - create + with_legacy: true - name: bluestore_block_create type: bool level: dev @@ -5307,12 +6122,15 @@ options: - bluestore_block_size flags: - create + with_legacy: true - name: bluestore_block_db_path type: str level: dev desc: Path for db block device flags: - create + with_legacy: true +# rocksdb ssts (hot/warm) - name: bluestore_block_db_size type: uint level: dev @@ -5320,6 +6138,7 @@ options: default: 0 flags: - create + with_legacy: true - name: bluestore_block_db_create type: bool level: dev @@ -5330,12 +6149,15 @@ options: - bluestore_block_db_size flags: - create + with_legacy: true - name: bluestore_block_wal_path type: str level: dev desc: Path to block device/file backing bluefs wal flags: - create + with_legacy: true +# rocksdb wal - name: bluestore_block_wal_size type: size level: dev @@ -5343,6 +6165,7 @@ options: default: 96_M flags: - create + with_legacy: true - name: bluestore_block_wal_create type: bool level: dev @@ -5353,6 +6176,8 @@ options: - bluestore_block_wal_size flags: - create + with_legacy: true +# whether preallocate space if block/db_path/wal_path is file rather that block device. - name: bluestore_block_preallocate_file type: bool level: dev @@ -5360,6 +6185,7 @@ options: default: false flags: - create + with_legacy: true - name: bluestore_ignore_data_csum type: bool level: dev @@ -5367,6 +6193,7 @@ options: default: false flags: - runtime + with_legacy: true - name: bluestore_csum_type type: str level: advanced @@ -5383,6 +6210,7 @@ options: - xxhash64 flags: - runtime + with_legacy: true - name: bluestore_retry_disk_reads type: uint level: advanced @@ -5394,6 +6222,7 @@ options: max: 255 flags: - runtime + with_legacy: true - name: bluestore_min_alloc_size type: uint level: advanced @@ -5407,6 +6236,7 @@ options: default: 0 flags: - create + with_legacy: true - name: bluestore_min_alloc_size_hdd type: size level: advanced @@ -5416,6 +6246,7 @@ options: - bluestore_min_alloc_size flags: - create + with_legacy: true - name: bluestore_min_alloc_size_ssd type: size level: advanced @@ -5425,6 +6256,7 @@ options: - bluestore_min_alloc_size flags: - create + with_legacy: true - name: bluestore_max_alloc_size type: size level: advanced @@ -5432,6 +6264,7 @@ options: default: 0 flags: - create + with_legacy: true - name: bluestore_prefer_deferred_size type: size level: advanced @@ -5442,6 +6275,7 @@ options: default: 0 flags: - runtime + with_legacy: true - name: bluestore_prefer_deferred_size_hdd type: size level: advanced @@ -5451,6 +6285,7 @@ options: - bluestore_prefer_deferred_size flags: - runtime + with_legacy: true - name: bluestore_prefer_deferred_size_ssd type: size level: advanced @@ -5460,6 +6295,7 @@ options: - bluestore_prefer_deferred_size flags: - runtime + with_legacy: true - name: bluestore_compression_mode type: str level: advanced @@ -5476,6 +6312,7 @@ options: - force flags: - runtime + with_legacy: true - name: bluestore_compression_algorithm type: str level: advanced @@ -5492,6 +6329,7 @@ options: - lz4 flags: - runtime + with_legacy: true - name: bluestore_compression_min_blob_size type: size level: advanced @@ -5501,6 +6339,7 @@ options: default: 0 flags: - runtime + with_legacy: true - name: bluestore_compression_min_blob_size_hdd type: size level: advanced @@ -5510,6 +6349,7 @@ options: - bluestore_compression_min_blob_size flags: - runtime + with_legacy: true - name: bluestore_compression_min_blob_size_ssd type: size level: advanced @@ -5520,6 +6360,7 @@ options: - bluestore_compression_min_blob_size flags: - runtime + with_legacy: true - name: bluestore_compression_max_blob_size type: size level: advanced @@ -5529,6 +6370,7 @@ options: default: 0 flags: - runtime + with_legacy: true - name: bluestore_compression_max_blob_size_hdd type: size level: advanced @@ -5538,6 +6380,7 @@ options: - bluestore_compression_max_blob_size flags: - runtime + with_legacy: true - name: bluestore_compression_max_blob_size_ssd type: size level: advanced @@ -5548,18 +6391,25 @@ options: - bluestore_compression_max_blob_size flags: - runtime + with_legacy: true +# Specifies minimum expected amount of saved allocation units +# per single blob to enable compressed blobs garbage collection - name: bluestore_gc_enable_blob_threshold type: int level: dev default: 0 flags: - runtime + with_legacy: true +# Specifies minimum expected amount of saved allocation units +# per all blobsb to enable compressed blobs garbage collection - name: bluestore_gc_enable_total_threshold type: int level: dev default: 0 flags: - runtime + with_legacy: true - name: bluestore_max_blob_size type: size level: dev @@ -5570,6 +6420,7 @@ options: default: 0 flags: - runtime + with_legacy: true - name: bluestore_max_blob_size_hdd type: size level: dev @@ -5578,6 +6429,7 @@ options: - bluestore_max_blob_size flags: - runtime + with_legacy: true - name: bluestore_max_blob_size_ssd type: size level: dev @@ -5586,6 +6438,10 @@ options: - bluestore_max_blob_size flags: - runtime + with_legacy: true +# Require the net gain of compression at least to be at this ratio, +# otherwise we don't compress. +# And ask for compressing at least 12.5%(1/8) off, by default. - name: bluestore_compression_required_ratio type: float level: advanced @@ -5595,42 +6451,50 @@ options: default: 0.875 flags: - runtime + with_legacy: true - name: bluestore_extent_map_shard_max_size type: size level: dev desc: Max size (bytes) for a single extent map shard before splitting default: 1200 + with_legacy: true - name: bluestore_extent_map_shard_target_size type: size level: dev desc: Target size (bytes) for a single extent map shard default: 500 + with_legacy: true - name: bluestore_extent_map_shard_min_size type: size level: dev desc: Min size (bytes) for a single extent map shard before merging default: 150 + with_legacy: true - name: bluestore_extent_map_shard_target_size_slop type: float level: dev desc: Ratio above/below target for a shard when trying to align to an existing extent or blob boundary default: 0.2 + with_legacy: true - name: bluestore_extent_map_inline_shard_prealloc_size type: size level: dev desc: Preallocated buffer for inline shards default: 256 + with_legacy: true - name: bluestore_cache_trim_interval type: float level: advanced desc: How frequently we trim the bluestore cache default: 0.05 + with_legacy: true - name: bluestore_cache_trim_max_skip_pinned type: uint level: dev desc: Max pinned cache entries we consider before giving up default: 64 + with_legacy: true - name: bluestore_cache_type type: str level: dev @@ -5639,16 +6503,19 @@ options: enum_values: - 2q - lru + with_legacy: true - name: bluestore_2q_cache_kin_ratio type: float level: dev desc: 2Q paper suggests .5 default: 0.5 + with_legacy: true - name: bluestore_2q_cache_kout_ratio type: float level: dev desc: 2Q paper suggests .5 default: 0.5 + with_legacy: true - name: bluestore_cache_size type: size level: dev @@ -5656,6 +6523,7 @@ options: long_desc: This includes data and metadata cached by BlueStore as well as memory devoted to rocksdb's cache(s). default: 0 + with_legacy: true - name: bluestore_cache_size_hdd type: size level: dev @@ -5663,6 +6531,7 @@ options: default: 1_G see_also: - bluestore_cache_size + with_legacy: true - name: bluestore_cache_size_ssd type: size level: dev @@ -5670,6 +6539,7 @@ options: default: 3_G see_also: - bluestore_cache_size + with_legacy: true - name: bluestore_cache_meta_ratio type: float level: dev @@ -5677,6 +6547,7 @@ options: default: 0.4 see_also: - bluestore_cache_size + with_legacy: true - name: bluestore_cache_kv_ratio type: float level: dev @@ -5684,6 +6555,7 @@ options: default: 0 see_also: - bluestore_cache_size + with_legacy: true - name: bluestore_cache_kv_onode_ratio type: float level: dev @@ -5711,6 +6583,7 @@ options: level: dev desc: The period (in second) for logging allocation statistics. default: 1_day + with_legacy: true - name: bluestore_kvbackend type: str level: dev @@ -5718,6 +6591,7 @@ options: default: rocksdb flags: - create + with_legacy: true - name: bluestore_allocator type: str level: advanced @@ -5730,40 +6604,48 @@ options: - avl - hybrid - zoned + with_legacy: true - name: bluestore_freelist_blocks_per_key type: size level: dev desc: Block (and bits) per database key default: 128 + with_legacy: true - name: bluestore_bitmapallocator_blocks_per_zone type: size level: dev default: 1_K + with_legacy: true - name: bluestore_bitmapallocator_span_size type: size level: dev default: 1_K + with_legacy: true - name: bluestore_max_deferred_txc type: uint level: advanced desc: Max transactions with deferred writes that can accumulate before we force flush deferred writes default: 32 + with_legacy: true - name: bluestore_max_defer_interval type: float level: advanced desc: max duration to force deferred submit default: 3 + with_legacy: true - name: bluestore_rocksdb_options type: str level: advanced desc: Full set of rocksdb settings to override 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,max_background_compactions=2,max_total_wal_size=1073741824 + with_legacy: true - name: bluestore_rocksdb_options_annex type: str level: advanced desc: An addition to bluestore_rocksdb_options. Allows setting rocksdb options without repeating the existing defaults. + with_legacy: true - name: bluestore_rocksdb_cf type: bool level: advanced @@ -5801,41 +6683,49 @@ options: level: dev desc: Run fsck at mount default: false + with_legacy: true - name: bluestore_fsck_on_mount_deep type: bool level: dev desc: Run deep fsck at mount when bluestore_fsck_on_mount is set to true default: false + with_legacy: true - name: bluestore_fsck_quick_fix_on_mount type: bool level: dev desc: Do quick-fix for the store at mount default: false + with_legacy: true - name: bluestore_fsck_on_umount type: bool level: dev desc: Run fsck at umount default: false + with_legacy: true - name: bluestore_fsck_on_umount_deep type: bool level: dev desc: Run deep fsck at umount when bluestore_fsck_on_umount is set to true default: false + with_legacy: true - name: bluestore_fsck_on_mkfs type: bool level: dev desc: Run fsck after mkfs default: true + with_legacy: true - name: bluestore_fsck_on_mkfs_deep type: bool level: dev desc: Run deep fsck after mkfs default: false + with_legacy: true - name: bluestore_sync_submit_transaction type: bool level: dev desc: Try to submit metadata transaction to rocksdb in queuing thread context default: false + with_legacy: true - name: bluestore_fsck_read_bytes_cap type: size level: advanced @@ -5843,11 +6733,13 @@ options: default: 64_M flags: - runtime + with_legacy: true - name: bluestore_fsck_quick_fix_threads type: int level: advanced desc: Number of additional threads to perform quick-fix (shallow fsck) command default: 2 + with_legacy: true - name: bluestore_throttle_bytes type: size level: advanced @@ -5855,6 +6747,7 @@ options: default: 64_M flags: - runtime + with_legacy: true - name: bluestore_throttle_deferred_bytes type: size level: advanced @@ -5862,6 +6755,7 @@ options: default: 128_M flags: - runtime + with_legacy: true - name: bluestore_throttle_cost_per_io type: size level: advanced @@ -5869,6 +6763,7 @@ options: default: 0 flags: - runtime + with_legacy: true - name: bluestore_throttle_cost_per_io_hdd type: uint level: advanced @@ -5878,6 +6773,7 @@ options: - bluestore_throttle_cost_per_io flags: - runtime + with_legacy: true - name: bluestore_throttle_cost_per_io_ssd type: uint level: advanced @@ -5887,6 +6783,7 @@ options: - bluestore_throttle_cost_per_io flags: - runtime + with_legacy: true - name: bluestore_deferred_batch_ops type: uint level: advanced @@ -5896,6 +6793,7 @@ options: max: 65535 flags: - runtime + with_legacy: true - name: bluestore_deferred_batch_ops_hdd type: uint level: advanced @@ -5907,6 +6805,7 @@ options: max: 65535 flags: - runtime + with_legacy: true - name: bluestore_deferred_batch_ops_ssd type: uint level: advanced @@ -5918,16 +6817,19 @@ options: max: 65535 flags: - runtime + with_legacy: true - name: bluestore_nid_prealloc type: int level: dev desc: Number of unique object ids to preallocate at a time default: 1024 + with_legacy: true - name: bluestore_blobid_prealloc type: uint level: dev desc: Number of unique blob ids to preallocate at a time default: 10_K + with_legacy: true - name: bluestore_clone_cow type: bool level: advanced @@ -5936,6 +6838,7 @@ options: default: true flags: - runtime + with_legacy: true - name: bluestore_default_buffered_read type: bool level: advanced @@ -5943,6 +6846,7 @@ options: default: true flags: - runtime + with_legacy: true - name: bluestore_default_buffered_write type: bool level: advanced @@ -5950,124 +6854,151 @@ options: default: false flags: - runtime + with_legacy: true - name: bluestore_debug_no_reuse_blocks type: bool level: dev default: false + with_legacy: true - name: bluestore_debug_small_allocations type: int level: dev default: 0 + with_legacy: true - name: bluestore_debug_too_many_blobs_threshold type: int level: dev default: 24576 + with_legacy: true - name: bluestore_debug_freelist type: bool level: dev default: false + with_legacy: true - name: bluestore_debug_prefill type: float level: dev desc: simulate fragmentation default: 0 + with_legacy: true - name: bluestore_debug_prefragment_max type: size level: dev default: 1_M + with_legacy: true - name: bluestore_debug_inject_read_err type: bool level: dev default: false + with_legacy: true - name: bluestore_debug_randomize_serial_transaction type: int level: dev default: 0 + with_legacy: true - name: bluestore_debug_omit_block_device_write type: bool level: dev default: false + with_legacy: true - name: bluestore_debug_fsck_abort type: bool level: dev default: false + with_legacy: true - name: bluestore_debug_omit_kv_commit type: bool level: dev default: false + with_legacy: true - name: bluestore_debug_permit_any_bdev_label type: bool level: dev default: false + with_legacy: true - name: bluestore_debug_random_read_err type: float level: dev default: 0 + with_legacy: true - name: bluestore_debug_inject_bug21040 type: bool level: dev default: false + with_legacy: true - name: bluestore_debug_inject_csum_err_probability type: float level: dev desc: inject crc verification errors into bluestore device reads default: 0 + with_legacy: true - name: bluestore_fsck_error_on_no_per_pool_stats type: bool level: advanced desc: Make fsck error (instead of warn) when bluestore lacks per-pool stats, e.g., after an upgrade default: false + with_legacy: true - name: bluestore_warn_on_bluefs_spillover type: bool level: advanced desc: Enable health indication on bluefs slow device usage default: true + with_legacy: true - name: bluestore_warn_on_legacy_statfs type: bool level: advanced desc: Enable health indication on lack of per-pool statfs reporting from bluestore default: true + with_legacy: true - name: bluestore_warn_on_spurious_read_errors type: bool level: advanced desc: Enable health indication when spurious read errors are observed by OSD default: true + with_legacy: true - name: bluestore_fsck_error_on_no_per_pool_omap type: bool level: advanced desc: Make fsck error (instead of warn) when objects without per-pool omap are found default: false + with_legacy: true - name: bluestore_fsck_error_on_no_per_pg_omap type: bool level: advanced desc: Make fsck error (instead of warn) when objects without per-pg omap are found default: false + with_legacy: true - name: bluestore_warn_on_no_per_pool_omap type: bool level: advanced desc: Enable health indication on lack of per-pool omap default: true + with_legacy: true - name: bluestore_warn_on_no_per_pg_omap type: bool level: advanced desc: Enable health indication on lack of per-pg omap default: false + with_legacy: true - name: bluestore_log_op_age type: float level: advanced desc: log operation if it's slower than this age (seconds) default: 5 + with_legacy: true - name: bluestore_log_omap_iterator_age type: float level: advanced desc: log omap iteration operation if it's slower than this age (seconds) default: 5 + with_legacy: true - name: bluestore_log_collection_list_age type: float level: advanced desc: log collection list operation if it's slower than this age (seconds) default: 1_min + with_legacy: true - name: bluestore_debug_enforce_settings type: str level: dev @@ -6080,6 +7011,7 @@ options: - default - hdd - ssd + with_legacy: true - name: bluestore_avl_alloc_bf_threshold type: uint level: dev @@ -6129,6 +7061,7 @@ options: - rocksdb_original - use_some_extra - fit_to_fast + with_legacy: true - name: bluestore_volume_selection_reserved_factor type: float level: advanced @@ -6138,6 +7071,7 @@ options: default: 2 flags: - startup + with_legacy: true - name: bluestore_volume_selection_reserved type: int level: advanced @@ -6147,6 +7081,7 @@ options: default: 0 flags: - startup + with_legacy: true - name: bdev_ioring type: bool level: advanced @@ -6171,58 +7106,72 @@ options: default: 10 flags: - runtime + with_legacy: true - name: kstore_max_ops type: uint level: advanced default: 512 + with_legacy: true - name: kstore_max_bytes type: size level: advanced default: 64_M + with_legacy: true - name: kstore_backend type: str level: advanced default: rocksdb + with_legacy: true - name: kstore_rocksdb_options type: str level: advanced desc: Options to pass through when RocksDB is used as the KeyValueDB for kstore. default: compression=kNoCompression + with_legacy: true - name: kstore_fsck_on_mount type: bool level: advanced desc: Whether or not to run fsck on mount for kstore. default: false + with_legacy: true - name: kstore_fsck_on_mount_deep type: bool level: advanced desc: Whether or not to run deep fsck on mount for kstore default: true + with_legacy: true - name: kstore_nid_prealloc type: uint level: advanced default: 1_K + with_legacy: true - name: kstore_sync_transaction type: bool level: advanced default: false + with_legacy: true - name: kstore_sync_submit_transaction type: bool level: advanced default: false + with_legacy: true - name: kstore_onode_map_size type: uint level: advanced default: 1_K + with_legacy: true - name: kstore_default_stripe_size type: size level: advanced default: 64_K + with_legacy: true +# rocksdb options that will be used for omap(if omap_backend is rocksdb) - name: filestore_rocksdb_options type: str level: dev desc: Options to pass through when RocksDB is used as the KeyValueDB for filestore. default: max_background_jobs=10,compaction_readahead_size=2097152,compression=kNoCompression + with_legacy: true - name: filestore_omap_backend type: str level: dev @@ -6231,430 +7180,573 @@ options: enum_values: - leveldb - rocksdb + with_legacy: true - name: filestore_omap_backend_path type: str level: dev desc: The path where the filestore KeyValueDB should store it's database(s). + with_legacy: true +# filestore wb throttle limits - name: filestore_wbthrottle_enable type: bool level: advanced desc: Enabling throttling of operations to backing file system default: true + with_legacy: true - name: filestore_wbthrottle_btrfs_bytes_start_flusher type: size level: advanced desc: Start flushing (fsyncing) when this many bytes are written(btrfs) default: 40_M + with_legacy: true - name: filestore_wbthrottle_btrfs_bytes_hard_limit type: size level: advanced desc: Block writes when this many bytes haven't been flushed (fsynced) (btrfs) default: 400_M + with_legacy: true - name: filestore_wbthrottle_btrfs_ios_start_flusher type: uint level: advanced desc: Start flushing (fsyncing) when this many IOs are written (brtrfs) default: 500 + with_legacy: true - name: filestore_wbthrottle_btrfs_ios_hard_limit type: uint level: advanced desc: Block writes when this many IOs haven't been flushed (fsynced) (btrfs) default: 5000 + with_legacy: true - name: filestore_wbthrottle_btrfs_inodes_start_flusher type: uint level: advanced desc: Start flushing (fsyncing) when this many distinct inodes have been modified (btrfs) default: 500 + with_legacy: true - name: filestore_wbthrottle_xfs_bytes_start_flusher type: size level: advanced desc: Start flushing (fsyncing) when this many bytes are written(xfs) default: 40_M + with_legacy: true - name: filestore_wbthrottle_xfs_bytes_hard_limit type: size level: advanced desc: Block writes when this many bytes haven't been flushed (fsynced) (xfs) default: 400_M + with_legacy: true - name: filestore_wbthrottle_xfs_ios_start_flusher type: uint level: advanced desc: Start flushing (fsyncing) when this many IOs are written (xfs) default: 500 + with_legacy: true - name: filestore_wbthrottle_xfs_ios_hard_limit type: uint level: advanced desc: Block writes when this many IOs haven't been flushed (fsynced) (xfs) default: 5000 + with_legacy: true - name: filestore_wbthrottle_xfs_inodes_start_flusher type: uint level: advanced desc: Start flushing (fsyncing) when this many distinct inodes have been modified (xfs) default: 500 + with_legacy: true +# These must be less than the fd limit - name: filestore_wbthrottle_btrfs_inodes_hard_limit type: uint level: advanced desc: Block writing when this many inodes have outstanding writes (btrfs) default: 5000 + with_legacy: true - name: filestore_wbthrottle_xfs_inodes_hard_limit type: uint level: advanced desc: Block writing when this many inodes have outstanding writes (xfs) default: 5000 + with_legacy: true +# Introduce a O_DSYNC write in the filestore - name: filestore_odsync_write type: bool level: dev desc: Write with O_DSYNC default: false + with_legacy: true +# Tests index failure paths - name: filestore_index_retry_probability type: float level: dev default: 0 + with_legacy: true +# Allow object read error injection - name: filestore_debug_inject_read_err type: bool level: dev default: false + with_legacy: true - name: filestore_debug_random_read_err type: float level: dev default: 0 + with_legacy: true +# Expensive debugging check on sync - name: filestore_debug_omap_check type: bool level: dev default: false + with_legacy: true - name: filestore_omap_header_cache_size type: size level: dev default: 1_K + with_legacy: true +# Use omap for xattrs for attrs over +# filestore_max_inline_xattr_size or - name: filestore_max_inline_xattr_size type: size level: dev default: 0 + with_legacy: true - name: filestore_max_inline_xattr_size_xfs type: size level: dev default: 64_K + with_legacy: true - name: filestore_max_inline_xattr_size_btrfs type: size level: dev default: 2_K + with_legacy: true - name: filestore_max_inline_xattr_size_other type: size level: dev default: 512 + with_legacy: true +# for more than filestore_max_inline_xattrs attrs - name: filestore_max_inline_xattrs type: uint level: dev default: 0 + with_legacy: true - name: filestore_max_inline_xattrs_xfs type: uint level: dev default: 10 + with_legacy: true - name: filestore_max_inline_xattrs_btrfs type: uint level: dev default: 10 + with_legacy: true - name: filestore_max_inline_xattrs_other type: uint level: dev default: 2 + with_legacy: true - name: filestore_max_xattr_value_size type: size level: dev default: 0 + with_legacy: true - name: filestore_max_xattr_value_size_xfs type: size level: dev default: 64_K + with_legacy: true - name: filestore_max_xattr_value_size_btrfs type: size level: dev default: 64_K + with_legacy: true +# ext4 allows 4k xattrs total including some smallish extra fields and the +# keys. We're allowing 2 512 inline attrs in addition some some filestore +# replay attrs. After accounting for those, we still need to fit up to +# two attrs of this value. That means we need this value to be around 1k +# to be safe. This is hacky, but it's not worth complicating the code +# to work around ext4's total xattr limit. - name: filestore_max_xattr_value_size_other type: size level: dev default: 1_K + with_legacy: true +# track sloppy crcs - name: filestore_sloppy_crc type: bool level: dev default: false + with_legacy: true - name: filestore_sloppy_crc_block_size type: size level: dev default: 64_K + with_legacy: true - name: filestore_max_alloc_hint_size type: size level: dev default: 1_M + with_legacy: true +# seconds - name: filestore_max_sync_interval type: float level: advanced desc: Period between calls to syncfs(2) and journal trims (seconds) default: 5 + with_legacy: true +# seconds - name: filestore_min_sync_interval type: float level: dev desc: Minimum period between calls to syncfs(2) default: 0.01 + with_legacy: true - name: filestore_btrfs_snap type: bool level: dev default: true + with_legacy: true - name: filestore_btrfs_clone_range type: bool level: advanced desc: Use btrfs clone_range ioctl to efficiently duplicate objects default: true + with_legacy: true +# zfsonlinux is still unstable - name: filestore_zfs_snap type: bool level: dev default: false + with_legacy: true - name: filestore_fsync_flushes_journal_data type: bool level: dev default: false + with_legacy: true +# (try to) use fiemap - name: filestore_fiemap type: bool level: advanced desc: Use fiemap ioctl(2) to determine which parts of objects are sparse default: false + with_legacy: true - name: filestore_punch_hole type: bool level: advanced desc: Use fallocate(2) FALLOC_FL_PUNCH_HOLE to efficiently zero ranges of objects default: false + with_legacy: true +# (try to) use seek_data/hole - name: filestore_seek_data_hole type: bool level: advanced desc: Use lseek(2) SEEK_HOLE and SEEK_DATA to determine which parts of objects are sparse default: false + with_legacy: true - name: filestore_splice type: bool level: advanced desc: Use splice(2) to more efficiently copy data between files default: false + with_legacy: true - name: filestore_fadvise type: bool level: advanced desc: Use posix_fadvise(2) to pass hints to file system default: true + with_legacy: true +# collect device partition information for management application to use - name: filestore_collect_device_partition_information type: bool level: advanced desc: Collect metadata about the backing file system on OSD startup default: true + with_legacy: true +# (try to) use extsize for alloc hint NOTE: extsize seems to trigger +# data corruption in xfs prior to kernel 3.5. filestore will +# implicitly disable this if it cannot confirm the kernel is newer +# than that. +# NOTE: This option involves a tradeoff: When disabled, fragmentation is +# worse, but large sequential writes are faster. When enabled, large +# sequential writes are slower, but fragmentation is reduced. - name: filestore_xfs_extsize type: bool level: advanced desc: Use XFS extsize ioctl(2) to hint allocator about expected write sizes default: false + with_legacy: true - name: filestore_journal_parallel type: bool level: dev default: false + with_legacy: true - name: filestore_journal_writeahead type: bool level: dev default: false + with_legacy: true - name: filestore_journal_trailing type: bool level: dev default: false + with_legacy: true - name: filestore_queue_max_ops type: uint level: advanced desc: Max IO operations in flight default: 50 + with_legacy: true - name: filestore_queue_max_bytes type: size level: advanced desc: Max (written) bytes in flight default: 100_M + with_legacy: true - name: filestore_caller_concurrency type: int level: dev default: 10 + with_legacy: true +# Expected filestore throughput in B/s - name: filestore_expected_throughput_bytes type: float level: advanced desc: Expected throughput of backend device (aids throttling calculations) default: 209715200 + with_legacy: true +# Expected filestore throughput in ops/s - name: filestore_expected_throughput_ops type: float level: advanced desc: Expected through of backend device in IOPS (aids throttling calculations) default: 200 + with_legacy: true +# Filestore max delay multiple. Defaults to 0 (disabled) - name: filestore_queue_max_delay_multiple type: float level: dev default: 0 + with_legacy: true +# Filestore high delay multiple. Defaults to 0 (disabled) - name: filestore_queue_high_delay_multiple type: float level: dev default: 0 + with_legacy: true +# Filestore max delay multiple ops. Defaults to 0 (disabled) - name: filestore_queue_max_delay_multiple_bytes type: float level: dev default: 0 + with_legacy: true +# Filestore high delay multiple bytes. Defaults to 0 (disabled) - name: filestore_queue_high_delay_multiple_bytes type: float level: dev default: 0 + with_legacy: true +# Filestore max delay multiple ops. Defaults to 0 (disabled) - name: filestore_queue_max_delay_multiple_ops type: float level: dev default: 0 + with_legacy: true +# Filestore high delay multiple ops. Defaults to 0 (disabled) - name: filestore_queue_high_delay_multiple_ops type: float level: dev default: 0 + with_legacy: true - name: filestore_queue_low_threshhold type: float level: dev default: 0.3 + with_legacy: true - name: filestore_queue_high_threshhold type: float level: dev + with_legacy: true default: 0.9 - name: filestore_op_threads type: int level: advanced desc: Threads used to apply changes to backing file system default: 2 + with_legacy: true - name: filestore_op_thread_timeout type: int level: advanced desc: Seconds before a worker thread is considered stalled default: 1_min + with_legacy: true - name: filestore_op_thread_suicide_timeout type: int level: advanced desc: Seconds before a worker thread is considered dead default: 3_min + with_legacy: true - name: filestore_commit_timeout type: float level: advanced desc: Seconds before backing file system is considered hung default: 10_min + with_legacy: true - name: filestore_fiemap_threshold type: size level: dev default: 4_K + with_legacy: true - name: filestore_merge_threshold type: int level: dev default: -10 + with_legacy: true - name: filestore_split_multiple type: int level: dev default: 2 + with_legacy: true - name: filestore_split_rand_factor type: uint level: dev default: 20 + with_legacy: true - name: filestore_update_to type: int level: dev default: 1000 + with_legacy: true - name: filestore_blackhole type: bool level: dev default: false + with_legacy: true - name: filestore_fd_cache_size type: int level: dev default: 128 + with_legacy: true - name: filestore_fd_cache_shards type: int level: dev default: 16 + with_legacy: true - name: filestore_ondisk_finisher_threads type: int level: dev default: 1 + with_legacy: true - name: filestore_apply_finisher_threads type: int level: dev default: 1 + with_legacy: true +# file onto which store transaction dumps - name: filestore_dump_file type: str level: dev + with_legacy: true +# inject a failure at the n'th opportunity - name: filestore_kill_at type: int level: dev default: 0 + with_legacy: true +# artificially stall for N seconds in op queue thread - name: filestore_inject_stall type: int level: dev default: 0 + with_legacy: true +# fail/crash on EIO - name: filestore_fail_eio type: bool level: dev default: true + with_legacy: true - name: filestore_debug_verify_split type: bool level: dev default: false + with_legacy: true - name: journal_dio type: bool level: dev default: true + with_legacy: true - name: journal_aio type: bool level: dev default: true + with_legacy: true - name: journal_force_aio type: bool level: dev default: false + with_legacy: true - name: journal_block_size type: size level: dev default: 4_K + with_legacy: true - name: journal_block_align type: bool level: dev default: true + with_legacy: true - name: journal_write_header_frequency type: uint level: dev default: 0 + with_legacy: true - name: journal_max_write_bytes type: size level: advanced desc: Max bytes in flight to journal default: 10_M + with_legacy: true - name: journal_max_write_entries type: int level: advanced desc: Max IOs in flight to journal default: 100 + with_legacy: true +# Target range for journal fullness - name: journal_throttle_low_threshhold type: float level: dev default: 0.6 + with_legacy: true - name: journal_throttle_high_threshhold type: float level: dev default: 0.9 + with_legacy: true +# Multiple over expected at high_threshhold. Defaults to 0 (disabled). - name: journal_throttle_high_multiple type: float level: dev default: 0 + with_legacy: true +# Multiple over expected at max. Defaults to 0 (disabled). - name: journal_throttle_max_multiple type: float level: dev default: 0 + with_legacy: true +# align data payloads >= this. - name: journal_align_min_size type: size level: dev default: 64_K + with_legacy: true - name: journal_replay_from type: int level: dev default: 0 + with_legacy: true - name: mgr_stats_threshold type: int level: advanced @@ -6668,18 +7760,25 @@ options: type: bool level: dev default: false + with_legacy: true +# assume journal is not corrupt - name: journal_ignore_corruption type: bool level: dev default: false + with_legacy: true +# using ssd disk as journal, whether support discard nouse journal-data. - name: journal_discard type: bool level: dev default: false + with_legacy: true +# fio data directory for fio-objectstore - name: fio_dir type: str level: advanced default: /tmp/fio + with_legacy: true - name: rados_mon_op_timeout type: secs level: advanced @@ -6696,10 +7795,12 @@ options: min: 0 flags: - runtime +# true if LTTng-UST tracepoints should be enabled - name: rados_tracing type: bool level: advanced default: false + with_legacy: true - name: cephadm_path type: str level: advanced @@ -6880,10 +7981,12 @@ options: type: bool level: advanced default: true + with_legacy: true - name: event_tracing type: bool level: advanced default: false + with_legacy: true - name: bluestore_tracing type: bool level: advanced @@ -6898,6 +8001,7 @@ options: type: bool level: dev default: false + with_legacy: true - name: debug_asserts_on_shutdown type: bool level: dev @@ -6908,6 +8012,7 @@ options: level: dev desc: allow commands 'assert' and 'abort' via asok for testing crash dumps etc default: false + with_legacy: true - name: target_max_misplaced_ratio type: float level: basic diff --git a/src/common/options/legacy_config_opts.h b/src/common/options/legacy_config_opts.h new file mode 100644 index 00000000000..d5156328250 --- /dev/null +++ b/src/common/options/legacy_config_opts.h @@ -0,0 +1,8 @@ +#include "global_legacy_options.h" +#include "cephfs-mirror_legacy_options.h" +#include "mds_legacy_options.h" +#include "mds-client_legacy_options.h" +#include "rbd_legacy_options.h" +#include "rbd-mirror_legacy_options.h" +#include "immutable-object-cache_legacy_options.h" +#include "rgw_legacy_options.h" diff --git a/src/common/options/mds-client.yaml.in b/src/common/options/mds-client.yaml.in index a0d17d153a5..6cae41a8ed2 100644 --- a/src/common/options/mds-client.yaml.in +++ b/src/common/options/mds-client.yaml.in @@ -9,6 +9,7 @@ options: default: 16_K services: - mds_client + with_legacy: true - name: client_cache_mid type: float level: advanced @@ -16,6 +17,7 @@ options: default: 0.75 services: - mds_client + with_legacy: true - name: client_use_random_mds type: bool level: dev @@ -23,6 +25,7 @@ options: default: false services: - mds_client + with_legacy: true - name: client_mount_timeout type: float level: advanced @@ -30,6 +33,7 @@ options: default: 5_min services: - mds_client + with_legacy: true - name: client_tick_interval type: secs level: dev @@ -43,6 +47,7 @@ options: desc: file containing trace of client operations services: - mds_client + with_legacy: true - name: client_readahead_min type: size level: advanced @@ -50,6 +55,7 @@ options: default: 128_K services: - mds_client + with_legacy: true - name: client_readahead_max_bytes type: size level: advanced @@ -57,6 +63,8 @@ options: default: 0 services: - mds_client + with_legacy: true +# as multiple of file layout period (object size * num stripes) - name: client_readahead_max_periods type: int level: advanced @@ -64,6 +72,7 @@ options: default: 4 services: - mds_client + with_legacy: true - name: client_reconnect_stale type: bool level: advanced @@ -78,6 +87,7 @@ options: default: .snap services: - mds_client + with_legacy: true - name: client_mountpoint type: str level: advanced @@ -92,6 +102,7 @@ options: default: -1 services: - mds_client + with_legacy: true - name: client_mount_gid type: int level: advanced @@ -99,24 +110,28 @@ options: default: -1 services: - mds_client + with_legacy: true - name: client_notify_timeout type: int level: dev default: 10 services: - mds_client + with_legacy: true - name: osd_client_watch_timeout type: int level: dev default: 30 services: - mds_client + with_legacy: true - name: client_caps_release_delay type: int level: dev default: 5 services: - mds_client + with_legacy: true - name: client_quota_df type: bool level: advanced @@ -124,6 +139,7 @@ options: default: true services: - mds_client + with_legacy: true - name: client_oc type: bool level: advanced @@ -131,6 +147,7 @@ options: default: true services: - mds_client + with_legacy: true - name: client_oc_size type: size level: advanced @@ -140,6 +157,8 @@ options: - mds_client flags: - runtime + with_legacy: true +# MB * n (dirty OR tx.. bigish) - name: client_oc_max_dirty type: size level: advanced @@ -149,6 +168,8 @@ options: - mds_client flags: - runtime + with_legacy: true +# target dirty (keep this smallish) - name: client_oc_target_dirty type: size level: advanced @@ -158,6 +179,7 @@ options: - mds_client flags: - runtime + with_legacy: true - name: client_oc_max_dirty_age type: float level: advanced @@ -167,6 +189,7 @@ options: - mds_client flags: - runtime + with_legacy: true - name: client_oc_max_objects type: int level: advanced @@ -176,18 +199,23 @@ options: - mds_client flags: - runtime + with_legacy: true +# check if MDS reply contains wanted caps - name: client_debug_getattr_caps type: bool level: dev default: false services: - mds_client + with_legacy: true +# always read synchronously (go to osds) - name: client_debug_force_sync_read type: bool level: dev default: false services: - mds_client + with_legacy: true - name: client_debug_inject_tick_delay type: secs level: dev @@ -200,30 +228,37 @@ options: default: 4_K services: - mds_client + with_legacy: true +# synthetic client bug for testing - name: client_inject_release_failure type: bool level: dev default: false services: - mds_client + with_legacy: true +# synthetic client bug for testing - name: client_inject_fixed_oldest_tid type: bool level: dev default: false services: - mds_client + with_legacy: true - name: client_metadata type: str level: advanced desc: metadata key=value comma-delimited pairs appended to session metadata services: - mds_client + with_legacy: true - name: client_acl_type type: str level: advanced desc: ACL type to enforce (none or "posix_acl") services: - mds_client + with_legacy: true - name: client_permissions type: bool level: advanced @@ -231,6 +266,7 @@ options: default: true services: - mds_client + with_legacy: true - name: client_dirsize_rbytes type: bool level: advanced @@ -241,6 +277,7 @@ options: default: true services: - mds_client + with_legacy: true - name: client_force_lazyio type: bool level: advanced @@ -360,12 +397,14 @@ options: default: true services: - mds_client +# the client should try to use dentry invaldation instead of remounting, on kernels it believes that will work for - name: client_try_dentry_invalidate type: bool level: dev default: false services: - mds_client + with_legacy: true - name: client_die_on_failed_remount type: bool level: dev @@ -390,12 +429,14 @@ options: default: true services: - mds_client + with_legacy: true - name: client_use_faked_inos type: bool level: dev default: false services: - mds_client + with_legacy: true - name: client_fs type: str level: advanced @@ -422,6 +463,8 @@ options: default: 0 services: - mds_client + with_legacy: true +# XXX: mon - name: debug_allow_any_pool_priority type: bool level: dev @@ -429,6 +472,7 @@ options: default: false services: - mds_client + with_legacy: true - name: client_asio_thread_count type: uint level: advanced diff --git a/src/common/options/mds.yaml.in b/src/common/options/mds.yaml.in index e9219e4ec6c..734258646e0 100644 --- a/src/common/options/mds.yaml.in +++ b/src/common/options/mds.yaml.in @@ -37,6 +37,7 @@ options: - mds flags: - no_mon_update + with_legacy: true - name: mds_join_fs type: str level: basic @@ -48,6 +49,7 @@ options: - mds flags: - runtime +# max xattr kv pairs size for each dir/file - name: mds_max_xattr_pairs_size type: size level: advanced @@ -55,6 +57,7 @@ options: default: 64_K services: - mds + with_legacy: true - name: mds_cache_trim_interval type: secs level: advanced @@ -136,6 +139,7 @@ options: default: 32 services: - mds + with_legacy: true - name: mds_dir_max_commit_size type: int level: advanced @@ -143,6 +147,7 @@ options: default: 10 services: - mds + with_legacy: true - name: mds_dir_keys_per_op type: int level: advanced @@ -150,6 +155,7 @@ options: default: 16384 services: - mds + with_legacy: true - name: mds_decay_halflife type: float level: advanced @@ -157,6 +163,7 @@ options: default: 5 services: - mds + with_legacy: true - name: mds_beacon_interval type: float level: advanced @@ -164,6 +171,7 @@ options: default: 4 services: - mds + with_legacy: true - name: mds_beacon_grace type: float level: advanced @@ -171,6 +179,7 @@ options: default: 15 services: - mds + with_legacy: true - name: mds_heartbeat_grace type: float level: advanced @@ -185,6 +194,8 @@ options: default: true services: - mds + with_legacy: true +# whether to blocklist clients whose sessions are dropped due to timeout - name: mds_session_blocklist_on_timeout type: bool level: advanced @@ -192,6 +203,8 @@ options: default: true services: - mds + with_legacy: true +# whether to blocklist clients whose sessions are dropped via admin commands - name: mds_session_blocklist_on_evict type: bool level: advanced @@ -199,6 +212,8 @@ options: default: true services: - mds + with_legacy: true +# how many sessions should I try to load/store in a single OMAP operation? - name: mds_sessionmap_keys_per_op type: uint level: advanced @@ -206,6 +221,7 @@ options: default: 1_K services: - mds + with_legacy: true - name: mds_recall_max_caps type: size level: advanced @@ -326,12 +342,15 @@ options: default: 0.5 services: - mds +# detecting freeze tree deadlock - name: mds_freeze_tree_timeout type: float level: dev default: 30 services: - mds + with_legacy: true +# collapse N-client health metrics to a single 'many' - name: mds_health_summarize_threshold type: int level: advanced @@ -339,6 +358,9 @@ options: default: 10 services: - mds + with_legacy: true +# seconds to wait for clients during mds restart +# make it (mdsmap.session_timeout - mds_beacon_grace) - name: mds_reconnect_timeout type: float level: advanced @@ -347,6 +369,7 @@ options: default: 45 services: - mds + with_legacy: true - name: mds_deny_all_reconnect type: bool level: advanced @@ -363,12 +386,16 @@ options: default: 5 services: - mds + with_legacy: true +# try to avoid propagating more often than this - name: mds_dirstat_min_interval type: float level: dev default: 1 services: - mds + with_legacy: true +# how quickly dirstat changes propagate up the hierarchy - name: mds_scatter_nudge_interval type: float level: advanced @@ -376,6 +403,7 @@ options: default: 5 services: - mds + with_legacy: true - name: mds_client_prealloc_inos type: int level: advanced @@ -383,6 +411,7 @@ options: default: 1000 services: - mds + with_legacy: true - name: mds_client_delegate_inos_pct type: uint level: advanced @@ -400,6 +429,7 @@ options: default: true services: - mds + with_legacy: true - name: mds_replay_unsafe_with_closed_session type: bool level: advanced @@ -418,18 +448,21 @@ options: default: 2 services: - mds + with_legacy: true - name: mds_log_pause type: bool level: dev default: false services: - mds + with_legacy: true - name: mds_log_skip_corrupt_events type: bool level: dev default: false services: - mds + with_legacy: true - name: mds_log_max_events type: int level: advanced @@ -437,6 +470,7 @@ options: default: -1 services: - mds + with_legacy: true - name: mds_log_events_per_segment type: int level: advanced @@ -444,6 +478,8 @@ options: default: 1024 services: - mds + with_legacy: true +# segment size for mds log, default to default file_layout_t - name: mds_log_segment_size type: size level: advanced @@ -451,6 +487,7 @@ options: default: 0 services: - mds + with_legacy: true - name: mds_log_max_segments type: uint level: advanced @@ -458,6 +495,7 @@ options: default: 128 services: - mds + with_legacy: true - name: mds_log_warn_factor type: float level: advanced @@ -476,6 +514,7 @@ options: default: true services: - mds + with_legacy: true - name: mds_export_ephemeral_random type: bool level: advanced @@ -530,6 +569,7 @@ options: default: 3 services: - mds + with_legacy: true - name: mds_bal_replicate_threshold type: float level: advanced @@ -537,6 +577,7 @@ options: default: 8000 services: - mds + with_legacy: true - name: mds_bal_unreplicate_threshold type: float level: advanced @@ -544,6 +585,7 @@ options: default: 0 services: - mds + with_legacy: true - name: mds_bal_split_size type: int level: advanced @@ -551,6 +593,7 @@ options: default: 10000 services: - mds + with_legacy: true - name: mds_bal_split_rd type: float level: advanced @@ -558,6 +601,7 @@ options: default: 25000 services: - mds + with_legacy: true - name: mds_bal_split_wr type: float level: advanced @@ -565,6 +609,7 @@ options: default: 10000 services: - mds + with_legacy: true - name: mds_bal_split_bits type: int level: advanced @@ -574,6 +619,7 @@ options: - mds min: 1 max: 24 + with_legacy: true - name: mds_bal_merge_size type: int level: advanced @@ -581,6 +627,7 @@ options: default: 50 services: - mds + with_legacy: true - name: mds_bal_interval type: int level: advanced @@ -595,6 +642,7 @@ options: default: 5 services: - mds +# order of magnitude higher than split size - name: mds_bal_fragment_size_max type: int level: advanced @@ -602,6 +650,8 @@ options: default: 100000 services: - mds + with_legacy: true +# multiple of size_max that triggers immediate split - name: mds_bal_fragment_fast_factor type: float level: advanced @@ -609,6 +659,7 @@ options: default: 1.5 services: - mds + with_legacy: true - name: mds_bal_fragment_dirs type: bool level: advanced @@ -628,24 +679,29 @@ options: default: 0 services: - mds + with_legacy: true - name: mds_bal_max type: int level: dev default: -1 services: - mds + with_legacy: true - name: mds_bal_max_until type: int level: dev default: -1 services: - mds + with_legacy: true - name: mds_bal_mode type: int level: dev default: 0 services: - mds + with_legacy: true +# must be this much above average before we export anything - name: mds_bal_min_rebalance type: float level: dev @@ -653,36 +709,47 @@ options: default: 0.1 services: - mds + with_legacy: true +# if we need less than this, we don't do anything - name: mds_bal_min_start type: float level: dev default: 0.2 services: - mds + with_legacy: true +# take within this range of what we need - name: mds_bal_need_min type: float level: dev default: 0.8 services: - mds + with_legacy: true - name: mds_bal_need_max type: float level: dev default: 1.2 services: - mds + with_legacy: true +# any sub bigger than this taken in full - name: mds_bal_midchunk type: float level: dev default: 0.3 services: - mds + with_legacy: true +# never take anything smaller than this - name: mds_bal_minchunk type: float level: dev default: 0.001 services: - mds + with_legacy: true +# target decay half-life in MDSMap (2x larger is approx. 2x slower) - name: mds_bal_target_decay type: float level: advanced @@ -690,6 +757,7 @@ options: default: 10 services: - mds + with_legacy: true - name: mds_oft_prefetch_dirfrags type: bool level: advanced @@ -699,6 +767,7 @@ options: - mds flags: - startup +# time to wait before starting replay again - name: mds_replay_interval type: float level: advanced @@ -706,72 +775,84 @@ options: default: 1 services: - mds + with_legacy: true - name: mds_shutdown_check type: int level: dev default: 0 services: - mds + with_legacy: true - name: mds_thrash_exports type: int level: dev default: 0 services: - mds + with_legacy: true - name: mds_thrash_fragments type: int level: dev default: 0 services: - mds + with_legacy: true - name: mds_dump_cache_on_map type: bool level: dev default: false services: - mds + with_legacy: true - name: mds_dump_cache_after_rejoin type: bool level: dev default: false services: - mds + with_legacy: true - name: mds_verify_scatter type: bool level: dev default: false services: - mds + with_legacy: true - name: mds_debug_scatterstat type: bool level: dev default: false services: - mds + with_legacy: true - name: mds_debug_frag type: bool level: dev default: false services: - mds + with_legacy: true - name: mds_debug_auth_pins type: bool level: dev default: false services: - mds + with_legacy: true - name: mds_debug_subtrees type: bool level: dev default: false services: - mds + with_legacy: true - name: mds_kill_mdstable_at type: int level: dev default: 0 services: - mds + with_legacy: true - name: mds_max_export_size type: size level: dev @@ -784,30 +865,36 @@ options: default: 0 services: - mds + with_legacy: true - name: mds_kill_import_at type: int level: dev default: 0 services: - mds + with_legacy: true - name: mds_kill_link_at type: int level: dev default: 0 services: - mds + with_legacy: true - name: mds_kill_rename_at type: int level: dev default: 0 services: - mds + with_legacy: true - name: mds_kill_openc_at type: int level: dev default: 0 services: - mds + with_legacy: true +# XXX - name: mds_kill_journal_at type: int level: dev @@ -820,48 +907,57 @@ options: default: 0 services: - mds + with_legacy: true - name: mds_kill_journal_replay_at type: int level: dev default: 0 services: - mds + with_legacy: true - name: mds_journal_format type: uint level: dev default: 1 services: - mds + with_legacy: true - name: mds_kill_create_at type: int level: dev default: 0 services: - mds + with_legacy: true +# percentage of MDS modify replies to skip sending the client a trace on [0-1] - name: mds_inject_traceless_reply_probability type: float level: dev default: 0 services: - mds + with_legacy: true - name: mds_wipe_sessions type: bool level: dev default: false services: - mds + with_legacy: true - name: mds_wipe_ino_prealloc type: bool level: dev default: false services: - mds + with_legacy: true - name: mds_skip_ino type: int level: dev default: 0 services: - mds + with_legacy: true - name: mds_enable_op_tracker type: bool level: advanced @@ -869,6 +965,8 @@ options: default: true services: - mds + with_legacy: true +# Max number of completed ops to track - name: mds_op_history_size type: uint level: advanced @@ -876,6 +974,8 @@ options: default: 20 services: - mds + with_legacy: true +# Oldest completed op to track - name: mds_op_history_duration type: uint level: advanced @@ -883,6 +983,8 @@ options: default: 600 services: - mds + with_legacy: true +# how many seconds old makes an op complaint-worthy - name: mds_op_complaint_time type: float level: advanced @@ -890,12 +992,15 @@ options: default: 30 services: - mds + with_legacy: true +# how many op log messages to show in one go - name: mds_op_log_threshold type: int level: dev default: 5 services: - mds + with_legacy: true - name: mds_snap_min_uid type: uint level: advanced @@ -903,6 +1008,7 @@ options: default: 0 services: - mds + with_legacy: true - name: mds_snap_max_uid type: uint level: advanced @@ -910,6 +1016,7 @@ options: default: 4294967294 services: - mds + with_legacy: true - name: mds_snap_rstat type: bool level: advanced @@ -917,24 +1024,29 @@ options: default: false services: - mds + with_legacy: true - name: mds_verify_backtrace type: uint level: dev default: 1 services: - mds + with_legacy: true +# detect clients which aren't trimming completed requests - name: mds_max_completed_flushes type: uint level: dev default: 100000 services: - mds + with_legacy: true - name: mds_max_completed_requests type: uint level: dev default: 100000 services: - mds + with_legacy: true - name: mds_action_on_write_error type: uint level: advanced @@ -942,6 +1054,7 @@ options: default: 1 services: - mds + with_legacy: true - name: mds_mon_shutdown_timeout type: float level: advanced @@ -949,6 +1062,8 @@ options: default: 5 services: - mds + with_legacy: true +# Maximum number of concurrent stray files to purge - name: mds_max_purge_files type: uint level: advanced @@ -956,6 +1071,8 @@ options: default: 64 services: - mds + with_legacy: true +# Maximum number of concurrent RADOS ops to issue in purging - name: mds_max_purge_ops type: uint level: advanced @@ -963,6 +1080,8 @@ options: default: 8_K services: - mds + with_legacy: true +# Maximum number of concurrent RADOS ops to issue in purging, scaled by PG count - name: mds_max_purge_ops_per_pg type: float level: advanced @@ -970,12 +1089,14 @@ options: default: 0.5 services: - mds + with_legacy: true - name: mds_purge_queue_busy_flush_period type: float level: dev default: 1 services: - mds + with_legacy: true - name: mds_root_ino_uid type: int level: advanced @@ -983,6 +1104,7 @@ options: default: 0 services: - mds + with_legacy: true - name: mds_root_ino_gid type: int level: advanced @@ -990,6 +1112,7 @@ options: default: 0 services: - mds + with_legacy: true - name: mds_max_scrub_ops_in_progress type: int level: advanced @@ -997,6 +1120,7 @@ options: default: 5 services: - mds + with_legacy: true - name: mds_forward_all_requests_to_auth type: bool level: advanced @@ -1006,6 +1130,7 @@ options: - mds flags: - runtime +# Maximum number of damaged frags/dentries before whole MDS rank goes damaged - name: mds_damage_table_max_entries type: int level: advanced @@ -1013,6 +1138,8 @@ options: default: 10000 services: - mds + with_legacy: true +# Maximum increment for client writable range, counted by number of objects - name: mds_client_writeable_range_max_inc_objs type: uint level: advanced @@ -1020,6 +1147,7 @@ options: default: 1_K services: - mds + with_legacy: true - name: mds_min_caps_per_client type: uint level: advanced diff --git a/src/common/options/rgw.yaml.in b/src/common/options/rgw.yaml.in index 5678c48aa9b..9a7398d5f6d 100644 --- a/src/common/options/rgw.yaml.in +++ b/src/common/options/rgw.yaml.in @@ -2,6 +2,8 @@ --- options: +# According to AWS S3(http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html), +# An ACL can have up to 100 grants. - name: rgw_acl_grants_max_num type: int level: advanced @@ -9,6 +11,9 @@ options: default: 100 services: - rgw + with_legacy: true +# According to AWS S3(http://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html), +# An cors can have up to 100 rules. - name: rgw_cors_rules_max_num type: int level: advanced @@ -16,6 +21,10 @@ options: default: 100 services: - rgw + with_legacy: true +# According to AWS S3(https://docs.aws.amazon.com/AmazonS3/latest/dev/DeletingObjects.html), +# Amazon S3 also provides the Multi-Object Delete API that you can use to delete up to 1000 +# objects in a single HTTP request. - name: rgw_delete_multi_obj_max_num type: int level: advanced @@ -23,6 +32,8 @@ options: default: 1000 services: - rgw + with_legacy: true +# According to AWS S3, An website routing config can have up to 50 rules. - name: rgw_website_routing_rules_max_num type: int level: advanced @@ -30,6 +41,7 @@ options: default: 50 services: - rgw + with_legacy: true - name: rgw_rados_tracing type: bool level: advanced @@ -56,6 +68,7 @@ options: default: 4_M services: - rgw + with_legacy: true - name: rgw_put_obj_min_window_size type: size level: advanced @@ -70,6 +83,7 @@ options: see_also: - rgw_put_obj_max_window_size - rgw_max_chunk_size + with_legacy: true - name: rgw_put_obj_max_window_size type: size level: advanced @@ -82,6 +96,7 @@ options: see_also: - rgw_put_obj_min_window_size - rgw_max_chunk_size + with_legacy: true - name: rgw_max_put_size type: size level: advanced @@ -92,6 +107,7 @@ options: default: 5_G services: - rgw + with_legacy: true - name: rgw_max_put_param_size type: size level: advanced @@ -99,6 +115,7 @@ options: default: 1_M services: - rgw + with_legacy: true - name: rgw_max_attr_size type: size level: advanced @@ -106,6 +123,7 @@ options: default: 0 services: - rgw + with_legacy: true - name: rgw_max_attr_name_len type: size level: advanced @@ -113,6 +131,7 @@ options: default: 0 services: - rgw + with_legacy: true - name: rgw_max_attrs_num_in_req type: uint level: advanced @@ -120,6 +139,14 @@ options: default: 0 services: - rgw + with_legacy: true +# override max bucket index shards in zone configuration (if not zero) +# +# Represents the number of shards for the bucket index object, a value of zero +# indicates there is no sharding. By default (no sharding, the name of the object +# is '.dir.{marker}', with sharding, the name is '.dir.{markder}.{sharding_id}', +# sharding_id is zero-based value. It is not recommended to set a too large value +# (e.g. thousand) as it increases the cost for bucket listing. - name: rgw_override_bucket_index_max_shards type: uint level: dev @@ -130,6 +157,8 @@ options: default: 0 services: - rgw + with_legacy: true +# Represents the maximum AIO pending requests for the bucket index object shards. - name: rgw_bucket_index_max_aio type: uint level: advanced @@ -137,6 +166,8 @@ options: default: 128 services: - rgw + with_legacy: true +# whether or not the quota/gc threads should be started - name: rgw_enable_quota_threads type: bool level: advanced @@ -152,6 +183,7 @@ options: see_also: - rgw_enable_gc_threads - rgw_enable_lc_threads + with_legacy: true - name: rgw_enable_gc_threads type: bool level: advanced @@ -167,6 +199,7 @@ options: see_also: - rgw_enable_quota_threads - rgw_enable_lc_threads + with_legacy: true - name: rgw_enable_lc_threads type: bool level: advanced @@ -183,6 +216,7 @@ options: see_also: - rgw_enable_gc_threads - rgw_enable_quota_threads + with_legacy: true - name: rgw_data type: str level: advanced @@ -194,6 +228,7 @@ options: - rgw flags: - no_mon_update + with_legacy: true - name: rgw_enable_apis type: str level: advanced @@ -201,6 +236,7 @@ options: default: s3, s3website, swift, swift_auth, admin, sts, iam, notifications services: - rgw + with_legacy: true - name: rgw_cache_enabled type: bool level: advanced @@ -214,6 +250,7 @@ options: - rgw see_also: - rgw_cache_lru_size + with_legacy: true - name: rgw_cache_lru_size type: int level: advanced @@ -224,6 +261,7 @@ options: - rgw see_also: - rgw_cache_enabled + with_legacy: true - name: rgw_socket_path type: str level: advanced @@ -232,6 +270,7 @@ options: - rgw see_also: - rgw_fcgi_socket_backlog + with_legacy: true - name: rgw_host type: str level: advanced @@ -241,6 +280,7 @@ options: see_also: - rgw_port - rgw_fcgi_socket_backlog + with_legacy: true - name: rgw_port type: str level: basic @@ -250,6 +290,7 @@ options: see_also: - rgw_host - rgw_fcgi_socket_backlog + with_legacy: true - name: rgw_dns_name type: str level: advanced @@ -258,6 +299,7 @@ options: configured via zonegroup configuration. services: - rgw + with_legacy: true - name: rgw_dns_s3website_name type: str level: advanced @@ -266,6 +308,7 @@ options: zonegroup configuration. services: - rgw + with_legacy: true - name: rgw_numa_node type: int level: advanced @@ -283,6 +326,7 @@ options: contain the name of the provider. This name will be placed in http header 'Server'. services: - rgw + with_legacy: true - name: rgw_content_length_compat type: bool level: advanced @@ -292,6 +336,7 @@ options: default: false services: - rgw + with_legacy: true - name: rgw_relaxed_region_enforcement type: bool level: advanced @@ -309,12 +354,14 @@ options: default: 00:00-06:00 services: - rgw + with_legacy: true - name: rgw_lc_lock_max_time type: int level: dev default: 90 services: - rgw + with_legacy: true - name: rgw_lc_thread_delay type: int level: advanced @@ -332,6 +379,7 @@ options: default: 3 services: - rgw + with_legacy: true - name: rgw_lc_max_wp_worker type: int level: advanced @@ -341,6 +389,7 @@ options: default: 3 services: - rgw + with_legacy: true - name: rgw_lc_max_objs type: int level: advanced @@ -350,6 +399,7 @@ options: default: 32 services: - rgw + with_legacy: true - name: rgw_lc_max_rules type: uint level: advanced @@ -358,12 +408,14 @@ options: default: 1000 services: - rgw + with_legacy: true - name: rgw_lc_debug_interval type: int level: dev default: -1 services: - rgw + with_legacy: true - name: rgw_mp_lock_max_time type: int level: advanced @@ -379,11 +431,13 @@ options: level: dev services: - rgw + with_legacy: true - name: rgw_request_uri type: str level: dev services: - rgw + with_legacy: true - name: rgw_ignore_get_invalid_range type: bool level: advanced @@ -393,6 +447,7 @@ options: default: false services: - rgw + with_legacy: true - name: rgw_swift_url type: str level: advanced @@ -403,6 +458,7 @@ options: - rgw see_also: - rgw_swift_auth_entry + with_legacy: true - name: rgw_swift_url_prefix type: str level: advanced @@ -411,6 +467,7 @@ options: default: swift services: - rgw + with_legacy: true - name: rgw_swift_auth_url type: str level: advanced @@ -419,6 +476,7 @@ options: not using internal swift auth). services: - rgw + with_legacy: true - name: rgw_swift_auth_entry type: str level: advanced @@ -429,6 +487,7 @@ options: - rgw see_also: - rgw_swift_url + with_legacy: true - name: rgw_swift_tenant_name type: str level: advanced @@ -438,6 +497,7 @@ options: - rgw see_also: - rgw_swift_account_in_url + with_legacy: true - name: rgw_swift_account_in_url type: bool level: advanced @@ -448,6 +508,7 @@ options: - rgw see_also: - rgw_swift_tenant_name + with_legacy: true - name: rgw_swift_enforce_content_length type: bool level: advanced @@ -457,12 +518,14 @@ options: default: false services: - rgw + with_legacy: true - name: rgw_keystone_url type: str level: basic desc: The URL to the Keystone server. services: - rgw + with_legacy: true - name: rgw_keystone_admin_token type: str level: advanced @@ -470,6 +533,7 @@ options: requests.' services: - rgw + with_legacy: true - name: rgw_keystone_admin_token_path type: str level: advanced @@ -477,72 +541,84 @@ options: the Keystone requests. services: - rgw + with_legacy: true - name: rgw_keystone_admin_user type: str level: advanced desc: Keystone admin user. services: - rgw + with_legacy: true - name: rgw_keystone_admin_password type: str level: advanced desc: 'DEPRECATED: Keystone admin password.' services: - rgw + with_legacy: true - name: rgw_keystone_admin_password_path type: str level: advanced desc: Path to a file containing the Keystone admin password. services: - rgw + with_legacy: true - name: rgw_keystone_admin_tenant type: str level: advanced desc: Keystone admin user tenant. services: - rgw + with_legacy: true - name: rgw_keystone_admin_project type: str level: advanced desc: Keystone admin user project (for Keystone v3). services: - rgw + with_legacy: true - name: rgw_keystone_admin_domain type: str level: advanced desc: Keystone admin user domain (for Keystone v3). services: - rgw + with_legacy: true - name: rgw_keystone_barbican_user type: str level: advanced desc: Keystone user to access barbican secrets. services: - rgw + with_legacy: true - name: rgw_keystone_barbican_password type: str level: advanced desc: Keystone password for barbican user. services: - rgw + with_legacy: true - name: rgw_keystone_barbican_tenant type: str level: advanced desc: Keystone barbican user tenant (Keystone v2.0). services: - rgw + with_legacy: true - name: rgw_keystone_barbican_project type: str level: advanced desc: Keystone barbican user project (Keystone v3). services: - rgw + with_legacy: true - name: rgw_keystone_barbican_domain type: str level: advanced desc: Keystone barbican user domain. services: - rgw + with_legacy: true - name: rgw_keystone_api_version type: int level: advanced @@ -550,6 +626,7 @@ options: default: 2 services: - rgw + with_legacy: true - name: rgw_keystone_accepted_roles type: str level: advanced @@ -557,12 +634,14 @@ options: default: Member, admin services: - rgw + with_legacy: true - name: rgw_keystone_accepted_admin_roles type: str level: advanced desc: List of roles allowing user to gain admin privileges (Keystone). services: - rgw + with_legacy: true - name: rgw_keystone_token_cache_size type: int level: advanced @@ -572,6 +651,7 @@ options: default: 10000 services: - rgw + with_legacy: true - name: rgw_keystone_verify_ssl type: bool level: advanced @@ -579,6 +659,7 @@ options: default: true services: - rgw + with_legacy: true - name: rgw_keystone_implicit_tenants type: str level: advanced @@ -597,6 +678,7 @@ options: - '0' - '1' - none + with_legacy: true - name: rgw_cross_domain_policy type: str level: advanced @@ -606,12 +688,14 @@ options: default: services: - rgw + with_legacy: true - name: rgw_healthcheck_disabling_path type: str level: dev desc: Swift health check api can be disabled if a file can be accessed in this path. services: - rgw + with_legacy: true - name: rgw_s3_auth_use_rados type: bool level: advanced @@ -619,6 +703,7 @@ options: default: true services: - rgw + with_legacy: true - name: rgw_s3_auth_use_keystone type: bool level: advanced @@ -626,6 +711,7 @@ options: default: false services: - rgw + with_legacy: true - name: rgw_s3_auth_order type: str level: advanced @@ -637,12 +723,15 @@ options: default: sts, external, local services: - rgw + with_legacy: true - name: rgw_barbican_url type: str level: advanced desc: URL to barbican server. services: - rgw + with_legacy: true +# OpenLDAP-style LDAP parameter strings - name: rgw_ldap_uri type: str level: advanced @@ -650,6 +739,7 @@ options: default: ldaps:// services: - rgw + with_legacy: true - name: rgw_ldap_binddn type: str level: advanced @@ -657,6 +747,7 @@ options: default: uid=admin,cn=users,dc=example,dc=com services: - rgw + with_legacy: true - name: rgw_ldap_searchdn type: str level: advanced @@ -664,6 +755,7 @@ options: default: cn=users,cn=accounts,dc=example,dc=com services: - rgw + with_legacy: true - name: rgw_ldap_dnattr type: str level: advanced @@ -671,6 +763,7 @@ options: default: uid services: - rgw + with_legacy: true - name: rgw_ldap_secret type: str level: advanced @@ -678,6 +771,7 @@ options: default: /etc/openldap/secret services: - rgw + with_legacy: true - name: rgw_s3_auth_use_ldap type: bool level: advanced @@ -685,24 +779,28 @@ options: default: false services: - rgw + with_legacy: true - name: rgw_ldap_searchfilter type: str level: advanced desc: LDAP search filter. services: - rgw + with_legacy: true - name: rgw_opa_url type: str level: advanced desc: URL to OPA server. services: - rgw + with_legacy: true - name: rgw_opa_token type: str level: advanced desc: The Bearer token OPA uses to authenticate client requests. services: - rgw + with_legacy: true - name: rgw_opa_verify_ssl type: bool level: advanced @@ -710,6 +808,7 @@ options: default: true services: - rgw + with_legacy: true - name: rgw_use_opa_authz type: bool level: advanced @@ -717,6 +816,7 @@ options: default: false services: - rgw + with_legacy: true - name: rgw_admin_entry type: str level: advanced @@ -724,6 +824,7 @@ options: default: admin services: - rgw + with_legacy: true - name: rgw_enforce_swift_acls type: bool level: advanced @@ -733,6 +834,7 @@ options: default: true services: - rgw + with_legacy: true - name: rgw_swift_token_expiration type: int level: advanced @@ -740,6 +842,7 @@ options: default: 1_day services: - rgw + with_legacy: true - name: rgw_print_continue type: bool level: advanced @@ -749,6 +852,7 @@ options: default: true services: - rgw + with_legacy: true - name: rgw_print_prohibited_content_length type: bool level: advanced @@ -758,6 +862,7 @@ options: default: false services: - rgw + with_legacy: true - name: rgw_remote_addr_param type: str level: advanced @@ -772,6 +877,7 @@ options: - rgw see_also: - rgw_enable_ops_log + with_legacy: true - name: rgw_op_thread_timeout type: int level: dev @@ -779,12 +885,14 @@ options: default: 10_min services: - rgw + with_legacy: true - name: rgw_op_thread_suicide_timeout type: int level: dev default: 0 services: - rgw + with_legacy: true - name: rgw_thread_pool_size type: int level: basic @@ -796,6 +904,7 @@ options: default: 512 services: - rgw + with_legacy: true - name: rgw_num_control_oids type: int level: advanced @@ -808,6 +917,7 @@ options: default: 8 services: - rgw + with_legacy: true - name: rgw_verify_ssl type: bool level: advanced @@ -820,30 +930,43 @@ options: - rgw see_also: - rgw_keystone_verify_ssl + with_legacy: true +# The following are tunables for caches of RGW NFS (and other file +# client) objects. +# +# The file handle cache is a partitioned hash table +# (fhcache_partitions), each with a closed hash part and backing +# b-tree mapping. The number of partions is expected to be a small +# prime, the cache size something larger but less than 5K, the total +# size of the cache is n_part * cache_size. - name: rgw_nfs_lru_lanes type: int level: advanced default: 5 services: - rgw + with_legacy: true - name: rgw_nfs_lru_lane_hiwat type: int level: advanced default: 911 services: - rgw + with_legacy: true - name: rgw_nfs_fhcache_partitions type: int level: advanced default: 3 services: - rgw + with_legacy: true - name: rgw_nfs_fhcache_size type: int level: advanced default: 2017 services: - rgw + with_legacy: true - name: rgw_nfs_namespace_expire_secs type: int level: advanced @@ -851,6 +974,7 @@ options: services: - rgw min: 1 + with_legacy: true - name: rgw_nfs_max_gc type: int level: advanced @@ -858,12 +982,15 @@ options: services: - rgw min: 1 + with_legacy: true - name: rgw_nfs_write_completion_interval_s type: int level: advanced default: 10 services: - rgw + with_legacy: true +# use fast S3 attrs from bucket index--currently assumes NFS mounts are immutable - name: rgw_nfs_s3_fast_attrs type: bool level: advanced @@ -872,6 +999,8 @@ options: default: false services: - rgw + with_legacy: true +# overrides for librgw/nfs - name: rgw_nfs_run_gc_threads type: bool level: advanced @@ -879,6 +1008,7 @@ options: default: false services: - rgw + with_legacy: true - name: rgw_nfs_run_lc_threads type: bool level: advanced @@ -886,6 +1016,7 @@ options: default: false services: - rgw + with_legacy: true - name: rgw_nfs_run_quota_threads type: bool level: advanced @@ -893,6 +1024,7 @@ options: default: false services: - rgw + with_legacy: true - name: rgw_nfs_run_sync_thread type: bool level: advanced @@ -900,6 +1032,7 @@ options: default: false services: - rgw + with_legacy: true - name: rgw_rados_pool_autoscale_bias type: float level: advanced @@ -936,6 +1069,7 @@ options: see_also: - rgw_zonegroup - rgw_realm + with_legacy: true - name: rgw_zone_root_pool type: str level: advanced @@ -948,6 +1082,7 @@ options: - rgw_zonegroup_root_pool - rgw_realm_root_pool - rgw_period_root_pool + with_legacy: true - name: rgw_default_zone_info_oid type: str level: advanced @@ -956,6 +1091,7 @@ options: default: default.zone services: - rgw + with_legacy: true - name: rgw_region type: str level: advanced @@ -965,6 +1101,7 @@ options: - rgw see_also: - rgw_zonegroup + with_legacy: true - name: rgw_region_root_pool type: str level: advanced @@ -975,6 +1112,7 @@ options: - rgw see_also: - rgw_zonegroup_root_pool + with_legacy: true - name: rgw_default_region_info_oid type: str level: advanced @@ -986,6 +1124,7 @@ options: - rgw see_also: - rgw_default_zonegroup_info_oid + with_legacy: true - name: rgw_zonegroup type: str level: advanced @@ -995,6 +1134,7 @@ options: see_also: - rgw_zone - rgw_realm + with_legacy: true - name: rgw_zonegroup_root_pool type: str level: advanced @@ -1008,17 +1148,20 @@ options: - rgw_zone_root_pool - rgw_realm_root_pool - rgw_period_root_pool + with_legacy: true - name: rgw_default_zonegroup_info_oid type: str level: advanced default: default.zonegroup services: - rgw + with_legacy: true - name: rgw_realm type: str level: advanced services: - rgw + with_legacy: true - name: rgw_realm_root_pool type: str level: advanced @@ -1031,12 +1174,14 @@ options: - rgw_zonegroup_root_pool - rgw_zone_root_pool - rgw_period_root_pool + with_legacy: true - name: rgw_default_realm_info_oid type: str level: advanced default: default.realm services: - rgw + with_legacy: true - name: rgw_period_root_pool type: str level: advanced @@ -1050,12 +1195,14 @@ options: - rgw_zonegroup_root_pool - rgw_zone_root_pool - rgw_realm_root_pool + with_legacy: true - name: rgw_period_latest_epoch_info_oid type: str level: dev default: .latest_epoch services: - rgw + with_legacy: true - name: rgw_log_nonexistent_bucket type: bool level: advanced @@ -1068,6 +1215,8 @@ options: - rgw see_also: - rgw_enable_ops_log + with_legacy: true +# man date to see codes (a subset are supported) - name: rgw_log_object_name type: str level: advanced @@ -1079,6 +1228,7 @@ options: - rgw see_also: - rgw_enable_ops_log + with_legacy: true - name: rgw_log_object_name_utc type: bool level: advanced @@ -1091,6 +1241,7 @@ options: see_also: - rgw_enable_ops_log - rgw_log_object_name + with_legacy: true - name: rgw_usage_max_shards type: int level: advanced @@ -1102,6 +1253,7 @@ options: - rgw see_also: - rgw_enable_usage_log + with_legacy: true - name: rgw_usage_max_user_shards type: int level: advanced @@ -1113,6 +1265,8 @@ options: see_also: - rgw_enable_usage_log min: 1 + with_legacy: true +# enable logging every rgw operation - name: rgw_enable_ops_log type: bool level: advanced @@ -1125,6 +1279,8 @@ options: - rgw_log_object_name - rgw_ops_log_rados - rgw_ops_log_socket_path + with_legacy: true +# enable logging bandwidth usage - name: rgw_enable_usage_log type: bool level: advanced @@ -1134,6 +1290,8 @@ options: - rgw see_also: - rgw_usage_max_shards + with_legacy: true +# whether ops log should go to rados - name: rgw_ops_log_rados type: bool level: advanced @@ -1144,6 +1302,8 @@ options: - rgw see_also: - rgw_enable_ops_log + with_legacy: true +# path to unix domain socket where ops log can go - name: rgw_ops_log_socket_path type: str level: advanced @@ -1155,6 +1315,8 @@ options: see_also: - rgw_enable_ops_log - rgw_ops_log_data_backlog + with_legacy: true +# max data backlog for ops log - name: rgw_ops_log_data_backlog type: size level: advanced @@ -1169,6 +1331,8 @@ options: see_also: - rgw_enable_ops_log - rgw_ops_log_socket_path + with_legacy: true +# socket backlog for fcgi - name: rgw_fcgi_socket_backlog type: int level: advanced @@ -1181,6 +1345,7 @@ options: see_also: - rgw_host - rgw_socket_path + with_legacy: true - name: rgw_usage_log_flush_threshold type: int level: advanced @@ -1195,6 +1360,7 @@ options: see_also: - rgw_enable_usage_log - rgw_usage_log_tick_interval + with_legacy: true - name: rgw_usage_log_tick_interval type: int level: advanced @@ -1208,6 +1374,7 @@ options: see_also: - rgw_enable_usage_log - rgw_usage_log_flush_threshold + with_legacy: true - name: rgw_init_timeout type: int level: basic @@ -1218,6 +1385,7 @@ options: default: 5_min services: - rgw + with_legacy: true - name: rgw_mime_types_file type: str level: basic @@ -1228,6 +1396,7 @@ options: default: /etc/mime.types services: - rgw + with_legacy: true - name: rgw_gc_max_objs type: int level: advanced @@ -1242,6 +1411,8 @@ options: - rgw_gc_processor_max_time - rgw_gc_processor_period - rgw_gc_max_concurrent_io + with_legacy: true +# wait time before object may be handled by gc, recommended lower limit is 30 mins - name: rgw_gc_obj_min_wait type: int level: advanced @@ -1258,6 +1429,7 @@ options: - rgw_gc_processor_max_time - rgw_gc_processor_period - rgw_gc_max_concurrent_io + with_legacy: true - name: rgw_gc_processor_max_time type: int level: advanced @@ -1277,6 +1449,7 @@ options: - rgw_gc_obj_min_wait - rgw_gc_processor_period - rgw_gc_max_concurrent_io + with_legacy: true - name: rgw_gc_processor_period type: int level: advanced @@ -1293,6 +1466,7 @@ options: - rgw_gc_processor_max_time - rgw_gc_max_concurrent_io - rgw_gc_max_trim_chunk + with_legacy: true - name: rgw_gc_max_concurrent_io type: int level: advanced @@ -1307,6 +1481,7 @@ options: - rgw_gc_obj_min_wait - rgw_gc_processor_max_time - rgw_gc_max_trim_chunk + with_legacy: true - name: rgw_gc_max_trim_chunk type: int level: advanced @@ -1319,6 +1494,7 @@ options: - rgw_gc_obj_min_wait - rgw_gc_processor_max_time - rgw_gc_max_concurrent_io + with_legacy: true - name: rgw_gc_max_deferred_entries_size type: uint level: advanced @@ -1326,6 +1502,7 @@ options: default: 3_K services: - rgw + with_legacy: true - name: rgw_gc_max_queue_size type: uint level: advanced @@ -1338,6 +1515,7 @@ options: see_also: - osd_max_object_size - rgw_gc_max_deferred_entries_size + with_legacy: true - name: rgw_gc_max_deferred type: uint level: advanced @@ -1345,6 +1523,7 @@ options: default: 50 services: - rgw + with_legacy: true - name: rgw_s3_success_create_obj_status type: int level: advanced @@ -1354,6 +1533,7 @@ options: default: 0 services: - rgw + with_legacy: true - name: rgw_s3_client_max_sig_ver type: int level: advanced @@ -1373,6 +1553,7 @@ options: default: false services: - rgw + with_legacy: true - name: rgw_obj_stripe_size type: size level: advanced @@ -1383,6 +1564,8 @@ options: default: 4_M services: - rgw + with_legacy: true +# list of extended attrs that can be set on objects (beyond the default) - name: rgw_extended_http_attrs type: str level: advanced @@ -1392,6 +1575,7 @@ options: set, these attributes will return as HTTP fields when doing GET/HEAD on the object. services: - rgw + with_legacy: true - name: rgw_exit_timeout_secs type: int level: advanced @@ -1400,6 +1584,7 @@ options: default: 2_min services: - rgw + with_legacy: true - name: rgw_get_obj_window_size type: size level: advanced @@ -1408,6 +1593,7 @@ options: default: 16_M services: - rgw + with_legacy: true - name: rgw_get_obj_max_req_size type: size level: advanced @@ -1416,6 +1602,7 @@ options: default: 4_M services: - rgw + with_legacy: true - name: rgw_relaxed_s3_bucket_names type: bool level: advanced @@ -1424,6 +1611,7 @@ options: default: false services: - rgw + with_legacy: true - name: rgw_defer_to_bucket_acls type: str level: advanced @@ -1433,6 +1621,7 @@ options: users that have full control permission on the bucket have access to the object. services: - rgw + with_legacy: true - name: rgw_list_buckets_max_chunk type: int level: advanced @@ -1443,6 +1632,7 @@ options: default: 1000 services: - rgw + with_legacy: true - name: rgw_md_log_max_shards type: int level: advanced @@ -1453,6 +1643,7 @@ options: default: 64 services: - rgw + with_legacy: true - name: rgw_curl_buffersize type: int level: dev @@ -1463,12 +1654,14 @@ options: - rgw min: 1024 max: 524288 + with_legacy: true - name: rgw_curl_wait_timeout_ms type: int level: dev default: 1000 services: - rgw + with_legacy: true - name: rgw_curl_low_speed_limit type: int level: advanced @@ -1478,6 +1671,7 @@ options: default: 1024 services: - rgw + with_legacy: true - name: rgw_curl_low_speed_time type: int level: advanced @@ -1487,6 +1681,7 @@ options: default: 5_min services: - rgw + with_legacy: true - name: rgw_copy_obj_progress type: bool level: advanced @@ -1495,6 +1690,7 @@ options: default: true services: - rgw + with_legacy: true - name: rgw_copy_obj_progress_every_bytes type: size level: advanced @@ -1502,6 +1698,7 @@ options: default: 1_M services: - rgw + with_legacy: true - name: rgw_sync_obj_etag_verify type: bool level: advanced @@ -1513,6 +1710,7 @@ options: default: false services: - rgw + with_legacy: true - name: rgw_obj_tombstone_cache_size type: int level: advanced @@ -1523,6 +1721,7 @@ options: default: 1000 services: - rgw + with_legacy: true - name: rgw_data_log_window type: int level: advanced @@ -1533,6 +1732,7 @@ options: default: 30 services: - rgw + with_legacy: true - name: rgw_data_log_changes_size type: int level: dev @@ -1542,6 +1742,7 @@ options: default: 1000 services: - rgw + with_legacy: true - name: rgw_data_log_num_shards type: int level: advanced @@ -1552,12 +1753,14 @@ options: default: 128 services: - rgw + with_legacy: true - name: rgw_data_log_obj_prefix type: str level: dev default: data_log services: - rgw + with_legacy: true - name: rgw_bucket_quota_ttl type: int level: advanced @@ -1566,6 +1769,7 @@ options: default: 10_min services: - rgw + with_legacy: true - name: rgw_bucket_quota_soft_threshold type: float level: basic @@ -1577,6 +1781,7 @@ options: default: 0.95 services: - rgw + with_legacy: true - name: rgw_bucket_quota_cache_size type: int level: advanced @@ -1585,6 +1790,7 @@ options: default: 10000 services: - rgw + with_legacy: true - name: rgw_bucket_default_quota_max_objects type: int level: basic @@ -1594,6 +1800,7 @@ options: default: -1 services: - rgw + with_legacy: true - name: rgw_bucket_default_quota_max_size type: int level: advanced @@ -1603,6 +1810,7 @@ options: default: -1 services: - rgw + with_legacy: true - name: rgw_expose_bucket type: bool level: advanced @@ -1612,6 +1820,7 @@ options: default: false services: - rgw + with_legacy: true - name: rgw_frontends type: str level: basic @@ -1622,6 +1831,7 @@ options: default: beast port=7480 services: - rgw + with_legacy: true - name: rgw_frontend_defaults type: str level: advanced @@ -1638,6 +1848,7 @@ options: default: 3_min services: - rgw + with_legacy: true - name: rgw_user_quota_sync_interval type: int level: advanced @@ -1647,6 +1858,7 @@ options: default: 1_day services: - rgw + with_legacy: true - name: rgw_user_quota_sync_idle_users type: bool level: advanced @@ -1655,6 +1867,7 @@ options: default: false services: - rgw + with_legacy: true - name: rgw_user_quota_sync_wait_time type: int level: advanced @@ -1663,6 +1876,7 @@ options: default: 1_day services: - rgw + with_legacy: true - name: rgw_user_default_quota_max_objects type: int level: basic @@ -1672,6 +1886,7 @@ options: default: -1 services: - rgw + with_legacy: true - name: rgw_user_default_quota_max_size type: int level: basic @@ -1681,6 +1896,7 @@ options: default: -1 services: - rgw + with_legacy: true - name: rgw_multipart_min_part_size type: size level: advanced @@ -1690,6 +1906,7 @@ options: default: 5_M services: - rgw + with_legacy: true - name: rgw_multipart_part_upload_limit type: int level: advanced @@ -1697,6 +1914,7 @@ options: default: 10000 services: - rgw + with_legacy: true - name: rgw_max_slo_entries type: int level: advanced @@ -1704,6 +1922,7 @@ options: default: 1000 services: - rgw + with_legacy: true - name: rgw_olh_pending_timeout_sec type: int level: dev @@ -1714,6 +1933,7 @@ options: default: 1_hr services: - rgw + with_legacy: true - name: rgw_user_max_buckets type: int level: basic @@ -1724,6 +1944,7 @@ options: default: 1000 services: - rgw + with_legacy: true - name: rgw_objexp_gc_interval type: uint level: advanced @@ -1731,6 +1952,7 @@ options: default: 600 services: - rgw + with_legacy: true - name: rgw_objexp_hints_num_shards type: uint level: advanced @@ -1739,12 +1961,15 @@ options: default: 127 services: - rgw + with_legacy: true +# maximum number of entries in a single operation when processing objexp data - name: rgw_objexp_chunk_size type: uint level: dev default: 100 services: - rgw + with_legacy: true - name: rgw_enable_static_website type: bool level: basic @@ -1755,6 +1980,7 @@ options: default: false services: - rgw + with_legacy: true - name: rgw_user_unique_email type: bool level: basic @@ -1773,6 +1999,7 @@ options: (e.g., http_x_forwarded_for). services: - rgw + with_legacy: true - name: rgw_num_async_rados_threads type: int level: advanced @@ -1783,6 +2010,7 @@ options: default: 32 services: - rgw + with_legacy: true - name: rgw_md_notify_interval_msec type: int level: advanced @@ -1793,6 +2021,7 @@ options: default: 200 services: - rgw + with_legacy: true - name: rgw_run_sync_thread type: bool level: advanced @@ -1800,12 +2029,14 @@ options: default: true services: - rgw + with_legacy: true - name: rgw_sync_lease_period type: int level: dev default: 2_min services: - rgw + with_legacy: true - name: rgw_sync_log_trim_interval type: int level: advanced @@ -1814,6 +2045,7 @@ options: default: 20_min services: - rgw + with_legacy: true - name: rgw_sync_log_trim_max_buckets type: int level: advanced @@ -1860,12 +2092,14 @@ options: default: 0 services: - rgw + with_legacy: true - name: rgw_sync_meta_inject_err_probability type: float level: dev default: 0 services: - rgw + with_legacy: true - name: rgw_sync_trace_history_size type: size level: advanced @@ -1874,6 +2108,7 @@ options: default: 4_K services: - rgw + with_legacy: true - name: rgw_sync_trace_per_node_log_size type: int level: advanced @@ -1882,6 +2117,7 @@ options: default: 32 services: - rgw + with_legacy: true - name: rgw_sync_trace_servicemap_update_interval type: int level: advanced @@ -1890,6 +2126,7 @@ options: default: 10 services: - rgw + with_legacy: true - name: rgw_period_push_interval type: float level: advanced @@ -1898,6 +2135,7 @@ options: default: 2 services: - rgw + with_legacy: true - name: rgw_period_push_interval_max type: float level: advanced @@ -1907,6 +2145,7 @@ options: default: 30 services: - rgw + with_legacy: true - name: rgw_safe_max_objects_per_shard type: int level: advanced @@ -1919,6 +2158,8 @@ options: - rgw see_also: - rgw_shard_warning_threshold + with_legacy: true +# pct of safe max at which to warn - name: rgw_shard_warning_threshold type: float level: advanced @@ -1930,6 +2171,7 @@ options: - rgw see_also: - rgw_safe_max_objects_per_shard + with_legacy: true - name: rgw_swift_versioning_enabled type: bool level: advanced @@ -1937,6 +2179,7 @@ options: default: false services: - rgw + with_legacy: true - name: rgw_swift_custom_header type: str level: advanced @@ -1946,6 +2189,7 @@ options: info and it will be available when listing the bucket. services: - rgw + with_legacy: true - name: rgw_swift_need_stats type: bool level: advanced @@ -1953,6 +2197,7 @@ options: default: true services: - rgw + with_legacy: true - name: rgw_reshard_num_logs type: uint level: advanced @@ -2017,6 +2262,7 @@ options: - rgw see_also: - rgw_crypt_require_ssl + with_legacy: true - name: rgw_crypt_require_ssl type: bool level: advanced @@ -2024,11 +2270,14 @@ options: default: true services: - rgw + with_legacy: true +# base64 encoded key for encryption of rgw objects - name: rgw_crypt_default_encryption_key type: str level: dev services: - rgw + with_legacy: true - name: rgw_crypt_s3_kms_backend type: str level: advanced @@ -2042,15 +2291,19 @@ options: - vault - testing - kmip + with_legacy: true +# extra keys that may be used for aws:kms +# defined as map "key1=YmluCmJvb3N0CmJvb3N0LQ== key2=b3V0CnNyYwpUZXN0aW5nCg==" - name: rgw_crypt_s3_kms_encryption_keys type: str level: dev services: - rgw + with_legacy: true - name: rgw_crypt_vault_auth type: str level: advanced - desc: 'Type of authentication method to be used with Vault. ' + desc: Type of authentication method to be used with Vault. default: token services: - rgw @@ -2061,6 +2314,7 @@ options: enum_values: - token - agent + with_legacy: true - name: rgw_crypt_vault_token_file type: str level: advanced @@ -2072,6 +2326,7 @@ options: - rgw_crypt_s3_kms_backend - rgw_crypt_vault_auth - rgw_crypt_vault_addr + with_legacy: true - name: rgw_crypt_vault_addr type: str level: advanced @@ -2082,6 +2337,8 @@ options: - rgw_crypt_s3_kms_backend - rgw_crypt_vault_auth - rgw_crypt_vault_prefix + with_legacy: true +# Optional URL prefix to Vault secret path - name: rgw_crypt_vault_prefix type: str level: advanced @@ -2093,6 +2350,8 @@ options: - rgw_crypt_s3_kms_backend - rgw_crypt_vault_addr - rgw_crypt_vault_auth + with_legacy: true +# kv, transit or other supported secret engines - name: rgw_crypt_vault_secret_engine type: str level: advanced @@ -2104,6 +2363,8 @@ options: - rgw_crypt_s3_kms_backend - rgw_crypt_vault_auth - rgw_crypt_vault_addr + with_legacy: true +# Vault Namespace (only availabe in Vault Enterprise Version) - name: rgw_crypt_vault_namespace type: str level: advanced @@ -2114,48 +2375,56 @@ options: - rgw_crypt_s3_kms_backend - rgw_crypt_vault_auth - rgw_crypt_vault_addr + with_legacy: true - name: rgw_crypt_kmip_addr type: str level: advanced desc: kmip server address services: - rgw + with_legacy: true - name: rgw_crypt_kmip_ca_path type: str level: advanced desc: ca for kmip servers services: - rgw + with_legacy: true - name: rgw_crypt_kmip_username type: str level: advanced desc: when authenticating via username services: - rgw + with_legacy: true - name: rgw_crypt_kmip_password type: str level: advanced desc: optional w/ username services: - rgw + with_legacy: true - name: rgw_crypt_kmip_client_cert type: str level: advanced desc: connect using client certificate services: - rgw + with_legacy: true - name: rgw_crypt_kmip_client_key type: str level: advanced desc: connect using client certificate services: - rgw + with_legacy: true - name: rgw_crypt_kmip_kms_key_template type: str level: advanced desc: sse-kms; kmip key names services: - rgw + with_legacy: true - name: rgw_crypt_kmip_s3_key_template type: str level: advanced @@ -2163,6 +2432,7 @@ options: default: $keyid services: - rgw + with_legacy: true - name: rgw_crypt_suppress_logs type: bool level: advanced @@ -2170,6 +2440,7 @@ options: default: true services: - rgw + with_legacy: true - name: rgw_list_bucket_min_readahead type: int level: advanced @@ -2177,6 +2448,7 @@ options: default: 1000 services: - rgw + with_legacy: true - name: rgw_rest_getusage_op_compat type: bool level: advanced @@ -2184,6 +2456,8 @@ options: default: false services: - rgw + with_legacy: true +# The following are tunables for torrent data - name: rgw_torrent_flag type: bool level: advanced @@ -2192,30 +2466,35 @@ options: default: false services: - rgw + with_legacy: true - name: rgw_torrent_tracker type: str level: advanced desc: Torrent field announce and announce list services: - rgw + with_legacy: true - name: rgw_torrent_createby type: str level: advanced desc: torrent field created by services: - rgw + with_legacy: true - name: rgw_torrent_comment type: str level: advanced desc: Torrent field comment services: - rgw + with_legacy: true - name: rgw_torrent_encoding type: str level: advanced desc: torrent field encoding services: - rgw + with_legacy: true - name: rgw_data_notify_interval_msec type: int level: advanced @@ -2229,12 +2508,14 @@ options: desc: Torrent origin services: - rgw + with_legacy: true - name: rgw_torrent_sha_unit type: size level: advanced default: 512_K services: - rgw + with_legacy: true - name: rgw_dynamic_resharding type: bool level: basic @@ -2340,6 +2621,7 @@ options: default: sts services: - rgw + with_legacy: true - name: rgw_sts_key type: str level: advanced @@ -2348,6 +2630,8 @@ options: default: sts services: - rgw + with_legacy: true +# should we try to use sts for s3? - name: rgw_s3_auth_use_sts type: bool level: advanced @@ -2355,6 +2639,7 @@ options: default: false services: - rgw + with_legacy: true - name: rgw_sts_max_session_duration type: uint level: advanced @@ -2363,6 +2648,7 @@ options: default: 43200 services: - rgw + with_legacy: true - name: rgw_sts_min_session_duration type: uint level: advanced @@ -2370,6 +2656,7 @@ options: default: 900 services: - rgw + with_legacy: true - name: rgw_max_listing_results type: uint level: advanced @@ -2390,6 +2677,7 @@ options: long_desc: URL for introspecting an STS Web Token. services: - rgw + with_legacy: true - name: rgw_sts_client_id type: str level: advanced @@ -2397,6 +2685,7 @@ options: long_desc: Client Id needed for introspecting a Web Token. services: - rgw + with_legacy: true - name: rgw_sts_client_secret type: str level: advanced @@ -2404,6 +2693,7 @@ options: long_desc: Client Secret needed for introspecting a Web Token. services: - rgw + with_legacy: true - name: rgw_max_concurrent_requests type: int level: basic diff --git a/src/common/options/y2c.py b/src/common/options/y2c.py index 34e2593864e..8064177296f 100755 --- a/src/common/options/y2c.py +++ b/src/common/options/y2c.py @@ -6,6 +6,7 @@ import math import os import sys +# flake8: noqa: E127 def type_to_cxx(t): return f'Option::TYPE_{t.upper()}' @@ -185,6 +186,21 @@ def yaml_to_cxx(opt, indent): return cxx +def type_to_h(t): + if t == 'uint': + return 'OPT_U32' + return f'OPT_{t.upper()}' + + +def yaml_to_h(opt): + if opt.get('with_legacy', False): + name = opt['name'] + typ = opt['type'] + htyp = type_to_h(typ) + return f'OPTION({name}, {htyp})' + else: + return '' + TEMPLATE_CC = '''#include "common/options.h" {headers} @@ -208,21 +224,24 @@ def translate(opts): name = os.path.split(opts.input)[-1] name = name.rsplit('.', 1)[0] name = name.replace('-', '_') - with open(opts.input) as infile, open(opts.output, 'w') as outfile: + # noqa: E127 + with open(opts.input) as infile, \ + open(opts.output, 'w') as cc_file, \ + open(opts.legacy, 'w') as h_file: yml = yaml.safe_load(infile) headers = yml.get('headers', '') - outfile.write(prelude.format(name=name, headers=headers)) + cc_file.write(prelude.format(name=name, headers=headers)) options = yml['options'] for option in options: try: - cxx = yaml_to_cxx(option, opts.indent) - outfile.write(cxx) - outfile.write('\n') + cc_file.write(yaml_to_cxx(option, opts.indent) + '\n') + if option.get('with_legacy', False): + h_file.write(yaml_to_h(option) + '\n') except ValueError as e: print(f'failed to translate option "{name}": {e}', file=sys.stderr) return 1 - outfile.write(epilogue.replace("}}", "}")) + cc_file.write(epilogue.replace("}}", "}")) def readable_size(value, typ): @@ -302,6 +321,9 @@ def main(): parser.add_argument('-o', '--output', dest='output', default='options', help='the path to the generated .cc file') + parser.add_argument('--legacy', dest='legacy', + default='legacy_options', + help='the path to the generated legacy .h file') parser.add_argument('--indent', type=int, default=4, help='the number of spaces added before each line') -- 2.39.5