]> git.proxmox.com Git - ceph.git/blame - ceph/src/common/legacy_config_opts.h
import ceph 16.2.7
[ceph.git] / ceph / src / common / legacy_config_opts.h
CommitLineData
c07f9fc5
FG
1// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2// vim: ts=8 sw=2 smarttab
3/*
4 * Ceph - scalable distributed file system
5 *
6 * Copyright (C) 2004-2006 Sage Weil <sage@newdream.net>
7 *
8 * This is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License version 2.1, as published by the Free Software
11 * Foundation. See file COPYING.
12 *
13 */
14
15/* note: no header guard */
16OPTION(host, OPT_STR) // "" means that ceph will use short hostname
c07f9fc5 17OPTION(public_addr, OPT_ADDR)
9f95a23c 18OPTION(public_addrv, OPT_ADDRVEC)
c07f9fc5
FG
19OPTION(public_bind_addr, OPT_ADDR)
20OPTION(cluster_addr, OPT_ADDR)
21OPTION(public_network, OPT_STR)
22OPTION(cluster_network, OPT_STR)
c07f9fc5
FG
23OPTION(lockdep, OPT_BOOL)
24OPTION(lockdep_force_backtrace, OPT_BOOL) // always gather current backtrace at every lock
25OPTION(run_dir, OPT_STR) // the "/var/run/ceph" dir, created on daemon startup
26OPTION(admin_socket, OPT_STR) // default changed by common_preinit()
27OPTION(admin_socket_mode, OPT_STR) // permission bits to set for admin socket file, e.g., "0775", "0755"
28
29OPTION(daemonize, OPT_BOOL) // default changed by common_preinit()
30OPTION(setuser, OPT_STR) // uid or user name
31OPTION(setgroup, OPT_STR) // gid or group name
32OPTION(setuser_match_path, OPT_STR) // make setuser/group conditional on this path matching ownership
33OPTION(pid_file, OPT_STR) // default changed by common_preinit()
34OPTION(chdir, OPT_STR)
35OPTION(restapi_log_level, OPT_STR) // default set by Python code
36OPTION(restapi_base_url, OPT_STR) // "
37OPTION(fatal_signal_handlers, OPT_BOOL)
11fdf7f2 38OPTION(crash_dir, OPT_STR)
c07f9fc5
FG
39SAFE_OPTION(erasure_code_dir, OPT_STR) // default location for erasure-code plugins
40
41OPTION(log_file, OPT_STR) // default changed by common_preinit()
42OPTION(log_max_new, OPT_INT) // default changed by common_preinit()
43OPTION(log_max_recent, OPT_INT) // default changed by common_preinit()
11fdf7f2 44OPTION(log_to_file, OPT_BOOL)
c07f9fc5
FG
45OPTION(log_to_stderr, OPT_BOOL) // default changed by common_preinit()
46OPTION(err_to_stderr, OPT_BOOL) // default changed by common_preinit()
47OPTION(log_to_syslog, OPT_BOOL)
48OPTION(err_to_syslog, OPT_BOOL)
49OPTION(log_flush_on_exit, OPT_BOOL) // default changed by common_preinit()
50OPTION(log_stop_at_utilization, OPT_FLOAT) // stop logging at (near) full
51OPTION(log_to_graylog, OPT_BOOL)
52OPTION(err_to_graylog, OPT_BOOL)
53OPTION(log_graylog_host, OPT_STR)
54OPTION(log_graylog_port, OPT_INT)
55
56// options will take k/v pairs, or single-item that will be assumed as general
57// default for all, regardless of channel.
58// e.g., "info" would be taken as the same as "default=info"
59// also, "default=daemon audit=local0" would mean
60// "default all to 'daemon', override 'audit' with 'local0'
61OPTION(clog_to_monitors, OPT_STR)
62OPTION(clog_to_syslog, OPT_STR)
63OPTION(clog_to_syslog_level, OPT_STR) // this level and above
64OPTION(clog_to_syslog_facility, OPT_STR)
65OPTION(clog_to_graylog, OPT_STR)
66OPTION(clog_to_graylog_host, OPT_STR)
67OPTION(clog_to_graylog_port, OPT_STR)
68
69OPTION(mon_cluster_log_to_syslog, OPT_STR)
70OPTION(mon_cluster_log_to_syslog_level, OPT_STR) // this level and above
71OPTION(mon_cluster_log_to_syslog_facility, OPT_STR)
11fdf7f2 72OPTION(mon_cluster_log_to_file, OPT_BOOL)
c07f9fc5
FG
73OPTION(mon_cluster_log_file, OPT_STR)
74OPTION(mon_cluster_log_file_level, OPT_STR)
75OPTION(mon_cluster_log_to_graylog, OPT_STR)
76OPTION(mon_cluster_log_to_graylog_host, OPT_STR)
77OPTION(mon_cluster_log_to_graylog_port, OPT_STR)
78
79OPTION(enable_experimental_unrecoverable_data_corrupting_features, OPT_STR)
80
81SAFE_OPTION(plugin_dir, OPT_STR)
82
c07f9fc5
FG
83OPTION(compressor_zlib_isal, OPT_BOOL)
84OPTION(compressor_zlib_level, OPT_INT) //regular zlib compression level, not applicable to isa-l optimized version
f67539c2 85OPTION(compressor_zlib_winsize, OPT_INT) //regular zlib compression winsize, not applicable to isa-l optimized version
f91f0fd5 86OPTION(compressor_zstd_level, OPT_INT) //regular zstd compression level
c07f9fc5 87
11fdf7f2 88OPTION(qat_compressor_enabled, OPT_BOOL)
c07f9fc5
FG
89
90OPTION(plugin_crypto_accelerator, OPT_STR)
91
92OPTION(mempool_debug, OPT_BOOL)
93
f67539c2 94OPTION(openssl_engine_opts, OPT_STR)
c07f9fc5
FG
95
96OPTION(key, OPT_STR)
97OPTION(keyfile, OPT_STR)
98OPTION(keyring, OPT_STR)
99OPTION(heartbeat_interval, OPT_INT)
100OPTION(heartbeat_file, OPT_STR)
101OPTION(heartbeat_inject_failure, OPT_INT) // force an unhealthy heartbeat for N seconds
102OPTION(perf, OPT_BOOL) // enable internal perf counters
103
104SAFE_OPTION(ms_type, OPT_STR) // messenger backend. It will be modified in runtime, so use SAFE_OPTION
105OPTION(ms_public_type, OPT_STR) // messenger backend
106OPTION(ms_cluster_type, OPT_STR) // messenger backend
81eedcae 107OPTION(ms_learn_addr_from_peer, OPT_BOOL)
c07f9fc5
FG
108OPTION(ms_tcp_nodelay, OPT_BOOL)
109OPTION(ms_tcp_rcvbuf, OPT_INT)
11fdf7f2 110OPTION(ms_tcp_prefetch_max_size, OPT_U32) // max prefetch size, we limit this to avoid extra memcpy
c07f9fc5
FG
111OPTION(ms_initial_backoff, OPT_DOUBLE)
112OPTION(ms_max_backoff, OPT_DOUBLE)
113OPTION(ms_crc_data, OPT_BOOL)
114OPTION(ms_crc_header, OPT_BOOL)
115OPTION(ms_die_on_bad_msg, OPT_BOOL)
116OPTION(ms_die_on_unhandled_msg, OPT_BOOL)
117OPTION(ms_die_on_old_message, OPT_BOOL) // assert if we get a dup incoming message and shouldn't have (may be triggered by pre-541cd3c64be0dfa04e8a2df39422e0eb9541a428 code)
118OPTION(ms_die_on_skipped_message, OPT_BOOL) // assert if we skip a seq (kernel client does this intentionally)
11fdf7f2 119OPTION(ms_die_on_bug, OPT_BOOL)
c07f9fc5
FG
120OPTION(ms_dispatch_throttle_bytes, OPT_U64)
121OPTION(ms_bind_ipv6, OPT_BOOL)
122OPTION(ms_bind_port_min, OPT_INT)
123OPTION(ms_bind_port_max, OPT_INT)
124OPTION(ms_bind_retry_count, OPT_INT) // If binding fails, how many times do we retry to bind
11fdf7f2 125OPTION(ms_bind_retry_delay, OPT_INT) // Delay between attempts to bind
c07f9fc5
FG
126OPTION(ms_bind_before_connect, OPT_BOOL)
127OPTION(ms_tcp_listen_backlog, OPT_INT)
81eedcae
TL
128OPTION(ms_connection_ready_timeout, OPT_U64)
129OPTION(ms_connection_idle_timeout, OPT_U64)
c07f9fc5
FG
130OPTION(ms_pq_max_tokens_per_priority, OPT_U64)
131OPTION(ms_pq_min_cost, OPT_U64)
132OPTION(ms_inject_socket_failures, OPT_U64)
133SAFE_OPTION(ms_inject_delay_type, OPT_STR) // "osd mds mon client" allowed
c07f9fc5
FG
134OPTION(ms_inject_delay_max, OPT_DOUBLE) // seconds
135OPTION(ms_inject_delay_probability, OPT_DOUBLE) // range [0, 1]
136OPTION(ms_inject_internal_delays, OPT_DOUBLE) // seconds
9f95a23c
TL
137OPTION(ms_blackhole_osd, OPT_BOOL)
138OPTION(ms_blackhole_mon, OPT_BOOL)
139OPTION(ms_blackhole_mds, OPT_BOOL)
140OPTION(ms_blackhole_mgr, OPT_BOOL)
141OPTION(ms_blackhole_client, OPT_BOOL)
c07f9fc5
FG
142OPTION(ms_dump_on_send, OPT_BOOL) // hexdump msg to log on send
143OPTION(ms_dump_corrupt_message_level, OPT_INT) // debug level to hexdump undecodeable messages at
144OPTION(ms_async_op_threads, OPT_U64) // number of worker processing threads for async messenger created on init
145OPTION(ms_async_max_op_threads, OPT_U64) // max number of worker processing threads for async messenger
c07f9fc5
FG
146OPTION(ms_async_rdma_device_name, OPT_STR)
147OPTION(ms_async_rdma_enable_hugepage, OPT_BOOL)
148OPTION(ms_async_rdma_buffer_size, OPT_INT)
149OPTION(ms_async_rdma_send_buffers, OPT_U32)
11fdf7f2 150//size of the receive buffer pool, 0 is unlimited
c07f9fc5 151OPTION(ms_async_rdma_receive_buffers, OPT_U32)
11fdf7f2
TL
152// max number of wr in srq
153OPTION(ms_async_rdma_receive_queue_len, OPT_U32)
154// support srq
155OPTION(ms_async_rdma_support_srq, OPT_BOOL)
c07f9fc5
FG
156OPTION(ms_async_rdma_port_num, OPT_U32)
157OPTION(ms_async_rdma_polling_us, OPT_U32)
158OPTION(ms_async_rdma_local_gid, OPT_STR) // GID format: "fe80:0000:0000:0000:7efe:90ff:fe72:6efe", no zero folding
159OPTION(ms_async_rdma_roce_ver, OPT_INT) // 0=RoCEv1, 1=RoCEv2, 2=RoCEv1.5
160OPTION(ms_async_rdma_sl, OPT_INT) // in RoCE, this means PCP
161OPTION(ms_async_rdma_dscp, OPT_INT) // in RoCE, this means DSCP
162
11fdf7f2
TL
163// rdma connection management
164OPTION(ms_async_rdma_cm, OPT_BOOL)
165OPTION(ms_async_rdma_type, OPT_STR)
166
91327a77
AA
167// when there are enough accept failures, indicating there are unrecoverable failures,
168// just do ceph_abort() . Here we make it configurable.
169OPTION(ms_max_accept_failures, OPT_INT)
170
c07f9fc5 171OPTION(ms_dpdk_port_id, OPT_INT)
9f95a23c 172SAFE_OPTION(ms_dpdk_coremask, OPT_STR) // it is modified in unittest so that use SAFE_OPTION to declare
c07f9fc5
FG
173OPTION(ms_dpdk_memory_channel, OPT_STR)
174OPTION(ms_dpdk_hugepages, OPT_STR)
175OPTION(ms_dpdk_pmd, OPT_STR)
176SAFE_OPTION(ms_dpdk_host_ipv4_addr, OPT_STR)
177SAFE_OPTION(ms_dpdk_gateway_ipv4_addr, OPT_STR)
178SAFE_OPTION(ms_dpdk_netmask_ipv4_addr, OPT_STR)
179OPTION(ms_dpdk_lro, OPT_BOOL)
180OPTION(ms_dpdk_hw_flow_control, OPT_BOOL)
181// Weighing of a hardware network queue relative to a software queue (0=no work, 1= equal share)")
182OPTION(ms_dpdk_hw_queue_weight, OPT_FLOAT)
183OPTION(ms_dpdk_debug_allow_loopback, OPT_BOOL)
184OPTION(ms_dpdk_rx_buffer_count_per_core, OPT_INT)
185
186OPTION(inject_early_sigterm, OPT_BOOL)
187
188OPTION(mon_data, OPT_STR)
189OPTION(mon_initial_members, OPT_STR) // list of initial cluster mon ids; if specified, need majority to form initial quorum and create new cluster
190OPTION(mon_compact_on_start, OPT_BOOL) // compact leveldb on ceph-mon start
191OPTION(mon_compact_on_bootstrap, OPT_BOOL) // trigger leveldb compaction on bootstrap
192OPTION(mon_compact_on_trim, OPT_BOOL) // compact (a prefix) when we trim old states
193OPTION(mon_osd_cache_size, OPT_INT) // the size of osdmaps cache, not to rely on underlying store's cache
194
eafe8130
TL
195OPTION(mon_osd_cache_size_min, OPT_U64) // minimum amount of memory to cache osdmaps
196OPTION(mon_memory_target, OPT_U64) // amount of mapped memory for osdmaps
197OPTION(mon_memory_autotune, OPT_BOOL) // autotune cache memory for osdmap
c07f9fc5
FG
198OPTION(mon_cpu_threads, OPT_INT)
199OPTION(mon_osd_mapping_pgs_per_chunk, OPT_INT)
9f95a23c 200OPTION(mon_clean_pg_upmaps_per_chunk, OPT_U64)
c07f9fc5
FG
201OPTION(mon_osd_max_creating_pgs, OPT_INT)
202OPTION(mon_tick_interval, OPT_INT)
203OPTION(mon_session_timeout, OPT_INT) // must send keepalive or subscribe
204OPTION(mon_subscribe_interval, OPT_DOUBLE) // for legacy clients only
205OPTION(mon_delta_reset_interval, OPT_DOUBLE) // seconds of inactivity before we reset the pg delta to 0
206OPTION(mon_osd_laggy_halflife, OPT_INT) // (seconds) how quickly our laggy estimations decay
207OPTION(mon_osd_laggy_weight, OPT_DOUBLE) // weight for new 'samples's in laggy estimations
208OPTION(mon_osd_laggy_max_interval, OPT_INT) // maximum value of laggy_interval in laggy estimations
209OPTION(mon_osd_adjust_heartbeat_grace, OPT_BOOL) // true if we should scale based on laggy estimations
210OPTION(mon_osd_adjust_down_out_interval, OPT_BOOL) // true if we should scale based on laggy estimations
211OPTION(mon_osd_auto_mark_in, OPT_BOOL) // mark any booting osds 'in'
212OPTION(mon_osd_auto_mark_auto_out_in, OPT_BOOL) // mark booting auto-marked-out osds 'in'
213OPTION(mon_osd_auto_mark_new_in, OPT_BOOL) // mark booting new osds 'in'
214OPTION(mon_osd_destroyed_out_interval, OPT_INT) // seconds
215OPTION(mon_osd_down_out_interval, OPT_INT) // seconds
c07f9fc5
FG
216OPTION(mon_osd_min_up_ratio, OPT_DOUBLE) // min osds required to be up to mark things down
217OPTION(mon_osd_min_in_ratio, OPT_DOUBLE) // min osds required to be in to mark things out
218OPTION(mon_osd_warn_op_age, OPT_DOUBLE) // max op age before we generate a warning (make it a power of 2)
219OPTION(mon_osd_err_op_age_ratio, OPT_DOUBLE) // when to generate an error, as multiple of mon_osd_warn_op_age
c07f9fc5
FG
220OPTION(mon_osd_prime_pg_temp, OPT_BOOL) // prime osdmap with pg mapping changes
221OPTION(mon_osd_prime_pg_temp_max_time, OPT_FLOAT) // max time to spend priming
222OPTION(mon_osd_prime_pg_temp_max_estimate, OPT_FLOAT) // max estimate of pg total before we do all pgs in parallel
c07f9fc5
FG
223OPTION(mon_election_timeout, OPT_FLOAT) // on election proposer, max waiting time for all ACKs
224OPTION(mon_lease, OPT_FLOAT) // lease interval
225OPTION(mon_lease_renew_interval_factor, OPT_FLOAT) // on leader, to renew the lease
226OPTION(mon_lease_ack_timeout_factor, OPT_FLOAT) // on leader, if lease isn't acked by all peons
227OPTION(mon_accept_timeout_factor, OPT_FLOAT) // on leader, if paxos update isn't accepted
228
229OPTION(mon_clock_drift_allowed, OPT_FLOAT) // allowed clock drift between monitors
230OPTION(mon_clock_drift_warn_backoff, OPT_FLOAT) // exponential backoff for clock drift warnings
231OPTION(mon_timecheck_interval, OPT_FLOAT) // on leader, timecheck (clock drift check) interval (seconds)
232OPTION(mon_timecheck_skew_interval, OPT_FLOAT) // on leader, timecheck (clock drift check) interval when in presence of a skew (seconds)
c07f9fc5
FG
233OPTION(mon_pg_check_down_all_threshold, OPT_FLOAT) // threshold of down osds after which we check all pgs
234OPTION(mon_cache_target_full_warn_ratio, OPT_FLOAT) // position between pool cache_target_full and max where we start warning
235OPTION(mon_osd_full_ratio, OPT_FLOAT) // what % full makes an OSD "full"
236OPTION(mon_osd_backfillfull_ratio, OPT_FLOAT) // what % full makes an OSD backfill full (backfill halted)
237OPTION(mon_osd_nearfull_ratio, OPT_FLOAT) // what % full makes an OSD near full
238OPTION(mon_osd_initial_require_min_compat_client, OPT_STR)
239OPTION(mon_allow_pool_delete, OPT_BOOL) // allow pool deletion
240OPTION(mon_fake_pool_delete, OPT_BOOL) // fake pool deletion (add _DELETED suffix)
241OPTION(mon_globalid_prealloc, OPT_U32) // how many globalids to prealloc
242OPTION(mon_osd_report_timeout, OPT_INT) // grace period before declaring unresponsive OSDs dead
c07f9fc5
FG
243OPTION(mon_warn_on_legacy_crush_tunables, OPT_BOOL) // warn if crush tunables are too old (older than mon_min_crush_required_version)
244OPTION(mon_crush_min_required_version, OPT_STR)
245OPTION(mon_warn_on_crush_straw_calc_version_zero, OPT_BOOL) // warn if crush straw_calc_version==0
246OPTION(mon_warn_on_osd_down_out_interval_zero, OPT_BOOL) // warn if 'mon_osd_down_out_interval == 0'
247OPTION(mon_warn_on_cache_pools_without_hit_sets, OPT_BOOL)
11fdf7f2 248OPTION(mon_warn_on_misplaced, OPT_BOOL)
c07f9fc5 249OPTION(mon_min_osdmap_epochs, OPT_INT)
c07f9fc5
FG
250OPTION(mon_max_log_epochs, OPT_INT)
251OPTION(mon_max_mdsmap_epochs, OPT_INT)
252OPTION(mon_max_osd, OPT_INT)
253OPTION(mon_probe_timeout, OPT_DOUBLE)
254OPTION(mon_client_bytes, OPT_U64) // client msg data allowed in memory (in bytes)
c07f9fc5
FG
255OPTION(mon_log_max_summary, OPT_U64)
256OPTION(mon_daemon_bytes, OPT_U64) // mds, osd message memory cap (in bytes)
257OPTION(mon_max_log_entries_per_event, OPT_INT)
258OPTION(mon_reweight_min_pgs_per_osd, OPT_U64) // min pgs per osd for reweight-by-pg command
259OPTION(mon_reweight_min_bytes_per_osd, OPT_U64) // min bytes per osd for reweight-by-utilization command
260OPTION(mon_reweight_max_osds, OPT_INT) // max osds to change per reweight-by-* command
261OPTION(mon_reweight_max_change, OPT_DOUBLE)
c07f9fc5
FG
262OPTION(mon_health_to_clog, OPT_BOOL)
263OPTION(mon_health_to_clog_interval, OPT_INT)
264OPTION(mon_health_to_clog_tick_interval, OPT_DOUBLE)
f91f0fd5 265OPTION(mon_health_detail_to_clog, OPT_BOOL)
c07f9fc5
FG
266OPTION(mon_data_avail_crit, OPT_INT)
267OPTION(mon_data_avail_warn, OPT_INT)
268OPTION(mon_data_size_warn, OPT_U64) // issue a warning when the monitor's data store goes over 15GB (in bytes)
11fdf7f2
TL
269OPTION(mon_warn_pg_not_scrubbed_ratio, OPT_FLOAT)
270OPTION(mon_warn_pg_not_deep_scrubbed_ratio, OPT_FLOAT)
c07f9fc5
FG
271OPTION(mon_scrub_timeout, OPT_INT) // let's give it 5 minutes; why not.
272OPTION(mon_scrub_max_keys, OPT_INT) // max number of keys to scrub each time
273OPTION(mon_scrub_inject_crc_mismatch, OPT_DOUBLE) // probability of injected crc mismatch [0.0, 1.0]
274OPTION(mon_scrub_inject_missing_keys, OPT_DOUBLE) // probability of injected missing keys [0.0, 1.0]
275OPTION(mon_config_key_max_entry_size, OPT_INT) // max num bytes per config-key entry
276OPTION(mon_sync_timeout, OPT_DOUBLE)
9f95a23c
TL
277OPTION(mon_sync_max_payload_size, OPT_SIZE)
278OPTION(mon_sync_max_payload_keys, OPT_INT)
c07f9fc5
FG
279OPTION(mon_sync_debug, OPT_BOOL) // enable sync-specific debug
280OPTION(mon_inject_sync_get_chunk_delay, OPT_DOUBLE) // inject N second delay on each get_chunk request
c07f9fc5
FG
281OPTION(mon_osd_force_trim_to, OPT_INT) // force mon to trim maps to this point, regardless of min_last_epoch_clean (dangerous)
282OPTION(mon_mds_force_trim_to, OPT_INT) // force mon to trim mdsmaps to this point (dangerous)
283OPTION(mon_mds_skip_sanity, OPT_BOOL) // skip safety assertions on FSMap (in case of bugs where we want to continue anyway)
b32b8144 284OPTION(mon_osd_snap_trim_queue_warn_on, OPT_INT)
c07f9fc5
FG
285
286// monitor debug options
287OPTION(mon_debug_deprecated_as_obsolete, OPT_BOOL) // consider deprecated commands as obsolete
288
289// dump transactions
290OPTION(mon_debug_dump_transactions, OPT_BOOL)
291OPTION(mon_debug_dump_json, OPT_BOOL)
292OPTION(mon_debug_dump_location, OPT_STR)
c07f9fc5
FG
293OPTION(mon_debug_no_require_bluestore_for_ec_overwrites, OPT_BOOL)
294OPTION(mon_debug_no_initial_persistent_features, OPT_BOOL)
295OPTION(mon_inject_transaction_delay_max, OPT_DOUBLE) // seconds
296OPTION(mon_inject_transaction_delay_probability, OPT_DOUBLE) // range [0, 1]
297
298OPTION(mon_sync_provider_kill_at, OPT_INT) // kill the sync provider at a specific point in the work flow
299OPTION(mon_sync_requester_kill_at, OPT_INT) // kill the sync requester at a specific point in the work flow
300OPTION(mon_force_quorum_join, OPT_BOOL) // force monitor to join quorum even if it has been previously removed from the map
301OPTION(mon_keyvaluedb, OPT_STR) // type of keyvaluedb backend
302
303// UNSAFE -- TESTING ONLY! Allows addition of a cache tier with preexisting snaps
304OPTION(mon_debug_unsafe_allow_tier_with_nonempty_snaps, OPT_BOOL)
f67539c2 305OPTION(mon_osd_blocklist_default_expire, OPT_DOUBLE) // default one hour
c07f9fc5
FG
306OPTION(mon_osd_crush_smoke_test, OPT_BOOL)
307
308OPTION(paxos_stash_full_interval, OPT_INT) // how often (in commits) to stash a full copy of the PaxosService state
309OPTION(paxos_max_join_drift, OPT_INT) // max paxos iterations before we must first sync the monitor stores
310OPTION(paxos_propose_interval, OPT_DOUBLE) // gather updates for this long before proposing a map update
311OPTION(paxos_min_wait, OPT_DOUBLE) // min time to gather updates for after period of inactivity
312OPTION(paxos_min, OPT_INT) // minimum number of paxos states to keep around
313OPTION(paxos_trim_min, OPT_INT) // number of extra proposals tolerated before trimming
314OPTION(paxos_trim_max, OPT_INT) // max number of extra proposals to trim at a time
315OPTION(paxos_service_trim_min, OPT_INT) // minimum amount of versions to trigger a trim (0 disables it)
316OPTION(paxos_service_trim_max, OPT_INT) // maximum amount of versions to trim during a single proposal (0 disables it)
317OPTION(paxos_kill_at, OPT_INT)
318OPTION(auth_cluster_required, OPT_STR) // required of mon, mds, osd daemons
319OPTION(auth_service_required, OPT_STR) // required by daemons of clients
320OPTION(auth_client_required, OPT_STR) // what clients require of daemons
321OPTION(auth_supported, OPT_STR) // deprecated; default value for above if they are not defined.
322OPTION(max_rotating_auth_attempts, OPT_INT)
28e407b8 323OPTION(cephx_require_signatures, OPT_BOOL)
c07f9fc5
FG
324OPTION(cephx_cluster_require_signatures, OPT_BOOL)
325OPTION(cephx_service_require_signatures, OPT_BOOL)
28e407b8
AA
326OPTION(cephx_require_version, OPT_INT)
327OPTION(cephx_cluster_require_version, OPT_INT)
328OPTION(cephx_service_require_version, OPT_INT)
c07f9fc5
FG
329OPTION(cephx_sign_messages, OPT_BOOL) // Default to signing session messages if supported
330OPTION(auth_mon_ticket_ttl, OPT_DOUBLE)
331OPTION(auth_service_ticket_ttl, OPT_DOUBLE)
c5c27e9a
TL
332OPTION(auth_allow_insecure_global_id_reclaim, OPT_BOOL)
333OPTION(auth_expose_insecure_global_id_reclaim, OPT_BOOL)
c07f9fc5
FG
334OPTION(auth_debug, OPT_BOOL) // if true, assert when weird things happen
335OPTION(mon_client_hunt_parallel, OPT_U32) // how many mons to try to connect to in parallel during hunt
336OPTION(mon_client_hunt_interval, OPT_DOUBLE) // try new mon every N seconds until we connect
9f95a23c 337OPTION(mon_client_log_interval, OPT_DOUBLE) // send logs every N seconds
c07f9fc5
FG
338OPTION(mon_client_ping_interval, OPT_DOUBLE) // ping every N seconds
339OPTION(mon_client_ping_timeout, OPT_DOUBLE) // fail if we don't hear back
340OPTION(mon_client_hunt_interval_backoff, OPT_DOUBLE) // each time we reconnect to a monitor, double our timeout
341OPTION(mon_client_hunt_interval_max_multiple, OPT_DOUBLE) // up to a max of 10*default (30 seconds)
342OPTION(mon_client_max_log_entries_per_message, OPT_INT)
eafe8130 343OPTION(mon_client_directed_command_retry, OPT_INT)
c07f9fc5
FG
344OPTION(client_cache_size, OPT_INT)
345OPTION(client_cache_mid, OPT_FLOAT)
346OPTION(client_use_random_mds, OPT_BOOL)
347OPTION(client_mount_timeout, OPT_DOUBLE)
c07f9fc5
FG
348OPTION(client_trace, OPT_STR)
349OPTION(client_readahead_min, OPT_LONGLONG) // readahead at _least_ this much.
350OPTION(client_readahead_max_bytes, OPT_LONGLONG) // default unlimited
351OPTION(client_readahead_max_periods, OPT_LONGLONG) // as multiple of file layout period (object size * num stripes)
c07f9fc5 352OPTION(client_snapdir, OPT_STR)
c07f9fc5
FG
353OPTION(client_mount_uid, OPT_INT)
354OPTION(client_mount_gid, OPT_INT)
355OPTION(client_notify_timeout, OPT_INT) // in seconds
356OPTION(osd_client_watch_timeout, OPT_INT) // in seconds
357OPTION(client_caps_release_delay, OPT_INT) // in seconds
358OPTION(client_quota_df, OPT_BOOL) // use quota for df on subdir mounts
359OPTION(client_oc, OPT_BOOL)
360OPTION(client_oc_size, OPT_INT) // MB * n
361OPTION(client_oc_max_dirty, OPT_INT) // MB * n (dirty OR tx.. bigish)
362OPTION(client_oc_target_dirty, OPT_INT) // target dirty (keep this smallish)
363OPTION(client_oc_max_dirty_age, OPT_DOUBLE) // max age in cache before writeback
364OPTION(client_oc_max_objects, OPT_INT) // max objects in cache
365OPTION(client_debug_getattr_caps, OPT_BOOL) // check if MDS reply contains wanted caps
366OPTION(client_debug_force_sync_read, OPT_BOOL) // always read synchronously (go to osds)
c07f9fc5
FG
367OPTION(client_max_inline_size, OPT_U64)
368OPTION(client_inject_release_failure, OPT_BOOL) // synthetic client bug for testing
369OPTION(client_inject_fixed_oldest_tid, OPT_BOOL) // synthetic client bug for testing
370OPTION(client_metadata, OPT_STR)
371OPTION(client_acl_type, OPT_STR)
372OPTION(client_permissions, OPT_BOOL)
373OPTION(client_dirsize_rbytes, OPT_BOOL)
374
c07f9fc5 375OPTION(client_try_dentry_invalidate, OPT_BOOL) // the client should try to use dentry invaldation instead of remounting, on kernels it believes that will work for
c07f9fc5
FG
376OPTION(client_check_pool_perm, OPT_BOOL)
377OPTION(client_use_faked_inos, OPT_BOOL)
c07f9fc5
FG
378
379OPTION(crush_location, OPT_STR) // whitespace-separated list of key=value pairs describing crush location
380OPTION(crush_location_hook, OPT_STR)
381OPTION(crush_location_hook_timeout, OPT_INT)
382
383OPTION(objecter_tick_interval, OPT_DOUBLE)
384OPTION(objecter_timeout, OPT_DOUBLE) // before we ask for a map
385OPTION(objecter_inflight_op_bytes, OPT_U64) // max in-flight data (both directions)
386OPTION(objecter_inflight_ops, OPT_U64) // max in-flight ios
387OPTION(objecter_completion_locks_per_session, OPT_U64) // num of completion locks per each session, for serializing same object responses
388OPTION(objecter_inject_no_watch_ping, OPT_BOOL) // suppress watch pings
389OPTION(objecter_retry_writes_after_first_reply, OPT_BOOL) // ignore the first reply for each write, and resend the osd op instead
390OPTION(objecter_debug_inject_relock_delay, OPT_BOOL)
391
392// Max number of deletes at once in a single Filer::purge call
393OPTION(filer_max_purge_ops, OPT_U32)
394// Max number of truncate at once in a single Filer::truncate call
395OPTION(filer_max_truncate_ops, OPT_U32)
396
c07f9fc5 397OPTION(mds_data, OPT_STR)
c07f9fc5
FG
398// max xattr kv pairs size for each dir/file
399OPTION(mds_max_xattr_pairs_size, OPT_U32)
c07f9fc5
FG
400OPTION(mds_max_file_recover, OPT_U32)
401OPTION(mds_dir_max_commit_size, OPT_INT) // MB
402OPTION(mds_dir_keys_per_op, OPT_INT)
403OPTION(mds_decay_halflife, OPT_FLOAT)
404OPTION(mds_beacon_interval, OPT_FLOAT)
405OPTION(mds_beacon_grace, OPT_FLOAT)
406OPTION(mds_enforce_unique_name, OPT_BOOL)
c07f9fc5 407
f67539c2
TL
408OPTION(mds_session_blocklist_on_timeout, OPT_BOOL) // whether to blocklist clients whose sessions are dropped due to timeout
409OPTION(mds_session_blocklist_on_evict, OPT_BOOL) // whether to blocklist clients whose sessions are dropped via admin commands
c07f9fc5
FG
410
411OPTION(mds_sessionmap_keys_per_op, OPT_U32) // how many sessions should I try to load/store in a single OMAP operation?
c07f9fc5 412OPTION(mds_freeze_tree_timeout, OPT_FLOAT) // detecting freeze tree deadlock
c07f9fc5 413OPTION(mds_health_summarize_threshold, OPT_INT) // collapse N-client health metrics to a single 'many'
c07f9fc5 414OPTION(mds_reconnect_timeout, OPT_FLOAT) // seconds to wait for clients during mds restart
f64942e4 415 // make it (mdsmap.session_timeout - mds_beacon_grace)
c07f9fc5
FG
416OPTION(mds_tick_interval, OPT_FLOAT)
417OPTION(mds_dirstat_min_interval, OPT_FLOAT) // try to avoid propagating more often than this
418OPTION(mds_scatter_nudge_interval, OPT_FLOAT) // how quickly dirstat changes propagate up the hierarchy
419OPTION(mds_client_prealloc_inos, OPT_INT)
420OPTION(mds_early_reply, OPT_BOOL)
421OPTION(mds_default_dir_hash, OPT_INT)
422OPTION(mds_log_pause, OPT_BOOL)
423OPTION(mds_log_skip_corrupt_events, OPT_BOOL)
424OPTION(mds_log_max_events, OPT_INT)
425OPTION(mds_log_events_per_segment, OPT_INT)
426OPTION(mds_log_segment_size, OPT_INT) // segment size for mds log, default to default file_layout_t
427OPTION(mds_log_max_segments, OPT_U32)
c07f9fc5
FG
428OPTION(mds_bal_export_pin, OPT_BOOL) // allow clients to pin directory trees to ranks
429OPTION(mds_bal_sample_interval, OPT_DOUBLE) // every 3 seconds
430OPTION(mds_bal_replicate_threshold, OPT_FLOAT)
431OPTION(mds_bal_unreplicate_threshold, OPT_FLOAT)
c07f9fc5
FG
432OPTION(mds_bal_split_size, OPT_INT)
433OPTION(mds_bal_split_rd, OPT_FLOAT)
434OPTION(mds_bal_split_wr, OPT_FLOAT)
435OPTION(mds_bal_split_bits, OPT_INT)
436OPTION(mds_bal_merge_size, OPT_INT)
c07f9fc5
FG
437OPTION(mds_bal_fragment_size_max, OPT_INT) // order of magnitude higher than split size
438OPTION(mds_bal_fragment_fast_factor, OPT_FLOAT) // multiple of size_max that triggers immediate split
439OPTION(mds_bal_idle_threshold, OPT_FLOAT)
440OPTION(mds_bal_max, OPT_INT)
441OPTION(mds_bal_max_until, OPT_INT)
442OPTION(mds_bal_mode, OPT_INT)
443OPTION(mds_bal_min_rebalance, OPT_FLOAT) // must be this much above average before we export anything
444OPTION(mds_bal_min_start, OPT_FLOAT) // if we need less than this, we don't do anything
445OPTION(mds_bal_need_min, OPT_FLOAT) // take within this range of what we need
446OPTION(mds_bal_need_max, OPT_FLOAT)
447OPTION(mds_bal_midchunk, OPT_FLOAT) // any sub bigger than this taken in full
448OPTION(mds_bal_minchunk, OPT_FLOAT) // never take anything smaller than this
449OPTION(mds_bal_target_decay, OPT_DOUBLE) // target decay half-life in MDSMap (2x larger is approx. 2x slower)
450OPTION(mds_replay_interval, OPT_FLOAT) // time to wait before starting replay again
451OPTION(mds_shutdown_check, OPT_INT)
452OPTION(mds_thrash_exports, OPT_INT)
453OPTION(mds_thrash_fragments, OPT_INT)
454OPTION(mds_dump_cache_on_map, OPT_BOOL)
455OPTION(mds_dump_cache_after_rejoin, OPT_BOOL)
456OPTION(mds_verify_scatter, OPT_BOOL)
457OPTION(mds_debug_scatterstat, OPT_BOOL)
458OPTION(mds_debug_frag, OPT_BOOL)
459OPTION(mds_debug_auth_pins, OPT_BOOL)
460OPTION(mds_debug_subtrees, OPT_BOOL)
461OPTION(mds_kill_mdstable_at, OPT_INT)
462OPTION(mds_kill_export_at, OPT_INT)
463OPTION(mds_kill_import_at, OPT_INT)
464OPTION(mds_kill_link_at, OPT_INT)
465OPTION(mds_kill_rename_at, OPT_INT)
466OPTION(mds_kill_openc_at, OPT_INT)
467OPTION(mds_kill_journal_expire_at, OPT_INT)
468OPTION(mds_kill_journal_replay_at, OPT_INT)
469OPTION(mds_journal_format, OPT_U32) // Default to most recent JOURNAL_FORMAT_*
470OPTION(mds_kill_create_at, OPT_INT)
471OPTION(mds_inject_traceless_reply_probability, OPT_DOUBLE) /* percentage
472 of MDS modify replies to skip sending the
473 client a trace on [0-1]*/
474OPTION(mds_wipe_sessions, OPT_BOOL)
475OPTION(mds_wipe_ino_prealloc, OPT_BOOL)
476OPTION(mds_skip_ino, OPT_INT)
c07f9fc5
FG
477OPTION(mds_enable_op_tracker, OPT_BOOL) // enable/disable MDS op tracking
478OPTION(mds_op_history_size, OPT_U32) // Max number of completed ops to track
479OPTION(mds_op_history_duration, OPT_U32) // Oldest completed op to track
480OPTION(mds_op_complaint_time, OPT_FLOAT) // how many seconds old makes an op complaint-worthy
481OPTION(mds_op_log_threshold, OPT_INT) // how many op log messages to show in one go
482OPTION(mds_snap_min_uid, OPT_U32) // The minimum UID required to create a snapshot
483OPTION(mds_snap_max_uid, OPT_U32) // The maximum UID allowed to create a snapshot
11fdf7f2 484OPTION(mds_snap_rstat, OPT_BOOL) // enable/disable nested stat for snapshot
c07f9fc5
FG
485OPTION(mds_verify_backtrace, OPT_U32)
486// detect clients which aren't trimming completed requests
487OPTION(mds_max_completed_flushes, OPT_U32)
488OPTION(mds_max_completed_requests, OPT_U32)
489
490OPTION(mds_action_on_write_error, OPT_U32) // 0: ignore; 1: force readonly; 2: crash
491OPTION(mds_mon_shutdown_timeout, OPT_DOUBLE)
492
493// Maximum number of concurrent stray files to purge
494OPTION(mds_max_purge_files, OPT_U32)
495// Maximum number of concurrent RADOS ops to issue in purging
496OPTION(mds_max_purge_ops, OPT_U32)
497// Maximum number of concurrent RADOS ops to issue in purging, scaled by PG count
498OPTION(mds_max_purge_ops_per_pg, OPT_FLOAT)
499
500OPTION(mds_purge_queue_busy_flush_period, OPT_FLOAT)
501
502OPTION(mds_root_ino_uid, OPT_INT) // The UID of / on new filesystems
503OPTION(mds_root_ino_gid, OPT_INT) // The GID of / on new filesystems
504
505OPTION(mds_max_scrub_ops_in_progress, OPT_INT) // the number of simultaneous scrubs allowed
506
507// Maximum number of damaged frags/dentries before whole MDS rank goes damaged
508OPTION(mds_damage_table_max_entries, OPT_INT)
509
510// Maximum increment for client writable range, counted by number of objects
511OPTION(mds_client_writeable_range_max_inc_objs, OPT_U32)
512
513// verify backend can support configured max object name length
514OPTION(osd_check_max_object_name_len_on_startup, OPT_BOOL)
515
516// Maximum number of backfills to or from a single osd
517OPTION(osd_max_backfills, OPT_U64)
518
519// Minimum recovery priority (255 = max, smaller = lower)
520OPTION(osd_min_recovery_priority, OPT_INT)
521
522// Seconds to wait before retrying refused backfills
523OPTION(osd_backfill_retry_interval, OPT_DOUBLE)
524
525// Seconds to wait before retrying refused recovery
526OPTION(osd_recovery_retry_interval, OPT_DOUBLE)
527
528// max agent flush ops
529OPTION(osd_agent_max_ops, OPT_INT)
530OPTION(osd_agent_max_low_ops, OPT_INT)
531OPTION(osd_agent_min_evict_effort, OPT_FLOAT)
532OPTION(osd_agent_quantize_effort, OPT_FLOAT)
533OPTION(osd_agent_delay_time, OPT_FLOAT)
534
535// osd ignore history.last_epoch_started in find_best_info
536OPTION(osd_find_best_info_ignore_history_les, OPT_BOOL)
537
538// decay atime and hist histograms after how many objects go by
539OPTION(osd_agent_hist_halflife, OPT_INT)
540
541// must be this amount over the threshold to enable,
542// this amount below the threshold to disable.
543OPTION(osd_agent_slop, OPT_FLOAT)
544
545OPTION(osd_uuid, OPT_UUID)
546OPTION(osd_data, OPT_STR)
547OPTION(osd_journal, OPT_STR)
548OPTION(osd_journal_size, OPT_INT) // in mb
549OPTION(osd_journal_flush_on_shutdown, OPT_BOOL) // Flush journal to data store on shutdown
9f95a23c 550// flags for specific control purpose during osd mount() process.
c07f9fc5
FG
551// e.g., can be 1 to skip over replaying journal
552// or 2 to skip over mounting omap or 3 to skip over both.
553// This might be helpful in case the journal is totally corrupted
554// and we still want to bring the osd daemon back normally, etc.
555OPTION(osd_os_flags, OPT_U32)
556OPTION(osd_max_write_size, OPT_INT)
557OPTION(osd_max_pgls, OPT_U64) // max number of pgls entries to return
558OPTION(osd_client_message_size_cap, OPT_U64) // client data allowed in-memory (in bytes)
559OPTION(osd_client_message_cap, OPT_U64) // num client messages allowed in-memory
c07f9fc5
FG
560OPTION(osd_crush_update_weight_set, OPT_BOOL) // update weight set while updating weights
561OPTION(osd_crush_chooseleaf_type, OPT_INT) // 1 = host
562OPTION(osd_pool_use_gmt_hitset, OPT_BOOL) // try to use gmt for hitset archive names if all osds in cluster support it.
563OPTION(osd_crush_update_on_start, OPT_BOOL)
564OPTION(osd_class_update_on_start, OPT_BOOL) // automatically set device class on start
565OPTION(osd_crush_initial_weight, OPT_DOUBLE) // if >=0, the initial weight is for newly added osds.
c07f9fc5
FG
566OPTION(osd_erasure_code_plugins, OPT_STR) // list of erasure code plugins
567
568// Allows the "peered" state for recovery and backfill below min_size
569OPTION(osd_allow_recovery_below_min_size, OPT_BOOL)
570
11fdf7f2 571OPTION(osd_pool_default_ec_fast_read, OPT_BOOL) // whether turn on fast read on the pool or not
c07f9fc5
FG
572OPTION(osd_pool_default_flags, OPT_INT) // default flags for new pools
573OPTION(osd_pool_default_flag_hashpspool, OPT_BOOL) // use new pg hashing to prevent pool/pg overlap
574OPTION(osd_pool_default_flag_nodelete, OPT_BOOL) // pool can't be deleted
575OPTION(osd_pool_default_flag_nopgchange, OPT_BOOL) // pool's pg and pgp num can't be changed
576OPTION(osd_pool_default_flag_nosizechange, OPT_BOOL) // pool's size and min size can't be changed
577OPTION(osd_pool_default_hit_set_bloom_fpp, OPT_FLOAT)
578OPTION(osd_pool_default_cache_target_dirty_ratio, OPT_FLOAT)
579OPTION(osd_pool_default_cache_target_dirty_high_ratio, OPT_FLOAT)
580OPTION(osd_pool_default_cache_target_full_ratio, OPT_FLOAT)
581OPTION(osd_pool_default_cache_min_flush_age, OPT_INT) // seconds
582OPTION(osd_pool_default_cache_min_evict_age, OPT_INT) // seconds
583OPTION(osd_pool_default_cache_max_evict_check_size, OPT_INT) // max size to check for eviction
9f95a23c 584OPTION(osd_pool_default_read_lease_ratio, OPT_FLOAT)
c07f9fc5
FG
585OPTION(osd_hit_set_min_size, OPT_INT) // min target size for a HitSet
586OPTION(osd_hit_set_max_size, OPT_INT) // max target size for a HitSet
587OPTION(osd_hit_set_namespace, OPT_STR) // rados namespace for hit_set tracking
588
589// conservative default throttling values
590OPTION(osd_tier_promote_max_objects_sec, OPT_U64)
591OPTION(osd_tier_promote_max_bytes_sec, OPT_U64)
592
11fdf7f2 593OPTION(osd_objecter_finishers, OPT_INT)
c07f9fc5
FG
594
595OPTION(osd_map_dedup, OPT_BOOL)
c07f9fc5
FG
596OPTION(osd_map_cache_size, OPT_INT)
597OPTION(osd_map_message_max, OPT_INT) // max maps per MOSDMap message
f67539c2 598OPTION(osd_map_message_max_bytes, OPT_SIZE) // max bytes of maps per MOSDMap message
c07f9fc5
FG
599OPTION(osd_map_share_max_epochs, OPT_INT) // cap on # of inc maps we send to peers, clients
600OPTION(osd_inject_bad_map_crc_probability, OPT_FLOAT)
601OPTION(osd_inject_failure_on_pg_removal, OPT_BOOL)
602// shutdown the OSD if stuatus flipping more than max_markdown_count times in recent max_markdown_period seconds
603OPTION(osd_max_markdown_period , OPT_INT)
604OPTION(osd_max_markdown_count, OPT_INT)
605
c07f9fc5
FG
606OPTION(osd_op_pq_max_tokens_per_priority, OPT_U64)
607OPTION(osd_op_pq_min_cost, OPT_U64)
c07f9fc5
FG
608OPTION(osd_recover_clone_overlap, OPT_BOOL) // preserve clone_overlap during recovery/migration
609OPTION(osd_op_num_threads_per_shard, OPT_INT)
610OPTION(osd_op_num_threads_per_shard_hdd, OPT_INT)
611OPTION(osd_op_num_threads_per_shard_ssd, OPT_INT)
612OPTION(osd_op_num_shards, OPT_INT)
613OPTION(osd_op_num_shards_hdd, OPT_INT)
614OPTION(osd_op_num_shards_ssd, OPT_INT)
615
616// PrioritzedQueue (prio), Weighted Priority Queue (wpq ; default),
617// mclock_opclass, mclock_client, or debug_random. "mclock_opclass"
618// and "mclock_client" are based on the mClock/dmClock algorithm
619// (Gulati, et al. 2010). "mclock_opclass" prioritizes based on the
620// class the operation belongs to. "mclock_client" does the same but
621// also works to ienforce fairness between clients. "debug_random"
622// chooses among all four with equal probability.
623OPTION(osd_op_queue, OPT_STR)
624
625OPTION(osd_op_queue_cut_off, OPT_STR) // Min priority to go to strict queue. (low, high)
626
c07f9fc5
FG
627OPTION(osd_ignore_stale_divergent_priors, OPT_BOOL) // do not assert on divergent_prior entries which aren't in the log and whose on-disk objects are newer
628
629// Set to true for testing. Users should NOT set this.
630// If set to true even after reading enough shards to
631// decode the object, any error will be reported.
632OPTION(osd_read_ec_check_for_errors, OPT_BOOL) // return error if any ec shard has an error
633
81eedcae 634OPTION(osd_debug_feed_pullee, OPT_INT)
c07f9fc5
FG
635
636OPTION(osd_backfill_scan_min, OPT_INT)
637OPTION(osd_backfill_scan_max, OPT_INT)
638OPTION(osd_op_thread_timeout, OPT_INT)
639OPTION(osd_op_thread_suicide_timeout, OPT_INT)
c07f9fc5
FG
640OPTION(osd_recovery_sleep, OPT_FLOAT) // seconds to sleep between recovery ops
641OPTION(osd_recovery_sleep_hdd, OPT_FLOAT)
642OPTION(osd_recovery_sleep_ssd, OPT_FLOAT)
643OPTION(osd_snap_trim_sleep, OPT_DOUBLE)
644OPTION(osd_scrub_invalid_stats, OPT_BOOL)
c07f9fc5
FG
645OPTION(osd_command_thread_timeout, OPT_INT)
646OPTION(osd_command_thread_suicide_timeout, OPT_INT)
c07f9fc5
FG
647OPTION(osd_heartbeat_interval, OPT_INT) // (seconds) how often we ping peers
648
649// (seconds) how long before we decide a peer has failed
650// This setting is read by the MONs and OSDs and has to be set to a equal value in both settings of the configuration
651OPTION(osd_heartbeat_grace, OPT_INT)
652OPTION(osd_heartbeat_min_peers, OPT_INT) // minimum number of peers
653OPTION(osd_heartbeat_use_min_delay_socket, OPT_BOOL) // prio the heartbeat tcp socket and set dscp as CS6 on it if true
654OPTION(osd_heartbeat_min_size, OPT_INT) // the minimum size of OSD heartbeat messages to send
655
656// max number of parallel snap trims/pg
657OPTION(osd_pg_max_concurrent_snap_trims, OPT_U64)
658// max number of trimming pgs
659OPTION(osd_max_trimming_pgs, OPT_U64)
660
661// minimum number of peers that must be reachable to mark ourselves
662// back up after being wrongly marked down.
663OPTION(osd_heartbeat_min_healthy_ratio, OPT_FLOAT)
664
665OPTION(osd_mon_heartbeat_interval, OPT_INT) // (seconds) how often to ping monitor if no peers
11fdf7f2 666OPTION(osd_mon_report_interval, OPT_INT) // failures, up_thru, boot.
c07f9fc5
FG
667OPTION(osd_mon_report_max_in_flight, OPT_INT) // max updates in flight
668OPTION(osd_beacon_report_interval, OPT_INT) // (second) how often to send beacon message to monitor
669OPTION(osd_pg_stat_report_interval_max, OPT_INT) // report pg stats for any given pg at least this often
c07f9fc5
FG
670OPTION(osd_default_data_pool_replay_window, OPT_INT)
671OPTION(osd_auto_mark_unfound_lost, OPT_BOOL)
672OPTION(osd_recovery_delay_start, OPT_FLOAT)
673OPTION(osd_recovery_max_active, OPT_U64)
9f95a23c
TL
674OPTION(osd_recovery_max_active_hdd, OPT_U64)
675OPTION(osd_recovery_max_active_ssd, OPT_U64)
c07f9fc5
FG
676OPTION(osd_recovery_max_single_start, OPT_U64)
677OPTION(osd_recovery_max_chunk, OPT_U64) // max size of push chunk
678OPTION(osd_recovery_max_omap_entries_per_chunk, OPT_U64) // max number of omap entries per chunk; 0 to disable limit
679OPTION(osd_copyfrom_max_chunk, OPT_U64) // max size of a COPYFROM chunk
680OPTION(osd_push_per_object_cost, OPT_U64) // push cost per object
681OPTION(osd_max_push_cost, OPT_U64) // max size of push message
682OPTION(osd_max_push_objects, OPT_U64) // max objects in single push op
c07f9fc5
FG
683OPTION(osd_max_scrubs, OPT_INT)
684OPTION(osd_scrub_during_recovery, OPT_BOOL) // Allow new scrubs to start while recovery is active on the OSD
eafe8130 685OPTION(osd_repair_during_recovery, OPT_BOOL) // Allow new requested repairs to start while recovery is active on the OSD
c07f9fc5
FG
686OPTION(osd_scrub_begin_hour, OPT_INT)
687OPTION(osd_scrub_end_hour, OPT_INT)
28e407b8
AA
688OPTION(osd_scrub_begin_week_day, OPT_INT)
689OPTION(osd_scrub_end_week_day, OPT_INT)
c07f9fc5
FG
690OPTION(osd_scrub_load_threshold, OPT_FLOAT)
691OPTION(osd_scrub_min_interval, OPT_FLOAT) // if load is low
692OPTION(osd_scrub_max_interval, OPT_FLOAT) // regardless of load
693OPTION(osd_scrub_interval_randomize_ratio, OPT_FLOAT) // randomize the scheduled scrub in the span of [min,min*(1+randomize_ratio))
694OPTION(osd_scrub_backoff_ratio, OPT_DOUBLE) // the probability to back off the scheduled scrub
695OPTION(osd_scrub_chunk_min, OPT_INT)
696OPTION(osd_scrub_chunk_max, OPT_INT)
697OPTION(osd_scrub_sleep, OPT_FLOAT) // sleep between [deep]scrub ops
9f95a23c 698OPTION(osd_scrub_extended_sleep, OPT_FLOAT) // more sleep between [deep]scrub ops
c07f9fc5
FG
699OPTION(osd_scrub_auto_repair, OPT_BOOL) // whether auto-repair inconsistencies upon deep-scrubbing
700OPTION(osd_scrub_auto_repair_num_errors, OPT_U32) // only auto-repair when number of errors is below this threshold
701OPTION(osd_deep_scrub_interval, OPT_FLOAT) // once a week
702OPTION(osd_deep_scrub_randomize_ratio, OPT_FLOAT) // scrubs will randomly become deep scrubs at this rate (0.15 -> 15% of scrubs are deep)
703OPTION(osd_deep_scrub_stride, OPT_INT)
28e407b8 704OPTION(osd_deep_scrub_keys, OPT_INT)
c07f9fc5 705OPTION(osd_deep_scrub_update_digest_min_age, OPT_INT) // objects must be this old (seconds) before we update the whole-object digest on scrub
28e407b8 706OPTION(osd_skip_data_digest, OPT_BOOL)
28e407b8
AA
707OPTION(osd_deep_scrub_large_omap_object_key_threshold, OPT_U64)
708OPTION(osd_deep_scrub_large_omap_object_value_sum_threshold, OPT_U64)
c07f9fc5
FG
709OPTION(osd_class_dir, OPT_STR) // where rados plugins are stored
710OPTION(osd_open_classes_on_start, OPT_BOOL)
711OPTION(osd_class_load_list, OPT_STR) // list of object classes allowed to be loaded (allow all: *)
712OPTION(osd_class_default_list, OPT_STR) // list of object classes with default execute perm (allow all: *)
713OPTION(osd_check_for_log_corruption, OPT_BOOL)
714OPTION(osd_use_stale_snap, OPT_BOOL)
715OPTION(osd_rollback_to_cluster_snap, OPT_STR)
716OPTION(osd_default_notify_timeout, OPT_U32) // default notify timeout in seconds
717OPTION(osd_kill_backfill_at, OPT_INT)
718
719// Bounds how infrequently a new map epoch will be persisted for a pg
720OPTION(osd_pg_epoch_persisted_max_stale, OPT_U32) // make this < map_cache_size!
721
9f95a23c 722OPTION(osd_target_pg_log_entries_per_osd, OPT_U32)
c07f9fc5
FG
723OPTION(osd_min_pg_log_entries, OPT_U32) // number of entries to keep in the pg log when trimming it
724OPTION(osd_max_pg_log_entries, OPT_U32) // max entries, say when degraded, before we trim
725OPTION(osd_pg_log_dups_tracked, OPT_U32) // how many versions back to track combined in both pglog's regular + dup logs
9f95a23c 726OPTION(osd_object_clean_region_max_num_intervals, OPT_INT) // number of intervals in clean_offsets
c07f9fc5
FG
727OPTION(osd_force_recovery_pg_log_entries_factor, OPT_FLOAT) // max entries factor before force recovery
728OPTION(osd_pg_log_trim_min, OPT_U32)
94b18763 729OPTION(osd_pg_log_trim_max, OPT_U32)
c07f9fc5
FG
730OPTION(osd_op_complaint_time, OPT_FLOAT) // how many seconds old makes an op complaint-worthy
731OPTION(osd_command_max_records, OPT_INT)
732OPTION(osd_max_pg_blocked_by, OPT_U32) // max peer osds to report that are blocking our progress
733OPTION(osd_op_log_threshold, OPT_INT) // how many op log messages to show in one go
c07f9fc5
FG
734OPTION(osd_backoff_on_unfound, OPT_BOOL) // object unfound
735OPTION(osd_backoff_on_degraded, OPT_BOOL) // [mainly for debug?] object unreadable/writeable
c07f9fc5
FG
736OPTION(osd_backoff_on_peering, OPT_BOOL) // [debug] pg peering
737OPTION(osd_debug_crash_on_ignored_backoff, OPT_BOOL) // crash osd if client ignores a backoff; useful for debugging
738OPTION(osd_debug_inject_dispatch_delay_probability, OPT_DOUBLE)
739OPTION(osd_debug_inject_dispatch_delay_duration, OPT_DOUBLE)
740OPTION(osd_debug_drop_ping_probability, OPT_DOUBLE)
741OPTION(osd_debug_drop_ping_duration, OPT_INT)
742OPTION(osd_debug_op_order, OPT_BOOL)
743OPTION(osd_debug_verify_missing_on_start, OPT_BOOL)
94b18763 744OPTION(osd_debug_verify_snaps, OPT_BOOL)
c07f9fc5
FG
745OPTION(osd_debug_verify_stray_on_activate, OPT_BOOL)
746OPTION(osd_debug_skip_full_check_in_backfill_reservation, OPT_BOOL)
747OPTION(osd_debug_reject_backfill_probability, OPT_DOUBLE)
748OPTION(osd_debug_inject_copyfrom_error, OPT_BOOL) // inject failure during copyfrom completion
749OPTION(osd_debug_misdirected_ops, OPT_BOOL)
750OPTION(osd_debug_skip_full_check_in_recovery, OPT_BOOL)
751OPTION(osd_debug_random_push_read_error, OPT_DOUBLE)
752OPTION(osd_debug_verify_cached_snaps, OPT_BOOL)
28e407b8 753OPTION(osd_debug_deep_scrub_sleep, OPT_FLOAT)
11fdf7f2 754OPTION(osd_debug_no_acting_change, OPT_BOOL)
eafe8130 755OPTION(osd_debug_pretend_recovery_active, OPT_BOOL)
c07f9fc5
FG
756OPTION(osd_enable_op_tracker, OPT_BOOL) // enable/disable OSD op tracking
757OPTION(osd_num_op_tracker_shard, OPT_U32) // The number of shards for holding the ops
758OPTION(osd_op_history_size, OPT_U32) // Max number of completed ops to track
759OPTION(osd_op_history_duration, OPT_U32) // Oldest completed op to track
760OPTION(osd_op_history_slow_op_size, OPT_U32) // Max number of slow ops to track
761OPTION(osd_op_history_slow_op_threshold, OPT_DOUBLE) // track the op if over this threshold
762OPTION(osd_target_transaction_size, OPT_INT) // to adjust various transactions that batch smaller items
763OPTION(osd_failsafe_full_ratio, OPT_FLOAT) // what % full makes an OSD "full" (failsafe)
92f5a8d4 764OPTION(osd_fast_shutdown, OPT_BOOL)
f67539c2 765OPTION(osd_fast_shutdown_notify_mon, OPT_BOOL) // tell mon the OSD is shutting down on osd_fast_shutdown
c07f9fc5
FG
766OPTION(osd_fast_fail_on_connection_refused, OPT_BOOL) // immediately mark OSDs as down once they refuse to accept connections
767
768OPTION(osd_pg_object_context_cache_count, OPT_INT)
769OPTION(osd_tracing, OPT_BOOL) // true if LTTng-UST tracepoints should be enabled
770OPTION(osd_function_tracing, OPT_BOOL) // true if function instrumentation should use LTTng
771
772OPTION(osd_fast_info, OPT_BOOL) // use fast info attr, if we can
773
774// determines whether PGLog::check() compares written out log to stored log
775OPTION(osd_debug_pg_log_writeout, OPT_BOOL)
776OPTION(osd_loop_before_reset_tphandle, OPT_U32) // Max number of loop before we reset thread-pool's handle
11fdf7f2
TL
777OPTION(osd_max_snap_prune_intervals_per_epoch, OPT_U64) // Max number of snap intervals to report to mgr in pg_stat_t
778
c07f9fc5
FG
779// default timeout while caling WaitInterval on an empty queue
780OPTION(threadpool_default_timeout, OPT_INT)
781// default wait time for an empty queue before pinging the hb timeout
782OPTION(threadpool_empty_queue_max_wait, OPT_INT)
783
784OPTION(leveldb_log_to_ceph_log, OPT_BOOL)
785OPTION(leveldb_write_buffer_size, OPT_U64) // leveldb write buffer size
786OPTION(leveldb_cache_size, OPT_U64) // leveldb cache size
787OPTION(leveldb_block_size, OPT_U64) // leveldb block size
788OPTION(leveldb_bloom_size, OPT_INT) // leveldb bloom bits per entry
789OPTION(leveldb_max_open_files, OPT_INT) // leveldb max open files
790OPTION(leveldb_compression, OPT_BOOL) // leveldb uses compression
791OPTION(leveldb_paranoid, OPT_BOOL) // leveldb paranoid flag
792OPTION(leveldb_log, OPT_STR) // enable leveldb log file
793OPTION(leveldb_compact_on_mount, OPT_BOOL)
794
c07f9fc5
FG
795OPTION(rocksdb_log_to_ceph_log, OPT_BOOL) // log to ceph log
796OPTION(rocksdb_cache_size, OPT_U64) // rocksdb cache size (unless set by bluestore/etc)
797OPTION(rocksdb_cache_row_ratio, OPT_FLOAT) // ratio of cache for row (vs block)
798OPTION(rocksdb_cache_shard_bits, OPT_INT) // rocksdb block cache shard bits, 4 bit -> 16 shards
799OPTION(rocksdb_cache_type, OPT_STR) // 'lru' or 'clock'
800OPTION(rocksdb_block_size, OPT_INT) // default rocksdb block size
801OPTION(rocksdb_perf, OPT_BOOL) // Enabling this will have 5-10% impact on performance for the stats collection
802OPTION(rocksdb_collect_compaction_stats, OPT_BOOL) //For rocksdb, this behavior will be an overhead of 5%~10%, collected only rocksdb_perf is enabled.
803OPTION(rocksdb_collect_extended_stats, OPT_BOOL) //For rocksdb, this behavior will be an overhead of 5%~10%, collected only rocksdb_perf is enabled.
804OPTION(rocksdb_collect_memory_stats, OPT_BOOL) //For rocksdb, this behavior will be an overhead of 5%~10%, collected only rocksdb_perf is enabled.
c07f9fc5
FG
805
806// rocksdb options that will be used for omap(if omap_backend is rocksdb)
807OPTION(filestore_rocksdb_options, OPT_STR)
808// rocksdb options that will be used in monstore
809OPTION(mon_rocksdb_options, OPT_STR)
810
811/**
812 * osd_*_priority adjust the relative priority of client io, recovery io,
813 * snaptrim io, etc
814 *
815 * osd_*_priority determines the ratio of available io between client and
816 * recovery. Each option may be set between
817 * 1..63.
818 */
819OPTION(osd_client_op_priority, OPT_U32)
820OPTION(osd_recovery_op_priority, OPT_U32)
11fdf7f2 821OPTION(osd_peering_op_priority, OPT_U32)
c07f9fc5
FG
822
823OPTION(osd_snap_trim_priority, OPT_U32)
824OPTION(osd_snap_trim_cost, OPT_U32) // set default cost equal to 1MB io
825
826OPTION(osd_scrub_priority, OPT_U32)
827// set default cost equal to 50MB io
9f95a23c 828OPTION(osd_scrub_cost, OPT_U32)
c07f9fc5
FG
829// set requested scrub priority higher than scrub priority to make the
830// requested scrubs jump the queue of scheduled scrubs
831OPTION(osd_requested_scrub_priority, OPT_U32)
832
11fdf7f2
TL
833OPTION(osd_pg_delete_priority, OPT_U32)
834OPTION(osd_pg_delete_cost, OPT_U32) // set default cost equal to 1MB io
835
c07f9fc5
FG
836OPTION(osd_recovery_priority, OPT_U32)
837// set default cost equal to 20MB io
838OPTION(osd_recovery_cost, OPT_U32)
839
840/**
11fdf7f2 841 * osd_recovery_op_warn_multiple scales the normal warning threshold,
c07f9fc5
FG
842 * osd_op_complaint_time, so that slow recovery ops won't cause noise
843 */
844OPTION(osd_recovery_op_warn_multiple, OPT_U32)
845
846// Max time to wait between notifying mon of shutdown and shutting down
847OPTION(osd_mon_shutdown_timeout, OPT_DOUBLE)
848OPTION(osd_shutdown_pgref_assert, OPT_BOOL) // crash if the OSD has stray PG refs on shutdown
849
850OPTION(osd_max_object_size, OPT_U64) // OSD's maximum object size
851OPTION(osd_max_object_name_len, OPT_U32) // max rados object name len
852OPTION(osd_max_object_namespace_len, OPT_U32) // max rados object namespace len
853OPTION(osd_max_attr_name_len, OPT_U32) // max rados attr name len; cannot go higher than 100 chars for file system backends
854OPTION(osd_max_attr_size, OPT_U64)
855
856OPTION(osd_max_omap_entries_per_request, OPT_U64)
857OPTION(osd_max_omap_bytes_per_request, OPT_U64)
9f95a23c 858OPTION(osd_max_write_op_reply_len, OPT_U64)
c07f9fc5
FG
859
860OPTION(osd_objectstore, OPT_STR) // ObjectStore backend type
861OPTION(osd_objectstore_tracing, OPT_BOOL) // true if LTTng-UST tracepoints should be enabled
862OPTION(osd_objectstore_fuse, OPT_BOOL)
863
864OPTION(osd_bench_small_size_max_iops, OPT_U32) // 100 IOPS
865OPTION(osd_bench_large_size_max_throughput, OPT_U64) // 100 MB/s
866OPTION(osd_bench_max_block_size, OPT_U64) // cap the block size at 64MB
867OPTION(osd_bench_duration, OPT_U32) // duration of 'osd bench', capped at 30s to avoid triggering timeouts
868
869OPTION(osd_blkin_trace_all, OPT_BOOL) // create a blkin trace for all osd requests
870OPTION(osdc_blkin_trace_all, OPT_BOOL) // create a blkin trace for all objecter requests
871
872OPTION(osd_discard_disconnected_ops, OPT_BOOL)
873
874OPTION(memstore_device_bytes, OPT_U64)
875OPTION(memstore_page_set, OPT_BOOL)
876OPTION(memstore_page_size, OPT_U64)
9f95a23c 877OPTION(memstore_debug_omit_block_device_write, OPT_BOOL)
c07f9fc5
FG
878
879OPTION(bdev_debug_inflight_ios, OPT_BOOL)
880OPTION(bdev_inject_crash, OPT_INT) // if N>0, then ~ 1/N IOs will complete before we crash on flush.
881OPTION(bdev_inject_crash_flush_delay, OPT_INT) // wait N more seconds on flush
882OPTION(bdev_aio, OPT_BOOL)
883OPTION(bdev_aio_poll_ms, OPT_INT) // milliseconds
884OPTION(bdev_aio_max_queue_depth, OPT_INT)
885OPTION(bdev_aio_reap_max, OPT_INT)
886OPTION(bdev_block_size, OPT_INT)
887OPTION(bdev_debug_aio, OPT_BOOL)
888OPTION(bdev_debug_aio_suicide_timeout, OPT_FLOAT)
11fdf7f2 889OPTION(bdev_debug_aio_log_age, OPT_DOUBLE)
c07f9fc5
FG
890
891// if yes, osd will unbind all NVMe devices from kernel driver and bind them
892// to the uio_pci_generic driver. The purpose is to prevent the case where
893// NVMe driver is loaded while osd is running.
894OPTION(bdev_nvme_unbind_from_kernel, OPT_BOOL)
11fdf7f2
TL
895OPTION(bdev_enable_discard, OPT_BOOL)
896OPTION(bdev_async_discard, OPT_BOOL)
c07f9fc5
FG
897
898OPTION(objectstore_blackhole, OPT_BOOL)
899
900OPTION(bluefs_alloc_size, OPT_U64)
eafe8130 901OPTION(bluefs_shared_alloc_size, OPT_U64)
c07f9fc5
FG
902OPTION(bluefs_max_prefetch, OPT_U64)
903OPTION(bluefs_min_log_runway, OPT_U64) // alloc when we get this low
904OPTION(bluefs_max_log_runway, OPT_U64) // alloc this much at a time
905OPTION(bluefs_log_compact_min_ratio, OPT_FLOAT) // before we consider
906OPTION(bluefs_log_compact_min_size, OPT_U64) // before we consider
907OPTION(bluefs_min_flush_size, OPT_U64) // ignore flush until its this big
908OPTION(bluefs_compact_log_sync, OPT_BOOL) // sync or async log compaction?
909OPTION(bluefs_buffered_io, OPT_BOOL)
910OPTION(bluefs_sync_write, OPT_BOOL)
911OPTION(bluefs_allocator, OPT_STR) // stupid | bitmap
9f95a23c 912OPTION(bluefs_log_replay_check_allocations, OPT_BOOL)
f6b5b4d7
TL
913OPTION(bluefs_replay_recovery, OPT_BOOL)
914OPTION(bluefs_replay_recovery_disable_compact, OPT_BOOL)
cd265ab1 915OPTION(bluefs_check_for_zeros, OPT_BOOL)
c07f9fc5
FG
916
917OPTION(bluestore_bluefs, OPT_BOOL)
918OPTION(bluestore_bluefs_env_mirror, OPT_BOOL) // mirror to normal Env for debug
11fdf7f2
TL
919// how often (sec) to dump allocator on allocation failure
920OPTION(bluestore_bluefs_alloc_failure_dump_interval, OPT_FLOAT)
921
c07f9fc5
FG
922// If you want to use spdk driver, you need to specify NVMe serial number here
923// with "spdk:" prefix.
924// Users can use 'lspci -vvv -d 8086:0953 | grep "Device Serial Number"' to
925// get the serial number of Intel(R) Fultondale NVMe controllers.
926// Example:
927// bluestore_block_path = spdk:55cd2e404bd73932
c07f9fc5
FG
928OPTION(bluestore_block_path, OPT_STR)
929OPTION(bluestore_block_size, OPT_U64) // 10gb for testing
930OPTION(bluestore_block_create, OPT_BOOL)
931OPTION(bluestore_block_db_path, OPT_STR)
932OPTION(bluestore_block_db_size, OPT_U64) // rocksdb ssts (hot/warm)
933OPTION(bluestore_block_db_create, OPT_BOOL)
934OPTION(bluestore_block_wal_path, OPT_STR)
935OPTION(bluestore_block_wal_size, OPT_U64) // rocksdb wal
936OPTION(bluestore_block_wal_create, OPT_BOOL)
937OPTION(bluestore_block_preallocate_file, OPT_BOOL) //whether preallocate space if block/db_path/wal_path is file rather that block device.
11fdf7f2 938OPTION(bluestore_ignore_data_csum, OPT_BOOL)
c07f9fc5 939OPTION(bluestore_csum_type, OPT_STR) // none|xxhash32|xxhash64|crc32c|crc32c_16|crc32c_8
f64942e4 940OPTION(bluestore_retry_disk_reads, OPT_U64)
c07f9fc5
FG
941OPTION(bluestore_min_alloc_size, OPT_U32)
942OPTION(bluestore_min_alloc_size_hdd, OPT_U32)
943OPTION(bluestore_min_alloc_size_ssd, OPT_U32)
944OPTION(bluestore_max_alloc_size, OPT_U32)
945OPTION(bluestore_prefer_deferred_size, OPT_U32)
946OPTION(bluestore_prefer_deferred_size_hdd, OPT_U32)
947OPTION(bluestore_prefer_deferred_size_ssd, OPT_U32)
948OPTION(bluestore_compression_mode, OPT_STR) // force|aggressive|passive|none
949OPTION(bluestore_compression_algorithm, OPT_STR)
950OPTION(bluestore_compression_min_blob_size, OPT_U32)
951OPTION(bluestore_compression_min_blob_size_hdd, OPT_U32)
952OPTION(bluestore_compression_min_blob_size_ssd, OPT_U32)
953OPTION(bluestore_compression_max_blob_size, OPT_U32)
954OPTION(bluestore_compression_max_blob_size_hdd, OPT_U32)
955OPTION(bluestore_compression_max_blob_size_ssd, OPT_U32)
956/*
957 * Specifies minimum expected amount of saved allocation units
958 * per single blob to enable compressed blobs garbage collection
9f95a23c 959 *
c07f9fc5 960 */
9f95a23c 961OPTION(bluestore_gc_enable_blob_threshold, OPT_INT)
c07f9fc5
FG
962/*
963 * Specifies minimum expected amount of saved allocation units
964 * per all blobsb to enable compressed blobs garbage collection
9f95a23c 965 *
c07f9fc5 966 */
9f95a23c 967OPTION(bluestore_gc_enable_total_threshold, OPT_INT)
c07f9fc5
FG
968
969OPTION(bluestore_max_blob_size, OPT_U32)
970OPTION(bluestore_max_blob_size_hdd, OPT_U32)
971OPTION(bluestore_max_blob_size_ssd, OPT_U32)
972/*
973 * Require the net gain of compression at least to be at this ratio,
974 * otherwise we don't compress.
975 * And ask for compressing at least 12.5%(1/8) off, by default.
976 */
977OPTION(bluestore_compression_required_ratio, OPT_DOUBLE)
978OPTION(bluestore_extent_map_shard_max_size, OPT_U32)
979OPTION(bluestore_extent_map_shard_target_size, OPT_U32)
980OPTION(bluestore_extent_map_shard_min_size, OPT_U32)
981OPTION(bluestore_extent_map_shard_target_size_slop, OPT_DOUBLE)
982OPTION(bluestore_extent_map_inline_shard_prealloc_size, OPT_U32)
983OPTION(bluestore_cache_trim_interval, OPT_DOUBLE)
984OPTION(bluestore_cache_trim_max_skip_pinned, OPT_U32) // skip this many onodes pinned in cache before we give up
985OPTION(bluestore_cache_type, OPT_STR) // lru, 2q
986OPTION(bluestore_2q_cache_kin_ratio, OPT_DOUBLE) // kin page slot size / max page slot size
987OPTION(bluestore_2q_cache_kout_ratio, OPT_DOUBLE) // number of kout page slot / total number of page slot
988OPTION(bluestore_cache_size, OPT_U64)
989OPTION(bluestore_cache_size_hdd, OPT_U64)
990OPTION(bluestore_cache_size_ssd, OPT_U64)
991OPTION(bluestore_cache_meta_ratio, OPT_DOUBLE)
992OPTION(bluestore_cache_kv_ratio, OPT_DOUBLE)
9f95a23c 993OPTION(bluestore_alloc_stats_dump_interval, OPT_DOUBLE)
c07f9fc5
FG
994OPTION(bluestore_kvbackend, OPT_STR)
995OPTION(bluestore_allocator, OPT_STR) // stupid | bitmap
996OPTION(bluestore_freelist_blocks_per_key, OPT_INT)
997OPTION(bluestore_bitmapallocator_blocks_per_zone, OPT_INT) // must be power of 2 aligned, e.g., 512, 1024, 2048...
998OPTION(bluestore_bitmapallocator_span_size, OPT_INT) // must be power of 2 aligned, e.g., 512, 1024, 2048...
999OPTION(bluestore_max_deferred_txc, OPT_U64)
9f95a23c 1000OPTION(bluestore_max_defer_interval, OPT_U64)
c07f9fc5 1001OPTION(bluestore_rocksdb_options, OPT_STR)
cd265ab1 1002OPTION(bluestore_rocksdb_options_annex, OPT_STR)
c07f9fc5
FG
1003OPTION(bluestore_fsck_on_mount, OPT_BOOL)
1004OPTION(bluestore_fsck_on_mount_deep, OPT_BOOL)
eafe8130 1005OPTION(bluestore_fsck_quick_fix_on_mount, OPT_BOOL)
c07f9fc5
FG
1006OPTION(bluestore_fsck_on_umount, OPT_BOOL)
1007OPTION(bluestore_fsck_on_umount_deep, OPT_BOOL)
1008OPTION(bluestore_fsck_on_mkfs, OPT_BOOL)
1009OPTION(bluestore_fsck_on_mkfs_deep, OPT_BOOL)
1010OPTION(bluestore_sync_submit_transaction, OPT_BOOL) // submit kv txn in queueing thread (not kv_sync_thread)
a8e16298 1011OPTION(bluestore_fsck_read_bytes_cap, OPT_U64)
eafe8130 1012OPTION(bluestore_fsck_quick_fix_threads, OPT_INT)
c07f9fc5
FG
1013OPTION(bluestore_throttle_bytes, OPT_U64)
1014OPTION(bluestore_throttle_deferred_bytes, OPT_U64)
1015OPTION(bluestore_throttle_cost_per_io_hdd, OPT_U64)
1016OPTION(bluestore_throttle_cost_per_io_ssd, OPT_U64)
1017OPTION(bluestore_throttle_cost_per_io, OPT_U64)
1018OPTION(bluestore_deferred_batch_ops, OPT_U64)
1019OPTION(bluestore_deferred_batch_ops_hdd, OPT_U64)
1020OPTION(bluestore_deferred_batch_ops_ssd, OPT_U64)
1021OPTION(bluestore_nid_prealloc, OPT_INT)
1022OPTION(bluestore_blobid_prealloc, OPT_U64)
1023OPTION(bluestore_clone_cow, OPT_BOOL) // do copy-on-write for clones
1024OPTION(bluestore_default_buffered_read, OPT_BOOL)
1025OPTION(bluestore_default_buffered_write, OPT_BOOL)
c07f9fc5
FG
1026OPTION(bluestore_debug_no_reuse_blocks, OPT_BOOL)
1027OPTION(bluestore_debug_small_allocations, OPT_INT)
9f95a23c 1028OPTION(bluestore_debug_too_many_blobs_threshold, OPT_INT)
c07f9fc5
FG
1029OPTION(bluestore_debug_freelist, OPT_BOOL)
1030OPTION(bluestore_debug_prefill, OPT_FLOAT)
1031OPTION(bluestore_debug_prefragment_max, OPT_INT)
1032OPTION(bluestore_debug_inject_read_err, OPT_BOOL)
1033OPTION(bluestore_debug_randomize_serial_transaction, OPT_INT)
1034OPTION(bluestore_debug_omit_block_device_write, OPT_BOOL)
1035OPTION(bluestore_debug_fsck_abort, OPT_BOOL)
1036OPTION(bluestore_debug_omit_kv_commit, OPT_BOOL)
1037OPTION(bluestore_debug_permit_any_bdev_label, OPT_BOOL)
c07f9fc5 1038OPTION(bluestore_debug_random_read_err, OPT_DOUBLE)
a4b75251 1039OPTION(bluestore_debug_legacy_omap, OPT_BOOL)
11fdf7f2 1040OPTION(bluestore_debug_inject_bug21040, OPT_BOOL)
f64942e4 1041OPTION(bluestore_debug_inject_csum_err_probability, OPT_FLOAT)
eafe8130 1042OPTION(bluestore_fsck_error_on_no_per_pool_stats, OPT_BOOL)
11fdf7f2 1043OPTION(bluestore_warn_on_bluefs_spillover, OPT_BOOL)
81eedcae 1044OPTION(bluestore_warn_on_legacy_statfs, OPT_BOOL)
f67539c2 1045OPTION(bluestore_warn_on_spurious_read_errors, OPT_BOOL)
9f95a23c 1046OPTION(bluestore_fsck_error_on_no_per_pool_omap, OPT_BOOL)
f67539c2 1047OPTION(bluestore_fsck_error_on_no_per_pg_omap, OPT_BOOL)
9f95a23c 1048OPTION(bluestore_warn_on_no_per_pool_omap, OPT_BOOL)
f67539c2 1049OPTION(bluestore_warn_on_no_per_pg_omap, OPT_BOOL)
11fdf7f2
TL
1050OPTION(bluestore_log_op_age, OPT_DOUBLE)
1051OPTION(bluestore_log_omap_iterator_age, OPT_DOUBLE)
494da23a 1052OPTION(bluestore_log_collection_list_age, OPT_DOUBLE)
9f95a23c
TL
1053OPTION(bluestore_debug_enforce_settings, OPT_STR)
1054OPTION(bluestore_volume_selection_policy, OPT_STR)
1055OPTION(bluestore_volume_selection_reserved_factor, OPT_DOUBLE)
1056OPTION(bluestore_volume_selection_reserved, OPT_INT)
adb31ebb 1057OPTION(bluestore_kv_sync_util_logging_s, OPT_DOUBLE)
c07f9fc5
FG
1058
1059OPTION(kstore_max_ops, OPT_U64)
1060OPTION(kstore_max_bytes, OPT_U64)
1061OPTION(kstore_backend, OPT_STR)
1062OPTION(kstore_rocksdb_options, OPT_STR)
1063OPTION(kstore_fsck_on_mount, OPT_BOOL)
1064OPTION(kstore_fsck_on_mount_deep, OPT_BOOL)
1065OPTION(kstore_nid_prealloc, OPT_U64)
1066OPTION(kstore_sync_transaction, OPT_BOOL)
1067OPTION(kstore_sync_submit_transaction, OPT_BOOL)
1068OPTION(kstore_onode_map_size, OPT_U64)
1069OPTION(kstore_default_stripe_size, OPT_INT)
1070
1071OPTION(filestore_omap_backend, OPT_STR)
1072OPTION(filestore_omap_backend_path, OPT_STR)
1073
1074/// filestore wb throttle limits
1075OPTION(filestore_wbthrottle_enable, OPT_BOOL)
1076OPTION(filestore_wbthrottle_btrfs_bytes_start_flusher, OPT_U64)
1077OPTION(filestore_wbthrottle_btrfs_bytes_hard_limit, OPT_U64)
1078OPTION(filestore_wbthrottle_btrfs_ios_start_flusher, OPT_U64)
1079OPTION(filestore_wbthrottle_btrfs_ios_hard_limit, OPT_U64)
1080OPTION(filestore_wbthrottle_btrfs_inodes_start_flusher, OPT_U64)
1081OPTION(filestore_wbthrottle_xfs_bytes_start_flusher, OPT_U64)
1082OPTION(filestore_wbthrottle_xfs_bytes_hard_limit, OPT_U64)
1083OPTION(filestore_wbthrottle_xfs_ios_start_flusher, OPT_U64)
1084OPTION(filestore_wbthrottle_xfs_ios_hard_limit, OPT_U64)
1085OPTION(filestore_wbthrottle_xfs_inodes_start_flusher, OPT_U64)
1086
1087/// These must be less than the fd limit
1088OPTION(filestore_wbthrottle_btrfs_inodes_hard_limit, OPT_U64)
1089OPTION(filestore_wbthrottle_xfs_inodes_hard_limit, OPT_U64)
1090
1091//Introduce a O_DSYNC write in the filestore
1092OPTION(filestore_odsync_write, OPT_BOOL)
1093
1094// Tests index failure paths
1095OPTION(filestore_index_retry_probability, OPT_DOUBLE)
1096
1097// Allow object read error injection
1098OPTION(filestore_debug_inject_read_err, OPT_BOOL)
1099OPTION(filestore_debug_random_read_err, OPT_DOUBLE)
1100
1101OPTION(filestore_debug_omap_check, OPT_BOOL) // Expensive debugging check on sync
1102OPTION(filestore_omap_header_cache_size, OPT_INT)
1103
1104// Use omap for xattrs for attrs over
1105// filestore_max_inline_xattr_size or
1106OPTION(filestore_max_inline_xattr_size, OPT_U32) //Override
1107OPTION(filestore_max_inline_xattr_size_xfs, OPT_U32)
1108OPTION(filestore_max_inline_xattr_size_btrfs, OPT_U32)
1109OPTION(filestore_max_inline_xattr_size_other, OPT_U32)
1110
1111// for more than filestore_max_inline_xattrs attrs
1112OPTION(filestore_max_inline_xattrs, OPT_U32) //Override
1113OPTION(filestore_max_inline_xattrs_xfs, OPT_U32)
1114OPTION(filestore_max_inline_xattrs_btrfs, OPT_U32)
1115OPTION(filestore_max_inline_xattrs_other, OPT_U32)
1116
1117// max xattr value size
1118OPTION(filestore_max_xattr_value_size, OPT_U32) //Override
1119OPTION(filestore_max_xattr_value_size_xfs, OPT_U32)
1120OPTION(filestore_max_xattr_value_size_btrfs, OPT_U32)
1121// ext4 allows 4k xattrs total including some smallish extra fields and the
1122// keys. We're allowing 2 512 inline attrs in addition some some filestore
1123// replay attrs. After accounting for those, we still need to fit up to
1124// two attrs of this value. That means we need this value to be around 1k
1125// to be safe. This is hacky, but it's not worth complicating the code
1126// to work around ext4's total xattr limit.
1127OPTION(filestore_max_xattr_value_size_other, OPT_U32)
1128
1129OPTION(filestore_sloppy_crc, OPT_BOOL) // track sloppy crcs
1130OPTION(filestore_sloppy_crc_block_size, OPT_INT)
1131
1132OPTION(filestore_max_alloc_hint_size, OPT_U64) // bytes
1133
1134OPTION(filestore_max_sync_interval, OPT_DOUBLE) // seconds
1135OPTION(filestore_min_sync_interval, OPT_DOUBLE) // seconds
1136OPTION(filestore_btrfs_snap, OPT_BOOL)
1137OPTION(filestore_btrfs_clone_range, OPT_BOOL)
1138OPTION(filestore_zfs_snap, OPT_BOOL) // zfsonlinux is still unstable
1139OPTION(filestore_fsync_flushes_journal_data, OPT_BOOL)
1140OPTION(filestore_fiemap, OPT_BOOL) // (try to) use fiemap
1141OPTION(filestore_punch_hole, OPT_BOOL)
1142OPTION(filestore_seek_data_hole, OPT_BOOL) // (try to) use seek_data/hole
1143OPTION(filestore_splice, OPT_BOOL)
1144OPTION(filestore_fadvise, OPT_BOOL)
1145//collect device partition information for management application to use
1146OPTION(filestore_collect_device_partition_information, OPT_BOOL)
1147
1148// (try to) use extsize for alloc hint NOTE: extsize seems to trigger
1149// data corruption in xfs prior to kernel 3.5. filestore will
11fdf7f2 1150// implicitly disable this if it cannot confirm the kernel is newer
c07f9fc5
FG
1151// than that.
1152// NOTE: This option involves a tradeoff: When disabled, fragmentation is
1153// worse, but large sequential writes are faster. When enabled, large
1154// sequential writes are slower, but fragmentation is reduced.
1155OPTION(filestore_xfs_extsize, OPT_BOOL)
1156
1157OPTION(filestore_journal_parallel, OPT_BOOL)
1158OPTION(filestore_journal_writeahead, OPT_BOOL)
1159OPTION(filestore_journal_trailing, OPT_BOOL)
1160OPTION(filestore_queue_max_ops, OPT_U64)
1161OPTION(filestore_queue_max_bytes, OPT_U64)
1162
1163OPTION(filestore_caller_concurrency, OPT_INT)
1164
1165/// Expected filestore throughput in B/s
1166OPTION(filestore_expected_throughput_bytes, OPT_DOUBLE)
1167/// Expected filestore throughput in ops/s
1168OPTION(filestore_expected_throughput_ops, OPT_DOUBLE)
1169
1170/// Filestore max delay multiple. Defaults to 0 (disabled)
1171OPTION(filestore_queue_max_delay_multiple, OPT_DOUBLE)
1172/// Filestore high delay multiple. Defaults to 0 (disabled)
1173OPTION(filestore_queue_high_delay_multiple, OPT_DOUBLE)
1174
11fdf7f2
TL
1175/// Filestore max delay multiple bytes. Defaults to 0 (disabled)
1176OPTION(filestore_queue_max_delay_multiple_bytes, OPT_DOUBLE)
1177/// Filestore high delay multiple bytes. Defaults to 0 (disabled)
1178OPTION(filestore_queue_high_delay_multiple_bytes, OPT_DOUBLE)
1179
1180/// Filestore max delay multiple ops. Defaults to 0 (disabled)
1181OPTION(filestore_queue_max_delay_multiple_ops, OPT_DOUBLE)
1182/// Filestore high delay multiple ops. Defaults to 0 (disabled)
1183OPTION(filestore_queue_high_delay_multiple_ops, OPT_DOUBLE)
1184
c07f9fc5
FG
1185/// Use above to inject delays intended to keep the op queue between low and high
1186OPTION(filestore_queue_low_threshhold, OPT_DOUBLE)
1187OPTION(filestore_queue_high_threshhold, OPT_DOUBLE)
1188
1189OPTION(filestore_op_threads, OPT_INT)
1190OPTION(filestore_op_thread_timeout, OPT_INT)
1191OPTION(filestore_op_thread_suicide_timeout, OPT_INT)
1192OPTION(filestore_commit_timeout, OPT_FLOAT)
1193OPTION(filestore_fiemap_threshold, OPT_INT)
1194OPTION(filestore_merge_threshold, OPT_INT)
1195OPTION(filestore_split_multiple, OPT_INT)
1196OPTION(filestore_split_rand_factor, OPT_U32) // randomize the split threshold by adding 16 * [0)
1197OPTION(filestore_update_to, OPT_INT)
1198OPTION(filestore_blackhole, OPT_BOOL) // drop any new transactions on the floor
1199OPTION(filestore_fd_cache_size, OPT_INT) // FD lru size
1200OPTION(filestore_fd_cache_shards, OPT_INT) // FD number of shards
1201OPTION(filestore_ondisk_finisher_threads, OPT_INT)
1202OPTION(filestore_apply_finisher_threads, OPT_INT)
1203OPTION(filestore_dump_file, OPT_STR) // file onto which store transaction dumps
1204OPTION(filestore_kill_at, OPT_INT) // inject a failure at the n'th opportunity
1205OPTION(filestore_inject_stall, OPT_INT) // artificially stall for N seconds in op queue thread
1206OPTION(filestore_fail_eio, OPT_BOOL) // fail/crash on EIO
1207OPTION(filestore_debug_verify_split, OPT_BOOL)
1208OPTION(journal_dio, OPT_BOOL)
1209OPTION(journal_aio, OPT_BOOL)
1210OPTION(journal_force_aio, OPT_BOOL)
1211OPTION(journal_block_size, OPT_INT)
1212
c07f9fc5
FG
1213OPTION(journal_block_align, OPT_BOOL)
1214OPTION(journal_write_header_frequency, OPT_U64)
1215OPTION(journal_max_write_bytes, OPT_INT)
1216OPTION(journal_max_write_entries, OPT_INT)
1217
1218/// Target range for journal fullness
1219OPTION(journal_throttle_low_threshhold, OPT_DOUBLE)
1220OPTION(journal_throttle_high_threshhold, OPT_DOUBLE)
1221
1222/// Multiple over expected at high_threshhold. Defaults to 0 (disabled).
1223OPTION(journal_throttle_high_multiple, OPT_DOUBLE)
1224/// Multiple over expected at max. Defaults to 0 (disabled).
1225OPTION(journal_throttle_max_multiple, OPT_DOUBLE)
1226
1227OPTION(journal_align_min_size, OPT_INT) // align data payloads >= this.
1228OPTION(journal_replay_from, OPT_INT)
1229OPTION(journal_zero_on_create, OPT_BOOL)
1230OPTION(journal_ignore_corruption, OPT_BOOL) // assume journal is not corrupt
1231OPTION(journal_discard, OPT_BOOL) //using ssd disk as journal, whether support discard nouse journal-data.
1232
1233OPTION(fio_dir, OPT_STR) // fio data directory for fio-objectstore
1234
c07f9fc5
FG
1235OPTION(rados_tracing, OPT_BOOL) // true if LTTng-UST tracepoints should be enabled
1236
c07f9fc5 1237
eafe8130
TL
1238OPTION(rgw_max_attr_name_len, OPT_SIZE)
1239OPTION(rgw_max_attr_size, OPT_SIZE)
1240OPTION(rgw_max_attrs_num_in_req, OPT_U64)
1241
c07f9fc5
FG
1242OPTION(rgw_max_chunk_size, OPT_INT)
1243OPTION(rgw_put_obj_min_window_size, OPT_INT)
1244OPTION(rgw_put_obj_max_window_size, OPT_INT)
1245OPTION(rgw_max_put_size, OPT_U64)
1246OPTION(rgw_max_put_param_size, OPT_U64) // max input size for PUT requests accepting json/xml params
1247
1248/**
1249 * override max bucket index shards in zone configuration (if not zero)
1250 *
1251 * Represents the number of shards for the bucket index object, a value of zero
1252 * indicates there is no sharding. By default (no sharding, the name of the object
1253 * is '.dir.{marker}', with sharding, the name is '.dir.{markder}.{sharding_id}',
1254 * sharding_id is zero-based value. It is not recommended to set a too large value
1255 * (e.g. thousand) as it increases the cost for bucket listing.
1256 */
1257OPTION(rgw_override_bucket_index_max_shards, OPT_U32)
1258
1259/**
1260 * Represents the maximum AIO pending requests for the bucket index object shards.
1261 */
1262OPTION(rgw_bucket_index_max_aio, OPT_U32)
1263
1264/**
1265 * whether or not the quota/gc threads should be started
1266 */
1267OPTION(rgw_enable_quota_threads, OPT_BOOL)
1268OPTION(rgw_enable_gc_threads, OPT_BOOL)
1269OPTION(rgw_enable_lc_threads, OPT_BOOL)
1270
f6b5b4d7
TL
1271/* overrides for librgw/nfs */
1272OPTION(rgw_nfs_run_gc_threads, OPT_BOOL)
1273OPTION(rgw_nfs_run_lc_threads, OPT_BOOL)
1274OPTION(rgw_nfs_run_quota_threads, OPT_BOOL)
1275OPTION(rgw_nfs_run_sync_thread, OPT_BOOL)
c07f9fc5
FG
1276
1277OPTION(rgw_data, OPT_STR)
1278OPTION(rgw_enable_apis, OPT_STR)
1279OPTION(rgw_cache_enabled, OPT_BOOL) // rgw cache enabled
1280OPTION(rgw_cache_lru_size, OPT_INT) // num of entries in rgw cache
1281OPTION(rgw_socket_path, OPT_STR) // path to unix domain socket, if not specified, rgw will not run as external fcgi
1282OPTION(rgw_host, OPT_STR) // host for radosgw, can be an IP, default is 0.0.0.0
1283OPTION(rgw_port, OPT_STR) // port to listen, format as "8080" "5000", if not specified, rgw will not run external fcgi
1284OPTION(rgw_dns_name, OPT_STR) // hostname suffix on buckets
1285OPTION(rgw_dns_s3website_name, OPT_STR) // hostname suffix on buckets for s3-website endpoint
11fdf7f2 1286OPTION(rgw_service_provider_name, OPT_STR) //service provider name which is contained in http response headers
c07f9fc5
FG
1287OPTION(rgw_content_length_compat, OPT_BOOL) // Check both HTTP_CONTENT_LENGTH and CONTENT_LENGTH in fcgi env
1288OPTION(rgw_lifecycle_work_time, OPT_STR) //job process lc at 00:00-06:00s
1289OPTION(rgw_lc_lock_max_time, OPT_INT) // total run time for a single lc processor work
e306af50
TL
1290OPTION(rgw_lc_max_worker, OPT_INT)// number of (parellized) LCWorker threads
1291OPTION(rgw_lc_max_wp_worker, OPT_INT)// number of per-LCWorker pool threads
c07f9fc5 1292OPTION(rgw_lc_max_objs, OPT_INT)
91327a77 1293OPTION(rgw_lc_max_rules, OPT_U32) // Max rules set on one bucket
c07f9fc5
FG
1294OPTION(rgw_lc_debug_interval, OPT_INT) // Debug run interval, in seconds
1295OPTION(rgw_script_uri, OPT_STR) // alternative value for SCRIPT_URI if not set in request
1296OPTION(rgw_request_uri, OPT_STR) // alternative value for REQUEST_URI if not set in request
28e407b8 1297OPTION(rgw_ignore_get_invalid_range, OPT_BOOL) // treat invalid (e.g., negative) range requests as full
c07f9fc5
FG
1298OPTION(rgw_swift_url, OPT_STR) // the swift url, being published by the internal swift auth
1299OPTION(rgw_swift_url_prefix, OPT_STR) // entry point for which a url is considered a swift url
1300OPTION(rgw_swift_auth_url, OPT_STR) // default URL to go and verify tokens for v1 auth (if not using internal swift auth)
1301OPTION(rgw_swift_auth_entry, OPT_STR) // entry point for which a url is considered a swift auth url
1302OPTION(rgw_swift_tenant_name, OPT_STR) // tenant name to use for swift access
1303OPTION(rgw_swift_account_in_url, OPT_BOOL) // assume that URL always contain the account (aka tenant) part
1304OPTION(rgw_swift_enforce_content_length, OPT_BOOL) // enforce generation of Content-Length even in cost of performance or scalability
1305OPTION(rgw_keystone_url, OPT_STR) // url for keystone server
1306OPTION(rgw_keystone_admin_token, OPT_STR) // keystone admin token (shared secret)
11fdf7f2 1307OPTION(rgw_keystone_admin_token_path, OPT_STR) // path to keystone admin token (shared secret)
c07f9fc5
FG
1308OPTION(rgw_keystone_admin_user, OPT_STR) // keystone admin user name
1309OPTION(rgw_keystone_admin_password, OPT_STR) // keystone admin user password
11fdf7f2 1310OPTION(rgw_keystone_admin_password_path, OPT_STR) // path to keystone admin user password
c07f9fc5
FG
1311OPTION(rgw_keystone_admin_tenant, OPT_STR) // keystone admin user tenant (for keystone v2.0)
1312OPTION(rgw_keystone_admin_project, OPT_STR) // keystone admin user project (for keystone v3)
1313OPTION(rgw_keystone_admin_domain, OPT_STR) // keystone admin user domain
1314OPTION(rgw_keystone_barbican_user, OPT_STR) // keystone user to access barbican secrets
1315OPTION(rgw_keystone_barbican_password, OPT_STR) // keystone password for barbican user
1316OPTION(rgw_keystone_barbican_tenant, OPT_STR) // keystone barbican user tenant (for keystone v2.0)
1317OPTION(rgw_keystone_barbican_project, OPT_STR) // keystone barbican user project (for keystone v3)
1318OPTION(rgw_keystone_barbican_domain, OPT_STR) // keystone barbican user domain
1319OPTION(rgw_keystone_api_version, OPT_INT) // Version of Keystone API to use (2 or 3)
1320OPTION(rgw_keystone_accepted_roles, OPT_STR) // roles required to serve requests
1321OPTION(rgw_keystone_accepted_admin_roles, OPT_STR) // list of roles allowing an user to gain admin privileges
1322OPTION(rgw_keystone_token_cache_size, OPT_INT) // max number of entries in keystone token cache
c07f9fc5 1323OPTION(rgw_keystone_verify_ssl, OPT_BOOL) // should we try to verify keystone's ssl
c07f9fc5
FG
1324OPTION(rgw_cross_domain_policy, OPT_STR)
1325OPTION(rgw_healthcheck_disabling_path, OPT_STR) // path that existence causes the healthcheck to respond 503
1326OPTION(rgw_s3_auth_use_rados, OPT_BOOL) // should we try to use the internal credentials for s3?
1327OPTION(rgw_s3_auth_use_keystone, OPT_BOOL) // should we try to use keystone for s3?
1adf2230 1328OPTION(rgw_s3_auth_order, OPT_STR) // s3 authentication order to try
c07f9fc5 1329OPTION(rgw_barbican_url, OPT_STR) // url for barbican server
11fdf7f2
TL
1330OPTION(rgw_opa_url, OPT_STR) // url for OPA server
1331OPTION(rgw_opa_token, OPT_STR) // Bearer token OPA uses to authenticate client requests
1332OPTION(rgw_opa_verify_ssl, OPT_BOOL) // should we try to verify OPA's ssl
1333OPTION(rgw_use_opa_authz, OPT_BOOL) // should we use OPA to authorize client requests?
c07f9fc5
FG
1334
1335/* OpenLDAP-style LDAP parameter strings */
1336/* rgw_ldap_uri space-separated list of LDAP servers in URI format */
1337OPTION(rgw_ldap_uri, OPT_STR)
1338/* rgw_ldap_binddn LDAP entry RGW will bind with (user match) */
1339OPTION(rgw_ldap_binddn, OPT_STR)
1340/* rgw_ldap_searchdn LDAP search base (basedn) */
1341OPTION(rgw_ldap_searchdn, OPT_STR)
1342/* rgw_ldap_dnattr LDAP attribute containing RGW user names (to form binddns)*/
1343OPTION(rgw_ldap_dnattr, OPT_STR)
1344/* rgw_ldap_secret file containing credentials for rgw_ldap_binddn */
1345OPTION(rgw_ldap_secret, OPT_STR)
1346/* rgw_s3_auth_use_ldap use LDAP for RGW auth? */
1347OPTION(rgw_s3_auth_use_ldap, OPT_BOOL)
1348/* rgw_ldap_searchfilter LDAP search filter */
1349OPTION(rgw_ldap_searchfilter, OPT_STR)
1350
1351OPTION(rgw_admin_entry, OPT_STR) // entry point for which a url is considered an admin request
1352OPTION(rgw_enforce_swift_acls, OPT_BOOL)
1353OPTION(rgw_swift_token_expiration, OPT_INT) // time in seconds for swift token expiration
1354OPTION(rgw_print_continue, OPT_BOOL) // enable if 100-Continue works
1355OPTION(rgw_print_prohibited_content_length, OPT_BOOL) // violate RFC 7230 and send Content-Length in 204 and 304
1356OPTION(rgw_remote_addr_param, OPT_STR) // e.g. X-Forwarded-For, if you have a reverse proxy
1357OPTION(rgw_op_thread_timeout, OPT_INT)
1358OPTION(rgw_op_thread_suicide_timeout, OPT_INT)
1359OPTION(rgw_thread_pool_size, OPT_INT)
1360OPTION(rgw_num_control_oids, OPT_INT)
c07f9fc5
FG
1361OPTION(rgw_verify_ssl, OPT_BOOL) // should http_client try to verify ssl when sent https request
1362
1363/* The following are tunables for caches of RGW NFS (and other file
1364 * client) objects.
1365 *
1366 * The file handle cache is a partitioned hash table
1367 * (fhcache_partitions), each with a closed hash part and backing
1368 * b-tree mapping. The number of partions is expected to be a small
1369 * prime, the cache size something larger but less than 5K, the total
1370 * size of the cache is n_part * cache_size.
1371 */
1372OPTION(rgw_nfs_lru_lanes, OPT_INT)
1373OPTION(rgw_nfs_lru_lane_hiwat, OPT_INT)
1374OPTION(rgw_nfs_fhcache_partitions, OPT_INT)
1375OPTION(rgw_nfs_fhcache_size, OPT_INT) /* 3*2017=6051 */
1376OPTION(rgw_nfs_namespace_expire_secs, OPT_INT) /* namespace invalidate
1377 * timer */
1378OPTION(rgw_nfs_max_gc, OPT_INT) /* max gc events per cycle */
1379OPTION(rgw_nfs_write_completion_interval_s, OPT_INT) /* stateless (V3)
1380 * commit
1381 * delay */
eafe8130
TL
1382OPTION(rgw_nfs_s3_fast_attrs, OPT_BOOL) /* use fast S3 attrs from
1383 * bucket index--currently
1384 * assumes NFS mounts are
1385 * immutable */
c07f9fc5
FG
1386
1387OPTION(rgw_zone, OPT_STR) // zone name
1388OPTION(rgw_zone_root_pool, OPT_STR) // pool where zone specific info is stored
1389OPTION(rgw_default_zone_info_oid, OPT_STR) // oid where default zone info is stored
1390OPTION(rgw_region, OPT_STR) // region name
1391OPTION(rgw_region_root_pool, OPT_STR) // pool where all region info is stored
1392OPTION(rgw_default_region_info_oid, OPT_STR) // oid where default region info is stored
1393OPTION(rgw_zonegroup, OPT_STR) // zone group name
1394OPTION(rgw_zonegroup_root_pool, OPT_STR) // pool where all zone group info is stored
1395OPTION(rgw_default_zonegroup_info_oid, OPT_STR) // oid where default zone group info is stored
1396OPTION(rgw_realm, OPT_STR) // realm name
1397OPTION(rgw_realm_root_pool, OPT_STR) // pool where all realm info is stored
1398OPTION(rgw_default_realm_info_oid, OPT_STR) // oid where default realm info is stored
1399OPTION(rgw_period_root_pool, OPT_STR) // pool where all period info is stored
1400OPTION(rgw_period_latest_epoch_info_oid, OPT_STR) // oid where current period info is stored
1401OPTION(rgw_log_nonexistent_bucket, OPT_BOOL)
1402OPTION(rgw_log_object_name, OPT_STR) // man date to see codes (a subset are supported)
1403OPTION(rgw_log_object_name_utc, OPT_BOOL)
1404OPTION(rgw_usage_max_shards, OPT_INT)
1405OPTION(rgw_usage_max_user_shards, OPT_INT)
1406OPTION(rgw_enable_ops_log, OPT_BOOL) // enable logging every rgw operation
1407OPTION(rgw_enable_usage_log, OPT_BOOL) // enable logging bandwidth usage
1408OPTION(rgw_ops_log_rados, OPT_BOOL) // whether ops log should go to rados
a4b75251 1409OPTION(rgw_ops_log_file_path, OPT_STR) // path to file where ops log can go
c07f9fc5
FG
1410OPTION(rgw_ops_log_socket_path, OPT_STR) // path to unix domain socket where ops log can go
1411OPTION(rgw_ops_log_data_backlog, OPT_INT) // max data backlog for ops log
1412OPTION(rgw_fcgi_socket_backlog, OPT_INT) // socket backlog for fcgi
1413OPTION(rgw_usage_log_flush_threshold, OPT_INT) // threshold to flush pending log data
1414OPTION(rgw_usage_log_tick_interval, OPT_INT) // flush pending log data every X seconds
c07f9fc5
FG
1415OPTION(rgw_init_timeout, OPT_INT) // time in seconds
1416OPTION(rgw_mime_types_file, OPT_STR)
1417OPTION(rgw_gc_max_objs, OPT_INT)
9f95a23c 1418OPTION(rgw_gc_obj_min_wait, OPT_INT) // wait time before object may be handled by gc, recommended lower limit is 30 mins
c07f9fc5
FG
1419OPTION(rgw_gc_processor_max_time, OPT_INT) // total run time for a single gc processor work
1420OPTION(rgw_gc_processor_period, OPT_INT) // gc processor cycle time
11fdf7f2
TL
1421OPTION(rgw_gc_max_concurrent_io, OPT_INT) // gc processor cycle time
1422OPTION(rgw_gc_max_trim_chunk, OPT_INT) // gc trim chunk size
c07f9fc5
FG
1423OPTION(rgw_s3_success_create_obj_status, OPT_INT) // alternative success status response for create-obj (0 - default)
1424OPTION(rgw_resolve_cname, OPT_BOOL) // should rgw try to resolve hostname as a dns cname record
1425OPTION(rgw_obj_stripe_size, OPT_INT)
1426OPTION(rgw_extended_http_attrs, OPT_STR) // list of extended attrs that can be set on objects (beyond the default)
1427OPTION(rgw_exit_timeout_secs, OPT_INT) // how many seconds to wait for process to go down before exiting unconditionally
1428OPTION(rgw_get_obj_window_size, OPT_INT) // window size in bytes for single get obj request
1429OPTION(rgw_get_obj_max_req_size, OPT_INT) // max length of a single get obj rados op
1430OPTION(rgw_relaxed_s3_bucket_names, OPT_BOOL) // enable relaxed bucket name rules for US region buckets
1431OPTION(rgw_defer_to_bucket_acls, OPT_STR) // if the user has bucket perms)
1432OPTION(rgw_list_buckets_max_chunk, OPT_INT) // max buckets to retrieve in a single op when listing user buckets
1433OPTION(rgw_md_log_max_shards, OPT_INT) // max shards for metadata log
f67539c2 1434OPTION(rgw_curl_buffersize, OPT_INT) // set preferred receive buffer size for curl calls
c07f9fc5 1435OPTION(rgw_curl_wait_timeout_ms, OPT_INT) // timeout for certain curl calls
1adf2230
AA
1436OPTION(rgw_curl_low_speed_limit, OPT_INT) // low speed limit for certain curl calls
1437OPTION(rgw_curl_low_speed_time, OPT_INT) // low speed time for certain curl calls
c07f9fc5
FG
1438OPTION(rgw_copy_obj_progress, OPT_BOOL) // should dump progress during long copy operations?
1439OPTION(rgw_copy_obj_progress_every_bytes, OPT_INT) // min bytes between copy progress output
adb31ebb 1440OPTION(rgw_sync_obj_etag_verify, OPT_BOOL) // verify if the copied object from remote is identical to source
c07f9fc5
FG
1441OPTION(rgw_obj_tombstone_cache_size, OPT_INT) // how many objects in tombstone cache, which is used in multi-zone sync to keep
1442 // track of removed objects' mtime
1443
1444OPTION(rgw_data_log_window, OPT_INT) // data log entries window (in seconds)
1445OPTION(rgw_data_log_changes_size, OPT_INT) // number of in-memory entries to hold for data changes log
1446OPTION(rgw_data_log_num_shards, OPT_INT) // number of objects to keep data changes log on
1447OPTION(rgw_data_log_obj_prefix, OPT_STR) //
c07f9fc5
FG
1448
1449OPTION(rgw_bucket_quota_ttl, OPT_INT) // time for cached bucket stats to be cached within rgw instance
c07f9fc5
FG
1450OPTION(rgw_bucket_quota_cache_size, OPT_INT) // number of entries in bucket quota cache
1451OPTION(rgw_bucket_default_quota_max_objects, OPT_INT) // number of objects allowed
1452OPTION(rgw_bucket_default_quota_max_size, OPT_LONGLONG) // Max size of object in bytes
1453
1454OPTION(rgw_expose_bucket, OPT_BOOL) // Return the bucket name in the 'Bucket' response header
1455
1456OPTION(rgw_frontends, OPT_STR) // rgw front ends
1457
1458OPTION(rgw_user_quota_bucket_sync_interval, OPT_INT) // time period for accumulating modified buckets before syncing stats
1459OPTION(rgw_user_quota_sync_interval, OPT_INT) // time period for accumulating modified buckets before syncing entire user stats
1460OPTION(rgw_user_quota_sync_idle_users, OPT_BOOL) // whether stats for idle users be fully synced
1461OPTION(rgw_user_quota_sync_wait_time, OPT_INT) // min time between two full stats sync for non-idle users
1462OPTION(rgw_user_default_quota_max_objects, OPT_INT) // number of objects allowed
1463OPTION(rgw_user_default_quota_max_size, OPT_LONGLONG) // Max size of object in bytes
1464
1465OPTION(rgw_multipart_min_part_size, OPT_INT) // min size for each part (except for last one) in multipart upload
1466OPTION(rgw_multipart_part_upload_limit, OPT_INT) // parts limit in multipart upload
1467
1468OPTION(rgw_max_slo_entries, OPT_INT) // default number of max entries in slo
1469
1470OPTION(rgw_olh_pending_timeout_sec, OPT_INT) // time until we retire a pending olh change
1471OPTION(rgw_user_max_buckets, OPT_INT) // global option to set max buckets count for all user
1472
1473OPTION(rgw_objexp_gc_interval, OPT_U32) // maximum time between round of expired objects garbage collecting
c07f9fc5
FG
1474OPTION(rgw_objexp_hints_num_shards, OPT_U32) // maximum number of parts in which the hint index is stored in
1475OPTION(rgw_objexp_chunk_size, OPT_U32) // maximum number of entries in a single operation when processing objexp data
1476
1477OPTION(rgw_enable_static_website, OPT_BOOL) // enable static website feature
1478OPTION(rgw_log_http_headers, OPT_STR) // list of HTTP headers to log when seen, ignores case (e.g., http_x_forwarded_for
1479
1480OPTION(rgw_num_async_rados_threads, OPT_INT) // num of threads to use for async rados operations
1481OPTION(rgw_md_notify_interval_msec, OPT_INT) // metadata changes notification interval to followers
1482OPTION(rgw_run_sync_thread, OPT_BOOL) // whether radosgw (not radosgw-admin) spawns the sync thread
1483OPTION(rgw_sync_lease_period, OPT_INT) // time in second for lease that rgw takes on a specific log (or log shard)
1484OPTION(rgw_sync_log_trim_interval, OPT_INT) // time in seconds between attempts to trim sync logs
1485
1486OPTION(rgw_sync_data_inject_err_probability, OPT_DOUBLE) // range [0, 1]
1487OPTION(rgw_sync_meta_inject_err_probability, OPT_DOUBLE) // range [0, 1]
11fdf7f2
TL
1488OPTION(rgw_sync_trace_history_size, OPT_INT) // max number of complete sync trace entries to keep
1489OPTION(rgw_sync_trace_per_node_log_size, OPT_INT) // how many log entries to keep per node
1490OPTION(rgw_sync_trace_servicemap_update_interval, OPT_INT) // interval in seconds between sync trace servicemap update
c07f9fc5
FG
1491
1492
1493OPTION(rgw_period_push_interval, OPT_DOUBLE) // seconds to wait before retrying "period push"
1494OPTION(rgw_period_push_interval_max, OPT_DOUBLE) // maximum interval after exponential backoff
1495
1496OPTION(rgw_safe_max_objects_per_shard, OPT_INT) // safe max loading
1497OPTION(rgw_shard_warning_threshold, OPT_DOUBLE) // pct of safe max
1498 // at which to warn
1499
1500OPTION(rgw_swift_versioning_enabled, OPT_BOOL) // whether swift object versioning feature is enabled
1501
f64942e4 1502OPTION(rgw_trust_forwarded_https, OPT_BOOL) // trust Forwarded and X-Forwarded-Proto headers for ssl termination
c07f9fc5
FG
1503OPTION(rgw_crypt_require_ssl, OPT_BOOL) // requests including encryption key headers must be sent over ssl
1504OPTION(rgw_crypt_default_encryption_key, OPT_STR) // base64 encoded key for encryption of rgw objects
9f95a23c
TL
1505
1506OPTION(rgw_crypt_s3_kms_backend, OPT_STR) // Where SSE-KMS encryption keys are stored
1507OPTION(rgw_crypt_vault_auth, OPT_STR) // Type of authentication method to be used with Vault
1508OPTION(rgw_crypt_vault_token_file, OPT_STR) // Path to the token file for Vault authentication
1509OPTION(rgw_crypt_vault_addr, OPT_STR) // Vault server base address
1510OPTION(rgw_crypt_vault_prefix, OPT_STR) // Optional URL prefix to Vault secret path
1511OPTION(rgw_crypt_vault_secret_engine, OPT_STR) // kv, transit or other supported secret engines
1512OPTION(rgw_crypt_vault_namespace, OPT_STR) // Vault Namespace (only availabe in Vault Enterprise Version)
522d829b
TL
1513OPTION(rgw_crypt_vault_verify_ssl, OPT_BOOL) // should we try to verify vault's ssl
1514OPTION(rgw_crypt_vault_ssl_cacert, OPT_STR) // optional ca certificate for accessing vault
1515OPTION(rgw_crypt_vault_ssl_clientcert, OPT_STR) // client certificate for accessing vault
1516OPTION(rgw_crypt_vault_ssl_clientkey, OPT_STR) // private key for client certificate
9f95a23c 1517
f67539c2
TL
1518OPTION(rgw_crypt_kmip_addr, OPT_STR) // kmip server address
1519OPTION(rgw_crypt_kmip_ca_path, OPT_STR) // ca for kmip servers
1520OPTION(rgw_crypt_kmip_username, OPT_STR) // when authenticating via username
1521OPTION(rgw_crypt_kmip_password, OPT_STR) // optional w/ username
1522OPTION(rgw_crypt_kmip_client_cert, OPT_STR) // connect using client certificate
1523OPTION(rgw_crypt_kmip_client_key, OPT_STR) // connect using client certificate
1524OPTION(rgw_crypt_kmip_kms_key_template, OPT_STR) // sse-kms; kmip key names
1525OPTION(rgw_crypt_kmip_s3_key_template, OPT_STR) // sse-s3; kmip key names
1526
c07f9fc5
FG
1527OPTION(rgw_crypt_s3_kms_encryption_keys, OPT_STR) // extra keys that may be used for aws:kms
1528 // defined as map "key1=YmluCmJvb3N0CmJvb3N0LQ== key2=b3V0CnNyYwpUZXN0aW5nCg=="
1529OPTION(rgw_crypt_suppress_logs, OPT_BOOL) // suppress logs that might print customer key
1530OPTION(rgw_list_bucket_min_readahead, OPT_INT) // minimum number of entries to read from rados for bucket listing
1531
1532OPTION(rgw_rest_getusage_op_compat, OPT_BOOL) // dump description of total stats for s3 GetUsage API
1533
c07f9fc5
FG
1534OPTION(throttler_perf_counter, OPT_BOOL) // enable/disable throttler perf counter
1535
1536/* The following are tunables for torrent data */
1537OPTION(rgw_torrent_flag, OPT_BOOL) // produce torrent function flag
11fdf7f2 1538OPTION(rgw_torrent_tracker, OPT_STR) // torrent field announce and announce list
c07f9fc5
FG
1539OPTION(rgw_torrent_createby, OPT_STR) // torrent field created by
1540OPTION(rgw_torrent_comment, OPT_STR) // torrent field comment
1541OPTION(rgw_torrent_encoding, OPT_STR) // torrent field encoding
1542OPTION(rgw_torrent_origin, OPT_STR) // torrent origin
1543OPTION(rgw_torrent_sha_unit, OPT_INT) // torrent field piece length 512K
1544
1545OPTION(event_tracing, OPT_BOOL) // true if LTTng-UST tracepoints should be enabled
1546
c07f9fc5 1547OPTION(debug_deliberately_leak_memory, OPT_BOOL)
11fdf7f2 1548OPTION(debug_asok_assert_abort, OPT_BOOL)
c07f9fc5
FG
1549
1550OPTION(rgw_swift_custom_header, OPT_STR) // option to enable swift custom headers
1551
1552OPTION(rgw_swift_need_stats, OPT_BOOL) // option to enable stats on bucket listing for swift
1553
c07f9fc5 1554OPTION(rgw_acl_grants_max_num, OPT_INT) // According to AWS S3(http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html), An ACL can have up to 100 grants.
11fdf7f2
TL
1555OPTION(rgw_cors_rules_max_num, OPT_INT) // According to AWS S3(http://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html), An cors can have up to 100 rules.
1556OPTION(rgw_delete_multi_obj_max_num, OPT_INT) // According to AWS S3(https://docs.aws.amazon.com/AmazonS3/latest/dev/DeletingObjects.html), Amazon S3 also provides the Multi-Object Delete API that you can use to delete up to 1000 objects in a single HTTP request.
1557OPTION(rgw_website_routing_rules_max_num, OPT_INT) // According to AWS S3, An website routing config can have up to 50 rules.
1558OPTION(rgw_sts_entry, OPT_STR)
1559OPTION(rgw_sts_key, OPT_STR)
1560OPTION(rgw_s3_auth_use_sts, OPT_BOOL) // should we try to use sts for s3?
1561OPTION(rgw_sts_max_session_duration, OPT_U64) // Max duration in seconds for which the session token is valid.
f67539c2 1562OPTION(rgw_sts_min_session_duration, OPT_U64) // Min duration in seconds for which the session token is valid.
11fdf7f2
TL
1563OPTION(fake_statfs_for_testing, OPT_INT) // Set a value for kb and compute kb_used from total of num_bytes
1564OPTION(rgw_sts_token_introspection_url, OPT_STR) // url for introspecting web tokens
1565OPTION(rgw_sts_client_id, OPT_STR) // Client Id
1566OPTION(rgw_sts_client_secret, OPT_STR) // Client Secret
81eedcae 1567OPTION(debug_allow_any_pool_priority, OPT_BOOL)
9f95a23c
TL
1568OPTION(rgw_gc_max_deferred_entries_size, OPT_U64) // GC deferred entries size in queue head
1569OPTION(rgw_gc_max_queue_size, OPT_U64) // GC max queue size
1570OPTION(rgw_gc_max_deferred, OPT_U64) // GC max number of deferred entries