From 6829384546f4df875085102a98987c8f130a0485 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 26 Jun 2017 15:31:34 -0400 Subject: [PATCH] g++ ../src/convert.cc -o cv -I../src -I. ./cv > /tmp/foo ...and copy that into options.cc bin/generate_option_header > ../src/common/config_fields.h Signed-off-by: Sage Weil --- src/common/config_fields.h | 1256 ++++++++++ src/common/options.cc | 4880 ++++++++++++++++++++++++++++++++++++ src/convert.cc | 51 + 3 files changed, 6187 insertions(+) create mode 100644 src/common/config_fields.h create mode 100644 src/convert.cc diff --git a/src/common/config_fields.h b/src/common/config_fields.h new file mode 100644 index 00000000000..5ac6865a1f6 --- /dev/null +++ b/src/common/config_fields.h @@ -0,0 +1,1256 @@ + std::string host; + uuid_d fsid; + entity_addr_t public_addr; + std::string cluster_addr; + std::string public_network; + std::string cluster_network; + std::string monmap; + std::string mon_host; + std::string mon_dns_srv_name; + bool lockdep; + bool lockdep_force_backtrace; + std::string run_dir; + std::string admin_socket; + std::string admin_socket_mode; + std::string crushtool; + bool daemonize; + std::string setuser; + std::string setgroup; + std::string setuser_match_path; + std::string pid_file; + std::string chdir; + bool fatal_signal_handlers; + std::string restapi_log_level; + std::string restapi_base_url; + std::string erasure_code_dir; + std::string log_file; + int64_t log_max_new; + int64_t log_max_recent; + bool log_to_stderr; + bool err_to_stderr; + bool log_to_syslog; + bool err_to_syslog; + bool log_flush_on_exit; + double log_stop_at_utilization; + bool log_to_graylog; + bool err_to_graylog; + std::string log_graylog_host; + int64_t log_graylog_port; + std::string clog_to_monitors; + std::string clog_to_syslog; + std::string clog_to_syslog_level; + std::string clog_to_syslog_facility; + std::string clog_to_graylog; + std::string clog_to_graylog_host; + std::string clog_to_graylog_port; + std::string mon_cluster_log_to_syslog; + std::string mon_cluster_log_to_syslog_level; + std::string mon_cluster_log_to_syslog_facility; + std::string mon_cluster_log_file; + std::string mon_cluster_log_file_level; + std::string mon_cluster_log_to_graylog; + std::string mon_cluster_log_to_graylog_host; + std::string mon_cluster_log_to_graylog_port; + std::string enable_experimental_unrecoverable_data_corrupting_features; + std::string plugin_dir; + bool xio_trace_mempool; + bool xio_trace_msgcnt; + bool xio_trace_xcon; + int64_t xio_queue_depth; + int64_t xio_mp_min; + int64_t xio_mp_max_64; + int64_t xio_mp_max_256; + int64_t xio_mp_max_1k; + int64_t xio_mp_max_page; + int64_t xio_mp_max_hint; + int64_t xio_portal_threads; + int64_t xio_max_conns_per_portal; + std::string xio_transport_type; + int64_t xio_max_send_inline; + bool compressor_zlib_isal; + int64_t compressor_zlib_level; + bool async_compressor_enabled; + std::string async_compressor_type; + int64_t async_compressor_threads; + int64_t async_compressor_thread_timeout; + int64_t async_compressor_thread_suicide_timeout; + std::string plugin_crypto_accelerator; + bool mempool_debug; + std::string key; + std::string keyfile; + std::string keyring; + int64_t heartbeat_interval; + std::string heartbeat_file; + int64_t heartbeat_inject_failure; + bool perf; + std::string ms_type; + std::string ms_public_type; + std::string ms_cluster_type; + bool ms_tcp_nodelay; + int64_t ms_tcp_rcvbuf; + int64_t ms_tcp_prefetch_max_size; + double ms_initial_backoff; + double ms_max_backoff; + bool ms_crc_data; + bool ms_crc_header; + bool ms_die_on_bad_msg; + bool ms_die_on_unhandled_msg; + bool ms_die_on_old_message; + bool ms_die_on_skipped_message; + int64_t ms_dispatch_throttle_bytes; + bool ms_bind_ipv6; + int64_t ms_bind_port_min; + int64_t ms_bind_port_max; + int64_t ms_bind_retry_count; + int64_t ms_bind_retry_delay; + bool ms_bind_before_connect; + int64_t ms_rwthread_stack_bytes; + int64_t ms_tcp_read_timeout; + int64_t ms_pq_max_tokens_per_priority; + int64_t ms_pq_min_cost; + int64_t ms_inject_socket_failures; + std::string ms_inject_delay_type; + std::string ms_inject_delay_msg_type; + double ms_inject_delay_max; + double ms_inject_delay_probability; + double ms_inject_internal_delays; + bool ms_dump_on_send; + int64_t ms_dump_corrupt_message_level; + int64_t ms_async_op_threads; + int64_t ms_async_max_op_threads; + bool ms_async_set_affinity; + std::string ms_async_affinity_cores; + std::string ms_async_rdma_device_name; + bool ms_async_rdma_enable_hugepage; + int64_t ms_async_rdma_buffer_size; + int64_t ms_async_rdma_send_buffers; + int64_t ms_async_rdma_receive_buffers; + int64_t ms_async_rdma_port_num; + int64_t ms_async_rdma_polling_us; + std::string ms_async_rdma_local_gid; + int64_t ms_async_rdma_roce_ver; + int64_t ms_async_rdma_sl; + int64_t ms_async_rdma_dscp; + int64_t ms_dpdk_port_id; + std::string ms_dpdk_coremask; + std::string ms_dpdk_memory_channel; + std::string ms_dpdk_hugepages; + std::string ms_dpdk_pmd; + std::string ms_dpdk_host_ipv4_addr; + std::string ms_dpdk_gateway_ipv4_addr; + std::string ms_dpdk_netmask_ipv4_addr; + bool ms_dpdk_lro; + bool ms_dpdk_hw_flow_control; + double ms_dpdk_hw_queue_weight; + bool ms_dpdk_debug_allow_loopback; + int64_t ms_dpdk_rx_buffer_count_per_core; + bool inject_early_sigterm; + std::string mon_data; + std::string mon_initial_members; + int64_t mon_sync_fs_threshold; + bool mon_compact_on_start; + bool mon_compact_on_bootstrap; + bool mon_compact_on_trim; + int64_t mon_osd_cache_size; + int64_t mon_cpu_threads; + int64_t mon_osd_mapping_pgs_per_chunk; + int64_t mon_osd_max_creating_pgs; + int64_t mon_tick_interval; + int64_t mon_session_timeout; + double mon_subscribe_interval; + double mon_delta_reset_interval; + int64_t mon_osd_laggy_halflife; + double mon_osd_laggy_weight; + int64_t mon_osd_laggy_max_interval; + bool mon_osd_adjust_heartbeat_grace; + bool mon_osd_adjust_down_out_interval; + bool mon_osd_auto_mark_in; + bool mon_osd_auto_mark_auto_out_in; + bool mon_osd_auto_mark_new_in; + int64_t mon_osd_down_out_interval; + std::string mon_osd_down_out_subtree_limit; + double mon_osd_min_up_ratio; + double mon_osd_min_in_ratio; + double mon_osd_max_op_age; + int64_t mon_osd_max_split_count; + bool mon_osd_allow_primary_temp; + bool mon_osd_allow_primary_affinity; + bool mon_osd_prime_pg_temp; + double mon_osd_prime_pg_temp_max_time; + double mon_osd_prime_pg_temp_max_estimate; + bool mon_osd_pool_ec_fast_read; + int64_t mon_stat_smooth_intervals; + double mon_election_timeout; + double mon_lease; + double mon_lease_renew_interval_factor; + double mon_lease_ack_timeout_factor; + double mon_accept_timeout_factor; + double mon_clock_drift_allowed; + double mon_clock_drift_warn_backoff; + double mon_timecheck_interval; + double mon_timecheck_skew_interval; + int64_t mon_pg_stuck_threshold; + int64_t mon_health_max_detail; + int64_t mon_pg_min_inactive; + int64_t mon_pg_warn_min_per_osd; + int64_t mon_pg_warn_max_per_osd; + double mon_pg_warn_max_object_skew; + int64_t mon_pg_warn_min_objects; + int64_t mon_pg_warn_min_pool_objects; + double mon_pg_check_down_all_threshold; + double mon_cache_target_full_warn_ratio; + double mon_osd_full_ratio; + double mon_osd_backfillfull_ratio; + double mon_osd_nearfull_ratio; + std::string mon_osd_initial_require_min_compat_client; + bool mon_allow_pool_delete; + bool mon_fake_pool_delete; + int64_t mon_globalid_prealloc; + int64_t mon_osd_report_timeout; + bool mon_force_standby_active; + bool mon_warn_on_legacy_crush_tunables; + std::string mon_crush_min_required_version; + bool mon_warn_on_crush_straw_calc_version_zero; + bool mon_warn_on_osd_down_out_interval_zero; + bool mon_warn_on_cache_pools_without_hit_sets; + double mon_warn_osd_usage_min_max_delta; + int64_t mon_min_osdmap_epochs; + int64_t mon_max_pgmap_epochs; + int64_t mon_max_log_epochs; + int64_t mon_max_mdsmap_epochs; + int64_t mon_max_osd; + double mon_probe_timeout; + int64_t mon_client_bytes; + double mon_mgr_proxy_client_bytes_ratio; + int64_t mon_daemon_bytes; + int64_t mon_max_log_entries_per_event; + int64_t mon_reweight_min_pgs_per_osd; + int64_t mon_reweight_min_bytes_per_osd; + int64_t mon_reweight_max_osds; + double mon_reweight_max_change; + double mon_health_data_update_interval; + bool mon_health_to_clog; + int64_t mon_health_to_clog_interval; + double mon_health_to_clog_tick_interval; + int64_t mon_data_avail_crit; + int64_t mon_data_avail_warn; + int64_t mon_data_size_warn; + int64_t mon_warn_not_scrubbed; + int64_t mon_warn_not_deep_scrubbed; + int64_t mon_scrub_interval; + int64_t mon_scrub_timeout; + int64_t mon_scrub_max_keys; + double mon_scrub_inject_crc_mismatch; + double mon_scrub_inject_missing_keys; + int64_t mon_config_key_max_entry_size; + double mon_sync_timeout; + int64_t mon_sync_max_payload_size; + bool mon_sync_debug; + double mon_inject_sync_get_chunk_delay; + int64_t mon_osd_min_down_reporters; + std::string mon_osd_reporter_subtree_level; + int64_t mon_osd_force_trim_to; + int64_t mon_mds_force_trim_to; + bool mon_mds_skip_sanity; + bool mon_debug_deprecated_as_obsolete; + bool mon_debug_dump_transactions; + bool mon_debug_dump_json; + std::string mon_debug_dump_location; + bool mon_debug_no_require_luminous; + bool mon_debug_no_require_bluestore_for_ec_overwrites; + bool mon_debug_no_initial_persistent_features; + double mon_inject_transaction_delay_max; + double mon_inject_transaction_delay_probability; + int64_t mon_sync_provider_kill_at; + int64_t mon_sync_requester_kill_at; + bool mon_force_quorum_join; + std::string mon_keyvaluedb; + bool mon_debug_unsafe_allow_tier_with_nonempty_snaps; + int64_t paxos_stash_full_interval; + int64_t paxos_max_join_drift; + double paxos_propose_interval; + double paxos_min_wait; + int64_t paxos_min; + int64_t paxos_trim_min; + int64_t paxos_trim_max; + int64_t paxos_service_trim_min; + int64_t paxos_service_trim_max; + int64_t paxos_kill_at; + std::string auth_cluster_required; + std::string auth_service_required; + std::string auth_client_required; + std::string auth_supported; + int64_t max_rotating_auth_attempts; + bool cephx_require_signatures; + bool cephx_cluster_require_signatures; + bool cephx_service_require_signatures; + bool cephx_sign_messages; + double auth_mon_ticket_ttl; + double auth_service_ticket_ttl; + bool auth_debug; + int64_t mon_client_hunt_parallel; + double mon_client_hunt_interval; + double mon_client_ping_interval; + double mon_client_ping_timeout; + double mon_client_hunt_interval_backoff; + double mon_client_hunt_interval_max_multiple; + int64_t mon_client_max_log_entries_per_message; + int64_t mon_max_pool_pg_num; + int64_t mon_pool_quota_warn_threshold; + int64_t mon_pool_quota_crit_threshold; + int64_t client_cache_size; + double client_cache_mid; + bool client_use_random_mds; + double client_mount_timeout; + double client_tick_interval; + std::string client_trace; + int64_t client_readahead_min; + int64_t client_readahead_max_bytes; + int64_t client_readahead_max_periods; + bool client_reconnect_stale; + std::string client_snapdir; + std::string client_mountpoint; + int64_t client_mount_uid; + int64_t client_mount_gid; + int64_t client_notify_timeout; + int64_t osd_client_watch_timeout; + int64_t client_caps_release_delay; + bool client_quota_df; + bool client_oc; + int64_t client_oc_size; + int64_t client_oc_max_dirty; + int64_t client_oc_target_dirty; + double client_oc_max_dirty_age; + int64_t client_oc_max_objects; + bool client_debug_getattr_caps; + bool client_debug_force_sync_read; + int64_t client_debug_inject_tick_delay; + int64_t client_max_inline_size; + bool client_inject_release_failure; + bool client_inject_fixed_oldest_tid; + std::string client_metadata; + std::string client_acl_type; + bool client_permissions; + bool client_dirsize_rbytes; + bool fuse_use_invalidate_cb; + bool fuse_disable_pagecache; + bool fuse_allow_other; + bool fuse_default_permissions; + bool fuse_big_writes; + bool fuse_atomic_o_trunc; + bool fuse_debug; + bool fuse_multithreaded; + bool fuse_require_active_mds; + bool fuse_syncfs_on_mksnap; + bool fuse_set_user_groups; + bool client_try_dentry_invalidate; + bool client_die_on_failed_remount; + bool client_check_pool_perm; + bool client_use_faked_inos; + std::string client_mds_namespace; + std::string crush_location; + std::string crush_location_hook; + int64_t crush_location_hook_timeout; + double objecter_tick_interval; + double objecter_timeout; + int64_t objecter_inflight_op_bytes; + int64_t objecter_inflight_ops; + int64_t objecter_completion_locks_per_session; + bool objecter_inject_no_watch_ping; + bool objecter_retry_writes_after_first_reply; + bool objecter_debug_inject_relock_delay; + int64_t filer_max_purge_ops; + int64_t filer_max_truncate_ops; + int64_t journaler_write_head_interval; + int64_t journaler_prefetch_periods; + int64_t journaler_prezero_periods; + std::string mds_data; + int64_t mds_max_file_size; + int64_t mds_max_xattr_pairs_size; + int64_t mds_cache_size; + double mds_cache_mid; + int64_t mds_max_file_recover; + int64_t mds_dir_max_commit_size; + int64_t mds_dir_keys_per_op; + double mds_decay_halflife; + double mds_beacon_interval; + double mds_beacon_grace; + bool mds_enforce_unique_name; + double mds_blacklist_interval; + double mds_session_timeout; + bool mds_session_blacklist_on_timeout; + bool mds_session_blacklist_on_evict; + int64_t mds_sessionmap_keys_per_op; + double mds_revoke_cap_timeout; + double mds_recall_state_timeout; + double mds_freeze_tree_timeout; + double mds_session_autoclose; + int64_t mds_health_summarize_threshold; + double mds_health_cache_threshold; + double mds_reconnect_timeout; + double mds_tick_interval; + double mds_dirstat_min_interval; + double mds_scatter_nudge_interval; + int64_t mds_client_prealloc_inos; + bool mds_early_reply; + int64_t mds_default_dir_hash; + bool mds_log_pause; + bool mds_log_skip_corrupt_events; + int64_t mds_log_max_events; + int64_t mds_log_events_per_segment; + int64_t mds_log_segment_size; + int64_t mds_log_max_segments; + int64_t mds_log_max_expiring; + bool mds_bal_export_pin; + double mds_bal_sample_interval; + double mds_bal_replicate_threshold; + double mds_bal_unreplicate_threshold; + bool mds_bal_frag; + int64_t mds_bal_split_size; + double mds_bal_split_rd; + double mds_bal_split_wr; + int64_t mds_bal_split_bits; + int64_t mds_bal_merge_size; + int64_t mds_bal_interval; + int64_t mds_bal_fragment_interval; + int64_t mds_bal_fragment_size_max; + double mds_bal_fragment_fast_factor; + double mds_bal_idle_threshold; + int64_t mds_bal_max; + int64_t mds_bal_max_until; + int64_t mds_bal_mode; + double mds_bal_min_rebalance; + double mds_bal_min_start; + double mds_bal_need_min; + double mds_bal_need_max; + double mds_bal_midchunk; + double mds_bal_minchunk; + double mds_bal_target_decay; + double mds_replay_interval; + int64_t mds_shutdown_check; + int64_t mds_thrash_exports; + int64_t mds_thrash_fragments; + bool mds_dump_cache_on_map; + bool mds_dump_cache_after_rejoin; + bool mds_verify_scatter; + bool mds_debug_scatterstat; + bool mds_debug_frag; + bool mds_debug_auth_pins; + bool mds_debug_subtrees; + int64_t mds_kill_mdstable_at; + int64_t mds_kill_export_at; + int64_t mds_kill_import_at; + int64_t mds_kill_link_at; + int64_t mds_kill_rename_at; + int64_t mds_kill_openc_at; + int64_t mds_kill_journal_at; + int64_t mds_kill_journal_expire_at; + int64_t mds_kill_journal_replay_at; + int64_t mds_journal_format; + int64_t mds_kill_create_at; + double mds_inject_traceless_reply_probability; + bool mds_wipe_sessions; + bool mds_wipe_ino_prealloc; + int64_t mds_skip_ino; + std::string mds_standby_for_name; + int64_t mds_standby_for_rank; + int64_t mds_standby_for_fscid; + bool mds_standby_replay; + bool mds_enable_op_tracker; + int64_t mds_op_history_size; + int64_t mds_op_history_duration; + double mds_op_complaint_time; + int64_t mds_op_log_threshold; + int64_t mds_snap_min_uid; + int64_t mds_snap_max_uid; + bool mds_snap_rstat; + int64_t mds_verify_backtrace; + int64_t mds_max_completed_flushes; + int64_t mds_max_completed_requests; + int64_t mds_action_on_write_error; + double mds_mon_shutdown_timeout; + int64_t mds_max_purge_files; + int64_t mds_max_purge_ops; + double mds_max_purge_ops_per_pg; + double mds_purge_queue_busy_flush_period; + int64_t mds_root_ino_uid; + int64_t mds_root_ino_gid; + int64_t mds_max_scrub_ops_in_progress; + int64_t mds_damage_table_max_entries; + int64_t mds_client_writeable_range_max_inc_objs; + bool osd_check_max_object_name_len_on_startup; + int64_t osd_max_backfills; + int64_t osd_min_recovery_priority; + double osd_backfill_retry_interval; + double osd_recovery_retry_interval; + int64_t osd_agent_max_ops; + int64_t osd_agent_max_low_ops; + double osd_agent_min_evict_effort; + double osd_agent_quantize_effort; + double osd_agent_delay_time; + bool osd_find_best_info_ignore_history_les; + int64_t osd_agent_hist_halflife; + double osd_agent_slop; + uuid_d osd_uuid; + std::string osd_data; + std::string osd_journal; + int64_t osd_journal_size; + bool osd_journal_flush_on_shutdown; + int64_t osd_os_flags; + int64_t osd_max_write_size; + int64_t osd_max_pgls; + int64_t osd_client_message_size_cap; + int64_t osd_client_message_cap; + int64_t osd_pg_bits; + int64_t osd_pgp_bits; + bool osd_crush_update_weight_set; + int64_t osd_crush_chooseleaf_type; + bool osd_pool_use_gmt_hitset; + bool osd_crush_update_on_start; + double osd_crush_initial_weight; + int64_t osd_pool_default_crush_rule; + int64_t osd_pool_default_crush_replicated_ruleset; + int64_t osd_pool_erasure_code_stripe_unit; + int64_t osd_pool_default_size; + int64_t osd_pool_default_min_size; + int64_t osd_pool_default_pg_num; + int64_t osd_pool_default_pgp_num; + std::string osd_pool_default_erasure_code_profile; + std::string osd_erasure_code_plugins; + bool osd_allow_recovery_below_min_size; + int64_t osd_pool_default_flags; + bool osd_pool_default_flag_hashpspool; + bool osd_pool_default_flag_nodelete; + bool osd_pool_default_flag_nopgchange; + bool osd_pool_default_flag_nosizechange; + double osd_pool_default_hit_set_bloom_fpp; + double osd_pool_default_cache_target_dirty_ratio; + double osd_pool_default_cache_target_dirty_high_ratio; + double osd_pool_default_cache_target_full_ratio; + int64_t osd_pool_default_cache_min_flush_age; + int64_t osd_pool_default_cache_min_evict_age; + int64_t osd_pool_default_cache_max_evict_check_size; + int64_t osd_hit_set_min_size; + int64_t osd_hit_set_max_size; + std::string osd_hit_set_namespace; + int64_t osd_tier_promote_max_objects_sec; + int64_t osd_tier_promote_max_bytes_sec; + std::string osd_tier_default_cache_mode; + int64_t osd_tier_default_cache_hit_set_count; + int64_t osd_tier_default_cache_hit_set_period; + std::string osd_tier_default_cache_hit_set_type; + int64_t osd_tier_default_cache_min_read_recency_for_promote; + int64_t osd_tier_default_cache_min_write_recency_for_promote; + int64_t osd_tier_default_cache_hit_set_grade_decay_rate; + int64_t osd_tier_default_cache_hit_set_search_last_n; + bool osd_map_dedup; + int64_t osd_map_max_advance; + int64_t osd_map_cache_size; + int64_t osd_map_message_max; + int64_t osd_map_share_max_epochs; + double osd_inject_bad_map_crc_probability; + bool osd_inject_failure_on_pg_removal; + int64_t osd_max_markdown_period; + int64_t osd_max_markdown_count; + int64_t osd_op_threads; + int64_t osd_peering_wq_batch_size; + int64_t osd_op_pq_max_tokens_per_priority; + int64_t osd_op_pq_min_cost; + int64_t osd_disk_threads; + std::string osd_disk_thread_ioprio_class; + int64_t osd_disk_thread_ioprio_priority; + bool osd_recover_clone_overlap; + int64_t osd_op_num_threads_per_shard; + int64_t osd_op_num_shards; + std::string osd_op_queue; + std::string osd_op_queue_cut_off; + bool osd_ignore_stale_divergent_priors; + bool osd_read_ec_check_for_errors; + int64_t osd_recover_clone_overlap_limit; + int64_t osd_backfill_scan_min; + int64_t osd_backfill_scan_max; + int64_t osd_op_thread_timeout; + int64_t osd_op_thread_suicide_timeout; + int64_t osd_recovery_thread_timeout; + int64_t osd_recovery_thread_suicide_timeout; + double osd_recovery_sleep; + double osd_snap_trim_sleep; + bool osd_scrub_invalid_stats; + int64_t osd_remove_thread_timeout; + int64_t osd_remove_thread_suicide_timeout; + int64_t osd_command_thread_timeout; + int64_t osd_command_thread_suicide_timeout; + entity_addr_t osd_heartbeat_addr; + int64_t osd_heartbeat_interval; + int64_t osd_heartbeat_grace; + int64_t osd_heartbeat_min_peers; + bool osd_heartbeat_use_min_delay_socket; + int64_t osd_pg_max_concurrent_snap_trims; + int64_t osd_max_trimming_pgs; + double osd_heartbeat_min_healthy_ratio; + int64_t osd_mon_heartbeat_interval; + int64_t osd_mon_report_interval_max; + int64_t osd_mon_report_interval_min; + int64_t osd_mon_report_max_in_flight; + int64_t osd_beacon_report_interval; + int64_t osd_pg_stat_report_interval_max; + double osd_mon_ack_timeout; + double osd_stats_ack_timeout_factor; + double osd_stats_ack_timeout_decay; + int64_t osd_default_data_pool_replay_window; + bool osd_preserve_trimmed_log; + bool osd_auto_mark_unfound_lost; + double osd_recovery_delay_start; + int64_t osd_recovery_max_active; + int64_t osd_recovery_max_single_start; + int64_t osd_recovery_max_chunk; + int64_t osd_recovery_max_omap_entries_per_chunk; + int64_t osd_copyfrom_max_chunk; + int64_t osd_push_per_object_cost; + int64_t osd_max_push_cost; + int64_t osd_max_push_objects; + bool osd_recovery_forget_lost_objects; + int64_t osd_max_scrubs; + bool osd_scrub_during_recovery; + int64_t osd_scrub_begin_hour; + int64_t osd_scrub_end_hour; + double osd_scrub_load_threshold; + double osd_scrub_min_interval; + double osd_scrub_max_interval; + double osd_scrub_interval_randomize_ratio; + double osd_scrub_backoff_ratio; + int64_t osd_scrub_chunk_min; + int64_t osd_scrub_chunk_max; + double osd_scrub_sleep; + bool osd_scrub_auto_repair; + int64_t osd_scrub_auto_repair_num_errors; + double osd_deep_scrub_interval; + double osd_deep_scrub_randomize_ratio; + int64_t osd_deep_scrub_stride; + int64_t osd_deep_scrub_update_digest_min_age; + int64_t osd_scan_list_ping_tp_interval; + std::string osd_class_dir; + bool osd_open_classes_on_start; + std::string osd_class_load_list; + std::string osd_class_default_list; + bool osd_check_for_log_corruption; + bool osd_use_stale_snap; + std::string osd_rollback_to_cluster_snap; + int64_t osd_default_notify_timeout; + int64_t osd_kill_backfill_at; + int64_t osd_pg_epoch_persisted_max_stale; + int64_t osd_min_pg_log_entries; + int64_t osd_max_pg_log_entries; + double osd_force_recovery_pg_log_entries_factor; + int64_t osd_pg_log_trim_min; + double osd_op_complaint_time; + int64_t osd_command_max_records; + int64_t osd_max_pg_blocked_by; + int64_t osd_op_log_threshold; + bool osd_verify_sparse_read_holes; + bool osd_backoff_on_unfound; + bool osd_backoff_on_degraded; + bool osd_backoff_on_down; + bool osd_backoff_on_peering; + bool osd_debug_crash_on_ignored_backoff; + double osd_debug_inject_dispatch_delay_probability; + double osd_debug_inject_dispatch_delay_duration; + double osd_debug_drop_ping_probability; + int64_t osd_debug_drop_ping_duration; + bool osd_debug_op_order; + bool osd_debug_verify_missing_on_start; + int64_t osd_debug_scrub_chance_rewrite_digest; + bool osd_debug_verify_snaps_on_info; + bool osd_debug_verify_stray_on_activate; + bool osd_debug_skip_full_check_in_backfill_reservation; + double osd_debug_reject_backfill_probability; + bool osd_debug_inject_copyfrom_error; + bool osd_debug_misdirected_ops; + bool osd_debug_skip_full_check_in_recovery; + bool osd_debug_verify_cached_snaps; + bool osd_enable_op_tracker; + int64_t osd_num_op_tracker_shard; + int64_t osd_op_history_size; + int64_t osd_op_history_duration; + int64_t osd_op_history_slow_op_size; + double osd_op_history_slow_op_threshold; + int64_t osd_target_transaction_size; + double osd_failsafe_full_ratio; + bool osd_fast_fail_on_connection_refused; + int64_t osd_pg_object_context_cache_count; + bool osd_tracing; + bool osd_function_tracing; + bool osd_fast_info; + bool osd_debug_pg_log_writeout; + int64_t osd_loop_before_reset_tphandle; + int64_t threadpool_default_timeout; + int64_t threadpool_empty_queue_max_wait; + bool leveldb_log_to_ceph_log; + int64_t leveldb_write_buffer_size; + int64_t leveldb_cache_size; + int64_t leveldb_block_size; + int64_t leveldb_bloom_size; + int64_t leveldb_max_open_files; + bool leveldb_compression; + bool leveldb_paranoid; + std::string leveldb_log; + bool leveldb_compact_on_mount; + std::string kinetic_host; + int64_t kinetic_port; + int64_t kinetic_user_id; + std::string kinetic_hmac_key; + bool kinetic_use_ssl; + bool rocksdb_separate_wal_dir; + std::string rocksdb_db_paths; + bool rocksdb_log_to_ceph_log; + int64_t rocksdb_cache_size; + int64_t rocksdb_cache_shard_bits; + int64_t rocksdb_block_size; + bool rocksdb_perf; + bool rocksdb_collect_compaction_stats; + bool rocksdb_collect_extended_stats; + bool rocksdb_collect_memory_stats; + bool rocksdb_enable_rmrange; + std::string filestore_rocksdb_options; + std::string mon_rocksdb_options; + int64_t osd_client_op_priority; + int64_t osd_recovery_op_priority; + int64_t osd_snap_trim_priority; + int64_t osd_snap_trim_cost; + int64_t osd_scrub_priority; + int64_t osd_scrub_cost; + int64_t osd_requested_scrub_priority; + int64_t osd_recovery_priority; + int64_t osd_recovery_cost; + int64_t osd_recovery_op_warn_multiple; + double osd_mon_shutdown_timeout; + bool osd_shutdown_pgref_assert; + int64_t osd_max_object_size; + int64_t osd_max_object_name_len; + int64_t osd_max_object_namespace_len; + int64_t osd_max_attr_name_len; + int64_t osd_max_attr_size; + int64_t osd_max_omap_entries_per_request; + int64_t osd_max_omap_bytes_per_request; + std::string osd_objectstore; + bool osd_objectstore_tracing; + bool osd_objectstore_fuse; + int64_t osd_bench_small_size_max_iops; + int64_t osd_bench_large_size_max_throughput; + int64_t osd_bench_max_block_size; + int64_t osd_bench_duration; + bool osd_blkin_trace_all; + bool osdc_blkin_trace_all; + bool osd_discard_disconnected_ops; + int64_t memstore_device_bytes; + bool memstore_page_set; + int64_t memstore_page_size; + bool bdev_debug_inflight_ios; + int64_t bdev_inject_crash; + int64_t bdev_inject_crash_flush_delay; + bool bdev_aio; + int64_t bdev_aio_poll_ms; + int64_t bdev_aio_max_queue_depth; + int64_t bdev_block_size; + bool bdev_debug_aio; + double bdev_debug_aio_suicide_timeout; + bool bdev_nvme_unbind_from_kernel; + int64_t bdev_nvme_retry_count; + bool objectstore_blackhole; + int64_t bluefs_alloc_size; + int64_t bluefs_max_prefetch; + int64_t bluefs_min_log_runway; + int64_t bluefs_max_log_runway; + double bluefs_log_compact_min_ratio; + int64_t bluefs_log_compact_min_size; + int64_t bluefs_min_flush_size; + bool bluefs_compact_log_sync; + bool bluefs_buffered_io; + bool bluefs_sync_write; + std::string bluefs_allocator; + bool bluefs_preextend_wal_files; + bool bluestore_bluefs; + bool bluestore_bluefs_env_mirror; + int64_t bluestore_bluefs_min; + double bluestore_bluefs_min_ratio; + double bluestore_bluefs_max_ratio; + double bluestore_bluefs_gift_ratio; + double bluestore_bluefs_reclaim_ratio; + double bluestore_bluefs_balance_interval; + int64_t bluestore_spdk_mem; + std::string bluestore_spdk_coremask; + int64_t bluestore_spdk_max_io_completion; + std::string bluestore_block_path; + int64_t bluestore_block_size; + bool bluestore_block_create; + std::string bluestore_block_db_path; + int64_t bluestore_block_db_size; + bool bluestore_block_db_create; + std::string bluestore_block_wal_path; + int64_t bluestore_block_wal_size; + bool bluestore_block_wal_create; + bool bluestore_block_preallocate_file; + std::string bluestore_csum_type; + int64_t bluestore_csum_min_block; + int64_t bluestore_csum_max_block; + int64_t bluestore_min_alloc_size; + int64_t bluestore_min_alloc_size_hdd; + int64_t bluestore_min_alloc_size_ssd; + int64_t bluestore_max_alloc_size; + int64_t bluestore_prefer_deferred_size; + int64_t bluestore_prefer_deferred_size_hdd; + int64_t bluestore_prefer_deferred_size_ssd; + std::string bluestore_compression_mode; + std::string bluestore_compression_algorithm; + int64_t bluestore_compression_min_blob_size; + int64_t bluestore_compression_min_blob_size_hdd; + int64_t bluestore_compression_min_blob_size_ssd; + int64_t bluestore_compression_max_blob_size; + int64_t bluestore_compression_max_blob_size_hdd; + int64_t bluestore_compression_max_blob_size_ssd; + int64_t bluestore_gc_enable_blob_threshold; + int64_t bluestore_gc_enable_total_threshold; + int64_t bluestore_max_blob_size; + int64_t bluestore_max_blob_size_hdd; + int64_t bluestore_max_blob_size_ssd; + double bluestore_compression_required_ratio; + int64_t bluestore_extent_map_shard_max_size; + int64_t bluestore_extent_map_shard_target_size; + int64_t bluestore_extent_map_shard_min_size; + double bluestore_extent_map_shard_target_size_slop; + int64_t bluestore_extent_map_inline_shard_prealloc_size; + double bluestore_cache_trim_interval; + int64_t bluestore_cache_trim_max_skip_pinned; + std::string bluestore_cache_type; + double bluestore_2q_cache_kin_ratio; + double bluestore_2q_cache_kout_ratio; + int64_t bluestore_cache_size; + double bluestore_cache_meta_ratio; + std::string bluestore_kvbackend; + std::string bluestore_allocator; + int64_t bluestore_freelist_blocks_per_key; + int64_t bluestore_bitmapallocator_blocks_per_zone; + int64_t bluestore_bitmapallocator_span_size; + int64_t bluestore_max_deferred_txc; + std::string bluestore_rocksdb_options; + bool bluestore_fsck_on_mount; + bool bluestore_fsck_on_mount_deep; + bool bluestore_fsck_on_umount; + bool bluestore_fsck_on_umount_deep; + bool bluestore_fsck_on_mkfs; + bool bluestore_fsck_on_mkfs_deep; + bool bluestore_sync_submit_transaction; + int64_t bluestore_throttle_bytes; + int64_t bluestore_throttle_deferred_bytes; + int64_t bluestore_throttle_cost_per_io_hdd; + int64_t bluestore_throttle_cost_per_io_ssd; + int64_t bluestore_throttle_cost_per_io; + int64_t bluestore_deferred_batch_ops; + int64_t bluestore_deferred_batch_ops_hdd; + int64_t bluestore_deferred_batch_ops_ssd; + int64_t bluestore_nid_prealloc; + int64_t bluestore_blobid_prealloc; + bool bluestore_clone_cow; + bool bluestore_default_buffered_read; + bool bluestore_default_buffered_write; + bool bluestore_debug_misc; + bool bluestore_debug_no_reuse_blocks; + int64_t bluestore_debug_small_allocations; + bool bluestore_debug_freelist; + double bluestore_debug_prefill; + int64_t bluestore_debug_prefragment_max; + bool bluestore_debug_inject_read_err; + int64_t bluestore_debug_randomize_serial_transaction; + bool bluestore_debug_omit_block_device_write; + bool bluestore_debug_fsck_abort; + bool bluestore_shard_finishers; + int64_t kstore_max_ops; + int64_t kstore_max_bytes; + std::string kstore_backend; + std::string kstore_rocksdb_options; + int64_t kstore_rocksdb_bloom_bits_per_key; + bool kstore_fsck_on_mount; + bool kstore_fsck_on_mount_deep; + int64_t kstore_nid_prealloc; + bool kstore_sync_transaction; + bool kstore_sync_submit_transaction; + int64_t kstore_onode_map_size; + bool kstore_cache_tails; + int64_t kstore_default_stripe_size; + std::string filestore_omap_backend; + std::string filestore_omap_backend_path; + bool filestore_wbthrottle_enable; + int64_t filestore_wbthrottle_btrfs_bytes_start_flusher; + int64_t filestore_wbthrottle_btrfs_bytes_hard_limit; + int64_t filestore_wbthrottle_btrfs_ios_start_flusher; + int64_t filestore_wbthrottle_btrfs_ios_hard_limit; + int64_t filestore_wbthrottle_btrfs_inodes_start_flusher; + int64_t filestore_wbthrottle_xfs_bytes_start_flusher; + int64_t filestore_wbthrottle_xfs_bytes_hard_limit; + int64_t filestore_wbthrottle_xfs_ios_start_flusher; + int64_t filestore_wbthrottle_xfs_ios_hard_limit; + int64_t filestore_wbthrottle_xfs_inodes_start_flusher; + int64_t filestore_wbthrottle_btrfs_inodes_hard_limit; + int64_t filestore_wbthrottle_xfs_inodes_hard_limit; + bool filestore_odsync_write; + double filestore_index_retry_probability; + bool filestore_debug_inject_read_err; + bool filestore_debug_omap_check; + int64_t filestore_omap_header_cache_size; + int64_t filestore_max_inline_xattr_size; + int64_t filestore_max_inline_xattr_size_xfs; + int64_t filestore_max_inline_xattr_size_btrfs; + int64_t filestore_max_inline_xattr_size_other; + int64_t filestore_max_inline_xattrs; + int64_t filestore_max_inline_xattrs_xfs; + int64_t filestore_max_inline_xattrs_btrfs; + int64_t filestore_max_inline_xattrs_other; + int64_t filestore_max_xattr_value_size; + int64_t filestore_max_xattr_value_size_xfs; + int64_t filestore_max_xattr_value_size_btrfs; + int64_t filestore_max_xattr_value_size_other; + bool filestore_sloppy_crc; + int64_t filestore_sloppy_crc_block_size; + int64_t filestore_max_alloc_hint_size; + double filestore_max_sync_interval; + double filestore_min_sync_interval; + bool filestore_btrfs_snap; + bool filestore_btrfs_clone_range; + bool filestore_zfs_snap; + bool filestore_fsync_flushes_journal_data; + bool filestore_fiemap; + bool filestore_punch_hole; + bool filestore_seek_data_hole; + bool filestore_splice; + bool filestore_fadvise; + bool filestore_collect_device_partition_information; + bool filestore_xfs_extsize; + bool filestore_journal_parallel; + bool filestore_journal_writeahead; + bool filestore_journal_trailing; + int64_t filestore_queue_max_ops; + int64_t filestore_queue_max_bytes; + int64_t filestore_caller_concurrency; + double filestore_expected_throughput_bytes; + double filestore_expected_throughput_ops; + double filestore_queue_max_delay_multiple; + double filestore_queue_high_delay_multiple; + double filestore_queue_low_threshhold; + double filestore_queue_high_threshhold; + int64_t filestore_op_threads; + int64_t filestore_op_thread_timeout; + int64_t filestore_op_thread_suicide_timeout; + double filestore_commit_timeout; + int64_t filestore_fiemap_threshold; + int64_t filestore_merge_threshold; + int64_t filestore_split_multiple; + int64_t filestore_update_to; + bool filestore_blackhole; + int64_t filestore_fd_cache_size; + int64_t filestore_fd_cache_shards; + int64_t filestore_ondisk_finisher_threads; + int64_t filestore_apply_finisher_threads; + std::string filestore_dump_file; + int64_t filestore_kill_at; + int64_t filestore_inject_stall; + bool filestore_fail_eio; + bool filestore_debug_verify_split; + bool journal_dio; + bool journal_aio; + bool journal_force_aio; + int64_t journal_block_size; + int64_t journal_max_corrupt_search; + bool journal_block_align; + int64_t journal_write_header_frequency; + int64_t journal_max_write_bytes; + int64_t journal_max_write_entries; + double journal_throttle_low_threshhold; + double journal_throttle_high_threshhold; + double journal_throttle_high_multiple; + double journal_throttle_max_multiple; + int64_t journal_align_min_size; + int64_t journal_replay_from; + bool journal_zero_on_create; + bool journal_ignore_corruption; + bool journal_discard; + std::string fio_dir; + double rados_mon_op_timeout; + double rados_osd_op_timeout; + bool rados_tracing; + int64_t rbd_op_threads; + int64_t rbd_op_thread_timeout; + bool rbd_non_blocking_aio; + bool rbd_cache; + bool rbd_cache_writethrough_until_flush; + int64_t rbd_cache_size; + int64_t rbd_cache_max_dirty; + int64_t rbd_cache_target_dirty; + double rbd_cache_max_dirty_age; + int64_t rbd_cache_max_dirty_object; + bool rbd_cache_block_writes_upfront; + int64_t rbd_concurrent_management_ops; + bool rbd_balance_snap_reads; + bool rbd_localize_snap_reads; + bool rbd_balance_parent_reads; + bool rbd_localize_parent_reads; + int64_t rbd_readahead_trigger_requests; + int64_t rbd_readahead_max_bytes; + int64_t rbd_readahead_disable_after_bytes; + bool rbd_clone_copy_on_read; + bool rbd_blacklist_on_break_lock; + int64_t rbd_blacklist_expire_seconds; + int64_t rbd_request_timed_out_seconds; + bool rbd_skip_partial_discard; + bool rbd_enable_alloc_hint; + bool rbd_tracing; + bool rbd_blkin_trace_all; + bool rbd_validate_pool; + bool rbd_validate_names; + bool rbd_auto_exclusive_lock_until_manual_request; + bool rbd_mirroring_resync_after_disconnect; + int64_t rbd_mirroring_replay_delay; + int64_t rbd_default_format; + int64_t rbd_default_order; + int64_t rbd_default_stripe_count; + int64_t rbd_default_stripe_unit; + std::string rbd_default_data_pool; + std::string rbd_default_features; + std::string rbd_default_map_options; + int64_t rbd_journal_order; + int64_t rbd_journal_splay_width; + double rbd_journal_commit_age; + int64_t rbd_journal_object_flush_interval; + int64_t rbd_journal_object_flush_bytes; + double rbd_journal_object_flush_age; + std::string rbd_journal_pool; + int64_t rbd_journal_max_payload_bytes; + int64_t rbd_journal_max_concurrent_object_sets; + double rbd_mirror_journal_commit_age; + double rbd_mirror_journal_poll_age; + int64_t rbd_mirror_journal_max_fetch_bytes; + double rbd_mirror_sync_point_update_age; + int64_t rbd_mirror_concurrent_image_syncs; + int64_t rbd_mirror_pool_replayers_refresh_interval; + double rbd_mirror_delete_retry_interval; + int64_t rbd_mirror_image_state_check_interval; + int64_t rbd_mirror_leader_heartbeat_interval; + int64_t rbd_mirror_leader_max_missed_heartbeats; + int64_t rbd_mirror_leader_max_acquire_attempts_before_break; + std::string nss_db_path; + int64_t rgw_max_chunk_size; + int64_t rgw_put_obj_min_window_size; + int64_t rgw_put_obj_max_window_size; + int64_t rgw_max_put_size; + int64_t rgw_max_put_param_size; + int64_t rgw_override_bucket_index_max_shards; + int64_t rgw_bucket_index_max_aio; + bool rgw_enable_quota_threads; + bool rgw_enable_gc_threads; + bool rgw_enable_lc_threads; + std::string rgw_data; + std::string rgw_enable_apis; + bool rgw_cache_enabled; + int64_t rgw_cache_lru_size; + std::string rgw_socket_path; + std::string rgw_host; + std::string rgw_port; + std::string rgw_dns_name; + std::string rgw_dns_s3website_name; + bool rgw_content_length_compat; + std::string rgw_lifecycle_work_time; + int64_t rgw_lc_lock_max_time; + int64_t rgw_lc_max_objs; + int64_t rgw_lc_debug_interval; + std::string rgw_script_uri; + std::string rgw_request_uri; + std::string rgw_swift_url; + std::string rgw_swift_url_prefix; + std::string rgw_swift_auth_url; + std::string rgw_swift_auth_entry; + std::string rgw_swift_tenant_name; + bool rgw_swift_account_in_url; + bool rgw_swift_enforce_content_length; + std::string rgw_keystone_url; + std::string rgw_keystone_admin_token; + std::string rgw_keystone_admin_user; + std::string rgw_keystone_admin_password; + std::string rgw_keystone_admin_tenant; + std::string rgw_keystone_admin_project; + std::string rgw_keystone_admin_domain; + std::string rgw_keystone_barbican_user; + std::string rgw_keystone_barbican_password; + std::string rgw_keystone_barbican_tenant; + std::string rgw_keystone_barbican_project; + std::string rgw_keystone_barbican_domain; + int64_t rgw_keystone_api_version; + std::string rgw_keystone_accepted_roles; + std::string rgw_keystone_accepted_admin_roles; + int64_t rgw_keystone_token_cache_size; + int64_t rgw_keystone_revocation_interval; + bool rgw_keystone_verify_ssl; + bool rgw_keystone_implicit_tenants; + std::string rgw_cross_domain_policy; + std::string rgw_healthcheck_disabling_path; + bool rgw_s3_auth_use_rados; + bool rgw_s3_auth_use_keystone; + bool rgw_s3_auth_aws4_force_boto2_compat; + std::string rgw_barbican_url; + std::string rgw_ldap_uri; + std::string rgw_ldap_binddn; + std::string rgw_ldap_searchdn; + std::string rgw_ldap_dnattr; + std::string rgw_ldap_secret; + bool rgw_s3_auth_use_ldap; + std::string rgw_ldap_searchfilter; + std::string rgw_admin_entry; + bool rgw_enforce_swift_acls; + int64_t rgw_swift_token_expiration; + bool rgw_print_continue; + bool rgw_print_prohibited_content_length; + std::string rgw_remote_addr_param; + int64_t rgw_op_thread_timeout; + int64_t rgw_op_thread_suicide_timeout; + int64_t rgw_thread_pool_size; + int64_t rgw_num_control_oids; + int64_t rgw_num_rados_handles; + int64_t rgw_nfs_lru_lanes; + int64_t rgw_nfs_lru_lane_hiwat; + int64_t rgw_nfs_fhcache_partitions; + int64_t rgw_nfs_fhcache_size; + int64_t rgw_nfs_namespace_expire_secs; + int64_t rgw_nfs_max_gc; + int64_t rgw_nfs_write_completion_interval_s; + std::string rgw_zone; + std::string rgw_zone_root_pool; + std::string rgw_default_zone_info_oid; + std::string rgw_region; + std::string rgw_region_root_pool; + std::string rgw_default_region_info_oid; + std::string rgw_zonegroup; + std::string rgw_zonegroup_root_pool; + std::string rgw_default_zonegroup_info_oid; + std::string rgw_realm; + std::string rgw_realm_root_pool; + std::string rgw_default_realm_info_oid; + std::string rgw_period_root_pool; + std::string rgw_period_latest_epoch_info_oid; + bool rgw_log_nonexistent_bucket; + std::string rgw_log_object_name; + bool rgw_log_object_name_utc; + int64_t rgw_usage_max_shards; + int64_t rgw_usage_max_user_shards; + bool rgw_enable_ops_log; + bool rgw_enable_usage_log; + bool rgw_ops_log_rados; + std::string rgw_ops_log_socket_path; + int64_t rgw_ops_log_data_backlog; + int64_t rgw_fcgi_socket_backlog; + int64_t rgw_usage_log_flush_threshold; + int64_t rgw_usage_log_tick_interval; + std::string rgw_intent_log_object_name; + bool rgw_intent_log_object_name_utc; + int64_t rgw_init_timeout; + std::string rgw_mime_types_file; + int64_t rgw_gc_max_objs; + int64_t rgw_gc_obj_min_wait; + int64_t rgw_gc_processor_max_time; + int64_t rgw_gc_processor_period; + int64_t rgw_s3_success_create_obj_status; + bool rgw_resolve_cname; + int64_t rgw_obj_stripe_size; + std::string rgw_extended_http_attrs; + int64_t rgw_exit_timeout_secs; + int64_t rgw_get_obj_window_size; + int64_t rgw_get_obj_max_req_size; + bool rgw_relaxed_s3_bucket_names; + std::string rgw_defer_to_bucket_acls; + int64_t rgw_list_buckets_max_chunk; + int64_t rgw_md_log_max_shards; + int64_t rgw_num_zone_opstate_shards; + int64_t rgw_opstate_ratelimit_sec; + int64_t rgw_curl_wait_timeout_ms; + bool rgw_copy_obj_progress; + int64_t rgw_copy_obj_progress_every_bytes; + int64_t rgw_obj_tombstone_cache_size; + int64_t rgw_data_log_window; + int64_t rgw_data_log_changes_size; + int64_t rgw_data_log_num_shards; + std::string rgw_data_log_obj_prefix; + std::string rgw_replica_log_obj_prefix; + int64_t rgw_bucket_quota_ttl; + double rgw_bucket_quota_soft_threshold; + int64_t rgw_bucket_quota_cache_size; + int64_t rgw_bucket_default_quota_max_objects; + int64_t rgw_bucket_default_quota_max_size; + bool rgw_expose_bucket; + std::string rgw_frontends; + int64_t rgw_user_quota_bucket_sync_interval; + int64_t rgw_user_quota_sync_interval; + bool rgw_user_quota_sync_idle_users; + int64_t rgw_user_quota_sync_wait_time; + int64_t rgw_user_default_quota_max_objects; + int64_t rgw_user_default_quota_max_size; + int64_t rgw_multipart_min_part_size; + int64_t rgw_multipart_part_upload_limit; + int64_t rgw_max_slo_entries; + int64_t rgw_olh_pending_timeout_sec; + int64_t rgw_user_max_buckets; + int64_t rgw_objexp_gc_interval; + int64_t rgw_objexp_time_step; + int64_t rgw_objexp_hints_num_shards; + int64_t rgw_objexp_chunk_size; + bool rgw_enable_static_website; + std::string rgw_log_http_headers; + int64_t rgw_num_async_rados_threads; + int64_t rgw_md_notify_interval_msec; + bool rgw_run_sync_thread; + int64_t rgw_sync_lease_period; + int64_t rgw_sync_log_trim_interval; + double rgw_sync_data_inject_err_probability; + double rgw_sync_meta_inject_err_probability; + double rgw_period_push_interval; + double rgw_period_push_interval_max; + int64_t rgw_safe_max_objects_per_shard; + double rgw_shard_warning_threshold; + bool rgw_swift_versioning_enabled; + std::string mgr_module_path; + std::string mgr_modules; + std::string mgr_data; + int64_t mgr_tick_period; + int64_t mgr_stats_period; + int64_t mgr_client_bytes; + int64_t mgr_client_messages; + int64_t mgr_osd_bytes; + int64_t mgr_osd_messages; + int64_t mgr_mds_bytes; + int64_t mgr_mds_messages; + int64_t mgr_mon_bytes; + int64_t mgr_mon_messages; + double mgr_connect_retry_interval; + int64_t mon_mgr_digest_period; + int64_t mon_mgr_beacon_grace; + int64_t mon_mgr_inactive_grace; + bool rgw_crypt_require_ssl; + std::string rgw_crypt_default_encryption_key; + std::string rgw_crypt_s3_kms_encryption_keys; + bool rgw_crypt_suppress_logs; + int64_t rgw_list_bucket_min_readahead; + bool rgw_rest_getusage_op_compat; + bool mutex_perf_counter; + bool throttler_perf_counter; + bool rgw_torrent_flag; + std::string rgw_torrent_tracker; + std::string rgw_torrent_createby; + std::string rgw_torrent_comment; + std::string rgw_torrent_encoding; + std::string rgw_torrent_origin; + int64_t rgw_torrent_sha_unit; + bool event_tracing; + bool internal_safe_to_start_threads; + bool debug_deliberately_leak_memory; + std::string rgw_swift_custom_header; + int64_t rgw_reshard_num_logs; + int64_t rgw_reshard_bucket_lock_duration; + bool rgw_dynamic_resharding; + int64_t rgw_max_objs_per_shard; + int64_t rgw_reshard_thread_interval; diff --git a/src/common/options.cc b/src/common/options.cc index 57355e1f418..29d2f1f6426 100644 --- a/src/common/options.cc +++ b/src/common/options.cc @@ -25,6 +25,14 @@ Option _ceph_options[] = { .set_description("cluster-facing address to bind to") .add_tag("osd"), + Option("public_network", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("cluster_network", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + Option("monmap", Option::TYPE_STR, Option::LEVEL_ADVANCED) .set_description("path to MonMap file") .set_long_description("This option is normally used during mkfs, but can also " @@ -206,6 +214,4878 @@ Option _ceph_options[] = { .add_see_also("log_graylog_host"), + // unmodified + Option("clog_to_monitors", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("default=true") + .set_description(""), + + Option("clog_to_syslog", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("false") + .set_description(""), + + Option("clog_to_syslog_level", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("info") + .set_description(""), + + Option("clog_to_syslog_facility", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("default=daemon audit=local0") + .set_description(""), + + Option("clog_to_graylog", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("false") + .set_description(""), + + Option("clog_to_graylog_host", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("127.0.0.1") + .set_description(""), + + Option("clog_to_graylog_port", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("12201") + .set_description(""), + + Option("mon_cluster_log_to_syslog", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("default=false") + .set_description(""), + + Option("mon_cluster_log_to_syslog_level", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("info") + .set_description(""), + + Option("mon_cluster_log_to_syslog_facility", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("daemon") + .set_description(""), + + Option("mon_cluster_log_file", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("default=/var/log/ceph/$cluster.$channel.log cluster=/var/log/ceph/$cluster.log") + .set_description(""), + + Option("mon_cluster_log_file_level", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("info") + .set_description(""), + + Option("mon_cluster_log_to_graylog", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("false") + .set_description(""), + + Option("mon_cluster_log_to_graylog_host", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("127.0.0.1") + .set_description(""), + + Option("mon_cluster_log_to_graylog_port", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("12201") + .set_description(""), + + Option("enable_experimental_unrecoverable_data_corrupting_features", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("plugin_dir", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default(CEPH_PKGLIBDIR) + .set_description(""), + + Option("xio_trace_mempool", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("xio_trace_msgcnt", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("xio_trace_xcon", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("xio_queue_depth", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(128) + .set_description(""), + + Option("xio_mp_min", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(128) + .set_description(""), + + Option("xio_mp_max_64", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(65536) + .set_description(""), + + Option("xio_mp_max_256", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(8192) + .set_description(""), + + Option("xio_mp_max_1k", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(8192) + .set_description(""), + + Option("xio_mp_max_page", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4096) + .set_description(""), + + Option("xio_mp_max_hint", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4096) + .set_description(""), + + Option("xio_portal_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2) + .set_description(""), + + Option("xio_max_conns_per_portal", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(32) + .set_description(""), + + Option("xio_transport_type", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("rdma") + .set_description(""), + + Option("xio_max_send_inline", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(512) + .set_description(""), + + Option("compressor_zlib_isal", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("compressor_zlib_level", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("async_compressor_enabled", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("async_compressor_type", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("snappy") + .set_description(""), + + Option("async_compressor_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2) + .set_description(""), + + Option("async_compressor_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("async_compressor_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("plugin_crypto_accelerator", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("crypto_isal") + .set_description(""), + + Option("mempool_debug", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("key", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("keyfile", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("keyring", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("/etc/ceph/$cluster.$name.keyring,/etc/ceph/$cluster.keyring,/etc/ceph/keyring,/etc/ceph/keyring.bin,") + .set_description(""), + + Option("heartbeat_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("heartbeat_file", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("heartbeat_inject_failure", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("perf", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("ms_type", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("async+posix") + .set_description(""), + + Option("ms_public_type", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("ms_cluster_type", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("ms_tcp_nodelay", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("ms_tcp_rcvbuf", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("ms_tcp_prefetch_max_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4096) + .set_description(""), + + Option("ms_initial_backoff", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.2) + .set_description(""), + + Option("ms_max_backoff", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(15.0) + .set_description(""), + + Option("ms_crc_data", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("ms_crc_header", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("ms_die_on_bad_msg", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("ms_die_on_unhandled_msg", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("ms_die_on_old_message", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("ms_die_on_skipped_message", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("ms_dispatch_throttle_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(100 << 20) + .set_description(""), + + Option("ms_bind_ipv6", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("ms_bind_port_min", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(6800) + .set_description(""), + + Option("ms_bind_port_max", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(7300) + .set_description(""), + + Option("ms_bind_retry_count", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(3) + .set_description(""), + + Option("ms_bind_retry_delay", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("ms_bind_before_connect", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("ms_rwthread_stack_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024 << 10) + .set_description(""), + + Option("ms_tcp_read_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(900) + .set_description(""), + + Option("ms_pq_max_tokens_per_priority", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(16777216) + .set_description(""), + + Option("ms_pq_min_cost", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(65536) + .set_description(""), + + Option("ms_inject_socket_failures", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("ms_inject_delay_type", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("ms_inject_delay_msg_type", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("ms_inject_delay_max", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("ms_inject_delay_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("ms_inject_internal_delays", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("ms_dump_on_send", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("ms_dump_corrupt_message_level", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("ms_async_op_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(3) + .set_description(""), + + Option("ms_async_max_op_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("ms_async_set_affinity", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("ms_async_affinity_cores", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("ms_async_rdma_device_name", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("ms_async_rdma_enable_hugepage", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("ms_async_rdma_buffer_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(128 << 10) + .set_description(""), + + Option("ms_async_rdma_send_buffers", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024) + .set_description(""), + + Option("ms_async_rdma_receive_buffers", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024) + .set_description(""), + + Option("ms_async_rdma_port_num", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("ms_async_rdma_polling_us", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1000) + .set_description(""), + + Option("ms_async_rdma_local_gid", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("ms_async_rdma_roce_ver", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("ms_async_rdma_sl", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(3) + .set_description(""), + + Option("ms_async_rdma_dscp", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(96) + .set_description(""), + + Option("ms_dpdk_port_id", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("ms_dpdk_coremask", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("1") + .set_description(""), + + Option("ms_dpdk_memory_channel", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("4") + .set_description(""), + + Option("ms_dpdk_hugepages", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("ms_dpdk_pmd", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("ms_dpdk_host_ipv4_addr", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("ms_dpdk_gateway_ipv4_addr", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("ms_dpdk_netmask_ipv4_addr", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("ms_dpdk_lro", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("ms_dpdk_hw_flow_control", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("ms_dpdk_hw_queue_weight", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("ms_dpdk_debug_allow_loopback", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("ms_dpdk_rx_buffer_count_per_core", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(8192) + .set_description(""), + + Option("inject_early_sigterm", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mon_data", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("/var/lib/ceph/mon/$cluster-$id") + .set_description(""), + + Option("mon_initial_members", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("mon_sync_fs_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("mon_compact_on_start", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mon_compact_on_bootstrap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mon_compact_on_trim", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("mon_osd_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("mon_cpu_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4) + .set_description(""), + + Option("mon_osd_mapping_pgs_per_chunk", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4096) + .set_description(""), + + Option("mon_osd_max_creating_pgs", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024) + .set_description(""), + + Option("mon_tick_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("mon_session_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(300) + .set_description(""), + + Option("mon_subscribe_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(24*3600) + .set_description(""), + + Option("mon_delta_reset_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("mon_osd_laggy_halflife", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(60*60) + .set_description(""), + + Option("mon_osd_laggy_weight", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.3) + .set_description(""), + + Option("mon_osd_laggy_max_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(300) + .set_description(""), + + Option("mon_osd_adjust_heartbeat_grace", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("mon_osd_adjust_down_out_interval", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("mon_osd_auto_mark_in", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mon_osd_auto_mark_auto_out_in", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("mon_osd_auto_mark_new_in", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("mon_osd_down_out_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(600) + .set_description(""), + + Option("mon_osd_down_out_subtree_limit", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("rack") + .set_description(""), + + Option("mon_osd_min_up_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.3) + .set_description(""), + + Option("mon_osd_min_in_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.75) + .set_description(""), + + Option("mon_osd_max_op_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(32) + .set_description(""), + + Option("mon_osd_max_split_count", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(32) + .set_description(""), + + Option("mon_osd_allow_primary_temp", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mon_osd_allow_primary_affinity", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mon_osd_prime_pg_temp", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("mon_osd_prime_pg_temp_max_time", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.5) + .set_description(""), + + Option("mon_osd_prime_pg_temp_max_estimate", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.25) + .set_description(""), + + Option("mon_osd_pool_ec_fast_read", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mon_stat_smooth_intervals", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(6) + .set_description(""), + + Option("mon_election_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("mon_lease", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("mon_lease_renew_interval_factor", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.6) + .set_description(""), + + Option("mon_lease_ack_timeout_factor", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(2.0) + .set_description(""), + + Option("mon_accept_timeout_factor", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(2.0) + .set_description(""), + + Option("mon_clock_drift_allowed", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.050) + .set_description(""), + + Option("mon_clock_drift_warn_backoff", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("mon_timecheck_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(300.0) + .set_description(""), + + Option("mon_timecheck_skew_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(30.0) + .set_description(""), + + Option("mon_pg_stuck_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(300) + .set_description(""), + + Option("mon_health_max_detail", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(50) + .set_description(""), + + Option("mon_pg_min_inactive", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("mon_pg_warn_min_per_osd", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("mon_pg_warn_max_per_osd", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(300) + .set_description(""), + + Option("mon_pg_warn_max_object_skew", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(10.0) + .set_description(""), + + Option("mon_pg_warn_min_objects", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10000) + .set_description(""), + + Option("mon_pg_warn_min_pool_objects", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1000) + .set_description(""), + + Option("mon_pg_check_down_all_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.5) + .set_description(""), + + Option("mon_cache_target_full_warn_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.66) + .set_description(""), + + Option("mon_osd_full_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.95) + .set_description(""), + + Option("mon_osd_backfillfull_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.90) + .set_description(""), + + Option("mon_osd_nearfull_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.85) + .set_description(""), + + Option("mon_osd_initial_require_min_compat_client", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("jewel") + .set_description(""), + + Option("mon_allow_pool_delete", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mon_fake_pool_delete", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mon_globalid_prealloc", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10000) + .set_description(""), + + Option("mon_osd_report_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(900) + .set_description(""), + + Option("mon_force_standby_active", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("mon_warn_on_legacy_crush_tunables", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("mon_crush_min_required_version", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("firefly") + .set_description(""), + + Option("mon_warn_on_crush_straw_calc_version_zero", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("mon_warn_on_osd_down_out_interval_zero", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("mon_warn_on_cache_pools_without_hit_sets", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("mon_warn_osd_usage_min_max_delta", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.40) + .set_description(""), + + Option("mon_min_osdmap_epochs", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(500) + .set_description(""), + + Option("mon_max_pgmap_epochs", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(500) + .set_description(""), + + Option("mon_max_log_epochs", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(500) + .set_description(""), + + Option("mon_max_mdsmap_epochs", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(500) + .set_description(""), + + Option("mon_max_osd", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10000) + .set_description(""), + + Option("mon_probe_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(2.0) + .set_description(""), + + Option("mon_client_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(100ul << 20) + .set_description(""), + + Option("mon_mgr_proxy_client_bytes_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.3) + .set_description(""), + + Option("mon_daemon_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(400ul << 20) + .set_description(""), + + Option("mon_max_log_entries_per_event", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4096) + .set_description(""), + + Option("mon_reweight_min_pgs_per_osd", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("mon_reweight_min_bytes_per_osd", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(100*1024*1024) + .set_description(""), + + Option("mon_reweight_max_osds", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4) + .set_description(""), + + Option("mon_reweight_max_change", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0.05) + .set_description(""), + + Option("mon_health_data_update_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(60.0) + .set_description(""), + + Option("mon_health_to_clog", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("mon_health_to_clog_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(3600) + .set_description(""), + + Option("mon_health_to_clog_tick_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(60.0) + .set_description(""), + + Option("mon_data_avail_crit", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("mon_data_avail_warn", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("mon_data_size_warn", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(15*1024*1024*1024ull) + .set_description(""), + + Option("mon_warn_not_scrubbed", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mon_warn_not_deep_scrubbed", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mon_scrub_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(3600*24) + .set_description(""), + + Option("mon_scrub_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(60*5) + .set_description(""), + + Option("mon_scrub_max_keys", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(100) + .set_description(""), + + Option("mon_scrub_inject_crc_mismatch", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0.0) + .set_description(""), + + Option("mon_scrub_inject_missing_keys", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0.0) + .set_description(""), + + Option("mon_config_key_max_entry_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4096) + .set_description(""), + + Option("mon_sync_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(60.0) + .set_description(""), + + Option("mon_sync_max_payload_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1048576) + .set_description(""), + + Option("mon_sync_debug", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mon_inject_sync_get_chunk_delay", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mon_osd_min_down_reporters", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2) + .set_description(""), + + Option("mon_osd_reporter_subtree_level", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("host") + .set_description(""), + + Option("mon_osd_force_trim_to", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mon_mds_force_trim_to", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mon_mds_skip_sanity", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mon_debug_deprecated_as_obsolete", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mon_debug_dump_transactions", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mon_debug_dump_json", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mon_debug_dump_location", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("/var/log/ceph/$cluster-$name.tdump") + .set_description(""), + + Option("mon_debug_no_require_luminous", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mon_debug_no_require_bluestore_for_ec_overwrites", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mon_debug_no_initial_persistent_features", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mon_inject_transaction_delay_max", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(10.0) + .set_description(""), + + Option("mon_inject_transaction_delay_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mon_sync_provider_kill_at", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mon_sync_requester_kill_at", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mon_force_quorum_join", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mon_keyvaluedb", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("rocksdb") + .set_description(""), + + Option("mon_debug_unsafe_allow_tier_with_nonempty_snaps", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("paxos_stash_full_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(25) + .set_description(""), + + Option("paxos_max_join_drift", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("paxos_propose_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(1.0) + .set_description(""), + + Option("paxos_min_wait", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0.05) + .set_description(""), + + Option("paxos_min", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(500) + .set_description(""), + + Option("paxos_trim_min", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(250) + .set_description(""), + + Option("paxos_trim_max", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(500) + .set_description(""), + + Option("paxos_service_trim_min", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(250) + .set_description(""), + + Option("paxos_service_trim_max", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(500) + .set_description(""), + + Option("paxos_kill_at", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("auth_cluster_required", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("cephx") + .set_description(""), + + Option("auth_service_required", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("cephx") + .set_description(""), + + Option("auth_client_required", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("cephx, none") + .set_description(""), + + Option("auth_supported", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("max_rotating_auth_attempts", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("cephx_require_signatures", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("cephx_cluster_require_signatures", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("cephx_service_require_signatures", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("cephx_sign_messages", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("auth_mon_ticket_ttl", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(60*60*12) + .set_description(""), + + Option("auth_service_ticket_ttl", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(60*60) + .set_description(""), + + Option("auth_debug", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mon_client_hunt_parallel", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2) + .set_description(""), + + Option("mon_client_hunt_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(3.0) + .set_description(""), + + Option("mon_client_ping_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(10.0) + .set_description(""), + + Option("mon_client_ping_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(30.0) + .set_description(""), + + Option("mon_client_hunt_interval_backoff", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(2.0) + .set_description(""), + + Option("mon_client_hunt_interval_max_multiple", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(10.0) + .set_description(""), + + Option("mon_client_max_log_entries_per_message", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1000) + .set_description(""), + + Option("mon_max_pool_pg_num", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(65536) + .set_description(""), + + Option("mon_pool_quota_warn_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mon_pool_quota_crit_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("client_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(16384) + .set_description(""), + + Option("client_cache_mid", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.75) + .set_description(""), + + Option("client_use_random_mds", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("client_mount_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(300.0) + .set_description(""), + + Option("client_tick_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(1.0) + .set_description(""), + + Option("client_trace", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("client_readahead_min", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(128*1024) + .set_description(""), + + Option("client_readahead_max_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("client_readahead_max_periods", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4) + .set_description(""), + + Option("client_reconnect_stale", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("client_snapdir", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default(".snap") + .set_description(""), + + Option("client_mountpoint", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("/") + .set_description(""), + + Option("client_mount_uid", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(-1) + .set_description(""), + + Option("client_mount_gid", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(-1) + .set_description(""), + + Option("client_notify_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("osd_client_watch_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("client_caps_release_delay", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("client_quota_df", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("client_oc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("client_oc_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024*1024* 200) + .set_description(""), + + Option("client_oc_max_dirty", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024*1024* 100) + .set_description(""), + + Option("client_oc_target_dirty", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024*1024* 8) + .set_description(""), + + Option("client_oc_max_dirty_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(5.0) + .set_description(""), + + Option("client_oc_max_objects", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1000) + .set_description(""), + + Option("client_debug_getattr_caps", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("client_debug_force_sync_read", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("client_debug_inject_tick_delay", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("client_max_inline_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4096) + .set_description(""), + + Option("client_inject_release_failure", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("client_inject_fixed_oldest_tid", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("client_metadata", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("client_acl_type", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("client_permissions", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("client_dirsize_rbytes", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("fuse_use_invalidate_cb", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("fuse_disable_pagecache", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("fuse_allow_other", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("fuse_default_permissions", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("fuse_big_writes", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("fuse_atomic_o_trunc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("fuse_debug", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("fuse_multithreaded", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("fuse_require_active_mds", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("fuse_syncfs_on_mksnap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("fuse_set_user_groups", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("client_try_dentry_invalidate", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("client_die_on_failed_remount", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("client_check_pool_perm", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("client_use_faked_inos", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("client_mds_namespace", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("crush_location", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("crush_location_hook", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("crush_location_hook_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("objecter_tick_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(5.0) + .set_description(""), + + Option("objecter_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(10.0) + .set_description(""), + + Option("objecter_inflight_op_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024*1024*100) + .set_description(""), + + Option("objecter_inflight_ops", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024) + .set_description(""), + + Option("objecter_completion_locks_per_session", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(32) + .set_description(""), + + Option("objecter_inject_no_watch_ping", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("objecter_retry_writes_after_first_reply", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("objecter_debug_inject_relock_delay", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("filer_max_purge_ops", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("filer_max_truncate_ops", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(128) + .set_description(""), + + Option("journaler_write_head_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(15) + .set_description(""), + + Option("journaler_prefetch_periods", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("journaler_prezero_periods", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("mds_data", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("/var/lib/ceph/mds/$cluster-$id") + .set_description(""), + + Option("mds_max_file_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1ULL << 40) + .set_description(""), + + Option("mds_max_xattr_pairs_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(64 << 10) + .set_description(""), + + Option("mds_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(100000) + .set_description(""), + + Option("mds_cache_mid", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.7) + .set_description(""), + + Option("mds_max_file_recover", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(32) + .set_description(""), + + Option("mds_dir_max_commit_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("mds_dir_keys_per_op", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(16384) + .set_description(""), + + Option("mds_decay_halflife", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("mds_beacon_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(4) + .set_description(""), + + Option("mds_beacon_grace", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(15) + .set_description(""), + + Option("mds_enforce_unique_name", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("mds_blacklist_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(24.0*60.0) + .set_description(""), + + Option("mds_session_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(60) + .set_description(""), + + Option("mds_session_blacklist_on_timeout", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("mds_session_blacklist_on_evict", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("mds_sessionmap_keys_per_op", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024) + .set_description(""), + + Option("mds_revoke_cap_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(60) + .set_description(""), + + Option("mds_recall_state_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(60) + .set_description(""), + + Option("mds_freeze_tree_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("mds_session_autoclose", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(300) + .set_description(""), + + Option("mds_health_summarize_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("mds_health_cache_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(1.5) + .set_description(""), + + Option("mds_reconnect_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(45) + .set_description(""), + + Option("mds_tick_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("mds_dirstat_min_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("mds_scatter_nudge_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("mds_client_prealloc_inos", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1000) + .set_description(""), + + Option("mds_early_reply", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("mds_default_dir_hash", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2) + .set_description("2 == rjenkins"), + + Option("mds_log_pause", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mds_log_skip_corrupt_events", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mds_log_max_events", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(-1) + .set_description(""), + + Option("mds_log_events_per_segment", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024) + .set_description(""), + + Option("mds_log_segment_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_log_max_segments", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("mds_log_max_expiring", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(20) + .set_description(""), + + Option("mds_bal_export_pin", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("mds_bal_sample_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(3.0) + .set_description(""), + + Option("mds_bal_replicate_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(8000) + .set_description(""), + + Option("mds_bal_unreplicate_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_bal_frag", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("mds_bal_split_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10000) + .set_description(""), + + Option("mds_bal_split_rd", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(25000) + .set_description(""), + + Option("mds_bal_split_wr", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(10000) + .set_description(""), + + Option("mds_bal_split_bits", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(3) + .set_description(""), + + Option("mds_bal_merge_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(50) + .set_description(""), + + Option("mds_bal_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("mds_bal_fragment_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("mds_bal_fragment_size_max", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10000*10) + .set_description(""), + + Option("mds_bal_fragment_fast_factor", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(1.5) + .set_description(""), + + Option("mds_bal_idle_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_bal_max", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(-1) + .set_description(""), + + Option("mds_bal_max_until", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(-1) + .set_description(""), + + Option("mds_bal_mode", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_bal_min_rebalance", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.1) + .set_description(""), + + Option("mds_bal_min_start", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.2) + .set_description(""), + + Option("mds_bal_need_min", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.8) + .set_description(""), + + Option("mds_bal_need_max", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(1.2) + .set_description(""), + + Option("mds_bal_midchunk", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.3) + .set_description(""), + + Option("mds_bal_minchunk", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.001) + .set_description(""), + + Option("mds_bal_target_decay", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(10.0) + .set_description(""), + + Option("mds_replay_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(1.0) + .set_description(""), + + Option("mds_shutdown_check", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_thrash_exports", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_thrash_fragments", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_dump_cache_on_map", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mds_dump_cache_after_rejoin", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mds_verify_scatter", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mds_debug_scatterstat", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mds_debug_frag", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mds_debug_auth_pins", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mds_debug_subtrees", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mds_kill_mdstable_at", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_kill_export_at", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_kill_import_at", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_kill_link_at", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_kill_rename_at", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_kill_openc_at", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_kill_journal_at", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_kill_journal_expire_at", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_kill_journal_replay_at", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_journal_format", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("mds_kill_create_at", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_inject_traceless_reply_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_wipe_sessions", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_wipe_ino_prealloc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_skip_ino", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_standby_for_name", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("mds_standby_for_rank", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(-1) + .set_description(""), + + Option("mds_standby_for_fscid", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(-1) + .set_description(""), + + Option("mds_standby_replay", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mds_enable_op_tracker", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("mds_op_history_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(20) + .set_description(""), + + Option("mds_op_history_duration", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(600) + .set_description(""), + + Option("mds_op_complaint_time", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("mds_op_log_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("mds_snap_min_uid", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_snap_max_uid", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4294967294) + .set_description(""), + + Option("mds_snap_rstat", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mds_verify_backtrace", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("mds_max_completed_flushes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(100000) + .set_description(""), + + Option("mds_max_completed_requests", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(100000) + .set_description(""), + + Option("mds_action_on_write_error", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("mds_mon_shutdown_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("mds_max_purge_files", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(64) + .set_description(""), + + Option("mds_max_purge_ops", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(8192) + .set_description(""), + + Option("mds_max_purge_ops_per_pg", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0.5) + .set_description(""), + + Option("mds_purge_queue_busy_flush_period", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(1.0) + .set_description(""), + + Option("mds_root_ino_uid", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_root_ino_gid", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("mds_max_scrub_ops_in_progress", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("mds_damage_table_max_entries", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10000) + .set_description(""), + + Option("mds_client_writeable_range_max_inc_objs", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024) + .set_description(""), + + Option("osd_check_max_object_name_len_on_startup", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("osd_max_backfills", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("osd_min_recovery_priority", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("osd_backfill_retry_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(30.0) + .set_description(""), + + Option("osd_recovery_retry_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(30.0) + .set_description(""), + + Option("osd_agent_max_ops", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4) + .set_description(""), + + Option("osd_agent_max_low_ops", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2) + .set_description(""), + + Option("osd_agent_min_evict_effort", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.1) + .set_description(""), + + Option("osd_agent_quantize_effort", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.1) + .set_description(""), + + Option("osd_agent_delay_time", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(5.0) + .set_description(""), + + Option("osd_find_best_info_ignore_history_les", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_agent_hist_halflife", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1000) + .set_description(""), + + Option("osd_agent_slop", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.02) + .set_description(""), + + Option("osd_uuid", Option::TYPE_UUID, Option::LEVEL_ADVANCED) +// .set_default(uuid_d()) + .set_description(""), + + Option("osd_data", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("/var/lib/ceph/osd/$cluster-$id") + .set_description(""), + + Option("osd_journal", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("/var/lib/ceph/osd/$cluster-$id/journal") + .set_description(""), + + Option("osd_journal_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5120) + .set_description(""), + + Option("osd_journal_flush_on_shutdown", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("osd_os_flags", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("osd_max_write_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(90) + .set_description(""), + + Option("osd_max_pgls", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024) + .set_description(""), + + Option("osd_client_message_size_cap", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(500*1024L*1024L) + .set_description(""), + + Option("osd_client_message_cap", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(100) + .set_description(""), + + Option("osd_pg_bits", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(6) + .set_description(""), + + Option("osd_pgp_bits", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(6) + .set_description(""), + + Option("osd_crush_update_weight_set", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("osd_crush_chooseleaf_type", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("osd_pool_use_gmt_hitset", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("osd_crush_update_on_start", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("osd_crush_initial_weight", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(-1) + .set_description(""), + + Option("osd_pool_default_crush_rule", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(-1) + .set_description(""), + + Option("osd_pool_default_crush_replicated_ruleset", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("osd_pool_erasure_code_stripe_unit", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4096) + .set_description(""), + + Option("osd_pool_default_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(3) + .set_description(""), + + Option("osd_pool_default_min_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("osd_pool_default_pg_num", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(8) + .set_description(""), + + Option("osd_pool_default_pgp_num", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(8) + .set_description(""), + + Option("osd_pool_default_erasure_code_profile", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("plugin=jerasure " "technique=reed_sol_van " "k=2 " "m=1 ") + .set_description(""), + + Option("osd_erasure_code_plugins", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("jerasure" " lrc" " isa") + .set_description(""), + + Option("osd_allow_recovery_below_min_size", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("osd_pool_default_flags", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("osd_pool_default_flag_hashpspool", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("osd_pool_default_flag_nodelete", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_pool_default_flag_nopgchange", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_pool_default_flag_nosizechange", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_pool_default_hit_set_bloom_fpp", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.05) + .set_description(""), + + Option("osd_pool_default_cache_target_dirty_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.4) + .set_description(""), + + Option("osd_pool_default_cache_target_dirty_high_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.6) + .set_description(""), + + Option("osd_pool_default_cache_target_full_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.8) + .set_description(""), + + Option("osd_pool_default_cache_min_flush_age", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("osd_pool_default_cache_min_evict_age", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("osd_pool_default_cache_max_evict_check_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("osd_hit_set_min_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1000) + .set_description(""), + + Option("osd_hit_set_max_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(100000) + .set_description(""), + + Option("osd_hit_set_namespace", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default(".ceph-internal") + .set_description(""), + + Option("osd_tier_promote_max_objects_sec", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(25) + .set_description(""), + + Option("osd_tier_promote_max_bytes_sec", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5 * 1024*1024) + .set_description(""), + + Option("osd_tier_default_cache_mode", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("writeback") + .set_description(""), + + Option("osd_tier_default_cache_hit_set_count", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4) + .set_description(""), + + Option("osd_tier_default_cache_hit_set_period", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1200) + .set_description(""), + + Option("osd_tier_default_cache_hit_set_type", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("bloom") + .set_description(""), + + Option("osd_tier_default_cache_min_read_recency_for_promote", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("osd_tier_default_cache_min_write_recency_for_promote", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("osd_tier_default_cache_hit_set_grade_decay_rate", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(20) + .set_description(""), + + Option("osd_tier_default_cache_hit_set_search_last_n", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("osd_map_dedup", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("osd_map_max_advance", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(40) + .set_description(""), + + Option("osd_map_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(50) + .set_description(""), + + Option("osd_map_message_max", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(40) + .set_description(""), + + Option("osd_map_share_max_epochs", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(40) + .set_description(""), + + Option("osd_inject_bad_map_crc_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("osd_inject_failure_on_pg_removal", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_max_markdown_period", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(600) + .set_description(""), + + Option("osd_max_markdown_count", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("osd_op_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2) + .set_description(""), + + Option("osd_peering_wq_batch_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(20) + .set_description(""), + + Option("osd_op_pq_max_tokens_per_priority", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4194304) + .set_description(""), + + Option("osd_op_pq_min_cost", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(65536) + .set_description(""), + + Option("osd_disk_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("osd_disk_thread_ioprio_class", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("osd_disk_thread_ioprio_priority", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(-1) + .set_description(""), + + Option("osd_recover_clone_overlap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("osd_op_num_threads_per_shard", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2) + .set_description(""), + + Option("osd_op_num_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("osd_op_queue", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("wpq") + .set_description(""), + + Option("osd_op_queue_cut_off", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("low") + .set_description(""), + + Option("osd_ignore_stale_divergent_priors", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_read_ec_check_for_errors", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_recover_clone_overlap_limit", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("osd_backfill_scan_min", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(64) + .set_description(""), + + Option("osd_backfill_scan_max", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(512) + .set_description(""), + + Option("osd_op_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(15) + .set_description(""), + + Option("osd_op_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(150) + .set_description(""), + + Option("osd_recovery_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("osd_recovery_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(300) + .set_description(""), + + Option("osd_recovery_sleep", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0.01) + .set_description(""), + + Option("osd_snap_trim_sleep", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("osd_scrub_invalid_stats", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("osd_remove_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(60*60) + .set_description(""), + + Option("osd_remove_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10*60*60) + .set_description(""), + + Option("osd_command_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10*60) + .set_description(""), + + Option("osd_command_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(15*60) + .set_description(""), + + Option("osd_heartbeat_addr", Option::TYPE_ADDR, Option::LEVEL_ADVANCED) + //.set_default(entity_addr_t()) + .set_description(""), + + Option("osd_heartbeat_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(6) + .set_description(""), + + Option("osd_heartbeat_grace", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(20) + .set_description(""), + + Option("osd_heartbeat_min_peers", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("osd_heartbeat_use_min_delay_socket", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_pg_max_concurrent_snap_trims", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2) + .set_description(""), + + Option("osd_max_trimming_pgs", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2) + .set_description(""), + + Option("osd_heartbeat_min_healthy_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.33) + .set_description(""), + + Option("osd_mon_heartbeat_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("osd_mon_report_interval_max", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(600) + .set_description(""), + + Option("osd_mon_report_interval_min", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("osd_mon_report_max_in_flight", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2) + .set_description(""), + + Option("osd_beacon_report_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(300) + .set_description(""), + + Option("osd_pg_stat_report_interval_max", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(500) + .set_description(""), + + Option("osd_mon_ack_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(30.0) + .set_description(""), + + Option("osd_stats_ack_timeout_factor", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(2.0) + .set_description(""), + + Option("osd_stats_ack_timeout_decay", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.9) + .set_description(""), + + Option("osd_default_data_pool_replay_window", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(45) + .set_description(""), + + Option("osd_preserve_trimmed_log", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_auto_mark_unfound_lost", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_recovery_delay_start", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("osd_recovery_max_active", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(3) + .set_description(""), + + Option("osd_recovery_max_single_start", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("osd_recovery_max_chunk", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(8<<20) + .set_description(""), + + Option("osd_recovery_max_omap_entries_per_chunk", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(64000) + .set_description(""), + + Option("osd_copyfrom_max_chunk", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(8<<20) + .set_description(""), + + Option("osd_push_per_object_cost", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1000) + .set_description(""), + + Option("osd_max_push_cost", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(8<<20) + .set_description(""), + + Option("osd_max_push_objects", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("osd_recovery_forget_lost_objects", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_max_scrubs", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("osd_scrub_during_recovery", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_scrub_begin_hour", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("osd_scrub_end_hour", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(24) + .set_description(""), + + Option("osd_scrub_load_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0.5) + .set_description(""), + + Option("osd_scrub_min_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(60*60*24) + .set_description(""), + + Option("osd_scrub_max_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(7*60*60*24) + .set_description(""), + + Option("osd_scrub_interval_randomize_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0.5) + .set_description(""), + + Option("osd_scrub_backoff_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.66) + .set_description(""), + + Option("osd_scrub_chunk_min", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("osd_scrub_chunk_max", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(25) + .set_description(""), + + Option("osd_scrub_sleep", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("osd_scrub_auto_repair", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_scrub_auto_repair_num_errors", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("osd_deep_scrub_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(60*60*24*7) + .set_description(""), + + Option("osd_deep_scrub_randomize_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0.15) + .set_description(""), + + Option("osd_deep_scrub_stride", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(524288) + .set_description(""), + + Option("osd_deep_scrub_update_digest_min_age", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2*60*60) + .set_description(""), + + Option("osd_scan_list_ping_tp_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(100) + .set_description(""), + + Option("osd_class_dir", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default(CEPH_LIBDIR "/rados-classes") + .set_description(""), + + Option("osd_open_classes_on_start", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("osd_class_load_list", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("cephfs hello journal lock log numops " "rbd refcount replica_log rgw statelog timeindex user version") + .set_description(""), + + Option("osd_class_default_list", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("cephfs hello journal lock log numops " "rbd refcount replica_log rgw statelog timeindex user version") + .set_description(""), + + Option("osd_check_for_log_corruption", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_use_stale_snap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_rollback_to_cluster_snap", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("osd_default_notify_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("osd_kill_backfill_at", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("osd_pg_epoch_persisted_max_stale", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(40) + .set_description(""), + + Option("osd_min_pg_log_entries", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(3000) + .set_description(""), + + Option("osd_max_pg_log_entries", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10000) + .set_description(""), + + Option("osd_force_recovery_pg_log_entries_factor", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(1.3) + .set_description(""), + + Option("osd_pg_log_trim_min", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(100) + .set_description(""), + + Option("osd_op_complaint_time", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("osd_command_max_records", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(256) + .set_description(""), + + Option("osd_max_pg_blocked_by", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(16) + .set_description(""), + + Option("osd_op_log_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("osd_verify_sparse_read_holes", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_backoff_on_unfound", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("osd_backoff_on_degraded", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_backoff_on_down", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("osd_backoff_on_peering", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_debug_crash_on_ignored_backoff", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_debug_inject_dispatch_delay_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("osd_debug_inject_dispatch_delay_duration", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.1) + .set_description(""), + + Option("osd_debug_drop_ping_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("osd_debug_drop_ping_duration", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("osd_debug_op_order", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_debug_verify_missing_on_start", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_debug_scrub_chance_rewrite_digest", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("osd_debug_verify_snaps_on_info", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_debug_verify_stray_on_activate", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_debug_skip_full_check_in_backfill_reservation", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_debug_reject_backfill_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("osd_debug_inject_copyfrom_error", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_debug_misdirected_ops", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_debug_skip_full_check_in_recovery", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_debug_verify_cached_snaps", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_enable_op_tracker", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("osd_num_op_tracker_shard", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(32) + .set_description(""), + + Option("osd_op_history_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(20) + .set_description(""), + + Option("osd_op_history_duration", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(600) + .set_description(""), + + Option("osd_op_history_slow_op_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(20) + .set_description(""), + + Option("osd_op_history_slow_op_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(10.0) + .set_description(""), + + Option("osd_target_transaction_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("osd_failsafe_full_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.97) + .set_description(""), + + Option("osd_fast_fail_on_connection_refused", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("osd_pg_object_context_cache_count", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(64) + .set_description(""), + + Option("osd_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_function_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_fast_info", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("osd_debug_pg_log_writeout", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_loop_before_reset_tphandle", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(64) + .set_description(""), + + Option("threadpool_default_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(60) + .set_description(""), + + Option("threadpool_empty_queue_max_wait", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2) + .set_description(""), + + Option("leveldb_log_to_ceph_log", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("leveldb_write_buffer_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(8 *1024*1024) + .set_description(""), + + Option("leveldb_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(128 *1024*1024) + .set_description(""), + + Option("leveldb_block_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("leveldb_bloom_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("leveldb_max_open_files", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("leveldb_compression", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("leveldb_paranoid", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("leveldb_log", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("/dev/null") + .set_description(""), + + Option("leveldb_compact_on_mount", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("kinetic_host", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("kinetic_port", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(8123) + .set_description(""), + + Option("kinetic_user_id", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("kinetic_hmac_key", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("asdfasdf") + .set_description(""), + + Option("kinetic_use_ssl", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rocksdb_separate_wal_dir", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rocksdb_db_paths", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rocksdb_log_to_ceph_log", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rocksdb_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(128*1024*1024) + .set_description(""), + + Option("rocksdb_cache_shard_bits", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4) + .set_description(""), + + Option("rocksdb_block_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4*1024) + .set_description(""), + + Option("rocksdb_perf", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rocksdb_collect_compaction_stats", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rocksdb_collect_extended_stats", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rocksdb_collect_memory_stats", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rocksdb_enable_rmrange", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("filestore_rocksdb_options", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("mon_rocksdb_options", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("write_buffer_size=33554432,compression=kNoCompression") + .set_description(""), + + Option("osd_client_op_priority", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(63) + .set_description(""), + + Option("osd_recovery_op_priority", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(3) + .set_description(""), + + Option("osd_snap_trim_priority", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("osd_snap_trim_cost", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1<<20) + .set_description(""), + + Option("osd_scrub_priority", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("osd_scrub_cost", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(50<<20) + .set_description(""), + + Option("osd_requested_scrub_priority", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(120) + .set_description(""), + + Option("osd_recovery_priority", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("osd_recovery_cost", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(20<<20) + .set_description(""), + + Option("osd_recovery_op_warn_multiple", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(16) + .set_description(""), + + Option("osd_mon_shutdown_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("osd_shutdown_pgref_assert", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_max_object_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(100*1024L*1024L*1024L) + .set_description(""), + + Option("osd_max_object_name_len", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2048) + .set_description(""), + + Option("osd_max_object_namespace_len", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(256) + .set_description(""), + + Option("osd_max_attr_name_len", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(100) + .set_description(""), + + Option("osd_max_attr_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("osd_max_omap_entries_per_request", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(131072) + .set_description(""), + + Option("osd_max_omap_bytes_per_request", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1<<30) + .set_description(""), + + Option("osd_objectstore", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("filestore") + .set_description(""), + + Option("osd_objectstore_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_objectstore_fuse", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_bench_small_size_max_iops", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(100) + .set_description(""), + + Option("osd_bench_large_size_max_throughput", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(100 << 20) + .set_description(""), + + Option("osd_bench_max_block_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(64 << 20) + .set_description(""), + + Option("osd_bench_duration", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("osd_blkin_trace_all", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osdc_blkin_trace_all", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("osd_discard_disconnected_ops", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("memstore_device_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024*1024*1024) + .set_description(""), + + Option("memstore_page_set", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("memstore_page_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(64 << 10) + .set_description(""), + + Option("bdev_debug_inflight_ios", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bdev_inject_crash", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("bdev_inject_crash_flush_delay", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2) + .set_description(""), + + Option("bdev_aio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("bdev_aio_poll_ms", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(250) + .set_description(""), + + Option("bdev_aio_max_queue_depth", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024) + .set_description(""), + + Option("bdev_block_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4096) + .set_description(""), + + Option("bdev_debug_aio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bdev_debug_aio_suicide_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(60.0) + .set_description(""), + + Option("bdev_nvme_unbind_from_kernel", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bdev_nvme_retry_count", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(-1) + .set_description(""), + + Option("objectstore_blackhole", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bluefs_alloc_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1048576) + .set_description(""), + + Option("bluefs_max_prefetch", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1048576) + .set_description(""), + + Option("bluefs_min_log_runway", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1048576) + .set_description(""), + + Option("bluefs_max_log_runway", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4194304) + .set_description(""), + + Option("bluefs_log_compact_min_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(5.0) + .set_description(""), + + Option("bluefs_log_compact_min_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(16*1048576) + .set_description(""), + + Option("bluefs_min_flush_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(524288) + .set_description(""), + + Option("bluefs_compact_log_sync", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bluefs_buffered_io", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bluefs_sync_write", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bluefs_allocator", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("bitmap") + .set_description(""), + + Option("bluefs_preextend_wal_files", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bluestore_bluefs", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("bluestore_bluefs_env_mirror", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bluestore_bluefs_min", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1*1024*1024*1024) + .set_description(""), + + Option("bluestore_bluefs_min_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.02) + .set_description(""), + + Option("bluestore_bluefs_max_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.90) + .set_description(""), + + Option("bluestore_bluefs_gift_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.02) + .set_description(""), + + Option("bluestore_bluefs_reclaim_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.20) + .set_description(""), + + Option("bluestore_bluefs_balance_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("bluestore_spdk_mem", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(512) + .set_description(""), + + Option("bluestore_spdk_coremask", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("0x3") + .set_description(""), + + Option("bluestore_spdk_max_io_completion", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("bluestore_block_path", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("bluestore_block_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10 * 1024*1024*1024ull) + .set_description(""), + + Option("bluestore_block_create", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("bluestore_block_db_path", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("bluestore_block_db_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("bluestore_block_db_create", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bluestore_block_wal_path", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("bluestore_block_wal_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(96 * 1024*1024) + .set_description(""), + + Option("bluestore_block_wal_create", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bluestore_block_preallocate_file", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bluestore_csum_type", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("crc32c") + .set_description(""), + + Option("bluestore_csum_min_block", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4096) + .set_description(""), + + Option("bluestore_csum_max_block", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(64*1024) + .set_description(""), + + Option("bluestore_min_alloc_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("bluestore_min_alloc_size_hdd", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(64*1024) + .set_description(""), + + Option("bluestore_min_alloc_size_ssd", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(16*1024) + .set_description(""), + + Option("bluestore_max_alloc_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("bluestore_prefer_deferred_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("bluestore_prefer_deferred_size_hdd", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(32768) + .set_description(""), + + Option("bluestore_prefer_deferred_size_ssd", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("bluestore_compression_mode", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("none") + .set_description(""), + + Option("bluestore_compression_algorithm", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("snappy") + .set_description(""), + + Option("bluestore_compression_min_blob_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("bluestore_compression_min_blob_size_hdd", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(128*1024) + .set_description(""), + + Option("bluestore_compression_min_blob_size_ssd", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(8*1024) + .set_description(""), + + Option("bluestore_compression_max_blob_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("bluestore_compression_max_blob_size_hdd", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(512*1024) + .set_description(""), + + Option("bluestore_compression_max_blob_size_ssd", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(64*1024) + .set_description(""), + + Option("bluestore_gc_enable_blob_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("bluestore_gc_enable_total_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("bluestore_max_blob_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("bluestore_max_blob_size_hdd", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(512*1024) + .set_description(""), + + Option("bluestore_max_blob_size_ssd", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(64*1024) + .set_description(""), + + Option("bluestore_compression_required_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.875) + .set_description(""), + + Option("bluestore_extent_map_shard_max_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1200) + .set_description(""), + + Option("bluestore_extent_map_shard_target_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(500) + .set_description(""), + + Option("bluestore_extent_map_shard_min_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(150) + .set_description(""), + + Option("bluestore_extent_map_shard_target_size_slop", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.2) + .set_description(""), + + Option("bluestore_extent_map_inline_shard_prealloc_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(256) + .set_description(""), + + Option("bluestore_cache_trim_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.2) + .set_description(""), + + Option("bluestore_cache_trim_max_skip_pinned", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(64) + .set_description(""), + + Option("bluestore_cache_type", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("2q") + .set_description(""), + + Option("bluestore_2q_cache_kin_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.5) + .set_description(""), + + Option("bluestore_2q_cache_kout_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.5) + .set_description(""), + + Option("bluestore_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024*1024*1024) + .set_description(""), + + Option("bluestore_cache_meta_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.9) + .set_description(""), + + Option("bluestore_kvbackend", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("rocksdb") + .set_description(""), + + Option("bluestore_allocator", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("bitmap") + .set_description(""), + + Option("bluestore_freelist_blocks_per_key", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(128) + .set_description(""), + + Option("bluestore_bitmapallocator_blocks_per_zone", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024) + .set_description(""), + + Option("bluestore_bitmapallocator_span_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024) + .set_description(""), + + Option("bluestore_max_deferred_txc", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(32) + .set_description(""), + + Option("bluestore_rocksdb_options", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("compression=kNoCompression,max_write_buffer_number=4,min_write_buffer_number_to_merge=1,recycle_log_file_num=4,write_buffer_size=268435456,writable_file_max_buffer_size=0,compaction_readahead_size=2097152") + .set_description(""), + + Option("bluestore_fsck_on_mount", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bluestore_fsck_on_mount_deep", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("bluestore_fsck_on_umount", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bluestore_fsck_on_umount_deep", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("bluestore_fsck_on_mkfs", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("bluestore_fsck_on_mkfs_deep", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bluestore_sync_submit_transaction", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bluestore_throttle_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(64*1024*1024) + .set_description(""), + + Option("bluestore_throttle_deferred_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(128*1024*1024) + .set_description(""), + + Option("bluestore_throttle_cost_per_io_hdd", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1500000) + .set_description(""), + + Option("bluestore_throttle_cost_per_io_ssd", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4000) + .set_description(""), + + Option("bluestore_throttle_cost_per_io", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("bluestore_deferred_batch_ops", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("bluestore_deferred_batch_ops_hdd", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(64) + .set_description(""), + + Option("bluestore_deferred_batch_ops_ssd", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(16) + .set_description(""), + + Option("bluestore_nid_prealloc", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024) + .set_description(""), + + Option("bluestore_blobid_prealloc", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10240) + .set_description(""), + + Option("bluestore_clone_cow", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("bluestore_default_buffered_read", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("bluestore_default_buffered_write", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bluestore_debug_misc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bluestore_debug_no_reuse_blocks", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bluestore_debug_small_allocations", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("bluestore_debug_freelist", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bluestore_debug_prefill", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("bluestore_debug_prefragment_max", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1048576) + .set_description(""), + + Option("bluestore_debug_inject_read_err", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bluestore_debug_randomize_serial_transaction", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("bluestore_debug_omit_block_device_write", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bluestore_debug_fsck_abort", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bluestore_shard_finishers", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("kstore_max_ops", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(512) + .set_description(""), + + Option("kstore_max_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(64*1024*1024) + .set_description(""), + + Option("kstore_backend", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("rocksdb") + .set_description(""), + + Option("kstore_rocksdb_options", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("compression=kNoCompression") + .set_description(""), + + Option("kstore_rocksdb_bloom_bits_per_key", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("kstore_fsck_on_mount", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("kstore_fsck_on_mount_deep", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("kstore_nid_prealloc", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024) + .set_description(""), + + Option("kstore_sync_transaction", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("kstore_sync_submit_transaction", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("kstore_onode_map_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024) + .set_description(""), + + Option("kstore_cache_tails", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("kstore_default_stripe_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(65536) + .set_description(""), + + Option("filestore_omap_backend", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("rocksdb") + .set_description(""), + + Option("filestore_omap_backend_path", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("filestore_wbthrottle_enable", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("filestore_wbthrottle_btrfs_bytes_start_flusher", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(41943040) + .set_description(""), + + Option("filestore_wbthrottle_btrfs_bytes_hard_limit", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(419430400) + .set_description(""), + + Option("filestore_wbthrottle_btrfs_ios_start_flusher", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(500) + .set_description(""), + + Option("filestore_wbthrottle_btrfs_ios_hard_limit", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5000) + .set_description(""), + + Option("filestore_wbthrottle_btrfs_inodes_start_flusher", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(500) + .set_description(""), + + Option("filestore_wbthrottle_xfs_bytes_start_flusher", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(41943040) + .set_description(""), + + Option("filestore_wbthrottle_xfs_bytes_hard_limit", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(419430400) + .set_description(""), + + Option("filestore_wbthrottle_xfs_ios_start_flusher", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(500) + .set_description(""), + + Option("filestore_wbthrottle_xfs_ios_hard_limit", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5000) + .set_description(""), + + Option("filestore_wbthrottle_xfs_inodes_start_flusher", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(500) + .set_description(""), + + Option("filestore_wbthrottle_btrfs_inodes_hard_limit", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5000) + .set_description(""), + + Option("filestore_wbthrottle_xfs_inodes_hard_limit", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5000) + .set_description(""), + + Option("filestore_odsync_write", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("filestore_index_retry_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("filestore_debug_inject_read_err", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("filestore_debug_omap_check", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("filestore_omap_header_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024) + .set_description(""), + + Option("filestore_max_inline_xattr_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("filestore_max_inline_xattr_size_xfs", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(65536) + .set_description(""), + + Option("filestore_max_inline_xattr_size_btrfs", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2048) + .set_description(""), + + Option("filestore_max_inline_xattr_size_other", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(512) + .set_description(""), + + Option("filestore_max_inline_xattrs", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("filestore_max_inline_xattrs_xfs", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("filestore_max_inline_xattrs_btrfs", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("filestore_max_inline_xattrs_other", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2) + .set_description(""), + + Option("filestore_max_xattr_value_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("filestore_max_xattr_value_size_xfs", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(64<<10) + .set_description(""), + + Option("filestore_max_xattr_value_size_btrfs", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(64<<10) + .set_description(""), + + Option("filestore_max_xattr_value_size_other", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1<<10) + .set_description(""), + + Option("filestore_sloppy_crc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("filestore_sloppy_crc_block_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(65536) + .set_description(""), + + Option("filestore_max_alloc_hint_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1ULL << 20) + .set_description(""), + + Option("filestore_max_sync_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("filestore_min_sync_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(.01) + .set_description(""), + + Option("filestore_btrfs_snap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("filestore_btrfs_clone_range", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("filestore_zfs_snap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("filestore_fsync_flushes_journal_data", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("filestore_fiemap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("filestore_punch_hole", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("filestore_seek_data_hole", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("filestore_splice", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("filestore_fadvise", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("filestore_collect_device_partition_information", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("filestore_xfs_extsize", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("filestore_journal_parallel", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("filestore_journal_writeahead", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("filestore_journal_trailing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("filestore_queue_max_ops", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(50) + .set_description(""), + + Option("filestore_queue_max_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(100 << 20) + .set_description(""), + + Option("filestore_caller_concurrency", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("filestore_expected_throughput_bytes", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(200 << 20) + .set_description(""), + + Option("filestore_expected_throughput_ops", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(200) + .set_description(""), + + Option("filestore_queue_max_delay_multiple", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("filestore_queue_high_delay_multiple", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("filestore_queue_low_threshhold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0.3) + .set_description(""), + + Option("filestore_queue_high_threshhold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0.9) + .set_description(""), + + Option("filestore_op_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2) + .set_description(""), + + Option("filestore_op_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(60) + .set_description(""), + + Option("filestore_op_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(180) + .set_description(""), + + Option("filestore_commit_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(600) + .set_description(""), + + Option("filestore_fiemap_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4096) + .set_description(""), + + Option("filestore_merge_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("filestore_split_multiple", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2) + .set_description(""), + + Option("filestore_update_to", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1000) + .set_description(""), + + Option("filestore_blackhole", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("filestore_fd_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(128) + .set_description(""), + + Option("filestore_fd_cache_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(16) + .set_description(""), + + Option("filestore_ondisk_finisher_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("filestore_apply_finisher_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("filestore_dump_file", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("filestore_kill_at", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("filestore_inject_stall", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("filestore_fail_eio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("filestore_debug_verify_split", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("journal_dio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("journal_aio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("journal_force_aio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("journal_block_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4096) + .set_description(""), + + Option("journal_max_corrupt_search", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10<<20) + .set_description(""), + + Option("journal_block_align", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("journal_write_header_frequency", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("journal_max_write_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10 << 20) + .set_description(""), + + Option("journal_max_write_entries", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(100) + .set_description(""), + + Option("journal_throttle_low_threshhold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0.6) + .set_description(""), + + Option("journal_throttle_high_threshhold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0.9) + .set_description(""), + + Option("journal_throttle_high_multiple", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("journal_throttle_max_multiple", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("journal_align_min_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(64 << 10) + .set_description(""), + + Option("journal_replay_from", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("journal_zero_on_create", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("journal_ignore_corruption", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("journal_discard", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("fio_dir", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("/tmp/fio") + .set_description(""), + + Option("rados_mon_op_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("rados_osd_op_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("rados_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rbd_op_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("rbd_op_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(60) + .set_description(""), + + Option("rbd_non_blocking_aio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rbd_cache", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rbd_cache_writethrough_until_flush", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rbd_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(32<<20) + .set_description(""), + + Option("rbd_cache_max_dirty", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(24<<20) + .set_description(""), + + Option("rbd_cache_target_dirty", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(16<<20) + .set_description(""), + + Option("rbd_cache_max_dirty_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(1.0) + .set_description(""), + + Option("rbd_cache_max_dirty_object", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("rbd_cache_block_writes_upfront", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rbd_concurrent_management_ops", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("rbd_balance_snap_reads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rbd_localize_snap_reads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rbd_balance_parent_reads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rbd_localize_parent_reads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rbd_readahead_trigger_requests", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("rbd_readahead_max_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(512 * 1024) + .set_description(""), + + Option("rbd_readahead_disable_after_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(50 * 1024 * 1024) + .set_description(""), + + Option("rbd_clone_copy_on_read", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rbd_blacklist_on_break_lock", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rbd_blacklist_expire_seconds", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("rbd_request_timed_out_seconds", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("rbd_skip_partial_discard", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rbd_enable_alloc_hint", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rbd_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rbd_blkin_trace_all", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rbd_validate_pool", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rbd_validate_names", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rbd_auto_exclusive_lock_until_manual_request", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rbd_mirroring_resync_after_disconnect", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rbd_mirroring_replay_delay", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("rbd_default_format", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2) + .set_description(""), + + Option("rbd_default_order", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(22) + .set_description(""), + + Option("rbd_default_stripe_count", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("rbd_default_stripe_unit", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("rbd_default_data_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rbd_default_features", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("layering,exclusive-lock,object-map,fast-diff,deep-flatten") + .set_description(""), + + Option("rbd_default_map_options", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rbd_journal_order", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(24) + .set_description(""), + + Option("rbd_journal_splay_width", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4) + .set_description(""), + + Option("rbd_journal_commit_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("rbd_journal_object_flush_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("rbd_journal_object_flush_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("rbd_journal_object_flush_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("rbd_journal_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rbd_journal_max_payload_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(16384) + .set_description(""), + + Option("rbd_journal_max_concurrent_object_sets", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("rbd_mirror_journal_commit_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("rbd_mirror_journal_poll_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("rbd_mirror_journal_max_fetch_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(32768) + .set_description(""), + + Option("rbd_mirror_sync_point_update_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("rbd_mirror_concurrent_image_syncs", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("rbd_mirror_pool_replayers_refresh_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("rbd_mirror_delete_retry_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("rbd_mirror_image_state_check_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("rbd_mirror_leader_heartbeat_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("rbd_mirror_leader_max_missed_heartbeats", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2) + .set_description(""), + + Option("rbd_mirror_leader_max_acquire_attempts_before_break", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(3) + .set_description(""), + + Option("nss_db_path", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_max_chunk_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4 * 1024 * 1024) + .set_description(""), + + Option("rgw_put_obj_min_window_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(16 * 1024 * 1024) + .set_description(""), + + Option("rgw_put_obj_max_window_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(64 * 1024 * 1024) + .set_description(""), + + Option("rgw_max_put_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5ULL*1024*1024*1024) + .set_description(""), + + Option("rgw_max_put_param_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1 * 1024 * 1024) + .set_description(""), + + Option("rgw_override_bucket_index_max_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("rgw_bucket_index_max_aio", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(8) + .set_description(""), + + Option("rgw_enable_quota_threads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rgw_enable_gc_threads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rgw_enable_lc_threads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rgw_data", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("/var/lib/ceph/radosgw/$cluster-$id") + .set_description(""), + + Option("rgw_enable_apis", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("s3, s3website, swift, swift_auth, admin") + .set_description(""), + + Option("rgw_cache_enabled", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rgw_cache_lru_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10000) + .set_description(""), + + Option("rgw_socket_path", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_host", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_port", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_dns_name", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_dns_s3website_name", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_content_length_compat", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rgw_lifecycle_work_time", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("00:00-06:00") + .set_description(""), + + Option("rgw_lc_lock_max_time", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(60) + .set_description(""), + + Option("rgw_lc_max_objs", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(32) + .set_description(""), + + Option("rgw_lc_debug_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(-1) + .set_description(""), + + Option("rgw_script_uri", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_request_uri", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_swift_url", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_swift_url_prefix", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("swift") + .set_description(""), + + Option("rgw_swift_auth_url", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_swift_auth_entry", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("auth") + .set_description(""), + + Option("rgw_swift_tenant_name", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_swift_account_in_url", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rgw_swift_enforce_content_length", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rgw_keystone_url", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_keystone_admin_token", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_keystone_admin_user", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_keystone_admin_password", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_keystone_admin_tenant", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_keystone_admin_project", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_keystone_admin_domain", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_keystone_barbican_user", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_keystone_barbican_password", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_keystone_barbican_tenant", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_keystone_barbican_project", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_keystone_barbican_domain", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_keystone_api_version", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2) + .set_description(""), + + Option("rgw_keystone_accepted_roles", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("Member, admin") + .set_description(""), + + Option("rgw_keystone_accepted_admin_roles", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_keystone_token_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10000) + .set_description(""), + + Option("rgw_keystone_revocation_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(15 * 60) + .set_description(""), + + Option("rgw_keystone_verify_ssl", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rgw_keystone_implicit_tenants", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rgw_cross_domain_policy", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_healthcheck_disabling_path", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_s3_auth_use_rados", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rgw_s3_auth_use_keystone", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rgw_s3_auth_aws4_force_boto2_compat", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rgw_barbican_url", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_ldap_uri", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("ldaps://") + .set_description(""), + + Option("rgw_ldap_binddn", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("uid=admin,cn=users,dc=example,dc=com") + .set_description(""), + + Option("rgw_ldap_searchdn", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("cn=users,cn=accounts,dc=example,dc=com") + .set_description(""), + + Option("rgw_ldap_dnattr", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("uid") + .set_description(""), + + Option("rgw_ldap_secret", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("/etc/openldap/secret") + .set_description(""), + + Option("rgw_s3_auth_use_ldap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rgw_ldap_searchfilter", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_admin_entry", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("admin") + .set_description(""), + + Option("rgw_enforce_swift_acls", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rgw_swift_token_expiration", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(24 * 3600) + .set_description(""), + + Option("rgw_print_continue", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rgw_print_prohibited_content_length", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rgw_remote_addr_param", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("REMOTE_ADDR") + .set_description(""), + + Option("rgw_op_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10*60) + .set_description(""), + + Option("rgw_op_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("rgw_thread_pool_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(100) + .set_description(""), + + Option("rgw_num_control_oids", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(8) + .set_description(""), + + Option("rgw_num_rados_handles", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("rgw_nfs_lru_lanes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("rgw_nfs_lru_lane_hiwat", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(911) + .set_description(""), + + Option("rgw_nfs_fhcache_partitions", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(3) + .set_description(""), + + Option("rgw_nfs_fhcache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2017) + .set_description(""), + + Option("rgw_nfs_namespace_expire_secs", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(300) + .set_description(""), + + Option("rgw_nfs_max_gc", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(300) + .set_description(""), + + Option("rgw_nfs_write_completion_interval_s", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description(""), + + Option("rgw_zone", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_zone_root_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default(".rgw.root") + .set_description(""), + + Option("rgw_default_zone_info_oid", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("default.zone") + .set_description(""), + + Option("rgw_region", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_region_root_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default(".rgw.root") + .set_description(""), + + Option("rgw_default_region_info_oid", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("default.region") + .set_description(""), + + Option("rgw_zonegroup", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_zonegroup_root_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default(".rgw.root") + .set_description(""), + + Option("rgw_default_zonegroup_info_oid", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("default.zonegroup") + .set_description(""), + + Option("rgw_realm", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_realm_root_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default(".rgw.root") + .set_description(""), + + Option("rgw_default_realm_info_oid", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("default.realm") + .set_description(""), + + Option("rgw_period_root_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default(".rgw.root") + .set_description(""), + + Option("rgw_period_latest_epoch_info_oid", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default(".latest_epoch") + .set_description(""), + + Option("rgw_log_nonexistent_bucket", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rgw_log_object_name", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("%Y-%m-%d-%H-%i-%n") + .set_description(""), + + Option("rgw_log_object_name_utc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rgw_usage_max_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(32) + .set_description(""), + + Option("rgw_usage_max_user_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description(""), + + Option("rgw_enable_ops_log", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rgw_enable_usage_log", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rgw_ops_log_rados", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rgw_ops_log_socket_path", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_ops_log_data_backlog", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5 << 20) + .set_description(""), + + Option("rgw_fcgi_socket_backlog", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024) + .set_description(""), + + Option("rgw_usage_log_flush_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024) + .set_description(""), + + Option("rgw_usage_log_tick_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("rgw_intent_log_object_name", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("%Y-%m-%d-%i-%n") + .set_description(""), + + Option("rgw_intent_log_object_name_utc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rgw_init_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(300) + .set_description(""), + + Option("rgw_mime_types_file", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("/etc/mime.types") + .set_description(""), + + Option("rgw_gc_max_objs", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(32) + .set_description(""), + + Option("rgw_gc_obj_min_wait", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2 * 3600) + .set_description(""), + + Option("rgw_gc_processor_max_time", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(3600) + .set_description(""), + + Option("rgw_gc_processor_period", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(3600) + .set_description(""), + + Option("rgw_s3_success_create_obj_status", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("rgw_resolve_cname", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rgw_obj_stripe_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4 << 20) + .set_description(""), + + Option("rgw_extended_http_attrs", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_exit_timeout_secs", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(120) + .set_description(""), + + Option("rgw_get_obj_window_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(16 << 20) + .set_description(""), + + Option("rgw_get_obj_max_req_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4 << 20) + .set_description(""), + + Option("rgw_relaxed_s3_bucket_names", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rgw_defer_to_bucket_acls", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_list_buckets_max_chunk", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1000) + .set_description(""), + + Option("rgw_md_log_max_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(64) + .set_description(""), + + Option("rgw_num_zone_opstate_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(128) + .set_description(""), + + Option("rgw_opstate_ratelimit_sec", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("rgw_curl_wait_timeout_ms", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1000) + .set_description(""), + + Option("rgw_copy_obj_progress", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rgw_copy_obj_progress_every_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1024 * 1024) + .set_description(""), + + Option("rgw_obj_tombstone_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1000) + .set_description(""), + + Option("rgw_data_log_window", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("rgw_data_log_changes_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1000) + .set_description(""), + + Option("rgw_data_log_num_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(128) + .set_description(""), + + Option("rgw_data_log_obj_prefix", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("data_log") + .set_description(""), + + Option("rgw_replica_log_obj_prefix", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("replica_log") + .set_description(""), + + Option("rgw_bucket_quota_ttl", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(600) + .set_description(""), + + Option("rgw_bucket_quota_soft_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0.95) + .set_description(""), + + Option("rgw_bucket_quota_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10000) + .set_description(""), + + Option("rgw_bucket_default_quota_max_objects", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(-1) + .set_description(""), + + Option("rgw_bucket_default_quota_max_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(-1) + .set_description(""), + + Option("rgw_expose_bucket", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rgw_frontends", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("civetweb port=7480") + .set_description(""), + + Option("rgw_user_quota_bucket_sync_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(180) + .set_description(""), + + Option("rgw_user_quota_sync_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(3600 * 24) + .set_description(""), + + Option("rgw_user_quota_sync_idle_users", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rgw_user_quota_sync_wait_time", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(3600 * 24) + .set_description(""), + + Option("rgw_user_default_quota_max_objects", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(-1) + .set_description(""), + + Option("rgw_user_default_quota_max_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(-1) + .set_description(""), + + Option("rgw_multipart_min_part_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5 * 1024 * 1024) + .set_description(""), + + Option("rgw_multipart_part_upload_limit", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(10000) + .set_description(""), + + Option("rgw_max_slo_entries", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1000) + .set_description(""), + + Option("rgw_olh_pending_timeout_sec", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(3600) + .set_description(""), + + Option("rgw_user_max_buckets", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1000) + .set_description(""), + + Option("rgw_objexp_gc_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(60 * 10) + .set_description(""), + + Option("rgw_objexp_time_step", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(4096) + .set_description(""), + + Option("rgw_objexp_hints_num_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(127) + .set_description(""), + + Option("rgw_objexp_chunk_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(100) + .set_description(""), + + Option("rgw_enable_static_website", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rgw_log_http_headers", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_num_async_rados_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(32) + .set_description(""), + + Option("rgw_md_notify_interval_msec", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(200) + .set_description(""), + + Option("rgw_run_sync_thread", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rgw_sync_lease_period", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(120) + .set_description(""), + + Option("rgw_sync_log_trim_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1200) + .set_description(""), + + Option("rgw_sync_data_inject_err_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("rgw_sync_meta_inject_err_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0) + .set_description(""), + + Option("rgw_period_push_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(2) + .set_description(""), + + Option("rgw_period_push_interval_max", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("rgw_safe_max_objects_per_shard", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(100*1024) + .set_description(""), + + Option("rgw_shard_warning_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(90) + .set_description(""), + + Option("rgw_swift_versioning_enabled", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mgr_module_path", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default(CEPH_PKGLIBDIR "/mgr") + .set_description(""), + + Option("mgr_modules", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("restful") + .set_description(""), + + Option("mgr_data", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("/var/lib/ceph/mgr/$cluster-$id") + .set_description(""), + + Option("mgr_tick_period", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(2) + .set_description(""), + + Option("mgr_stats_period", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("mgr_client_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(128*1048576) + .set_description(""), + + Option("mgr_client_messages", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(512) + .set_description(""), + + Option("mgr_osd_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(512*1048576) + .set_description(""), + + Option("mgr_osd_messages", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(8192) + .set_description(""), + + Option("mgr_mds_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(128*1048576) + .set_description(""), + + Option("mgr_mds_messages", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(128) + .set_description(""), + + Option("mgr_mon_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(128*1048576) + .set_description(""), + + Option("mgr_mon_messages", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(128) + .set_description(""), + + Option("mgr_connect_retry_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(1.0) + .set_description(""), + + Option("mon_mgr_digest_period", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(5) + .set_description(""), + + Option("mon_mgr_beacon_grace", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(30) + .set_description(""), + + Option("mon_mgr_inactive_grace", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(60) + .set_description(""), + + Option("rgw_crypt_require_ssl", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rgw_crypt_default_encryption_key", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_crypt_s3_kms_encryption_keys", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_crypt_suppress_logs", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rgw_list_bucket_min_readahead", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1000) + .set_description(""), + + Option("rgw_rest_getusage_op_compat", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("mutex_perf_counter", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("throttler_perf_counter", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rgw_torrent_flag", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rgw_torrent_tracker", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_torrent_createby", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_torrent_comment", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_torrent_encoding", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_torrent_origin", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_torrent_sha_unit", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(512*1024) + .set_description(""), + + Option("event_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("internal_safe_to_start_threads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("debug_deliberately_leak_memory", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("rgw_swift_custom_header", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_default("") + .set_description(""), + + Option("rgw_reshard_num_logs", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(16) + .set_description(""), + + Option("rgw_reshard_bucket_lock_duration", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(120) + .set_description(""), + + Option("rgw_dynamic_resharding", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(true) + .set_description(""), + + Option("rgw_max_objs_per_shard", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(100000) + .set_description(""), + + Option("rgw_reshard_thread_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(60 * 10) + .set_description(""), // ** end ** diff --git a/src/convert.cc b/src/convert.cc new file mode 100644 index 00000000000..ab4346aa856 --- /dev/null +++ b/src/convert.cc @@ -0,0 +1,51 @@ + +#include +#include "include/acconfig.h" +using namespace std; +#define _STR(x) #x +#define STRINGIFY(x) _STR(x) + +#define OPTION_OPT_LONGLONG(name, def_val) name((1LL) * def_val), +#define OPTION_OPT_STR(name, def_val) name(def_val), +#define OPTION_OPT_DOUBLE(name, def_val) name(def_val), +#define OPTION_OPT_FLOAT(name, def_val) name(def_val), +#define OPTION_OPT_BOOL(name, def_val) name(def_val), +#define OPTION_OPT_ADDR(name, def_val) name(def_val), +#define OPTION_OPT_U32(name, def_val) name(def_val), +#define OPTION_OPT_U64(name, def_val) name(((uint64_t)1) * def_val), +#define OPTION_OPT_UUID(name, def_val) name(def_val), + +string convert_type(string t) { + if (t == "OPT_STR") + return "TYPE_STR"; + if (t == "OPT_DOUBLE" || t == "OPT_FLOAT") + return "TYPE_FLOAT"; + if (t == "OPT_BOOL") + return "TYPE_BOOL"; + if (t == "OPT_U32" || + t == "OPT_U64" || + t == "OPT_INT" || + t == "OPT_LONGLONG") + return "TYPE_INT"; + if (t == "OPT_UUID") + return "TYPE_UUID"; + if (t == "OPT_ADDR") + return "TYPE_ADDR"; + return "ERROR"; +} + +#define OPTION(name, type, def_val) \ + cout << " Option(\"" << STRINGIFY(name) << "\", Option::" << convert_type(STRINGIFY(type)) \ + << ", Option::LEVEL_ADVANCED)\n" \ + << " .set_default(" << STRINGIFY(def_val) << ")\n" \ + << " .set_description(\"\"),\n\n"; + +#define OPTION_VALIDATOR(name) +#define SAFE_OPTION(name, type, def_val) OPTION(name, type, def_val) +#define SUBSYS(name, log, gather) +#define DEFAULT_SUBSYS(log, gather) + +int main(int argc, char **argv) +{ + #include "common/config_opts.h" +} -- 2.39.5