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