]> git.proxmox.com Git - ceph.git/blob - ceph/src/common/options.cc
update sources to v12.1.3
[ceph.git] / ceph / src / common / options.cc
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
3
4 #include "acconfig.h"
5 #include "options.h"
6 #include "common/Formatter.h"
7
8 // Helpers for validators
9 #include "include/stringify.h"
10 #include <boost/algorithm/string.hpp>
11 #include <boost/lexical_cast.hpp>
12 #include <boost/regex.hpp>
13
14
15 void Option::dump_value(const char *field_name,
16 const Option::value_t &v, Formatter *f) const
17 {
18 if (boost::get<boost::blank>(&v)) {
19 // This should be nil but Formatter doesn't allow it.
20 f->dump_string(field_name, "");
21 } else if (type == TYPE_UINT) {
22 f->dump_unsigned(field_name, boost::get<uint64_t>(v));
23 } else if (type == TYPE_INT) {
24 f->dump_int(field_name, boost::get<int64_t>(v));
25 } else if (type == TYPE_STR) {
26 f->dump_string(field_name, boost::get<std::string>(v));
27 } else if (type == TYPE_FLOAT) {
28 f->dump_float(field_name, boost::get<double>(v));
29 } else if (type == TYPE_BOOL) {
30 f->dump_bool(field_name, boost::get<bool>(v));
31 } else {
32 f->dump_stream(field_name) << v;
33 }
34 }
35
36 int Option::pre_validate(std::string *new_value, std::string *err) const
37 {
38 if (validator) {
39 return validator(new_value, err);
40 } else {
41 return 0;
42 }
43 }
44
45 int Option::validate(const Option::value_t &new_value, std::string *err) const
46 {
47 // Generic validation: min
48 if (!boost::get<boost::blank>(&(min))) {
49 if (new_value < min) {
50 std::ostringstream oss;
51 oss << "Value '" << new_value << "' is below minimum " << min;
52 *err = oss.str();
53 return -EINVAL;
54 }
55 }
56
57 // Generic validation: max
58 if (!boost::get<boost::blank>(&(max))) {
59 if (new_value > max) {
60 std::ostringstream oss;
61 oss << "Value '" << new_value << "' exceeds maximum " << max;
62 *err = oss.str();
63 return -EINVAL;
64 }
65 }
66
67 // Generic validation: enum
68 if (!enum_allowed.empty() && type == Option::TYPE_STR) {
69 auto found = std::find(enum_allowed.begin(), enum_allowed.end(),
70 boost::get<std::string>(new_value));
71 if (found == enum_allowed.end()) {
72 std::ostringstream oss;
73 oss << "'" << new_value << "' is not one of the permitted "
74 "values: " << joinify(enum_allowed.begin(),
75 enum_allowed.end(),
76 std::string(", "));
77 *err = oss.str();
78 return -EINVAL;
79 }
80 }
81
82 return 0;
83 }
84
85 void Option::dump(Formatter *f) const
86 {
87 f->open_object_section("option");
88 f->dump_string("name", name);
89
90 f->dump_string("type", type_to_str(type));
91
92 f->dump_string("level", level_to_str(level));
93
94 f->dump_string("desc", desc);
95 f->dump_string("long_desc", long_desc);
96
97 dump_value("default", value, f);
98 dump_value("daemon_default", daemon_value, f);
99
100 f->open_array_section("tags");
101 for (const auto t : tags) {
102 f->dump_string("tag", t);
103 }
104 f->close_section();
105
106 f->open_array_section("services");
107 for (const auto s : services) {
108 f->dump_string("service", s);
109 }
110 f->close_section();
111
112 f->open_array_section("see_also");
113 for (const auto sa : see_also) {
114 f->dump_string("see_also", sa);
115 }
116 f->close_section();
117
118 if (type == TYPE_STR) {
119 f->open_array_section("enum_values");
120 for (const auto &ea : enum_allowed) {
121 f->dump_string("enum_value", ea);
122 }
123 f->close_section();
124 }
125
126 dump_value("min", min, f);
127 dump_value("max", max, f);
128
129 f->close_section();
130 }
131
132
133 std::vector<Option> get_global_options() {
134 return std::vector<Option>({
135 Option("host", Option::TYPE_STR, Option::LEVEL_BASIC)
136 .set_description("local hostname")
137 .set_long_description("if blank, ceph assumes the short hostname (hostname -s)")
138 .add_service("common")
139 .add_tag("network"),
140
141 Option("fsid", Option::TYPE_UUID, Option::LEVEL_BASIC)
142 .set_description("cluster fsid (uuid)")
143 .add_service("common")
144 .add_tag("service"),
145
146 Option("public_addr", Option::TYPE_ADDR, Option::LEVEL_BASIC)
147 .set_description("public-facing address to bind to")
148 .add_service({"mon", "mds", "osd", "mgr"}),
149
150 Option("public_bind_addr", Option::TYPE_ADDR, Option::LEVEL_ADVANCED)
151 .set_default(entity_addr_t())
152 .add_service("mon")
153 .set_description(""),
154
155 Option("cluster_addr", Option::TYPE_ADDR, Option::LEVEL_BASIC)
156 .set_description("cluster-facing address to bind to")
157 .add_service("osd")
158 .add_tag("network"),
159
160 Option("public_network", Option::TYPE_STR, Option::LEVEL_ADVANCED)
161 .add_service({"mon", "mds", "osd", "mgr"})
162 .add_tag("network")
163 .set_description(""),
164
165 Option("cluster_network", Option::TYPE_STR, Option::LEVEL_ADVANCED)
166 .add_service("osd")
167 .add_tag("network")
168 .set_description(""),
169
170 Option("monmap", Option::TYPE_STR, Option::LEVEL_ADVANCED)
171 .set_description("path to MonMap file")
172 .set_long_description("This option is normally used during mkfs, but can also "
173 "be used to identify which monitors to connect to.")
174 .add_service("mon")
175 .add_tag("mkfs"),
176
177 Option("mon_host", Option::TYPE_STR, Option::LEVEL_BASIC)
178 .set_description("list of hosts or addresses to search for a monitor")
179 .set_long_description("This is a comma, whitespace, or semicolon separated "
180 "list of IP addresses or hostnames. Hostnames are "
181 "resolved via DNS and all A or AAAA records are "
182 "included in the search list.")
183 .add_service("common"),
184
185 Option("mon_dns_srv_name", Option::TYPE_STR, Option::LEVEL_ADVANCED)
186 .set_description("name of DNS SRV record to check for monitor addresses")
187 .add_service("common")
188 .add_tag("network")
189 .add_see_also("mon_host"),
190
191 // lockdep
192 Option("lockdep", Option::TYPE_BOOL, Option::LEVEL_DEV)
193 .set_description("enable lockdep lock dependency analyzer")
194 .add_service("common"),
195
196 Option("lockdep_force_backtrace", Option::TYPE_BOOL, Option::LEVEL_DEV)
197 .set_description("always gather current backtrace at every lock")
198 .add_service("common")
199 .add_see_also("lockdep"),
200
201 Option("run_dir", Option::TYPE_STR, Option::LEVEL_ADVANCED)
202 .set_default("/var/run/ceph")
203 .set_description("path for the 'run' directory for storing pid and socket files")
204 .add_service("common")
205 .add_see_also("admin_socket"),
206
207 Option("admin_socket", Option::TYPE_STR, Option::LEVEL_ADVANCED)
208 .set_default("")
209 .set_daemon_default("$run_dir/$cluster-$name.asok")
210 .set_description("path for the runtime control socket file, used by the 'ceph daemon' command")
211 .add_service("common"),
212
213 Option("admin_socket_mode", Option::TYPE_STR, Option::LEVEL_ADVANCED)
214 .set_description("file mode to set for the admin socket file, e.g, '0755'")
215 .add_service("common")
216 .add_see_also("admin_socket"),
217
218 Option("crushtool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
219 .set_description("name of the 'crushtool' utility")
220 .add_service("mon"),
221
222 // daemon
223 Option("daemonize", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
224 .set_default(false)
225 .set_daemon_default(true)
226 .set_description("whether to daemonize (background) after startup")
227 .add_service({"mon", "mgr", "osd", "mds"})
228 .add_tag("service")
229 .add_see_also({"pid_file", "chdir"}),
230
231 Option("setuser", Option::TYPE_STR, Option::LEVEL_ADVANCED)
232 .set_description("uid or user name to switch to on startup")
233 .set_long_description("This is normally specified by the systemd unit file.")
234 .add_service({"mon", "mgr", "osd", "mds"})
235 .add_tag("service")
236 .add_see_also("setgroup"),
237
238 Option("setgroup", Option::TYPE_STR, Option::LEVEL_ADVANCED)
239 .set_description("gid or group name to switch to on startup")
240 .set_long_description("This is normally specified by the systemd unit file.")
241 .add_service({"mon", "mgr", "osd", "mds"})
242 .add_tag("service")
243 .add_see_also("setuser"),
244
245 Option("setuser_match_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
246 .set_description("if set, setuser/setgroup is condition on this path matching ownership")
247 .set_long_description("If setuser or setgroup are specified, and this option is non-empty, then the uid/gid of the daemon will only be changed if the file or directory specified by this option has a matching uid and/or gid. This exists primarily to allow switching to user ceph for OSDs to be conditional on whether the osd data contents have also been chowned after an upgrade. This is normally specified by the systemd unit file.")
248 .add_service({"mon", "mgr", "osd", "mds"})
249 .add_tag("service")
250 .add_see_also({"setuser", "setgroup"}),
251
252 Option("pid_file", Option::TYPE_STR, Option::LEVEL_ADVANCED)
253 .set_description("path to write a pid file (if any)")
254 .add_service({"mon", "mgr", "osd", "mds"})
255 .add_tag("service"),
256
257 Option("chdir", Option::TYPE_STR, Option::LEVEL_ADVANCED)
258 .set_description("path to chdir(2) to after daemonizing")
259 .add_service({"mon", "mgr", "osd", "mds"})
260 .add_tag("service")
261 .add_see_also("daemonize"),
262
263 Option("fatal_signal_handlers", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
264 .set_default(true)
265 .set_description("whether to register signal handlers for SIGABRT etc that dump a stack trace")
266 .set_long_description("This is normally true for daemons and values for libraries.")
267 .add_service({"mon", "mgr", "osd", "mds"})
268 .add_tag("service"),
269
270 // restapi
271 Option("restapi_log_level", Option::TYPE_STR, Option::LEVEL_ADVANCED)
272 .set_description("default set by python code"),
273
274 Option("restapi_base_url", Option::TYPE_STR, Option::LEVEL_ADVANCED)
275 .set_description("default set by python code"),
276
277 Option("erasure_code_dir", Option::TYPE_STR, Option::LEVEL_ADVANCED)
278 .set_default(CEPH_PKGLIBDIR"/erasure-code")
279 .set_description("directory where erasure-code plugins can be found")
280 .add_service({"mon", "osd"})
281 .set_safe(),
282
283 // logging
284 Option("log_file", Option::TYPE_STR, Option::LEVEL_BASIC)
285 .set_default("")
286 .set_daemon_default("/var/log/ceph/$cluster-$name.log")
287 .set_description("path to log file")
288 .add_see_also({"log_to_stderr",
289 "err_to_stderr",
290 "log_to_syslog",
291 "err_to_syslog"}),
292
293 Option("log_max_new", Option::TYPE_INT, Option::LEVEL_ADVANCED)
294 .set_default(1000)
295 .set_description("max unwritten log entries to allow before waiting to flush to the log")
296 .add_see_also("log_max_recent"),
297
298 Option("log_max_recent", Option::TYPE_INT, Option::LEVEL_ADVANCED)
299 .set_default(500)
300 .set_daemon_default(10000)
301 .set_description("recent log entries to keep in memory to dump in the event of a crash")
302 .set_long_description("The purpose of this option is to log at a higher debug level only to the in-memory buffer, and write out the detailed log messages only if there is a crash. Only log entries below the lower log level will be written unconditionally to the log. For example, debug_osd=1/5 will write everything <= 1 to the log unconditionally but keep entries at levels 2-5 in memory. If there is a seg fault or assertion failure, all entries will be dumped to the log."),
303
304 Option("log_to_stderr", Option::TYPE_BOOL, Option::LEVEL_BASIC)
305 .set_default(true)
306 .set_daemon_default(false)
307 .set_description("send log lines to stderr"),
308
309 Option("err_to_stderr", Option::TYPE_BOOL, Option::LEVEL_BASIC)
310 .set_default(false)
311 .set_daemon_default(true)
312 .set_description("send critical error log lines to stderr"),
313
314 Option("log_to_syslog", Option::TYPE_BOOL, Option::LEVEL_BASIC)
315 .set_default(false)
316 .set_description("send log lines to syslog facility"),
317
318 Option("err_to_syslog", Option::TYPE_BOOL, Option::LEVEL_BASIC)
319 .set_default(false)
320 .set_description("send critical error log lines to syslog facility"),
321
322 Option("log_flush_on_exit", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
323 .set_default(false)
324 .set_description("set a process exit handler to ensure the log is flushed on exit"),
325
326 Option("log_stop_at_utilization", Option::TYPE_FLOAT, Option::LEVEL_BASIC)
327 .set_default(.97)
328 .set_min_max(0.0, 1.0)
329 .set_description("stop writing to the log file when device utilization reaches this ratio")
330 .add_see_also("log_file"),
331
332 Option("log_to_graylog", Option::TYPE_BOOL, Option::LEVEL_BASIC)
333 .set_default(false)
334 .set_description("send log lines to remote graylog server")
335 .add_see_also({"err_to_graylog",
336 "log_graylog_host",
337 "log_graylog_port"}),
338
339 Option("err_to_graylog", Option::TYPE_BOOL, Option::LEVEL_BASIC)
340 .set_default(false)
341 .set_description("send critical error log lines to remote graylog server")
342 .add_see_also({"log_to_graylog",
343 "log_graylog_host",
344 "log_graylog_port"}),
345
346 Option("log_graylog_host", Option::TYPE_STR, Option::LEVEL_BASIC)
347 .set_default("127.0.0.1")
348 .set_description("address or hostname of graylog server to log to")
349 .add_see_also({"log_to_graylog",
350 "err_to_graylog",
351 "log_graylog_port"}),
352
353 Option("log_graylog_port", Option::TYPE_INT, Option::LEVEL_BASIC)
354 .set_default(12201)
355 .set_description("port number for the remote graylog server")
356 .add_see_also("log_graylog_host"),
357
358
359
360 // unmodified
361 Option("clog_to_monitors", Option::TYPE_STR, Option::LEVEL_ADVANCED)
362 .set_default("default=true")
363 .set_description(""),
364
365 Option("clog_to_syslog", Option::TYPE_STR, Option::LEVEL_ADVANCED)
366 .set_default("false")
367 .set_description(""),
368
369 Option("clog_to_syslog_level", Option::TYPE_STR, Option::LEVEL_ADVANCED)
370 .set_default("info")
371 .set_description(""),
372
373 Option("clog_to_syslog_facility", Option::TYPE_STR, Option::LEVEL_ADVANCED)
374 .set_default("default=daemon audit=local0")
375 .set_description(""),
376
377 Option("clog_to_graylog", Option::TYPE_STR, Option::LEVEL_ADVANCED)
378 .set_default("false")
379 .set_description(""),
380
381 Option("clog_to_graylog_host", Option::TYPE_STR, Option::LEVEL_ADVANCED)
382 .set_default("127.0.0.1")
383 .set_description(""),
384
385 Option("clog_to_graylog_port", Option::TYPE_STR, Option::LEVEL_ADVANCED)
386 .set_default("12201")
387 .set_description(""),
388
389 Option("mon_cluster_log_to_syslog", Option::TYPE_STR, Option::LEVEL_ADVANCED)
390 .set_default("default=false")
391 .set_description(""),
392
393 Option("mon_cluster_log_to_syslog_level", Option::TYPE_STR, Option::LEVEL_ADVANCED)
394 .set_default("info")
395 .set_description(""),
396
397 Option("mon_cluster_log_to_syslog_facility", Option::TYPE_STR, Option::LEVEL_ADVANCED)
398 .set_default("daemon")
399 .set_description(""),
400
401 Option("mon_cluster_log_file", Option::TYPE_STR, Option::LEVEL_ADVANCED)
402 .set_default("default=/var/log/ceph/$cluster.$channel.log cluster=/var/log/ceph/$cluster.log")
403 .set_description(""),
404
405 Option("mon_cluster_log_file_level", Option::TYPE_STR, Option::LEVEL_ADVANCED)
406 .set_default("info")
407 .set_description(""),
408
409 Option("mon_cluster_log_to_graylog", Option::TYPE_STR, Option::LEVEL_ADVANCED)
410 .set_default("false")
411 .set_description(""),
412
413 Option("mon_cluster_log_to_graylog_host", Option::TYPE_STR, Option::LEVEL_ADVANCED)
414 .set_default("127.0.0.1")
415 .set_description(""),
416
417 Option("mon_cluster_log_to_graylog_port", Option::TYPE_STR, Option::LEVEL_ADVANCED)
418 .set_default("12201")
419 .set_description(""),
420
421 Option("enable_experimental_unrecoverable_data_corrupting_features", Option::TYPE_STR, Option::LEVEL_ADVANCED)
422 .set_default("")
423 .set_description(""),
424
425 Option("plugin_dir", Option::TYPE_STR, Option::LEVEL_ADVANCED)
426 .set_default(CEPH_PKGLIBDIR)
427 .set_description("")
428 .set_safe(),
429
430 Option("xio_trace_mempool", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
431 .set_default(false)
432 .set_description(""),
433
434 Option("xio_trace_msgcnt", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
435 .set_default(false)
436 .set_description(""),
437
438 Option("xio_trace_xcon", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
439 .set_default(false)
440 .set_description(""),
441
442 Option("xio_queue_depth", Option::TYPE_INT, Option::LEVEL_ADVANCED)
443 .set_default(128)
444 .set_description(""),
445
446 Option("xio_mp_min", Option::TYPE_INT, Option::LEVEL_ADVANCED)
447 .set_default(128)
448 .set_description(""),
449
450 Option("xio_mp_max_64", Option::TYPE_INT, Option::LEVEL_ADVANCED)
451 .set_default(65536)
452 .set_description(""),
453
454 Option("xio_mp_max_256", Option::TYPE_INT, Option::LEVEL_ADVANCED)
455 .set_default(8192)
456 .set_description(""),
457
458 Option("xio_mp_max_1k", Option::TYPE_INT, Option::LEVEL_ADVANCED)
459 .set_default(8192)
460 .set_description(""),
461
462 Option("xio_mp_max_page", Option::TYPE_INT, Option::LEVEL_ADVANCED)
463 .set_default(4096)
464 .set_description(""),
465
466 Option("xio_mp_max_hint", Option::TYPE_INT, Option::LEVEL_ADVANCED)
467 .set_default(4096)
468 .set_description(""),
469
470 Option("xio_portal_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
471 .set_default(2)
472 .set_description(""),
473
474 Option("xio_max_conns_per_portal", Option::TYPE_INT, Option::LEVEL_ADVANCED)
475 .set_default(32)
476 .set_description(""),
477
478 Option("xio_transport_type", Option::TYPE_STR, Option::LEVEL_ADVANCED)
479 .set_default("rdma")
480 .set_description(""),
481
482 Option("xio_max_send_inline", Option::TYPE_INT, Option::LEVEL_ADVANCED)
483 .set_default(512)
484 .set_description(""),
485
486 Option("compressor_zlib_isal", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
487 .set_default(false)
488 .set_description(""),
489
490 Option("compressor_zlib_level", Option::TYPE_INT, Option::LEVEL_ADVANCED)
491 .set_default(5)
492 .set_description(""),
493
494 Option("async_compressor_enabled", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
495 .set_default(false)
496 .set_description(""),
497
498 Option("async_compressor_type", Option::TYPE_STR, Option::LEVEL_ADVANCED)
499 .set_default("snappy")
500 .set_description(""),
501
502 Option("async_compressor_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
503 .set_default(2)
504 .set_description(""),
505
506 Option("async_compressor_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
507 .set_default(5)
508 .set_description(""),
509
510 Option("async_compressor_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
511 .set_default(30)
512 .set_description(""),
513
514 Option("plugin_crypto_accelerator", Option::TYPE_STR, Option::LEVEL_ADVANCED)
515 .set_default("crypto_isal")
516 .set_description(""),
517
518 Option("mempool_debug", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
519 .set_default(false)
520 .set_description(""),
521
522 Option("key", Option::TYPE_STR, Option::LEVEL_ADVANCED)
523 .set_default("")
524 .set_description(""),
525
526 Option("keyfile", Option::TYPE_STR, Option::LEVEL_ADVANCED)
527 .set_default("")
528 .set_description(""),
529
530 Option("keyring", Option::TYPE_STR, Option::LEVEL_ADVANCED)
531 .set_default(
532 "/etc/ceph/$cluster.$name.keyring,/etc/ceph/$cluster.keyring,"
533 "/etc/ceph/keyring,/etc/ceph/keyring.bin,"
534 #if defined(__FreeBSD)
535 "/usr/local/etc/ceph/$cluster.$name.keyring,"
536 "/usr/local/etc/ceph/$cluster.keyring,"
537 "/usr/local/etc/ceph/keyring,/usr/local/etc/ceph/keyring.bin,"
538 #endif
539 )
540 .set_description(""),
541
542 Option("heartbeat_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
543 .set_default(5)
544 .set_description(""),
545
546 Option("heartbeat_file", Option::TYPE_STR, Option::LEVEL_ADVANCED)
547 .set_default("")
548 .set_description(""),
549
550 Option("heartbeat_inject_failure", Option::TYPE_INT, Option::LEVEL_DEV)
551 .set_default(0)
552 .set_description(""),
553
554 Option("perf", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
555 .set_default(true)
556 .set_description(""),
557
558 Option("ms_type", Option::TYPE_STR, Option::LEVEL_ADVANCED)
559 .set_default("async+posix")
560 .set_description("")
561 .set_safe(),
562
563 Option("ms_public_type", Option::TYPE_STR, Option::LEVEL_ADVANCED)
564 .set_default("")
565 .set_description(""),
566
567 Option("ms_cluster_type", Option::TYPE_STR, Option::LEVEL_ADVANCED)
568 .set_default("")
569 .set_description(""),
570
571 Option("ms_tcp_nodelay", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
572 .set_default(true)
573 .set_description(""),
574
575 Option("ms_tcp_rcvbuf", Option::TYPE_INT, Option::LEVEL_ADVANCED)
576 .set_default(0)
577 .set_description(""),
578
579 Option("ms_tcp_prefetch_max_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
580 .set_default(4096)
581 .set_description(""),
582
583 Option("ms_initial_backoff", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
584 .set_default(.2)
585 .set_description(""),
586
587 Option("ms_max_backoff", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
588 .set_default(15.0)
589 .set_description(""),
590
591 Option("ms_crc_data", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
592 .set_default(true)
593 .set_description(""),
594
595 Option("ms_crc_header", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
596 .set_default(true)
597 .set_description(""),
598
599 Option("ms_die_on_bad_msg", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
600 .set_default(false)
601 .set_description(""),
602
603 Option("ms_die_on_unhandled_msg", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
604 .set_default(false)
605 .set_description(""),
606
607 Option("ms_die_on_old_message", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
608 .set_default(false)
609 .set_description(""),
610
611 Option("ms_die_on_skipped_message", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
612 .set_default(false)
613 .set_description(""),
614
615 Option("ms_dispatch_throttle_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
616 .set_default(100 << 20)
617 .set_description(""),
618
619 Option("ms_bind_ipv6", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
620 .set_default(false)
621 .set_description(""),
622
623 Option("ms_bind_port_min", Option::TYPE_INT, Option::LEVEL_ADVANCED)
624 .set_default(6800)
625 .set_description(""),
626
627 Option("ms_bind_port_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
628 .set_default(7300)
629 .set_description(""),
630
631 Option("ms_bind_retry_count", Option::TYPE_INT, Option::LEVEL_ADVANCED)
632 #if !defined(__FreeBSD__)
633 .set_default(3)
634 #else
635 // FreeBSD does not use SO_REAUSEADDR so allow for a bit more time per default
636 .set_default(6)
637 #endif
638 .set_description(""),
639
640 Option("ms_bind_retry_delay", Option::TYPE_INT, Option::LEVEL_ADVANCED)
641 #if !defined(__FreeBSD__)
642 .set_default(5)
643 #else
644 // FreeBSD does not use SO_REAUSEADDR so allow for a bit more time per default
645 .set_default(6)
646 #endif
647 .set_description(""),
648
649 Option("ms_bind_before_connect", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
650 .set_default(false)
651 .set_description(""),
652
653 Option("ms_tcp_listen_backlog", Option::TYPE_INT, Option::LEVEL_ADVANCED)
654 .set_default(512)
655 .set_description(""),
656
657 Option("ms_rwthread_stack_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
658 .set_default(1024 << 10)
659 .set_description(""),
660
661 Option("ms_tcp_read_timeout", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
662 .set_default(900)
663 .set_description(""),
664
665 Option("ms_pq_max_tokens_per_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
666 .set_default(16777216)
667 .set_description(""),
668
669 Option("ms_pq_min_cost", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
670 .set_default(65536)
671 .set_description(""),
672
673 Option("ms_inject_socket_failures", Option::TYPE_UINT, Option::LEVEL_DEV)
674 .set_default(0)
675 .set_description(""),
676
677 Option("ms_inject_delay_type", Option::TYPE_STR, Option::LEVEL_DEV)
678 .set_default("")
679 .set_description("")
680 .set_safe(),
681
682 Option("ms_inject_delay_msg_type", Option::TYPE_STR, Option::LEVEL_DEV)
683 .set_default("")
684 .set_description(""),
685
686 Option("ms_inject_delay_max", Option::TYPE_FLOAT, Option::LEVEL_DEV)
687 .set_default(1)
688 .set_description(""),
689
690 Option("ms_inject_delay_probability", Option::TYPE_FLOAT, Option::LEVEL_DEV)
691 .set_default(0)
692 .set_description(""),
693
694 Option("ms_inject_internal_delays", Option::TYPE_FLOAT, Option::LEVEL_DEV)
695 .set_default(0)
696 .set_description(""),
697
698 Option("ms_dump_on_send", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
699 .set_default(false)
700 .set_description(""),
701
702 Option("ms_dump_corrupt_message_level", Option::TYPE_INT, Option::LEVEL_ADVANCED)
703 .set_default(1)
704 .set_description(""),
705
706 Option("ms_async_op_threads", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
707 .set_default(3)
708 .set_description(""),
709
710 Option("ms_async_max_op_threads", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
711 .set_default(5)
712 .set_description(""),
713
714 Option("ms_async_set_affinity", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
715 .set_default(true)
716 .set_description(""),
717
718 Option("ms_async_affinity_cores", Option::TYPE_STR, Option::LEVEL_ADVANCED)
719 .set_default("")
720 .set_description(""),
721
722 Option("ms_async_rdma_device_name", Option::TYPE_STR, Option::LEVEL_ADVANCED)
723 .set_default("")
724 .set_description(""),
725
726 Option("ms_async_rdma_enable_hugepage", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
727 .set_default(false)
728 .set_description(""),
729
730 Option("ms_async_rdma_buffer_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
731 .set_default(128 << 10)
732 .set_description(""),
733
734 Option("ms_async_rdma_send_buffers", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
735 .set_default(1024)
736 .set_description(""),
737
738 Option("ms_async_rdma_receive_buffers", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
739 .set_default(1024)
740 .set_description(""),
741
742 Option("ms_async_rdma_port_num", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
743 .set_default(1)
744 .set_description(""),
745
746 Option("ms_async_rdma_polling_us", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
747 .set_default(1000)
748 .set_description(""),
749
750 Option("ms_async_rdma_local_gid", Option::TYPE_STR, Option::LEVEL_ADVANCED)
751 .set_default("")
752 .set_description(""),
753
754 Option("ms_async_rdma_roce_ver", Option::TYPE_INT, Option::LEVEL_ADVANCED)
755 .set_default(1)
756 .set_description(""),
757
758 Option("ms_async_rdma_sl", Option::TYPE_INT, Option::LEVEL_ADVANCED)
759 .set_default(3)
760 .set_description(""),
761
762 Option("ms_async_rdma_dscp", Option::TYPE_INT, Option::LEVEL_ADVANCED)
763 .set_default(96)
764 .set_description(""),
765
766 Option("ms_dpdk_port_id", Option::TYPE_INT, Option::LEVEL_ADVANCED)
767 .set_default(0)
768 .set_description(""),
769
770 Option("ms_dpdk_coremask", Option::TYPE_STR, Option::LEVEL_ADVANCED)
771 .set_default("1")
772 .set_description("")
773 .set_safe(),
774
775 Option("ms_dpdk_memory_channel", Option::TYPE_STR, Option::LEVEL_ADVANCED)
776 .set_default("4")
777 .set_description(""),
778
779 Option("ms_dpdk_hugepages", Option::TYPE_STR, Option::LEVEL_ADVANCED)
780 .set_default("")
781 .set_description(""),
782
783 Option("ms_dpdk_pmd", Option::TYPE_STR, Option::LEVEL_ADVANCED)
784 .set_default("")
785 .set_description(""),
786
787 Option("ms_dpdk_host_ipv4_addr", Option::TYPE_STR, Option::LEVEL_ADVANCED)
788 .set_default("")
789 .set_description("")
790 .set_safe(),
791
792 Option("ms_dpdk_gateway_ipv4_addr", Option::TYPE_STR, Option::LEVEL_ADVANCED)
793 .set_default("")
794 .set_description("")
795 .set_safe(),
796
797 Option("ms_dpdk_netmask_ipv4_addr", Option::TYPE_STR, Option::LEVEL_ADVANCED)
798 .set_default("")
799 .set_description("")
800 .set_safe(),
801
802 Option("ms_dpdk_lro", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
803 .set_default(true)
804 .set_description(""),
805
806 Option("ms_dpdk_hw_flow_control", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
807 .set_default(true)
808 .set_description(""),
809
810 Option("ms_dpdk_hw_queue_weight", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
811 .set_default(1)
812 .set_description(""),
813
814 Option("ms_dpdk_debug_allow_loopback", Option::TYPE_BOOL, Option::LEVEL_DEV)
815 .set_default(false)
816 .set_description(""),
817
818 Option("ms_dpdk_rx_buffer_count_per_core", Option::TYPE_INT, Option::LEVEL_ADVANCED)
819 .set_default(8192)
820 .set_description(""),
821
822 Option("inject_early_sigterm", Option::TYPE_BOOL, Option::LEVEL_DEV)
823 .set_default(false)
824 .set_description(""),
825
826 Option("mon_data", Option::TYPE_STR, Option::LEVEL_ADVANCED)
827 .set_default("/var/lib/ceph/mon/$cluster-$id")
828 .set_description(""),
829
830 Option("mon_initial_members", Option::TYPE_STR, Option::LEVEL_ADVANCED)
831 .set_default("")
832 .set_description(""),
833
834 Option("mon_compact_on_start", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
835 .set_default(false)
836 .set_description(""),
837
838 Option("mon_compact_on_bootstrap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
839 .set_default(false)
840 .set_description(""),
841
842 Option("mon_compact_on_trim", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
843 .set_default(true)
844 .set_description(""),
845
846 Option("mon_osd_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
847 .set_default(10)
848 .set_description(""),
849
850 Option("mon_cpu_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
851 .set_default(4)
852 .set_description(""),
853
854 Option("mon_osd_mapping_pgs_per_chunk", Option::TYPE_INT, Option::LEVEL_ADVANCED)
855 .set_default(4096)
856 .set_description(""),
857
858 Option("mon_osd_max_creating_pgs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
859 .set_default(1024)
860 .set_description(""),
861
862 Option("mon_tick_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
863 .set_default(5)
864 .set_description(""),
865
866 Option("mon_session_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
867 .set_default(300)
868 .set_description(""),
869
870 Option("mon_subscribe_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
871 .set_default(24*3600)
872 .set_description(""),
873
874 Option("mon_delta_reset_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
875 .set_default(10)
876 .set_description(""),
877
878 Option("mon_osd_laggy_halflife", Option::TYPE_INT, Option::LEVEL_ADVANCED)
879 .set_default(60*60)
880 .set_description(""),
881
882 Option("mon_osd_laggy_weight", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
883 .set_default(.3)
884 .set_description(""),
885
886 Option("mon_osd_laggy_max_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
887 .set_default(300)
888 .set_description(""),
889
890 Option("mon_osd_adjust_heartbeat_grace", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
891 .set_default(true)
892 .set_description(""),
893
894 Option("mon_osd_adjust_down_out_interval", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
895 .set_default(true)
896 .set_description(""),
897
898 Option("mon_osd_auto_mark_in", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
899 .set_default(false)
900 .set_description(""),
901
902 Option("mon_osd_auto_mark_auto_out_in", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
903 .set_default(true)
904 .set_description(""),
905
906 Option("mon_osd_auto_mark_new_in", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
907 .set_default(true)
908 .set_description(""),
909
910 Option("mon_osd_destroyed_out_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
911 .set_default(600)
912 .set_description(""),
913
914 Option("mon_osd_down_out_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
915 .set_default(600)
916 .set_description(""),
917
918 Option("mon_osd_down_out_subtree_limit", Option::TYPE_STR, Option::LEVEL_ADVANCED)
919 .set_default("rack")
920 .set_description(""),
921
922 Option("mon_osd_min_up_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
923 .set_default(.3)
924 .set_description(""),
925
926 Option("mon_osd_min_in_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
927 .set_default(.75)
928 .set_description(""),
929
930 Option("mon_osd_warn_op_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
931 .set_default(32)
932 .set_description(""),
933
934 Option("mon_osd_err_op_age_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
935 .set_default(128)
936 .set_description(""),
937
938 Option("mon_osd_max_split_count", Option::TYPE_INT, Option::LEVEL_ADVANCED)
939 .set_default(32)
940 .set_description(""),
941
942 Option("mon_osd_allow_primary_temp", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
943 .set_default(false)
944 .set_description(""),
945
946 Option("mon_osd_allow_primary_affinity", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
947 .set_default(false)
948 .set_description(""),
949
950 Option("mon_osd_prime_pg_temp", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
951 .set_default(true)
952 .set_description(""),
953
954 Option("mon_osd_prime_pg_temp_max_time", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
955 .set_default(.5)
956 .set_description(""),
957
958 Option("mon_osd_prime_pg_temp_max_estimate", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
959 .set_default(.25)
960 .set_description(""),
961
962 Option("mon_osd_pool_ec_fast_read", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
963 .set_default(false)
964 .set_description(""),
965
966 Option("mon_stat_smooth_intervals", Option::TYPE_INT, Option::LEVEL_ADVANCED)
967 .set_default(6)
968 .set_description(""),
969
970 Option("mon_election_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
971 .set_default(5)
972 .set_description(""),
973
974 Option("mon_lease", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
975 .set_default(5)
976 .set_description(""),
977
978 Option("mon_lease_renew_interval_factor", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
979 .set_default(.6)
980 .set_description(""),
981
982 Option("mon_lease_ack_timeout_factor", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
983 .set_default(2.0)
984 .set_description(""),
985
986 Option("mon_accept_timeout_factor", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
987 .set_default(2.0)
988 .set_description(""),
989
990 Option("mon_clock_drift_allowed", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
991 .set_default(.050)
992 .set_description(""),
993
994 Option("mon_clock_drift_warn_backoff", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
995 .set_default(5)
996 .set_description(""),
997
998 Option("mon_timecheck_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
999 .set_default(300.0)
1000 .set_description(""),
1001
1002 Option("mon_timecheck_skew_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1003 .set_default(30.0)
1004 .set_description(""),
1005
1006 Option("mon_pg_stuck_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1007 .set_default(60)
1008 .set_description(""),
1009
1010 Option("mon_pg_min_inactive", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1011 .set_default(1)
1012 .set_description(""),
1013
1014 Option("mon_pg_warn_min_per_osd", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1015 .set_default(30)
1016 .set_description(""),
1017
1018 Option("mon_pg_warn_max_per_osd", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1019 .set_default(300)
1020 .set_description(""),
1021
1022 Option("mon_pg_warn_max_object_skew", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1023 .set_default(10.0)
1024 .set_description(""),
1025
1026 Option("mon_pg_warn_min_objects", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1027 .set_default(10000)
1028 .set_description(""),
1029
1030 Option("mon_pg_warn_min_pool_objects", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1031 .set_default(1000)
1032 .set_description(""),
1033
1034 Option("mon_pg_check_down_all_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1035 .set_default(.5)
1036 .set_description(""),
1037
1038 Option("mon_cache_target_full_warn_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1039 .set_default(.66)
1040 .set_description(""),
1041
1042 Option("mon_osd_full_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1043 .set_default(.95)
1044 .set_description(""),
1045
1046 Option("mon_osd_backfillfull_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1047 .set_default(.90)
1048 .set_description(""),
1049
1050 Option("mon_osd_nearfull_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1051 .set_default(.85)
1052 .set_description(""),
1053
1054 Option("mon_osd_initial_require_min_compat_client", Option::TYPE_STR, Option::LEVEL_ADVANCED)
1055 .set_default("jewel")
1056 .set_description(""),
1057
1058 Option("mon_allow_pool_delete", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1059 .set_default(false)
1060 .set_description(""),
1061
1062 Option("mon_fake_pool_delete", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1063 .set_default(false)
1064 .set_description(""),
1065
1066 Option("mon_globalid_prealloc", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1067 .set_default(10000)
1068 .set_description(""),
1069
1070 Option("mon_osd_report_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1071 .set_default(900)
1072 .set_description(""),
1073
1074 Option("mon_force_standby_active", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1075 .set_default(true)
1076 .set_description(""),
1077
1078 Option("mon_warn_on_legacy_crush_tunables", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1079 .set_default(true)
1080 .set_description(""),
1081
1082 Option("mon_crush_min_required_version", Option::TYPE_STR, Option::LEVEL_ADVANCED)
1083 .set_default("firefly")
1084 .set_description(""),
1085
1086 Option("mon_warn_on_crush_straw_calc_version_zero", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1087 .set_default(true)
1088 .set_description(""),
1089
1090 Option("mon_warn_on_osd_down_out_interval_zero", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1091 .set_default(true)
1092 .set_description(""),
1093
1094 Option("mon_warn_on_cache_pools_without_hit_sets", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1095 .set_default(true)
1096 .set_description(""),
1097
1098 Option("mon_warn_on_pool_no_app", Option::TYPE_BOOL, Option::LEVEL_DEV)
1099 .set_default(true)
1100 .set_description("Enable POOL_APP_NOT_ENABLED health check"),
1101
1102 Option("mon_min_osdmap_epochs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1103 .set_default(500)
1104 .set_description(""),
1105
1106 Option("mon_max_pgmap_epochs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1107 .set_default(500)
1108 .set_description(""),
1109
1110 Option("mon_max_log_epochs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1111 .set_default(500)
1112 .set_description(""),
1113
1114 Option("mon_max_mdsmap_epochs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1115 .set_default(500)
1116 .set_description(""),
1117
1118 Option("mon_max_osd", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1119 .set_default(10000)
1120 .set_description(""),
1121
1122 Option("mon_probe_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1123 .set_default(2.0)
1124 .set_description(""),
1125
1126 Option("mon_client_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1127 .set_default(100ul << 20)
1128 .set_description(""),
1129
1130 Option("mon_mgr_proxy_client_bytes_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1131 .set_default(.3)
1132 .set_description(""),
1133
1134 Option("mon_log_max_summary", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1135 .set_default(50)
1136 .set_description(""),
1137
1138 Option("mon_daemon_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1139 .set_default(400ul << 20)
1140 .set_description(""),
1141
1142 Option("mon_max_log_entries_per_event", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1143 .set_default(4096)
1144 .set_description(""),
1145
1146 Option("mon_reweight_min_pgs_per_osd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1147 .set_default(10)
1148 .set_description(""),
1149
1150 Option("mon_reweight_min_bytes_per_osd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1151 .set_default(100*1024*1024)
1152 .set_description(""),
1153
1154 Option("mon_reweight_max_osds", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1155 .set_default(4)
1156 .set_description(""),
1157
1158 Option("mon_reweight_max_change", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1159 .set_default(0.05)
1160 .set_description(""),
1161
1162 Option("mon_health_data_update_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1163 .set_default(60.0)
1164 .set_description(""),
1165
1166 Option("mon_health_to_clog", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1167 .set_default(true)
1168 .set_description(""),
1169
1170 Option("mon_health_to_clog_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1171 .set_default(3600)
1172 .set_description(""),
1173
1174 Option("mon_health_to_clog_tick_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1175 .set_default(60.0)
1176 .set_description(""),
1177
1178 Option("mon_health_preluminous_compat", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1179 .set_default(false)
1180 .set_description("Include health warnings in preluminous JSON fields"),
1181
1182 Option("mon_health_preluminous_compat_warning", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1183 .set_default(true)
1184 .set_description("Warn about the health JSON format change in preluminous JSON fields"),
1185
1186 Option("mon_health_max_detail", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1187 .set_default(50)
1188 .set_description(""),
1189
1190 Option("mon_data_avail_crit", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1191 .set_default(5)
1192 .set_description(""),
1193
1194 Option("mon_data_avail_warn", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1195 .set_default(30)
1196 .set_description(""),
1197
1198 Option("mon_data_size_warn", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1199 .set_default(15ull*1024*1024*1024)
1200 .set_description(""),
1201
1202 Option("mon_warn_not_scrubbed", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1203 .set_default(0)
1204 .set_description(""),
1205
1206 Option("mon_warn_not_deep_scrubbed", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1207 .set_default(0)
1208 .set_description(""),
1209
1210 Option("mon_scrub_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1211 .set_default(3600*24)
1212 .set_description(""),
1213
1214 Option("mon_scrub_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1215 .set_default(60*5)
1216 .set_description(""),
1217
1218 Option("mon_scrub_max_keys", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1219 .set_default(100)
1220 .set_description(""),
1221
1222 Option("mon_scrub_inject_crc_mismatch", Option::TYPE_FLOAT, Option::LEVEL_DEV)
1223 .set_default(0.0)
1224 .set_description(""),
1225
1226 Option("mon_scrub_inject_missing_keys", Option::TYPE_FLOAT, Option::LEVEL_DEV)
1227 .set_default(0.0)
1228 .set_description(""),
1229
1230 Option("mon_config_key_max_entry_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1231 .set_default(4096)
1232 .set_description(""),
1233
1234 Option("mon_sync_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1235 .set_default(60.0)
1236 .set_description(""),
1237
1238 Option("mon_sync_max_payload_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1239 .set_default(1048576)
1240 .set_description(""),
1241
1242 Option("mon_sync_debug", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1243 .set_default(false)
1244 .set_description(""),
1245
1246 Option("mon_inject_sync_get_chunk_delay", Option::TYPE_FLOAT, Option::LEVEL_DEV)
1247 .set_default(0)
1248 .set_description(""),
1249
1250 Option("mon_osd_min_down_reporters", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1251 .set_default(2)
1252 .set_description(""),
1253
1254 Option("mon_osd_reporter_subtree_level", Option::TYPE_STR, Option::LEVEL_ADVANCED)
1255 .set_default("host")
1256 .set_description(""),
1257
1258 Option("mon_osd_force_trim_to", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1259 .set_default(0)
1260 .set_description(""),
1261
1262 Option("mon_mds_force_trim_to", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1263 .set_default(0)
1264 .set_description(""),
1265
1266 Option("mon_mds_skip_sanity", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1267 .set_default(false)
1268 .set_description(""),
1269
1270 Option("mon_debug_deprecated_as_obsolete", Option::TYPE_BOOL, Option::LEVEL_DEV)
1271 .set_default(false)
1272 .set_description(""),
1273
1274 Option("mon_debug_dump_transactions", Option::TYPE_BOOL, Option::LEVEL_DEV)
1275 .set_default(false)
1276 .set_description(""),
1277
1278 Option("mon_debug_dump_json", Option::TYPE_BOOL, Option::LEVEL_DEV)
1279 .set_default(false)
1280 .set_description(""),
1281
1282 Option("mon_debug_dump_location", Option::TYPE_STR, Option::LEVEL_DEV)
1283 .set_default("/var/log/ceph/$cluster-$name.tdump")
1284 .set_description(""),
1285
1286 Option("mon_debug_no_require_luminous", Option::TYPE_BOOL, Option::LEVEL_DEV)
1287 .set_default(false)
1288 .set_description(""),
1289
1290 Option("mon_debug_no_require_bluestore_for_ec_overwrites", Option::TYPE_BOOL, Option::LEVEL_DEV)
1291 .set_default(false)
1292 .set_description(""),
1293
1294 Option("mon_debug_no_initial_persistent_features", Option::TYPE_BOOL, Option::LEVEL_DEV)
1295 .set_default(false)
1296 .set_description(""),
1297
1298 Option("mon_inject_transaction_delay_max", Option::TYPE_FLOAT, Option::LEVEL_DEV)
1299 .set_default(10.0)
1300 .set_description(""),
1301
1302 Option("mon_inject_transaction_delay_probability", Option::TYPE_FLOAT, Option::LEVEL_DEV)
1303 .set_default(0)
1304 .set_description(""),
1305
1306 Option("mon_sync_provider_kill_at", Option::TYPE_INT, Option::LEVEL_DEV)
1307 .set_default(0)
1308 .set_description(""),
1309
1310 Option("mon_sync_requester_kill_at", Option::TYPE_INT, Option::LEVEL_DEV)
1311 .set_default(0)
1312 .set_description(""),
1313
1314 Option("mon_force_quorum_join", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1315 .set_default(false)
1316 .set_description(""),
1317
1318 Option("mon_keyvaluedb", Option::TYPE_STR, Option::LEVEL_ADVANCED)
1319 .set_default("rocksdb")
1320 .set_description(""),
1321
1322 Option("mon_debug_unsafe_allow_tier_with_nonempty_snaps", Option::TYPE_BOOL, Option::LEVEL_DEV)
1323 .set_default(false)
1324 .set_description(""),
1325
1326 Option("mon_osd_blacklist_default_expire", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1327 .set_default(60*60)
1328 .set_description(""),
1329
1330 Option("mon_osd_crush_smoke_test", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1331 .set_default(true)
1332 .set_description(""),
1333
1334 Option("paxos_stash_full_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1335 .set_default(25)
1336 .set_description(""),
1337
1338 Option("paxos_max_join_drift", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1339 .set_default(10)
1340 .set_description(""),
1341
1342 Option("paxos_propose_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1343 .set_default(1.0)
1344 .set_description(""),
1345
1346 Option("paxos_min_wait", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1347 .set_default(0.05)
1348 .set_description(""),
1349
1350 Option("paxos_min", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1351 .set_default(500)
1352 .set_description(""),
1353
1354 Option("paxos_trim_min", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1355 .set_default(250)
1356 .set_description(""),
1357
1358 Option("paxos_trim_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1359 .set_default(500)
1360 .set_description(""),
1361
1362 Option("paxos_service_trim_min", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1363 .set_default(250)
1364 .set_description(""),
1365
1366 Option("paxos_service_trim_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1367 .set_default(500)
1368 .set_description(""),
1369
1370 Option("paxos_kill_at", Option::TYPE_INT, Option::LEVEL_DEV)
1371 .set_default(0)
1372 .set_description(""),
1373
1374 Option("auth_cluster_required", Option::TYPE_STR, Option::LEVEL_ADVANCED)
1375 .set_default("cephx")
1376 .set_description(""),
1377
1378 Option("auth_service_required", Option::TYPE_STR, Option::LEVEL_ADVANCED)
1379 .set_default("cephx")
1380 .set_description(""),
1381
1382 Option("auth_client_required", Option::TYPE_STR, Option::LEVEL_ADVANCED)
1383 .set_default("cephx, none")
1384 .set_description(""),
1385
1386 Option("auth_supported", Option::TYPE_STR, Option::LEVEL_ADVANCED)
1387 .set_default("")
1388 .set_description(""),
1389
1390 Option("max_rotating_auth_attempts", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1391 .set_default(10)
1392 .set_description(""),
1393
1394 Option("cephx_require_signatures", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1395 .set_default(false)
1396 .set_description(""),
1397
1398 Option("cephx_cluster_require_signatures", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1399 .set_default(false)
1400 .set_description(""),
1401
1402 Option("cephx_service_require_signatures", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1403 .set_default(false)
1404 .set_description(""),
1405
1406 Option("cephx_sign_messages", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1407 .set_default(true)
1408 .set_description(""),
1409
1410 Option("auth_mon_ticket_ttl", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1411 .set_default(60*60*12)
1412 .set_description(""),
1413
1414 Option("auth_service_ticket_ttl", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1415 .set_default(60*60)
1416 .set_description(""),
1417
1418 Option("auth_debug", Option::TYPE_BOOL, Option::LEVEL_DEV)
1419 .set_default(false)
1420 .set_description(""),
1421
1422 Option("mon_client_hunt_parallel", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1423 .set_default(2)
1424 .set_description(""),
1425
1426 Option("mon_client_hunt_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1427 .set_default(3.0)
1428 .set_description(""),
1429
1430 Option("mon_client_ping_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1431 .set_default(10.0)
1432 .set_description(""),
1433
1434 Option("mon_client_ping_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1435 .set_default(30.0)
1436 .set_description(""),
1437
1438 Option("mon_client_hunt_interval_backoff", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1439 .set_default(2.0)
1440 .set_description(""),
1441
1442 Option("mon_client_hunt_interval_min_multiple", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1443 .set_default(1.0)
1444 .set_description(""),
1445
1446 Option("mon_client_hunt_interval_max_multiple", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1447 .set_default(10.0)
1448 .set_description(""),
1449
1450 Option("mon_client_max_log_entries_per_message", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1451 .set_default(1000)
1452 .set_description(""),
1453
1454 Option("mon_max_pool_pg_num", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1455 .set_default(65536)
1456 .set_description(""),
1457
1458 Option("mon_pool_quota_warn_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1459 .set_default(0)
1460 .set_description(""),
1461
1462 Option("mon_pool_quota_crit_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1463 .set_default(0)
1464 .set_description(""),
1465
1466 Option("crush_location", Option::TYPE_STR, Option::LEVEL_ADVANCED)
1467 .set_default("")
1468 .set_description(""),
1469
1470 Option("crush_location_hook", Option::TYPE_STR, Option::LEVEL_ADVANCED)
1471 .set_default("")
1472 .set_description(""),
1473
1474 Option("crush_location_hook_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1475 .set_default(10)
1476 .set_description(""),
1477
1478 Option("objecter_tick_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1479 .set_default(5.0)
1480 .set_description(""),
1481
1482 Option("objecter_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1483 .set_default(10.0)
1484 .set_description(""),
1485
1486 Option("objecter_inflight_op_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1487 .set_default(1024*1024*100)
1488 .set_description(""),
1489
1490 Option("objecter_inflight_ops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1491 .set_default(1024)
1492 .set_description(""),
1493
1494 Option("objecter_completion_locks_per_session", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1495 .set_default(32)
1496 .set_description(""),
1497
1498 Option("objecter_inject_no_watch_ping", Option::TYPE_BOOL, Option::LEVEL_DEV)
1499 .set_default(false)
1500 .set_description(""),
1501
1502 Option("objecter_retry_writes_after_first_reply", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1503 .set_default(false)
1504 .set_description(""),
1505
1506 Option("objecter_debug_inject_relock_delay", Option::TYPE_BOOL, Option::LEVEL_DEV)
1507 .set_default(false)
1508 .set_description(""),
1509
1510 Option("filer_max_purge_ops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1511 .set_default(10)
1512 .set_description(""),
1513
1514 Option("filer_max_truncate_ops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1515 .set_default(128)
1516 .set_description(""),
1517
1518 Option("journaler_write_head_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1519 .set_default(15)
1520 .set_description(""),
1521
1522 Option("journaler_prefetch_periods", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1523 .set_default(10)
1524 .set_description(""),
1525
1526 Option("journaler_prezero_periods", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1527 .set_default(5)
1528 .set_description(""),
1529
1530 Option("osd_check_max_object_name_len_on_startup", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1531 .set_default(true)
1532 .set_description(""),
1533
1534 Option("osd_max_backfills", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1535 .set_default(1)
1536 .set_description(""),
1537
1538 Option("osd_min_recovery_priority", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1539 .set_default(0)
1540 .set_description(""),
1541
1542 Option("osd_backfill_retry_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1543 .set_default(30.0)
1544 .set_description(""),
1545
1546 Option("osd_recovery_retry_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1547 .set_default(30.0)
1548 .set_description(""),
1549
1550 Option("osd_agent_max_ops", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1551 .set_default(4)
1552 .set_description(""),
1553
1554 Option("osd_agent_max_low_ops", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1555 .set_default(2)
1556 .set_description(""),
1557
1558 Option("osd_agent_min_evict_effort", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1559 .set_default(.1)
1560 .set_description(""),
1561
1562 Option("osd_agent_quantize_effort", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1563 .set_default(.1)
1564 .set_description(""),
1565
1566 Option("osd_agent_delay_time", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1567 .set_default(5.0)
1568 .set_description(""),
1569
1570 Option("osd_find_best_info_ignore_history_les", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1571 .set_default(false)
1572 .set_description(""),
1573
1574 Option("osd_agent_hist_halflife", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1575 .set_default(1000)
1576 .set_description(""),
1577
1578 Option("osd_agent_slop", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1579 .set_default(.02)
1580 .set_description(""),
1581
1582 Option("osd_uuid", Option::TYPE_UUID, Option::LEVEL_ADVANCED)
1583 .set_default(uuid_d())
1584 .set_description(""),
1585
1586 Option("osd_data", Option::TYPE_STR, Option::LEVEL_ADVANCED)
1587 .set_default("/var/lib/ceph/osd/$cluster-$id")
1588 .set_description(""),
1589
1590 Option("osd_journal", Option::TYPE_STR, Option::LEVEL_ADVANCED)
1591 .set_default("/var/lib/ceph/osd/$cluster-$id/journal")
1592 .set_description(""),
1593
1594 Option("osd_journal_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1595 .set_default(5120)
1596 .set_description(""),
1597
1598 Option("osd_journal_flush_on_shutdown", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1599 .set_default(true)
1600 .set_description(""),
1601
1602 Option("osd_os_flags", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1603 .set_default(0)
1604 .set_description(""),
1605
1606 Option("osd_max_write_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1607 .set_default(90)
1608 .set_description(""),
1609
1610 Option("osd_max_pgls", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1611 .set_default(1024)
1612 .set_description(""),
1613
1614 Option("osd_client_message_size_cap", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1615 .set_default(500*1024L*1024L)
1616 .set_description(""),
1617
1618 Option("osd_client_message_cap", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1619 .set_default(100)
1620 .set_description(""),
1621
1622 Option("osd_pg_bits", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1623 .set_default(6)
1624 .set_description(""),
1625
1626 Option("osd_pgp_bits", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1627 .set_default(6)
1628 .set_description(""),
1629
1630 Option("osd_crush_update_weight_set", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1631 .set_default(true)
1632 .set_description(""),
1633
1634 Option("osd_crush_chooseleaf_type", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1635 .set_default(1)
1636 .set_description(""),
1637
1638 Option("osd_pool_use_gmt_hitset", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1639 .set_default(true)
1640 .set_description(""),
1641
1642 Option("osd_crush_update_on_start", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1643 .set_default(true)
1644 .set_description(""),
1645
1646 Option("osd_class_update_on_start", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1647 .set_default(true)
1648 .set_description(""),
1649
1650 Option("osd_crush_initial_weight", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1651 .set_default(-1)
1652 .set_description(""),
1653
1654 Option("osd_pool_default_crush_rule", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1655 .set_default(-1)
1656 .set_description(""),
1657
1658 Option("osd_pool_erasure_code_stripe_unit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1659 .set_default(4096)
1660 .set_description(""),
1661
1662 Option("osd_pool_default_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1663 .set_default(3)
1664 .set_description(""),
1665
1666 Option("osd_pool_default_min_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1667 .set_default(0)
1668 .set_description(""),
1669
1670 Option("osd_pool_default_pg_num", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1671 .set_default(8)
1672 .set_description(""),
1673
1674 Option("osd_pool_default_pgp_num", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1675 .set_default(8)
1676 .set_description(""),
1677
1678 Option("osd_pool_default_type", Option::TYPE_STR, Option::LEVEL_ADVANCED)
1679 .set_default("replicated")
1680 .set_description(""),
1681
1682 Option("osd_pool_default_erasure_code_profile", Option::TYPE_STR, Option::LEVEL_ADVANCED)
1683 .set_default("plugin=jerasure technique=reed_sol_van k=2 m=1")
1684 .set_description(""),
1685
1686 Option("osd_erasure_code_plugins", Option::TYPE_STR, Option::LEVEL_ADVANCED)
1687 .set_default("jerasure lrc"
1688 #ifdef HAVE_BETTER_YASM_ELF64
1689 " isa"
1690 #endif
1691 )
1692 .set_description(""),
1693
1694 Option("osd_allow_recovery_below_min_size", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1695 .set_default(true)
1696 .set_description(""),
1697
1698 Option("osd_pool_default_flags", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1699 .set_default(0)
1700 .set_description(""),
1701
1702 Option("osd_pool_default_flag_hashpspool", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1703 .set_default(true)
1704 .set_description(""),
1705
1706 Option("osd_pool_default_flag_nodelete", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1707 .set_default(false)
1708 .set_description(""),
1709
1710 Option("osd_pool_default_flag_nopgchange", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1711 .set_default(false)
1712 .set_description(""),
1713
1714 Option("osd_pool_default_flag_nosizechange", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1715 .set_default(false)
1716 .set_description(""),
1717
1718 Option("osd_pool_default_hit_set_bloom_fpp", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1719 .set_default(.05)
1720 .set_description(""),
1721
1722 Option("osd_pool_default_cache_target_dirty_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1723 .set_default(.4)
1724 .set_description(""),
1725
1726 Option("osd_pool_default_cache_target_dirty_high_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1727 .set_default(.6)
1728 .set_description(""),
1729
1730 Option("osd_pool_default_cache_target_full_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1731 .set_default(.8)
1732 .set_description(""),
1733
1734 Option("osd_pool_default_cache_min_flush_age", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1735 .set_default(0)
1736 .set_description(""),
1737
1738 Option("osd_pool_default_cache_min_evict_age", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1739 .set_default(0)
1740 .set_description(""),
1741
1742 Option("osd_pool_default_cache_max_evict_check_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1743 .set_default(10)
1744 .set_description(""),
1745
1746 Option("osd_hit_set_min_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1747 .set_default(1000)
1748 .set_description(""),
1749
1750 Option("osd_hit_set_max_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1751 .set_default(100000)
1752 .set_description(""),
1753
1754 Option("osd_hit_set_namespace", Option::TYPE_STR, Option::LEVEL_ADVANCED)
1755 .set_default(".ceph-internal")
1756 .set_description(""),
1757
1758 Option("osd_tier_promote_max_objects_sec", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1759 .set_default(25)
1760 .set_description(""),
1761
1762 Option("osd_tier_promote_max_bytes_sec", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1763 .set_default(5 * 1024*1024)
1764 .set_description(""),
1765
1766 Option("osd_tier_default_cache_mode", Option::TYPE_STR, Option::LEVEL_ADVANCED)
1767 .set_default("writeback")
1768 .set_description(""),
1769
1770 Option("osd_tier_default_cache_hit_set_count", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1771 .set_default(4)
1772 .set_description(""),
1773
1774 Option("osd_tier_default_cache_hit_set_period", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1775 .set_default(1200)
1776 .set_description(""),
1777
1778 Option("osd_tier_default_cache_hit_set_type", Option::TYPE_STR, Option::LEVEL_ADVANCED)
1779 .set_default("bloom")
1780 .set_description(""),
1781
1782 Option("osd_tier_default_cache_min_read_recency_for_promote", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1783 .set_default(1)
1784 .set_description(""),
1785
1786 Option("osd_tier_default_cache_min_write_recency_for_promote", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1787 .set_default(1)
1788 .set_description(""),
1789
1790 Option("osd_tier_default_cache_hit_set_grade_decay_rate", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1791 .set_default(20)
1792 .set_description(""),
1793
1794 Option("osd_tier_default_cache_hit_set_search_last_n", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1795 .set_default(1)
1796 .set_description(""),
1797
1798 Option("osd_map_dedup", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1799 .set_default(true)
1800 .set_description(""),
1801
1802 Option("osd_map_max_advance", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1803 .set_default(40)
1804 .set_description(""),
1805
1806 Option("osd_map_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1807 .set_default(50)
1808 .set_description(""),
1809
1810 Option("osd_map_message_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1811 .set_default(40)
1812 .set_description(""),
1813
1814 Option("osd_map_share_max_epochs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1815 .set_default(40)
1816 .set_description(""),
1817
1818 Option("osd_inject_bad_map_crc_probability", Option::TYPE_FLOAT, Option::LEVEL_DEV)
1819 .set_default(0)
1820 .set_description(""),
1821
1822 Option("osd_inject_failure_on_pg_removal", Option::TYPE_BOOL, Option::LEVEL_DEV)
1823 .set_default(false)
1824 .set_description(""),
1825
1826 Option("osd_max_markdown_period", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1827 .set_default(600)
1828 .set_description(""),
1829
1830 Option("osd_max_markdown_count", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1831 .set_default(5)
1832 .set_description(""),
1833
1834 Option("osd_peering_wq_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1835 .set_default(2)
1836 .set_description(""),
1837
1838 Option("osd_peering_wq_batch_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1839 .set_default(20)
1840 .set_description(""),
1841
1842 Option("osd_op_pq_max_tokens_per_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1843 .set_default(4194304)
1844 .set_description(""),
1845
1846 Option("osd_op_pq_min_cost", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
1847 .set_default(65536)
1848 .set_description(""),
1849
1850 Option("osd_disk_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1851 .set_default(1)
1852 .set_description(""),
1853
1854 Option("osd_disk_thread_ioprio_class", Option::TYPE_STR, Option::LEVEL_ADVANCED)
1855 .set_default("")
1856 .set_description(""),
1857
1858 Option("osd_disk_thread_ioprio_priority", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1859 .set_default(-1)
1860 .set_description(""),
1861
1862 Option("osd_recover_clone_overlap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
1863 .set_default(true)
1864 .set_description(""),
1865
1866 Option("osd_op_num_threads_per_shard", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1867 .set_default(0)
1868 .set_description(""),
1869
1870 Option("osd_op_num_threads_per_shard_hdd", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1871 .set_default(1)
1872 .set_description(""),
1873
1874 Option("osd_op_num_threads_per_shard_ssd", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1875 .set_default(2)
1876 .set_description(""),
1877
1878 Option("osd_op_num_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1879 .set_default(0)
1880 .set_description(""),
1881
1882 Option("osd_op_num_shards_hdd", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1883 .set_default(5)
1884 .set_description(""),
1885
1886 Option("osd_op_num_shards_ssd", Option::TYPE_INT, Option::LEVEL_ADVANCED)
1887 .set_default(8)
1888 .set_description(""),
1889
1890 Option("osd_op_queue", Option::TYPE_STR, Option::LEVEL_ADVANCED)
1891 .set_default("wpq")
1892 .set_enum_allowed( { "wpq", "prioritized", "mclock_opclass", "mclock_client", "debug_random" } )
1893 .set_description("which operation queue algorithm to use")
1894 .set_long_description("which operation queue algorithm to use; mclock_opclass and mclock_client are currently experimental")
1895 .add_see_also("osd_op_queue_cut_off"),
1896
1897 Option("osd_op_queue_cut_off", Option::TYPE_STR, Option::LEVEL_ADVANCED)
1898 .set_default("low")
1899 .set_enum_allowed( { "low", "high", "debug_random" } )
1900 .set_description("the threshold between high priority ops and low priority ops")
1901 .set_long_description("the threshold between high priority ops that use strict priority ordering and low priority ops that use a fairness algorithm that may or may not incorporate priority")
1902 .add_see_also("osd_op_queue"),
1903
1904 Option("osd_op_queue_mclock_client_op_res", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1905 .set_default(1000.0)
1906 .set_description("mclock reservation of client operator requests")
1907 .set_long_description("mclock reservation of client operator requests when osd_op_queue is either 'mclock_opclass' or 'mclock_client'; higher values increase the reservation")
1908 .add_see_also("osd_op_queue")
1909 .add_see_also("osd_op_queue_mclock_client_op_wgt")
1910 .add_see_also("osd_op_queue_mclock_client_op_lim")
1911 .add_see_also("osd_op_queue_mclock_osd_subop_res")
1912 .add_see_also("osd_op_queue_mclock_osd_subop_wgt")
1913 .add_see_also("osd_op_queue_mclock_osd_subop_lim")
1914 .add_see_also("osd_op_queue_mclock_snap_res")
1915 .add_see_also("osd_op_queue_mclock_snap_wgt")
1916 .add_see_also("osd_op_queue_mclock_snap_lim")
1917 .add_see_also("osd_op_queue_mclock_recov_res")
1918 .add_see_also("osd_op_queue_mclock_recov_wgt")
1919 .add_see_also("osd_op_queue_mclock_recov_lim")
1920 .add_see_also("osd_op_queue_mclock_scrub_res")
1921 .add_see_also("osd_op_queue_mclock_scrub_wgt")
1922 .add_see_also("osd_op_queue_mclock_scrub_lim"),
1923
1924 Option("osd_op_queue_mclock_client_op_wgt", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1925 .set_default(500.0)
1926 .set_description("mclock weight of client operator requests")
1927 .set_long_description("mclock weight of client operator requests when osd_op_queue is either 'mclock_opclass' or 'mclock_client'; higher values increase the weight")
1928 .add_see_also("osd_op_queue")
1929 .add_see_also("osd_op_queue_mclock_client_op_res")
1930 .add_see_also("osd_op_queue_mclock_client_op_lim")
1931 .add_see_also("osd_op_queue_mclock_osd_subop_res")
1932 .add_see_also("osd_op_queue_mclock_osd_subop_wgt")
1933 .add_see_also("osd_op_queue_mclock_osd_subop_lim")
1934 .add_see_also("osd_op_queue_mclock_snap_res")
1935 .add_see_also("osd_op_queue_mclock_snap_wgt")
1936 .add_see_also("osd_op_queue_mclock_snap_lim")
1937 .add_see_also("osd_op_queue_mclock_recov_res")
1938 .add_see_also("osd_op_queue_mclock_recov_wgt")
1939 .add_see_also("osd_op_queue_mclock_recov_lim")
1940 .add_see_also("osd_op_queue_mclock_scrub_res")
1941 .add_see_also("osd_op_queue_mclock_scrub_wgt")
1942 .add_see_also("osd_op_queue_mclock_scrub_lim"),
1943
1944 Option("osd_op_queue_mclock_client_op_lim", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1945 .set_default(0.0)
1946 .set_description("mclock limit of client operator requests")
1947 .set_long_description("mclock limit of client operator requests when osd_op_queue is either 'mclock_opclass' or 'mclock_client'; higher values increase the limit")
1948 .add_see_also("osd_op_queue")
1949 .add_see_also("osd_op_queue_mclock_client_op_res")
1950 .add_see_also("osd_op_queue_mclock_client_op_wgt")
1951 .add_see_also("osd_op_queue_mclock_osd_subop_res")
1952 .add_see_also("osd_op_queue_mclock_osd_subop_wgt")
1953 .add_see_also("osd_op_queue_mclock_osd_subop_lim")
1954 .add_see_also("osd_op_queue_mclock_snap_res")
1955 .add_see_also("osd_op_queue_mclock_snap_wgt")
1956 .add_see_also("osd_op_queue_mclock_snap_lim")
1957 .add_see_also("osd_op_queue_mclock_recov_res")
1958 .add_see_also("osd_op_queue_mclock_recov_wgt")
1959 .add_see_also("osd_op_queue_mclock_recov_lim")
1960 .add_see_also("osd_op_queue_mclock_scrub_res")
1961 .add_see_also("osd_op_queue_mclock_scrub_wgt")
1962 .add_see_also("osd_op_queue_mclock_scrub_lim"),
1963
1964 Option("osd_op_queue_mclock_osd_subop_res", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1965 .set_default(1000.0)
1966 .set_description("mclock reservation of osd sub-operation requests")
1967 .set_long_description("mclock reservation of osd sub-operation requests when osd_op_queue is either 'mclock_opclass' or 'mclock_client'; higher values increase the reservation")
1968 .add_see_also("osd_op_queue")
1969 .add_see_also("osd_op_queue_mclock_client_op_res")
1970 .add_see_also("osd_op_queue_mclock_client_op_wgt")
1971 .add_see_also("osd_op_queue_mclock_client_op_lim")
1972 .add_see_also("osd_op_queue_mclock_osd_subop_wgt")
1973 .add_see_also("osd_op_queue_mclock_osd_subop_lim")
1974 .add_see_also("osd_op_queue_mclock_snap_res")
1975 .add_see_also("osd_op_queue_mclock_snap_wgt")
1976 .add_see_also("osd_op_queue_mclock_snap_lim")
1977 .add_see_also("osd_op_queue_mclock_recov_res")
1978 .add_see_also("osd_op_queue_mclock_recov_wgt")
1979 .add_see_also("osd_op_queue_mclock_recov_lim")
1980 .add_see_also("osd_op_queue_mclock_scrub_res")
1981 .add_see_also("osd_op_queue_mclock_scrub_wgt")
1982 .add_see_also("osd_op_queue_mclock_scrub_lim"),
1983
1984 Option("osd_op_queue_mclock_osd_subop_wgt", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
1985 .set_default(500.0)
1986 .set_description("mclock weight of osd sub-operation requests")
1987 .set_long_description("mclock weight of osd sub-operation requests when osd_op_queue is either 'mclock_opclass' or 'mclock_client'; higher values increase the weight")
1988 .add_see_also("osd_op_queue")
1989 .add_see_also("osd_op_queue_mclock_client_op_res")
1990 .add_see_also("osd_op_queue_mclock_client_op_wgt")
1991 .add_see_also("osd_op_queue_mclock_client_op_lim")
1992 .add_see_also("osd_op_queue_mclock_osd_subop_res")
1993 .add_see_also("osd_op_queue_mclock_osd_subop_lim")
1994 .add_see_also("osd_op_queue_mclock_snap_res")
1995 .add_see_also("osd_op_queue_mclock_snap_wgt")
1996 .add_see_also("osd_op_queue_mclock_snap_lim")
1997 .add_see_also("osd_op_queue_mclock_recov_res")
1998 .add_see_also("osd_op_queue_mclock_recov_wgt")
1999 .add_see_also("osd_op_queue_mclock_recov_lim")
2000 .add_see_also("osd_op_queue_mclock_scrub_res")
2001 .add_see_also("osd_op_queue_mclock_scrub_wgt")
2002 .add_see_also("osd_op_queue_mclock_scrub_lim"),
2003
2004 Option("osd_op_queue_mclock_osd_subop_lim", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2005 .set_default(0.0)
2006 .set_description("mclock limit of osd sub-operation requests")
2007 .set_long_description("mclock limit of osd sub-operation requests when osd_op_queue is either 'mclock_opclass' or 'mclock_client'; higher values increase the limit")
2008 .add_see_also("osd_op_queue")
2009 .add_see_also("osd_op_queue_mclock_client_op_res")
2010 .add_see_also("osd_op_queue_mclock_client_op_wgt")
2011 .add_see_also("osd_op_queue_mclock_client_op_lim")
2012 .add_see_also("osd_op_queue_mclock_osd_subop_res")
2013 .add_see_also("osd_op_queue_mclock_osd_subop_wgt")
2014 .add_see_also("osd_op_queue_mclock_snap_res")
2015 .add_see_also("osd_op_queue_mclock_snap_wgt")
2016 .add_see_also("osd_op_queue_mclock_snap_lim")
2017 .add_see_also("osd_op_queue_mclock_recov_res")
2018 .add_see_also("osd_op_queue_mclock_recov_wgt")
2019 .add_see_also("osd_op_queue_mclock_recov_lim")
2020 .add_see_also("osd_op_queue_mclock_scrub_res")
2021 .add_see_also("osd_op_queue_mclock_scrub_wgt")
2022 .add_see_also("osd_op_queue_mclock_scrub_lim"),
2023
2024 Option("osd_op_queue_mclock_snap_res", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2025 .set_default(0.0)
2026 .set_description("mclock reservation of snaptrim requests")
2027 .set_long_description("mclock reservation of snaptrim requests when osd_op_queue is either 'mclock_opclass' or 'mclock_client'; higher values increase the reservation")
2028 .add_see_also("osd_op_queue")
2029 .add_see_also("osd_op_queue_mclock_client_op_res")
2030 .add_see_also("osd_op_queue_mclock_client_op_wgt")
2031 .add_see_also("osd_op_queue_mclock_client_op_lim")
2032 .add_see_also("osd_op_queue_mclock_osd_subop_res")
2033 .add_see_also("osd_op_queue_mclock_osd_subop_wgt")
2034 .add_see_also("osd_op_queue_mclock_osd_subop_lim")
2035 .add_see_also("osd_op_queue_mclock_snap_wgt")
2036 .add_see_also("osd_op_queue_mclock_snap_lim")
2037 .add_see_also("osd_op_queue_mclock_recov_res")
2038 .add_see_also("osd_op_queue_mclock_recov_wgt")
2039 .add_see_also("osd_op_queue_mclock_recov_lim")
2040 .add_see_also("osd_op_queue_mclock_scrub_res")
2041 .add_see_also("osd_op_queue_mclock_scrub_wgt")
2042 .add_see_also("osd_op_queue_mclock_scrub_lim"),
2043
2044 Option("osd_op_queue_mclock_snap_wgt", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2045 .set_default(1.0)
2046 .set_description("mclock weight of snaptrim requests")
2047 .set_long_description("mclock weight of snaptrim requests when osd_op_queue is either 'mclock_opclass' or 'mclock_client'; higher values increase the weight")
2048 .add_see_also("osd_op_queue")
2049 .add_see_also("osd_op_queue_mclock_client_op_res")
2050 .add_see_also("osd_op_queue_mclock_client_op_wgt")
2051 .add_see_also("osd_op_queue_mclock_client_op_lim")
2052 .add_see_also("osd_op_queue_mclock_osd_subop_res")
2053 .add_see_also("osd_op_queue_mclock_osd_subop_wgt")
2054 .add_see_also("osd_op_queue_mclock_osd_subop_lim")
2055 .add_see_also("osd_op_queue_mclock_snap_res")
2056 .add_see_also("osd_op_queue_mclock_snap_lim")
2057 .add_see_also("osd_op_queue_mclock_recov_res")
2058 .add_see_also("osd_op_queue_mclock_recov_wgt")
2059 .add_see_also("osd_op_queue_mclock_recov_lim")
2060 .add_see_also("osd_op_queue_mclock_scrub_res")
2061 .add_see_also("osd_op_queue_mclock_scrub_wgt")
2062 .add_see_also("osd_op_queue_mclock_scrub_lim"),
2063
2064 Option("osd_op_queue_mclock_snap_lim", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2065 .set_default(0.001)
2066 .set_description("")
2067 .set_description("mclock limit of snaptrim requests")
2068 .set_long_description("mclock limit of snaptrim requests when osd_op_queue is either 'mclock_opclass' or 'mclock_client'; higher values increase the limit")
2069 .add_see_also("osd_op_queue_mclock_client_op_res")
2070 .add_see_also("osd_op_queue_mclock_client_op_wgt")
2071 .add_see_also("osd_op_queue_mclock_client_op_lim")
2072 .add_see_also("osd_op_queue_mclock_osd_subop_res")
2073 .add_see_also("osd_op_queue_mclock_osd_subop_wgt")
2074 .add_see_also("osd_op_queue_mclock_osd_subop_lim")
2075 .add_see_also("osd_op_queue_mclock_snap_res")
2076 .add_see_also("osd_op_queue_mclock_snap_wgt")
2077 .add_see_also("osd_op_queue_mclock_recov_res")
2078 .add_see_also("osd_op_queue_mclock_recov_wgt")
2079 .add_see_also("osd_op_queue_mclock_recov_lim")
2080 .add_see_also("osd_op_queue_mclock_scrub_res")
2081 .add_see_also("osd_op_queue_mclock_scrub_wgt")
2082 .add_see_also("osd_op_queue_mclock_scrub_lim"),
2083
2084 Option("osd_op_queue_mclock_recov_res", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2085 .set_default(0.0)
2086 .set_description("mclock reservation of recovery requests")
2087 .set_long_description("mclock reservation of recovery requests when osd_op_queue is either 'mclock_opclass' or 'mclock_client'; higher values increase the reservation")
2088 .add_see_also("osd_op_queue")
2089 .add_see_also("osd_op_queue_mclock_client_op_res")
2090 .add_see_also("osd_op_queue_mclock_client_op_wgt")
2091 .add_see_also("osd_op_queue_mclock_client_op_lim")
2092 .add_see_also("osd_op_queue_mclock_osd_subop_res")
2093 .add_see_also("osd_op_queue_mclock_osd_subop_wgt")
2094 .add_see_also("osd_op_queue_mclock_osd_subop_lim")
2095 .add_see_also("osd_op_queue_mclock_snap_res")
2096 .add_see_also("osd_op_queue_mclock_snap_wgt")
2097 .add_see_also("osd_op_queue_mclock_snap_lim")
2098 .add_see_also("osd_op_queue_mclock_recov_wgt")
2099 .add_see_also("osd_op_queue_mclock_recov_lim")
2100 .add_see_also("osd_op_queue_mclock_scrub_res")
2101 .add_see_also("osd_op_queue_mclock_scrub_wgt")
2102 .add_see_also("osd_op_queue_mclock_scrub_lim"),
2103
2104 Option("osd_op_queue_mclock_recov_wgt", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2105 .set_default(1.0)
2106 .set_description("mclock weight of recovery requests")
2107 .set_long_description("mclock weight of recovery requests when osd_op_queue is either 'mclock_opclass' or 'mclock_client'; higher values increase the weight")
2108 .add_see_also("osd_op_queue")
2109 .add_see_also("osd_op_queue_mclock_client_op_res")
2110 .add_see_also("osd_op_queue_mclock_client_op_wgt")
2111 .add_see_also("osd_op_queue_mclock_client_op_lim")
2112 .add_see_also("osd_op_queue_mclock_osd_subop_res")
2113 .add_see_also("osd_op_queue_mclock_osd_subop_wgt")
2114 .add_see_also("osd_op_queue_mclock_osd_subop_lim")
2115 .add_see_also("osd_op_queue_mclock_snap_res")
2116 .add_see_also("osd_op_queue_mclock_snap_wgt")
2117 .add_see_also("osd_op_queue_mclock_snap_lim")
2118 .add_see_also("osd_op_queue_mclock_recov_res")
2119 .add_see_also("osd_op_queue_mclock_recov_lim")
2120 .add_see_also("osd_op_queue_mclock_scrub_res")
2121 .add_see_also("osd_op_queue_mclock_scrub_wgt")
2122 .add_see_also("osd_op_queue_mclock_scrub_lim"),
2123
2124 Option("osd_op_queue_mclock_recov_lim", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2125 .set_default(0.001)
2126 .set_description("mclock limit of recovery requests")
2127 .set_long_description("mclock limit of recovery requests when osd_op_queue is either 'mclock_opclass' or 'mclock_client'; higher values increase the limit")
2128 .add_see_also("osd_op_queue")
2129 .add_see_also("osd_op_queue_mclock_client_op_res")
2130 .add_see_also("osd_op_queue_mclock_client_op_wgt")
2131 .add_see_also("osd_op_queue_mclock_client_op_lim")
2132 .add_see_also("osd_op_queue_mclock_osd_subop_res")
2133 .add_see_also("osd_op_queue_mclock_osd_subop_wgt")
2134 .add_see_also("osd_op_queue_mclock_osd_subop_lim")
2135 .add_see_also("osd_op_queue_mclock_snap_res")
2136 .add_see_also("osd_op_queue_mclock_snap_wgt")
2137 .add_see_also("osd_op_queue_mclock_snap_lim")
2138 .add_see_also("osd_op_queue_mclock_recov_res")
2139 .add_see_also("osd_op_queue_mclock_recov_wgt")
2140 .add_see_also("osd_op_queue_mclock_scrub_res")
2141 .add_see_also("osd_op_queue_mclock_scrub_wgt")
2142 .add_see_also("osd_op_queue_mclock_scrub_lim"),
2143
2144 Option("osd_op_queue_mclock_scrub_res", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2145 .set_default(0.0)
2146 .set_description("mclock reservation of scrub requests")
2147 .set_long_description("mclock reservation of scrub requests when osd_op_queue is either 'mclock_opclass' or 'mclock_client'; higher values increase the reservation")
2148 .add_see_also("osd_op_queue")
2149 .add_see_also("osd_op_queue_mclock_client_op_res")
2150 .add_see_also("osd_op_queue_mclock_client_op_wgt")
2151 .add_see_also("osd_op_queue_mclock_client_op_lim")
2152 .add_see_also("osd_op_queue_mclock_osd_subop_res")
2153 .add_see_also("osd_op_queue_mclock_osd_subop_wgt")
2154 .add_see_also("osd_op_queue_mclock_osd_subop_lim")
2155 .add_see_also("osd_op_queue_mclock_snap_res")
2156 .add_see_also("osd_op_queue_mclock_snap_wgt")
2157 .add_see_also("osd_op_queue_mclock_snap_lim")
2158 .add_see_also("osd_op_queue_mclock_recov_res")
2159 .add_see_also("osd_op_queue_mclock_recov_wgt")
2160 .add_see_also("osd_op_queue_mclock_recov_lim")
2161 .add_see_also("osd_op_queue_mclock_scrub_wgt")
2162 .add_see_also("osd_op_queue_mclock_scrub_lim"),
2163
2164 Option("osd_op_queue_mclock_scrub_wgt", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2165 .set_default(1.0)
2166 .set_description("mclock weight of scrub requests")
2167 .set_long_description("mclock weight of scrub requests when osd_op_queue is either 'mclock_opclass' or 'mclock_client'; higher values increase the weight")
2168 .add_see_also("osd_op_queue")
2169 .add_see_also("osd_op_queue_mclock_client_op_res")
2170 .add_see_also("osd_op_queue_mclock_client_op_wgt")
2171 .add_see_also("osd_op_queue_mclock_client_op_lim")
2172 .add_see_also("osd_op_queue_mclock_osd_subop_res")
2173 .add_see_also("osd_op_queue_mclock_osd_subop_wgt")
2174 .add_see_also("osd_op_queue_mclock_osd_subop_lim")
2175 .add_see_also("osd_op_queue_mclock_snap_res")
2176 .add_see_also("osd_op_queue_mclock_snap_wgt")
2177 .add_see_also("osd_op_queue_mclock_snap_lim")
2178 .add_see_also("osd_op_queue_mclock_recov_res")
2179 .add_see_also("osd_op_queue_mclock_recov_wgt")
2180 .add_see_also("osd_op_queue_mclock_recov_lim")
2181 .add_see_also("osd_op_queue_mclock_scrub_res")
2182 .add_see_also("osd_op_queue_mclock_scrub_lim"),
2183
2184 Option("osd_op_queue_mclock_scrub_lim", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2185 .set_default(0.001)
2186 .set_description("mclock weight of limit requests")
2187 .set_long_description("mclock weight of limit requests when osd_op_queue is either 'mclock_opclass' or 'mclock_client'; higher values increase the limit")
2188 .add_see_also("osd_op_queue")
2189 .add_see_also("osd_op_queue_mclock_client_op_res")
2190 .add_see_also("osd_op_queue_mclock_client_op_wgt")
2191 .add_see_also("osd_op_queue_mclock_client_op_lim")
2192 .add_see_also("osd_op_queue_mclock_osd_subop_res")
2193 .add_see_also("osd_op_queue_mclock_osd_subop_wgt")
2194 .add_see_also("osd_op_queue_mclock_osd_subop_lim")
2195 .add_see_also("osd_op_queue_mclock_snap_res")
2196 .add_see_also("osd_op_queue_mclock_snap_wgt")
2197 .add_see_also("osd_op_queue_mclock_snap_lim")
2198 .add_see_also("osd_op_queue_mclock_recov_res")
2199 .add_see_also("osd_op_queue_mclock_recov_wgt")
2200 .add_see_also("osd_op_queue_mclock_recov_lim")
2201 .add_see_also("osd_op_queue_mclock_scrub_res")
2202 .add_see_also("osd_op_queue_mclock_scrub_wgt"),
2203
2204 Option("osd_ignore_stale_divergent_priors", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2205 .set_default(false)
2206 .set_description(""),
2207
2208 Option("osd_read_ec_check_for_errors", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2209 .set_default(false)
2210 .set_description(""),
2211
2212 Option("osd_recover_clone_overlap_limit", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2213 .set_default(10)
2214 .set_description(""),
2215
2216 Option("osd_backfill_scan_min", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2217 .set_default(64)
2218 .set_description(""),
2219
2220 Option("osd_backfill_scan_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2221 .set_default(512)
2222 .set_description(""),
2223
2224 Option("osd_op_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2225 .set_default(15)
2226 .set_description(""),
2227
2228 Option("osd_op_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2229 .set_default(150)
2230 .set_description(""),
2231
2232 Option("osd_recovery_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2233 .set_default(30)
2234 .set_description(""),
2235
2236 Option("osd_recovery_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2237 .set_default(300)
2238 .set_description(""),
2239
2240 Option("osd_recovery_sleep", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2241 .set_default(0)
2242 .set_description("Time in seconds to sleep before next recovery or backfill op"),
2243
2244 Option("osd_recovery_sleep_hdd", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2245 .set_default(0.1)
2246 .set_description("Time in seconds to sleep before next recovery or backfill op for HDDs"),
2247
2248 Option("osd_recovery_sleep_ssd", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2249 .set_default(0)
2250 .set_description("Time in seconds to sleep before next recovery or backfill op for SSDs"),
2251
2252 Option("osd_recovery_sleep_hybrid", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2253 .set_default(0.025)
2254 .set_description("Time in seconds to sleep before next recovery or backfill op when data is on HDD and journal is on SSD"),
2255
2256 Option("osd_snap_trim_sleep", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2257 .set_default(0)
2258 .set_description(""),
2259
2260 Option("osd_scrub_invalid_stats", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2261 .set_default(true)
2262 .set_description(""),
2263
2264 Option("osd_remove_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2265 .set_default(60*60)
2266 .set_description(""),
2267
2268 Option("osd_remove_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2269 .set_default(10*60*60)
2270 .set_description(""),
2271
2272 Option("osd_command_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2273 .set_default(10*60)
2274 .set_description(""),
2275
2276 Option("osd_command_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2277 .set_default(15*60)
2278 .set_description(""),
2279
2280 Option("osd_heartbeat_addr", Option::TYPE_ADDR, Option::LEVEL_ADVANCED)
2281 .set_default(entity_addr_t())
2282 .set_description(""),
2283
2284 Option("osd_heartbeat_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2285 .set_default(6)
2286 .set_description(""),
2287
2288 Option("osd_heartbeat_grace", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2289 .set_default(20)
2290 .set_description(""),
2291
2292 Option("osd_heartbeat_min_peers", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2293 .set_default(10)
2294 .set_description(""),
2295
2296 Option("osd_heartbeat_use_min_delay_socket", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2297 .set_default(false)
2298 .set_description(""),
2299
2300 Option("osd_heartbeat_min_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2301 .set_default(2000)
2302 .set_description(""),
2303
2304 Option("osd_pg_max_concurrent_snap_trims", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2305 .set_default(2)
2306 .set_description(""),
2307
2308 Option("osd_max_trimming_pgs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2309 .set_default(2)
2310 .set_description(""),
2311
2312 Option("osd_heartbeat_min_healthy_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2313 .set_default(.33)
2314 .set_description(""),
2315
2316 Option("osd_mon_heartbeat_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2317 .set_default(30)
2318 .set_description(""),
2319
2320 Option("osd_mon_report_interval_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2321 .set_default(600)
2322 .set_description(""),
2323
2324 Option("osd_mon_report_interval_min", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2325 .set_default(5)
2326 .set_description(""),
2327
2328 Option("osd_mon_report_max_in_flight", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2329 .set_default(2)
2330 .set_description(""),
2331
2332 Option("osd_beacon_report_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2333 .set_default(300)
2334 .set_description(""),
2335
2336 Option("osd_pg_stat_report_interval_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2337 .set_default(500)
2338 .set_description(""),
2339
2340 Option("osd_mon_ack_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2341 .set_default(30.0)
2342 .set_description(""),
2343
2344 Option("osd_stats_ack_timeout_factor", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2345 .set_default(2.0)
2346 .set_description(""),
2347
2348 Option("osd_stats_ack_timeout_decay", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2349 .set_default(.9)
2350 .set_description(""),
2351
2352 Option("osd_default_data_pool_replay_window", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2353 .set_default(45)
2354 .set_description(""),
2355
2356 Option("osd_auto_mark_unfound_lost", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2357 .set_default(false)
2358 .set_description(""),
2359
2360 Option("osd_recovery_delay_start", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2361 .set_default(0)
2362 .set_description(""),
2363
2364 Option("osd_recovery_max_active", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2365 .set_default(3)
2366 .set_description(""),
2367
2368 Option("osd_recovery_max_single_start", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2369 .set_default(1)
2370 .set_description(""),
2371
2372 Option("osd_recovery_max_chunk", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2373 .set_default(8<<20)
2374 .set_description(""),
2375
2376 Option("osd_recovery_max_omap_entries_per_chunk", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2377 .set_default(64000)
2378 .set_description(""),
2379
2380 Option("osd_copyfrom_max_chunk", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2381 .set_default(8<<20)
2382 .set_description(""),
2383
2384 Option("osd_push_per_object_cost", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2385 .set_default(1000)
2386 .set_description(""),
2387
2388 Option("osd_max_push_cost", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2389 .set_default(8<<20)
2390 .set_description(""),
2391
2392 Option("osd_max_push_objects", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2393 .set_default(10)
2394 .set_description(""),
2395
2396 Option("osd_recovery_forget_lost_objects", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2397 .set_default(false)
2398 .set_description(""),
2399
2400 Option("osd_max_scrubs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2401 .set_default(1)
2402 .set_description(""),
2403
2404 Option("osd_scrub_during_recovery", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2405 .set_default(false)
2406 .set_description(""),
2407
2408 Option("osd_scrub_begin_hour", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2409 .set_default(0)
2410 .set_description(""),
2411
2412 Option("osd_scrub_end_hour", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2413 .set_default(24)
2414 .set_description(""),
2415
2416 Option("osd_scrub_load_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2417 .set_default(0.5)
2418 .set_description(""),
2419
2420 Option("osd_scrub_min_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2421 .set_default(60*60*24)
2422 .set_description(""),
2423
2424 Option("osd_scrub_max_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2425 .set_default(7*60*60*24)
2426 .set_description(""),
2427
2428 Option("osd_scrub_interval_randomize_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2429 .set_default(0.5)
2430 .set_description(""),
2431
2432 Option("osd_scrub_backoff_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2433 .set_default(.66)
2434 .set_description(""),
2435
2436 Option("osd_scrub_chunk_min", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2437 .set_default(5)
2438 .set_description(""),
2439
2440 Option("osd_scrub_chunk_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2441 .set_default(25)
2442 .set_description(""),
2443
2444 Option("osd_scrub_sleep", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2445 .set_default(0)
2446 .set_description(""),
2447
2448 Option("osd_scrub_auto_repair", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2449 .set_default(false)
2450 .set_description(""),
2451
2452 Option("osd_scrub_auto_repair_num_errors", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2453 .set_default(5)
2454 .set_description(""),
2455
2456 Option("osd_deep_scrub_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2457 .set_default(60*60*24*7)
2458 .set_description(""),
2459
2460 Option("osd_deep_scrub_randomize_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2461 .set_default(0.15)
2462 .set_description(""),
2463
2464 Option("osd_deep_scrub_stride", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2465 .set_default(524288)
2466 .set_description(""),
2467
2468 Option("osd_deep_scrub_update_digest_min_age", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2469 .set_default(2*60*60)
2470 .set_description(""),
2471
2472 Option("osd_class_dir", Option::TYPE_STR, Option::LEVEL_ADVANCED)
2473 .set_default(CEPH_LIBDIR "/rados-classes")
2474 .set_description(""),
2475
2476 Option("osd_open_classes_on_start", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2477 .set_default(true)
2478 .set_description(""),
2479
2480 Option("osd_class_load_list", Option::TYPE_STR, Option::LEVEL_ADVANCED)
2481 .set_default("cephfs hello journal lock log numops " "rbd refcount replica_log rgw statelog timeindex user version")
2482 .set_description(""),
2483
2484 Option("osd_class_default_list", Option::TYPE_STR, Option::LEVEL_ADVANCED)
2485 .set_default("cephfs hello journal lock log numops " "rbd refcount replica_log rgw statelog timeindex user version")
2486 .set_description(""),
2487
2488 Option("osd_check_for_log_corruption", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2489 .set_default(false)
2490 .set_description(""),
2491
2492 Option("osd_use_stale_snap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2493 .set_default(false)
2494 .set_description(""),
2495
2496 Option("osd_rollback_to_cluster_snap", Option::TYPE_STR, Option::LEVEL_ADVANCED)
2497 .set_default("")
2498 .set_description(""),
2499
2500 Option("osd_default_notify_timeout", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2501 .set_default(30)
2502 .set_description(""),
2503
2504 Option("osd_kill_backfill_at", Option::TYPE_INT, Option::LEVEL_DEV)
2505 .set_default(0)
2506 .set_description(""),
2507
2508 Option("osd_pg_epoch_persisted_max_stale", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2509 .set_default(40)
2510 .set_description(""),
2511
2512 Option("osd_min_pg_log_entries", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2513 .set_default(1500)
2514 .set_description("minimum number of entries to maintain in the PG log")
2515 .add_service("osd")
2516 .add_see_also("osd_max_pg_log_entries")
2517 .add_see_also("osd_pg_log_dups_tracked"),
2518
2519 Option("osd_max_pg_log_entries", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2520 .set_default(10000)
2521 .set_description("maximum number of entries to maintain in the PG log when degraded before we trim")
2522 .add_service("osd")
2523 .add_see_also("osd_min_pg_log_entries")
2524 .add_see_also("osd_pg_log_dups_tracked"),
2525
2526 Option("osd_pg_log_dups_tracked", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2527 .set_default(3000)
2528 .set_description("how many versions back to track in order to detect duplicate ops; this is combined with both the regular pg log entries and additional minimal dup detection entries")
2529 .add_service("osd")
2530 .add_see_also("osd_min_pg_log_entries")
2531 .add_see_also("osd_max_pg_log_entries"),
2532
2533 Option("osd_force_recovery_pg_log_entries_factor", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2534 .set_default(1.3)
2535 .set_description(""),
2536
2537 Option("osd_pg_log_trim_min", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2538 .set_default(100)
2539 .set_description(""),
2540
2541 Option("osd_op_complaint_time", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2542 .set_default(30)
2543 .set_description(""),
2544
2545 Option("osd_command_max_records", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2546 .set_default(256)
2547 .set_description(""),
2548
2549 Option("osd_max_pg_blocked_by", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2550 .set_default(16)
2551 .set_description(""),
2552
2553 Option("osd_op_log_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2554 .set_default(5)
2555 .set_description(""),
2556
2557 Option("osd_verify_sparse_read_holes", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2558 .set_default(false)
2559 .set_description(""),
2560
2561 Option("osd_backoff_on_unfound", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2562 .set_default(true)
2563 .set_description(""),
2564
2565 Option("osd_backoff_on_degraded", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2566 .set_default(false)
2567 .set_description(""),
2568
2569 Option("osd_backoff_on_down", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2570 .set_default(true)
2571 .set_description(""),
2572
2573 Option("osd_backoff_on_peering", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2574 .set_default(false)
2575 .set_description(""),
2576
2577 Option("osd_debug_crash_on_ignored_backoff", Option::TYPE_BOOL, Option::LEVEL_DEV)
2578 .set_default(false)
2579 .set_description(""),
2580
2581 Option("osd_debug_inject_dispatch_delay_probability", Option::TYPE_FLOAT, Option::LEVEL_DEV)
2582 .set_default(0)
2583 .set_description(""),
2584
2585 Option("osd_debug_inject_dispatch_delay_duration", Option::TYPE_FLOAT, Option::LEVEL_DEV)
2586 .set_default(.1)
2587 .set_description(""),
2588
2589 Option("osd_debug_drop_ping_probability", Option::TYPE_FLOAT, Option::LEVEL_DEV)
2590 .set_default(0)
2591 .set_description(""),
2592
2593 Option("osd_debug_drop_ping_duration", Option::TYPE_INT, Option::LEVEL_DEV)
2594 .set_default(0)
2595 .set_description(""),
2596
2597 Option("osd_debug_op_order", Option::TYPE_BOOL, Option::LEVEL_DEV)
2598 .set_default(false)
2599 .set_description(""),
2600
2601 Option("osd_debug_verify_missing_on_start", Option::TYPE_BOOL, Option::LEVEL_DEV)
2602 .set_default(false)
2603 .set_description(""),
2604
2605 Option("osd_debug_scrub_chance_rewrite_digest", Option::TYPE_UINT, Option::LEVEL_DEV)
2606 .set_default(0)
2607 .set_description(""),
2608
2609 Option("osd_debug_verify_snaps_on_info", Option::TYPE_BOOL, Option::LEVEL_DEV)
2610 .set_default(false)
2611 .set_description(""),
2612
2613 Option("osd_debug_verify_stray_on_activate", Option::TYPE_BOOL, Option::LEVEL_DEV)
2614 .set_default(false)
2615 .set_description(""),
2616
2617 Option("osd_debug_skip_full_check_in_backfill_reservation", Option::TYPE_BOOL, Option::LEVEL_DEV)
2618 .set_default(false)
2619 .set_description(""),
2620
2621 Option("osd_debug_reject_backfill_probability", Option::TYPE_FLOAT, Option::LEVEL_DEV)
2622 .set_default(0)
2623 .set_description(""),
2624
2625 Option("osd_debug_inject_copyfrom_error", Option::TYPE_BOOL, Option::LEVEL_DEV)
2626 .set_default(false)
2627 .set_description(""),
2628
2629 Option("osd_debug_misdirected_ops", Option::TYPE_BOOL, Option::LEVEL_DEV)
2630 .set_default(false)
2631 .set_description(""),
2632
2633 Option("osd_debug_skip_full_check_in_recovery", Option::TYPE_BOOL, Option::LEVEL_DEV)
2634 .set_default(false)
2635 .set_description(""),
2636
2637 Option("osd_debug_random_push_read_error", Option::TYPE_FLOAT, Option::LEVEL_DEV)
2638 .set_default(0)
2639 .set_description(""),
2640
2641 Option("osd_debug_verify_cached_snaps", Option::TYPE_BOOL, Option::LEVEL_DEV)
2642 .set_default(false)
2643 .set_description(""),
2644
2645 Option("osd_enable_op_tracker", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2646 .set_default(true)
2647 .set_description(""),
2648
2649 Option("osd_num_op_tracker_shard", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2650 .set_default(32)
2651 .set_description(""),
2652
2653 Option("osd_op_history_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2654 .set_default(20)
2655 .set_description(""),
2656
2657 Option("osd_op_history_duration", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2658 .set_default(600)
2659 .set_description(""),
2660
2661 Option("osd_op_history_slow_op_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2662 .set_default(20)
2663 .set_description(""),
2664
2665 Option("osd_op_history_slow_op_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2666 .set_default(10.0)
2667 .set_description(""),
2668
2669 Option("osd_target_transaction_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2670 .set_default(30)
2671 .set_description(""),
2672
2673 Option("osd_failsafe_full_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2674 .set_default(.97)
2675 .set_description(""),
2676
2677 Option("osd_fast_fail_on_connection_refused", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2678 .set_default(true)
2679 .set_description(""),
2680
2681 Option("osd_pg_object_context_cache_count", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2682 .set_default(64)
2683 .set_description(""),
2684
2685 Option("osd_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2686 .set_default(false)
2687 .set_description(""),
2688
2689 Option("osd_function_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2690 .set_default(false)
2691 .set_description(""),
2692
2693 Option("osd_fast_info", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2694 .set_default(true)
2695 .set_description(""),
2696
2697 Option("osd_debug_pg_log_writeout", Option::TYPE_BOOL, Option::LEVEL_DEV)
2698 .set_default(false)
2699 .set_description(""),
2700
2701 Option("osd_loop_before_reset_tphandle", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2702 .set_default(64)
2703 .set_description(""),
2704
2705 Option("threadpool_default_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2706 .set_default(60)
2707 .set_description(""),
2708
2709 Option("threadpool_empty_queue_max_wait", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2710 .set_default(2)
2711 .set_description(""),
2712
2713 Option("leveldb_log_to_ceph_log", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2714 .set_default(true)
2715 .set_description(""),
2716
2717 Option("leveldb_write_buffer_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2718 .set_default(8 *1024*1024)
2719 .set_description(""),
2720
2721 Option("leveldb_cache_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2722 .set_default(128 *1024*1024)
2723 .set_description(""),
2724
2725 Option("leveldb_block_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2726 .set_default(0)
2727 .set_description(""),
2728
2729 Option("leveldb_bloom_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2730 .set_default(0)
2731 .set_description(""),
2732
2733 Option("leveldb_max_open_files", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2734 .set_default(0)
2735 .set_description(""),
2736
2737 Option("leveldb_compression", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2738 .set_default(true)
2739 .set_description(""),
2740
2741 Option("leveldb_paranoid", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2742 .set_default(false)
2743 .set_description(""),
2744
2745 Option("leveldb_log", Option::TYPE_STR, Option::LEVEL_ADVANCED)
2746 .set_default("/dev/null")
2747 .set_description(""),
2748
2749 Option("leveldb_compact_on_mount", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2750 .set_default(false)
2751 .set_description(""),
2752
2753 Option("kinetic_host", Option::TYPE_STR, Option::LEVEL_ADVANCED)
2754 .set_default("")
2755 .set_description(""),
2756
2757 Option("kinetic_port", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2758 .set_default(8123)
2759 .set_description(""),
2760
2761 Option("kinetic_user_id", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2762 .set_default(1)
2763 .set_description(""),
2764
2765 Option("kinetic_hmac_key", Option::TYPE_STR, Option::LEVEL_ADVANCED)
2766 .set_default("asdfasdf")
2767 .set_description(""),
2768
2769 Option("kinetic_use_ssl", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2770 .set_default(false)
2771 .set_description(""),
2772
2773 Option("rocksdb_separate_wal_dir", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2774 .set_default(false)
2775 .set_description(""),
2776
2777 Option("rocksdb_db_paths", Option::TYPE_STR, Option::LEVEL_ADVANCED)
2778 .set_default("")
2779 .set_description("")
2780 .set_safe(),
2781
2782 Option("rocksdb_log_to_ceph_log", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2783 .set_default(true)
2784 .set_description(""),
2785
2786 Option("rocksdb_cache_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2787 .set_default(128*1024*1024)
2788 .set_description(""),
2789
2790 Option("rocksdb_cache_row_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2791 .set_default(0)
2792 .set_description(""),
2793
2794 Option("rocksdb_cache_shard_bits", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2795 .set_default(4)
2796 .set_description(""),
2797
2798 Option("rocksdb_cache_type", Option::TYPE_STR, Option::LEVEL_ADVANCED)
2799 .set_default("lru")
2800 .set_description(""),
2801
2802 Option("rocksdb_block_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
2803 .set_default(4*1024)
2804 .set_description(""),
2805
2806 Option("rocksdb_perf", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2807 .set_default(false)
2808 .set_description(""),
2809
2810 Option("rocksdb_collect_compaction_stats", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2811 .set_default(false)
2812 .set_description(""),
2813
2814 Option("rocksdb_collect_extended_stats", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2815 .set_default(false)
2816 .set_description(""),
2817
2818 Option("rocksdb_collect_memory_stats", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2819 .set_default(false)
2820 .set_description(""),
2821
2822 Option("rocksdb_enable_rmrange", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2823 .set_default(false)
2824 .set_description(""),
2825
2826 Option("rocksdb_bloom_bits_per_key", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2827 .set_default(20)
2828 .set_description("Number of bits per key to use for RocksDB's bloom filters.")
2829 .set_long_description("RocksDB bloom filters can be used to quickly answer the question of whether or not a key may exist or definitely does not exist in a given RocksDB SST file without having to read all keys into memory. Using a higher bit value decreases the likelihood of false positives at the expense of additional disk space and memory consumption when the filter is loaded into RAM. The current default value of 20 was found to provide significant performance gains when getattr calls are made (such as during new object creation in bluestore) without significant memory overhead or cache pollution when combined with rocksdb partitioned index filters. See: https://github.com/facebook/rocksdb/wiki/Partitioned-Index-Filters for more information."),
2830
2831 Option("rocksdb_cache_index_and_filter_blocks", Option::TYPE_BOOL, Option::LEVEL_DEV)
2832 .set_default(true)
2833 .set_description("Whether to cache indices and filters in block cache")
2834 .set_long_description("By default RocksDB will load an SST file's index and bloom filters into memory when it is opened and remove them from memory when an SST file is closed. Thus, memory consumption by indices and bloom filters is directly tied to the number of concurrent SST files allowed to be kept open. This option instead stores cached indicies and filters in the block cache where they directly compete with other cached data. By default we set this option to true to better account for and bound rocksdb memory usage and keep filters in memory even when an SST file is closed."),
2835
2836 Option("rocksdb_cache_index_and_filter_blocks_with_high_priority", Option::TYPE_BOOL, Option::LEVEL_DEV)
2837 .set_default(true)
2838 .set_description("Whether to cache indices and filters in the block cache with high priority")
2839 .set_long_description("A downside of setting rocksdb_cache_index_and_filter_blocks to true is that regular data can push indices and filters out of memory. Setting this option to true means they are cached with higher priority than other data and should typically stay in the block cache."),
2840
2841 Option("rocksdb_pin_l0_filter_and_index_blocks_in_cache", Option::TYPE_BOOL, Option::LEVEL_DEV)
2842 .set_default(true)
2843 .set_description("Whether to pin Level 0 indices and bloom filters in the block cache")
2844 .set_long_description("A downside of setting rocksdb_cache_index_and_filter_blocks to true is that regular data can push indices and filters out of memory. Setting this option to true means that level 0 SST files will always have their indices and filters pinned in the block cache."),
2845
2846 Option("rocksdb_index_type", Option::TYPE_STR, Option::LEVEL_DEV)
2847 .set_default("binary_search")
2848 .set_description("Type of index for SST files: binary_search, hash_search, two_level")
2849 .set_long_description("This option controls the table index type. binary_search is a space efficient index block that is optimized for block-search-based index. hash_search may improve prefix lookup performance at the expense of higher disk and memory usage and potentially slower compactions. two_level is an experimental index type that uses two binary search indexes and works in conjunction with partition filters. See: http://rocksdb.org/blog/2017/05/12/partitioned-index-filter.html"),
2850
2851 Option("rocksdb_partition_filters", Option::TYPE_BOOL, Option::LEVEL_DEV)
2852 .set_default(false)
2853 .set_description("(experimental) partition SST index/filters into smaller blocks")
2854 .set_long_description("This is an experimental option for rocksdb that works in conjunction with two_level indices to avoid having to keep the entire filter/index in cache when cache_index_and_filter_blocks is true. The idea is to keep a much smaller top-level index in heap/cache and then opportunistically cache the lower level indices. See: https://github.com/facebook/rocksdb/wiki/Partitioned-Index-Filters"),
2855
2856 Option("rocksdb_metadata_block_size", Option::TYPE_UINT, Option::LEVEL_DEV)
2857 .set_default(4096)
2858 .set_description("The block size for index partitions. (0 = rocksdb default)"),
2859
2860 Option("mon_rocksdb_options", Option::TYPE_STR, Option::LEVEL_ADVANCED)
2861 .set_default("write_buffer_size=33554432,compression=kNoCompression")
2862 .set_description(""),
2863
2864 Option("osd_client_op_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2865 .set_default(63)
2866 .set_description(""),
2867
2868 Option("osd_recovery_op_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2869 .set_default(3)
2870 .set_description(""),
2871
2872 Option("osd_snap_trim_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2873 .set_default(5)
2874 .set_description(""),
2875
2876 Option("osd_snap_trim_cost", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2877 .set_default(1<<20)
2878 .set_description(""),
2879
2880 Option("osd_scrub_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2881 .set_default(5)
2882 .set_description(""),
2883
2884 Option("osd_scrub_cost", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2885 .set_default(50<<20)
2886 .set_description(""),
2887
2888 Option("osd_requested_scrub_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2889 .set_default(120)
2890 .set_description(""),
2891
2892 Option("osd_recovery_priority", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2893 .set_default(5)
2894 .set_description(""),
2895
2896 Option("osd_recovery_cost", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2897 .set_default(20<<20)
2898 .set_description(""),
2899
2900 Option("osd_recovery_op_warn_multiple", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2901 .set_default(16)
2902 .set_description(""),
2903
2904 Option("osd_mon_shutdown_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
2905 .set_default(5)
2906 .set_description(""),
2907
2908 Option("osd_shutdown_pgref_assert", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2909 .set_default(false)
2910 .set_description(""),
2911
2912 Option("osd_max_object_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2913 .set_default(128*1024L*1024L)
2914 .set_description(""),
2915
2916 Option("osd_max_object_name_len", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2917 .set_default(2048)
2918 .set_description(""),
2919
2920 Option("osd_max_object_namespace_len", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2921 .set_default(256)
2922 .set_description(""),
2923
2924 Option("osd_max_attr_name_len", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2925 .set_default(100)
2926 .set_description(""),
2927
2928 Option("osd_max_attr_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2929 .set_default(0)
2930 .set_description(""),
2931
2932 Option("osd_max_omap_entries_per_request", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2933 .set_default(131072)
2934 .set_description(""),
2935
2936 Option("osd_max_omap_bytes_per_request", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2937 .set_default(1<<30)
2938 .set_description(""),
2939
2940 Option("osd_objectstore", Option::TYPE_STR, Option::LEVEL_ADVANCED)
2941 .set_default("filestore")
2942 .set_description(""),
2943
2944 Option("osd_objectstore_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2945 .set_default(false)
2946 .set_description(""),
2947
2948 Option("osd_objectstore_fuse", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2949 .set_default(false)
2950 .set_description(""),
2951
2952 Option("osd_bench_small_size_max_iops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2953 .set_default(100)
2954 .set_description(""),
2955
2956 Option("osd_bench_large_size_max_throughput", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2957 .set_default(100 << 20)
2958 .set_description(""),
2959
2960 Option("osd_bench_max_block_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2961 .set_default(64 << 20)
2962 .set_description(""),
2963
2964 Option("osd_bench_duration", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2965 .set_default(30)
2966 .set_description(""),
2967
2968 Option("osd_blkin_trace_all", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2969 .set_default(false)
2970 .set_description(""),
2971
2972 Option("osdc_blkin_trace_all", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2973 .set_default(false)
2974 .set_description(""),
2975
2976 Option("osd_discard_disconnected_ops", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2977 .set_default(true)
2978 .set_description(""),
2979
2980 Option("memstore_device_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2981 .set_default(1024*1024*1024)
2982 .set_description(""),
2983
2984 Option("memstore_page_set", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2985 .set_default(true)
2986 .set_description(""),
2987
2988 Option("memstore_page_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
2989 .set_default(64 << 10)
2990 .set_description(""),
2991
2992 Option("objectstore_blackhole", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
2993 .set_default(false)
2994 .set_description(""),
2995
2996 // --------------------------
2997 // bluestore
2998
2999 Option("bdev_debug_inflight_ios", Option::TYPE_BOOL, Option::LEVEL_DEV)
3000 .set_default(false)
3001 .set_description(""),
3002
3003 Option("bdev_inject_crash", Option::TYPE_INT, Option::LEVEL_DEV)
3004 .set_default(0)
3005 .set_description(""),
3006
3007 Option("bdev_inject_crash_flush_delay", Option::TYPE_INT, Option::LEVEL_DEV)
3008 .set_default(2)
3009 .set_description(""),
3010
3011 Option("bdev_aio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3012 .set_default(true)
3013 .set_description(""),
3014
3015 Option("bdev_aio_poll_ms", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3016 .set_default(250)
3017 .set_description(""),
3018
3019 Option("bdev_aio_max_queue_depth", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3020 .set_default(1024)
3021 .set_description(""),
3022
3023 Option("bdev_aio_reap_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3024 .set_default(16)
3025 .set_description(""),
3026
3027 Option("bdev_block_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3028 .set_default(4096)
3029 .set_description(""),
3030
3031 Option("bdev_debug_aio", Option::TYPE_BOOL, Option::LEVEL_DEV)
3032 .set_default(false)
3033 .set_description(""),
3034
3035 Option("bdev_debug_aio_suicide_timeout", Option::TYPE_FLOAT, Option::LEVEL_DEV)
3036 .set_default(60.0)
3037 .set_description(""),
3038
3039 Option("bdev_nvme_unbind_from_kernel", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3040 .set_default(false)
3041 .set_description(""),
3042
3043 Option("bdev_nvme_retry_count", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3044 .set_default(-1)
3045 .set_description(""),
3046
3047 Option("bluefs_alloc_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3048 .set_default(1048576)
3049 .set_description(""),
3050
3051 Option("bluefs_max_prefetch", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3052 .set_default(1048576)
3053 .set_description(""),
3054
3055 Option("bluefs_min_log_runway", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3056 .set_default(1048576)
3057 .set_description(""),
3058
3059 Option("bluefs_max_log_runway", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3060 .set_default(4194304)
3061 .set_description(""),
3062
3063 Option("bluefs_log_compact_min_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3064 .set_default(5.0)
3065 .set_description(""),
3066
3067 Option("bluefs_log_compact_min_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3068 .set_default(16*1048576)
3069 .set_description(""),
3070
3071 Option("bluefs_min_flush_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3072 .set_default(524288)
3073 .set_description(""),
3074
3075 Option("bluefs_compact_log_sync", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3076 .set_default(false)
3077 .set_description(""),
3078
3079 Option("bluefs_buffered_io", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3080 .set_default(false)
3081 .set_description(""),
3082
3083 Option("bluefs_sync_write", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3084 .set_default(false)
3085 .set_description(""),
3086
3087 Option("bluefs_allocator", Option::TYPE_STR, Option::LEVEL_DEV)
3088 .set_default("bitmap")
3089 .set_description(""),
3090
3091 Option("bluefs_preextend_wal_files", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3092 .set_default(false)
3093 .set_description(""),
3094
3095 Option("bluestore_bluefs", Option::TYPE_BOOL, Option::LEVEL_DEV)
3096 .set_default(true)
3097 .add_tag("mkfs")
3098 .set_description("Use BlueFS to back rocksdb")
3099 .set_long_description("BlueFS allows rocksdb to share the same physical device(s) as the rest of BlueStore. It should be used in all cases unless testing/developing an alternative metadata database for BlueStore."),
3100
3101 Option("bluestore_bluefs_env_mirror", Option::TYPE_BOOL, Option::LEVEL_DEV)
3102 .set_default(false)
3103 .add_tag("mkfs")
3104 .set_description("Mirror bluefs data to file system for testing/validation"),
3105
3106 Option("bluestore_bluefs_min", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3107 .set_default(1*1024*1024*1024)
3108 .set_description("minimum disk space allocated to BlueFS (e.g., at mkfs)"),
3109
3110 Option("bluestore_bluefs_min_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3111 .set_default(.02)
3112 .set_description("Minimum fraction of free space devoted to BlueFS"),
3113
3114 Option("bluestore_bluefs_max_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3115 .set_default(.90)
3116 .set_description("Maximum fraction of free storage devoted to BlueFS"),
3117
3118 Option("bluestore_bluefs_gift_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3119 .set_default(.02)
3120 .set_description("Maximum fraction of free space to give to BlueFS at once"),
3121
3122 Option("bluestore_bluefs_reclaim_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3123 .set_default(.20)
3124 .set_description("Maximum fraction of free space to reclaim from BlueFS at once"),
3125
3126 Option("bluestore_bluefs_balance_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3127 .set_default(1)
3128 .set_description("How frequently (in seconds) to balance free space between BlueFS and BlueStore"),
3129
3130 Option("bluestore_spdk_mem", Option::TYPE_UINT, Option::LEVEL_DEV)
3131 .set_default(512)
3132 .set_description(""),
3133
3134 Option("bluestore_spdk_coremask", Option::TYPE_STR, Option::LEVEL_DEV)
3135 .set_default("0x3")
3136 .set_description(""),
3137
3138 Option("bluestore_spdk_max_io_completion", Option::TYPE_UINT, Option::LEVEL_DEV)
3139 .set_default(0)
3140 .set_description(""),
3141
3142 Option("bluestore_block_path", Option::TYPE_STR, Option::LEVEL_DEV)
3143 .set_default("")
3144 .add_tag("mkfs")
3145 .set_description("Path to block device/file"),
3146
3147 Option("bluestore_block_size", Option::TYPE_UINT, Option::LEVEL_DEV)
3148 .set_default(10ull * 1024*1024*1024)
3149 .add_tag("mkfs")
3150 .set_description("Size of file to create for backing bluestore"),
3151
3152 Option("bluestore_block_create", Option::TYPE_BOOL, Option::LEVEL_DEV)
3153 .set_default(true)
3154 .add_tag("mkfs")
3155 .set_description("Create bluestore_block_path if it doesn't exist")
3156 .add_see_also("bluestore_block_path").add_see_also("bluestore_block_size"),
3157
3158 Option("bluestore_block_db_path", Option::TYPE_STR, Option::LEVEL_DEV)
3159 .set_default("")
3160 .add_tag("mkfs")
3161 .set_description("Path for db block device"),
3162
3163 Option("bluestore_block_db_size", Option::TYPE_UINT, Option::LEVEL_DEV)
3164 .set_default(0)
3165 .add_tag("mkfs")
3166 .set_description("Size of file to create for bluestore_block_db_path"),
3167
3168 Option("bluestore_block_db_create", Option::TYPE_BOOL, Option::LEVEL_DEV)
3169 .set_default(false)
3170 .add_tag("mkfs")
3171 .set_description("Create bluestore_block_db_path if it doesn't exist")
3172 .add_see_also("bluestore_block_db_path")
3173 .add_see_also("bluestore_block_db_size"),
3174
3175 Option("bluestore_block_wal_path", Option::TYPE_STR, Option::LEVEL_DEV)
3176 .set_default("")
3177 .add_tag("mkfs")
3178 .set_description("Path to block device/file backing bluefs wal"),
3179
3180 Option("bluestore_block_wal_size", Option::TYPE_UINT, Option::LEVEL_DEV)
3181 .set_default(96 * 1024*1024)
3182 .add_tag("mkfs")
3183 .set_description("Size of file to create for bluestore_block_wal_path"),
3184
3185 Option("bluestore_block_wal_create", Option::TYPE_BOOL, Option::LEVEL_DEV)
3186 .set_default(false)
3187 .add_tag("mkfs")
3188 .set_description("Create bluestore_block_wal_path if it doesn't exist")
3189 .add_see_also("bluestore_block_wal_path")
3190 .add_see_also("bluestore_block_wal_size"),
3191
3192 Option("bluestore_block_preallocate_file", Option::TYPE_BOOL, Option::LEVEL_DEV)
3193 .set_default(false)
3194 .add_tag("mkfs")
3195 .set_description("Preallocate file created via bluestore_block*_create"),
3196
3197 Option("bluestore_csum_type", Option::TYPE_STR, Option::LEVEL_ADVANCED)
3198 .set_default("crc32c")
3199 .set_enum_allowed({"none", "crc32c", "crc32c_16", "crc32c_8", "xxhash32", "xxhash64"})
3200 .set_safe()
3201 .set_description("Default checksum algorithm to use")
3202 .set_long_description("crc32c, xxhash32, and xxhash64 are available. The _16 and _8 variants use only a subset of the bits for more compact (but less reliable) checksumming."),
3203
3204 Option("bluestore_csum_min_block", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3205 .set_default(4096)
3206 .set_safe()
3207 .set_description("Minimum block size to checksum")
3208 .set_long_description("A larger checksum block means less checksum metadata to store, but results in read amplification when doing a read smaller than this size (because the entire block must be read to verify the checksum).")
3209 .add_see_also("bluestore_csum_max_block"),
3210
3211 Option("bluestore_csum_max_block", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3212 .set_default(64*1024)
3213 .set_safe()
3214 .set_description("Maximum block size to checksum")
3215 .add_see_also("bluestore_csum_min_block"),
3216
3217 Option("bluestore_min_alloc_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3218 .set_default(0)
3219 .add_tag("mkfs")
3220 .set_description("Minimum allocation size to allocate for an object")
3221 .set_long_description("A smaller allocation size generally means less data is read and then rewritten when a copy-on-write operation is triggered (e.g., when writing to something that was recently snapshotted). Similarly, less data is journaled before performing an overwrite (writes smaller than min_alloc_size must first pass through the BlueStore journal). Larger values of min_alloc_size reduce the amount of metadata required to describe the on-disk layout and reduce overall fragmentation."),
3222
3223 Option("bluestore_min_alloc_size_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3224 .set_default(64*1024)
3225 .add_tag("mkfs")
3226 .set_description("Default min_alloc_size value for rotational media"),
3227
3228 Option("bluestore_min_alloc_size_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3229 .set_default(16*1024)
3230 .add_tag("mkfs")
3231 .set_description("Default min_alloc_size value for non-rotational (solid state) media"),
3232
3233 Option("bluestore_max_alloc_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3234 .set_default(0)
3235 .add_tag("mkfs")
3236 .set_description("Maximum size of a single allocation (0 for no max)"),
3237
3238 Option("bluestore_prefer_deferred_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3239 .set_default(0)
3240 .set_safe()
3241 .set_description("Writes smaller than this size will be written to the journal and then asynchronously written to the device. This can be beneficial when using rotational media where seeks are expensive, and is helpful both with and without solid state journal/wal devices."),
3242
3243 Option("bluestore_prefer_deferred_size_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3244 .set_default(32768)
3245 .set_safe()
3246 .set_description("Default bluestore_prefer_deferred_size for rotational media"),
3247
3248 Option("bluestore_prefer_deferred_size_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3249 .set_default(0)
3250 .set_safe()
3251 .set_description("Default bluestore_prefer_deferred_size for non-rotational (solid state) media"),
3252
3253 Option("bluestore_compression_mode", Option::TYPE_STR, Option::LEVEL_ADVANCED)
3254 .set_default("none")
3255 .set_enum_allowed({"none", "passive", "aggressive", "force"})
3256 .set_safe()
3257 .set_description("Default policy for using compression when pool does not specify")
3258 .set_long_description("'none' means never use compression. 'passive' means use compression when clients hint that data is compressible. 'aggressive' means use compression unless clients hint that data is not compressible. This option is used when the per-pool property for the compression mode is not present."),
3259
3260 Option("bluestore_compression_algorithm", Option::TYPE_STR, Option::LEVEL_ADVANCED)
3261 .set_default("snappy")
3262 .set_enum_allowed({"", "snappy", "zlib", "zstd", "lz4"})
3263 .set_safe()
3264 .set_description("Default compression algorithm to use when writing object data")
3265 .set_long_description("This controls the default compressor to use (if any) if the per-pool property is not set. Note that zstd is *not* recommended for bluestore due to high CPU overhead when compressing small amounts of data."),
3266
3267 Option("bluestore_compression_min_blob_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3268 .set_default(0)
3269 .set_safe()
3270 .set_description("Chunks smaller than this are never compressed"),
3271
3272 Option("bluestore_compression_min_blob_size_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3273 .set_default(128*1024)
3274 .set_safe()
3275 .set_description("Default value of bluestore_compression_min_blob_size for rotational media"),
3276
3277 Option("bluestore_compression_min_blob_size_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3278 .set_default(8*1024)
3279 .set_safe()
3280 .set_description("Default value of bluestore_compression_min_blob_size for non-rotational (solid state) media"),
3281
3282 Option("bluestore_compression_max_blob_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3283 .set_default(0)
3284 .set_safe()
3285 .set_description("Chunks larger than this are broken into smaller chunks before being compressed"),
3286
3287 Option("bluestore_compression_max_blob_size_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3288 .set_default(512*1024)
3289 .set_safe()
3290 .set_description("Default value of bluestore_compression_max_blob_size for rotational media"),
3291
3292 Option("bluestore_compression_max_blob_size_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3293 .set_default(64*1024)
3294 .set_safe()
3295 .set_description("Default value of bluestore_compression_max_blob_size for non-rotational (solid state) media"),
3296
3297 Option("bluestore_gc_enable_blob_threshold", Option::TYPE_INT, Option::LEVEL_DEV)
3298 .set_default(0)
3299 .set_safe()
3300 .set_description(""),
3301
3302 Option("bluestore_gc_enable_total_threshold", Option::TYPE_INT, Option::LEVEL_DEV)
3303 .set_default(0)
3304 .set_safe()
3305 .set_description(""),
3306
3307 Option("bluestore_max_blob_size", Option::TYPE_UINT, Option::LEVEL_DEV)
3308 .set_default(0)
3309 .set_safe()
3310 .set_description(""),
3311
3312 Option("bluestore_max_blob_size_hdd", Option::TYPE_UINT, Option::LEVEL_DEV)
3313 .set_default(512*1024)
3314 .set_safe()
3315 .set_description(""),
3316
3317 Option("bluestore_max_blob_size_ssd", Option::TYPE_UINT, Option::LEVEL_DEV)
3318 .set_default(64*1024)
3319 .set_safe()
3320 .set_description(""),
3321
3322 Option("bluestore_compression_required_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3323 .set_default(.875)
3324 .set_safe()
3325 .set_description("Compression ratio required to store compressed data")
3326 .set_long_description("If we compress data and get less than this we discard the result and store the original uncompressed data."),
3327
3328 Option("bluestore_extent_map_shard_max_size", Option::TYPE_UINT, Option::LEVEL_DEV)
3329 .set_default(1200)
3330 .set_description("Max size (bytes) for a single extent map shard before splitting"),
3331
3332 Option("bluestore_extent_map_shard_target_size", Option::TYPE_UINT, Option::LEVEL_DEV)
3333 .set_default(500)
3334 .set_description("Target size (bytes) for a single extent map shard"),
3335
3336 Option("bluestore_extent_map_shard_min_size", Option::TYPE_UINT, Option::LEVEL_DEV)
3337 .set_default(150)
3338 .set_description("Min size (bytes) for a single extent map shard before merging"),
3339
3340 Option("bluestore_extent_map_shard_target_size_slop", Option::TYPE_FLOAT, Option::LEVEL_DEV)
3341 .set_default(.2)
3342 .set_description("Ratio above/below target for a shard when trying to align to an existing extent or blob boundary"),
3343
3344 Option("bluestore_extent_map_inline_shard_prealloc_size", Option::TYPE_UINT, Option::LEVEL_DEV)
3345 .set_default(256)
3346 .set_description("Preallocated buffer for inline shards"),
3347
3348 Option("bluestore_cache_trim_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3349 .set_default(.2)
3350 .set_description("How frequently we trim the bluestore cache"),
3351
3352 Option("bluestore_cache_trim_max_skip_pinned", Option::TYPE_UINT, Option::LEVEL_DEV)
3353 .set_default(64)
3354 .set_description("Max pinned cache entries we consider before giving up"),
3355
3356 Option("bluestore_cache_type", Option::TYPE_STR, Option::LEVEL_DEV)
3357 .set_default("2q")
3358 .set_enum_allowed({"2q", "lru"})
3359 .set_description("Cache replacement algorithm"),
3360
3361 Option("bluestore_2q_cache_kin_ratio", Option::TYPE_FLOAT, Option::LEVEL_DEV)
3362 .set_default(.5)
3363 .set_description("2Q paper suggests .5"),
3364
3365 Option("bluestore_2q_cache_kout_ratio", Option::TYPE_FLOAT, Option::LEVEL_DEV)
3366 .set_default(.5)
3367 .set_description("2Q paper suggests .5"),
3368
3369 Option("bluestore_cache_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3370 .set_default(0)
3371 .set_description("Cache size (in bytes) for BlueStore")
3372 .set_long_description("This includes data and metadata cached by BlueStore as well as memory devoted to rocksdb's cache(s)."),
3373
3374 Option("bluestore_cache_size_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3375 .set_default(1ull*1024*1024*1024)
3376 .set_description("Default bluestore_cache_size for rotational media"),
3377
3378 Option("bluestore_cache_size_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3379 .set_default(3ull*1024*1024*1024)
3380 .set_description("Default bluestore_cache_size for non-rotational (solid state) media"),
3381
3382 Option("bluestore_cache_meta_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3383 .set_default(.01)
3384 .set_description("Ratio of bluestore cache to devote to metadata"),
3385
3386 Option("bluestore_cache_kv_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3387 .set_default(.99)
3388 .set_description("Ratio of bluestore cache to devote to kv database (rocksdb)"),
3389
3390 Option("bluestore_cache_kv_max", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3391 .set_default(512*1024*1024)
3392 .set_description("Max memory (bytes) to devote to kv database (rocksdb)"),
3393
3394 Option("bluestore_kvbackend", Option::TYPE_STR, Option::LEVEL_DEV)
3395 .set_default("rocksdb")
3396 .add_tag("mkfs")
3397 .set_description("Key value database to use for bluestore"),
3398
3399 Option("bluestore_allocator", Option::TYPE_STR, Option::LEVEL_DEV)
3400 .set_default("bitmap")
3401 .add_tag("mkfs")
3402 .set_description(""),
3403
3404 Option("bluestore_freelist_blocks_per_key", Option::TYPE_INT, Option::LEVEL_DEV)
3405 .set_default(128)
3406 .set_description("Block (and bits) per database key"),
3407
3408 Option("bluestore_bitmapallocator_blocks_per_zone", Option::TYPE_INT, Option::LEVEL_DEV)
3409 .set_default(1024)
3410 .set_description(""),
3411
3412 Option("bluestore_bitmapallocator_span_size", Option::TYPE_INT, Option::LEVEL_DEV)
3413 .set_default(1024)
3414 .set_description(""),
3415
3416 Option("bluestore_max_deferred_txc", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3417 .set_default(32)
3418 .set_description("Max transactions with deferred writes that can accumulate before we force flush deferred writes"),
3419
3420 Option("bluestore_rocksdb_options", Option::TYPE_STR, Option::LEVEL_ADVANCED)
3421 .set_default("compression=kNoCompression,max_write_buffer_number=4,min_write_buffer_number_to_merge=1,recycle_log_file_num=4,write_buffer_size=268435456,writable_file_max_buffer_size=0,compaction_readahead_size=2097152")
3422 .set_description("Rocksdb options"),
3423
3424 Option("bluestore_fsck_on_mount", Option::TYPE_BOOL, Option::LEVEL_DEV)
3425 .set_default(false)
3426 .set_description("Run fsck at mount"),
3427
3428 Option("bluestore_fsck_on_mount_deep", Option::TYPE_BOOL, Option::LEVEL_DEV)
3429 .set_default(true)
3430 .set_description("Run deep fsck at mount"),
3431
3432 Option("bluestore_fsck_on_umount", Option::TYPE_BOOL, Option::LEVEL_DEV)
3433 .set_default(false)
3434 .set_description("Run fsck at umount"),
3435
3436 Option("bluestore_fsck_on_umount_deep", Option::TYPE_BOOL, Option::LEVEL_DEV)
3437 .set_default(true)
3438 .set_description("Run deep fsck at umount"),
3439
3440 Option("bluestore_fsck_on_mkfs", Option::TYPE_BOOL, Option::LEVEL_DEV)
3441 .set_default(true)
3442 .set_description("Run fsck after mkfs"),
3443
3444 Option("bluestore_fsck_on_mkfs_deep", Option::TYPE_BOOL, Option::LEVEL_DEV)
3445 .set_default(false)
3446 .set_description("Run deep fsck after mkfs"),
3447
3448 Option("bluestore_sync_submit_transaction", Option::TYPE_BOOL, Option::LEVEL_DEV)
3449 .set_default(false)
3450 .set_description("Try to submit metadata transaction to rocksdb in queuing thread context"),
3451
3452 Option("bluestore_throttle_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3453 .set_default(64*1024*1024)
3454 .set_safe()
3455 .set_description("Maximum bytes in flight before we throttle IO submission"),
3456
3457 Option("bluestore_throttle_deferred_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3458 .set_default(128*1024*1024)
3459 .set_safe()
3460 .set_description("Maximum bytes for deferred writes before we throttle IO submission"),
3461
3462 Option("bluestore_throttle_cost_per_io", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3463 .set_default(0)
3464 .set_safe()
3465 .set_description("Overhead added to transaction cost (in bytes) for each IO"),
3466
3467 Option("bluestore_throttle_cost_per_io_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3468 .set_default(670000)
3469 .set_safe()
3470 .set_description("Default bluestore_throttle_cost_per_io for rotational media"),
3471
3472 Option("bluestore_throttle_cost_per_io_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3473 .set_default(4000)
3474 .set_safe()
3475 .set_description("Default bluestore_throttle_cost_per_io for non-rotation (solid state) media"),
3476
3477
3478 Option("bluestore_deferred_batch_ops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3479 .set_default(0)
3480 .set_safe()
3481 .set_description("Max number of deferred writes before we flush the deferred write queue"),
3482
3483 Option("bluestore_deferred_batch_ops_hdd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3484 .set_default(64)
3485 .set_safe()
3486 .set_description("Default bluestore_deferred_batch_ops for rotational media"),
3487
3488 Option("bluestore_deferred_batch_ops_ssd", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3489 .set_default(16)
3490 .set_safe()
3491 .set_description("Default bluestore_deferred_batch_ops for non-rotational (solid state) media"),
3492
3493 Option("bluestore_nid_prealloc", Option::TYPE_INT, Option::LEVEL_DEV)
3494 .set_default(1024)
3495 .set_description("Number of unique object ids to preallocate at a time"),
3496
3497 Option("bluestore_blobid_prealloc", Option::TYPE_UINT, Option::LEVEL_DEV)
3498 .set_default(10240)
3499 .set_description("Number of unique blob ids to preallocate at a time"),
3500
3501 Option("bluestore_clone_cow", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3502 .set_default(true)
3503 .set_safe()
3504 .set_description("Use copy-on-write when cloning objects (versus reading and rewriting them at clone time)"),
3505
3506 Option("bluestore_default_buffered_read", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3507 .set_default(true)
3508 .set_safe()
3509 .set_description("Cache read results by default (unless hinted NOCACHE or WONTNEED)"),
3510
3511 Option("bluestore_default_buffered_write", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3512 .set_default(false)
3513 .set_safe()
3514 .set_description("Cache writes by default (unless hinted NOCACHE or WONTNEED)"),
3515
3516 Option("bluestore_debug_misc", Option::TYPE_BOOL, Option::LEVEL_DEV)
3517 .set_default(false)
3518 .set_description(""),
3519
3520 Option("bluestore_debug_no_reuse_blocks", Option::TYPE_BOOL, Option::LEVEL_DEV)
3521 .set_default(false)
3522 .set_description(""),
3523
3524 Option("bluestore_debug_small_allocations", Option::TYPE_INT, Option::LEVEL_DEV)
3525 .set_default(0)
3526 .set_description(""),
3527
3528 Option("bluestore_debug_freelist", Option::TYPE_BOOL, Option::LEVEL_DEV)
3529 .set_default(false)
3530 .set_description(""),
3531
3532 Option("bluestore_debug_prefill", Option::TYPE_FLOAT, Option::LEVEL_DEV)
3533 .set_default(0)
3534 .set_description("simulate fragmentation"),
3535
3536 Option("bluestore_debug_prefragment_max", Option::TYPE_INT, Option::LEVEL_DEV)
3537 .set_default(1048576)
3538 .set_description(""),
3539
3540 Option("bluestore_debug_inject_read_err", Option::TYPE_BOOL, Option::LEVEL_DEV)
3541 .set_default(false)
3542 .set_description(""),
3543
3544 Option("bluestore_debug_randomize_serial_transaction", Option::TYPE_INT, Option::LEVEL_DEV)
3545 .set_default(0)
3546 .set_description(""),
3547
3548 Option("bluestore_debug_omit_block_device_write", Option::TYPE_BOOL, Option::LEVEL_DEV)
3549 .set_default(false)
3550 .set_description(""),
3551
3552 Option("bluestore_debug_fsck_abort", Option::TYPE_BOOL, Option::LEVEL_DEV)
3553 .set_default(false)
3554 .set_description(""),
3555
3556 Option("bluestore_debug_omit_kv_commit", Option::TYPE_BOOL, Option::LEVEL_DEV)
3557 .set_default(false)
3558 .set_description(""),
3559
3560 Option("bluestore_debug_permit_any_bdev_label", Option::TYPE_BOOL, Option::LEVEL_DEV)
3561 .set_default(false)
3562 .set_description(""),
3563
3564 Option("bluestore_shard_finishers", Option::TYPE_BOOL, Option::LEVEL_DEV)
3565 .set_default(false)
3566 .set_description(""),
3567
3568 Option("bluestore_debug_random_read_err", Option::TYPE_FLOAT, Option::LEVEL_DEV)
3569 .set_default(0)
3570 .set_description(""),
3571
3572 // -----------------------------------------
3573 // kstore
3574
3575 Option("kstore_max_ops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3576 .set_default(512)
3577 .set_description(""),
3578
3579 Option("kstore_max_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3580 .set_default(64*1024*1024)
3581 .set_description(""),
3582
3583 Option("kstore_backend", Option::TYPE_STR, Option::LEVEL_ADVANCED)
3584 .set_default("rocksdb")
3585 .set_description(""),
3586
3587 Option("kstore_rocksdb_options", Option::TYPE_STR, Option::LEVEL_ADVANCED)
3588 .set_default("compression=kNoCompression")
3589 .set_description(""),
3590
3591 Option("kstore_fsck_on_mount", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3592 .set_default(false)
3593 .set_description(""),
3594
3595 Option("kstore_fsck_on_mount_deep", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3596 .set_default(true)
3597 .set_description(""),
3598
3599 Option("kstore_nid_prealloc", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3600 .set_default(1024)
3601 .set_description(""),
3602
3603 Option("kstore_sync_transaction", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3604 .set_default(false)
3605 .set_description(""),
3606
3607 Option("kstore_sync_submit_transaction", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3608 .set_default(false)
3609 .set_description(""),
3610
3611 Option("kstore_onode_map_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3612 .set_default(1024)
3613 .set_description(""),
3614
3615 Option("kstore_default_stripe_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3616 .set_default(65536)
3617 .set_description(""),
3618
3619 // ---------------------
3620 // filestore
3621
3622 Option("filestore_rocksdb_options", Option::TYPE_STR, Option::LEVEL_ADVANCED)
3623 .set_default("")
3624 .set_description(""),
3625
3626 Option("filestore_omap_backend", Option::TYPE_STR, Option::LEVEL_ADVANCED)
3627 .set_default("rocksdb")
3628 .set_description(""),
3629
3630 Option("filestore_omap_backend_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
3631 .set_default("")
3632 .set_description(""),
3633
3634 Option("filestore_wbthrottle_enable", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3635 .set_default(true)
3636 .set_description(""),
3637
3638 Option("filestore_wbthrottle_btrfs_bytes_start_flusher", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3639 .set_default(41943040)
3640 .set_description(""),
3641
3642 Option("filestore_wbthrottle_btrfs_bytes_hard_limit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3643 .set_default(419430400)
3644 .set_description(""),
3645
3646 Option("filestore_wbthrottle_btrfs_ios_start_flusher", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3647 .set_default(500)
3648 .set_description(""),
3649
3650 Option("filestore_wbthrottle_btrfs_ios_hard_limit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3651 .set_default(5000)
3652 .set_description(""),
3653
3654 Option("filestore_wbthrottle_btrfs_inodes_start_flusher", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3655 .set_default(500)
3656 .set_description(""),
3657
3658 Option("filestore_wbthrottle_xfs_bytes_start_flusher", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3659 .set_default(41943040)
3660 .set_description(""),
3661
3662 Option("filestore_wbthrottle_xfs_bytes_hard_limit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3663 .set_default(419430400)
3664 .set_description(""),
3665
3666 Option("filestore_wbthrottle_xfs_ios_start_flusher", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3667 .set_default(500)
3668 .set_description(""),
3669
3670 Option("filestore_wbthrottle_xfs_ios_hard_limit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3671 .set_default(5000)
3672 .set_description(""),
3673
3674 Option("filestore_wbthrottle_xfs_inodes_start_flusher", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3675 .set_default(500)
3676 .set_description(""),
3677
3678 Option("filestore_wbthrottle_btrfs_inodes_hard_limit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3679 .set_default(5000)
3680 .set_description(""),
3681
3682 Option("filestore_wbthrottle_xfs_inodes_hard_limit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3683 .set_default(5000)
3684 .set_description(""),
3685
3686 Option("filestore_odsync_write", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3687 .set_default(false)
3688 .set_description(""),
3689
3690 Option("filestore_index_retry_probability", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3691 .set_default(0)
3692 .set_description(""),
3693
3694 Option("filestore_debug_inject_read_err", Option::TYPE_BOOL, Option::LEVEL_DEV)
3695 .set_default(false)
3696 .set_description(""),
3697
3698 Option("filestore_debug_random_read_err", Option::TYPE_FLOAT, Option::LEVEL_DEV)
3699 .set_default(0)
3700 .set_description(""),
3701
3702 Option("filestore_debug_omap_check", Option::TYPE_BOOL, Option::LEVEL_DEV)
3703 .set_default(false)
3704 .set_description(""),
3705
3706 Option("filestore_omap_header_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3707 .set_default(1024)
3708 .set_description(""),
3709
3710 Option("filestore_max_inline_xattr_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3711 .set_default(0)
3712 .set_description(""),
3713
3714 Option("filestore_max_inline_xattr_size_xfs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3715 .set_default(65536)
3716 .set_description(""),
3717
3718 Option("filestore_max_inline_xattr_size_btrfs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3719 .set_default(2048)
3720 .set_description(""),
3721
3722 Option("filestore_max_inline_xattr_size_other", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3723 .set_default(512)
3724 .set_description(""),
3725
3726 Option("filestore_max_inline_xattrs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3727 .set_default(0)
3728 .set_description(""),
3729
3730 Option("filestore_max_inline_xattrs_xfs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3731 .set_default(10)
3732 .set_description(""),
3733
3734 Option("filestore_max_inline_xattrs_btrfs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3735 .set_default(10)
3736 .set_description(""),
3737
3738 Option("filestore_max_inline_xattrs_other", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3739 .set_default(2)
3740 .set_description(""),
3741
3742 Option("filestore_max_xattr_value_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3743 .set_default(0)
3744 .set_description(""),
3745
3746 Option("filestore_max_xattr_value_size_xfs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3747 .set_default(64<<10)
3748 .set_description(""),
3749
3750 Option("filestore_max_xattr_value_size_btrfs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3751 .set_default(64<<10)
3752 .set_description(""),
3753
3754 Option("filestore_max_xattr_value_size_other", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3755 .set_default(1<<10)
3756 .set_description(""),
3757
3758 Option("filestore_sloppy_crc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3759 .set_default(false)
3760 .set_description(""),
3761
3762 Option("filestore_sloppy_crc_block_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3763 .set_default(65536)
3764 .set_description(""),
3765
3766 Option("filestore_max_alloc_hint_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3767 .set_default(1ULL << 20)
3768 .set_description(""),
3769
3770 Option("filestore_max_sync_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3771 .set_default(5)
3772 .set_description(""),
3773
3774 Option("filestore_min_sync_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3775 .set_default(.01)
3776 .set_description(""),
3777
3778 Option("filestore_btrfs_snap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3779 .set_default(true)
3780 .set_description(""),
3781
3782 Option("filestore_btrfs_clone_range", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3783 .set_default(true)
3784 .set_description(""),
3785
3786 Option("filestore_zfs_snap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3787 .set_default(false)
3788 .set_description(""),
3789
3790 Option("filestore_fsync_flushes_journal_data", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3791 .set_default(false)
3792 .set_description(""),
3793
3794 Option("filestore_fiemap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3795 .set_default(false)
3796 .set_description(""),
3797
3798 Option("filestore_punch_hole", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3799 .set_default(false)
3800 .set_description(""),
3801
3802 Option("filestore_seek_data_hole", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3803 .set_default(false)
3804 .set_description(""),
3805
3806 Option("filestore_splice", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3807 .set_default(false)
3808 .set_description(""),
3809
3810 Option("filestore_fadvise", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3811 .set_default(true)
3812 .set_description(""),
3813
3814 Option("filestore_collect_device_partition_information", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3815 .set_default(true)
3816 .set_description(""),
3817
3818 Option("filestore_xfs_extsize", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3819 .set_default(false)
3820 .set_description(""),
3821
3822 Option("filestore_journal_parallel", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3823 .set_default(false)
3824 .set_description(""),
3825
3826 Option("filestore_journal_writeahead", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3827 .set_default(false)
3828 .set_description(""),
3829
3830 Option("filestore_journal_trailing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3831 .set_default(false)
3832 .set_description(""),
3833
3834 Option("filestore_queue_max_ops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3835 .set_default(50)
3836 .set_description(""),
3837
3838 Option("filestore_queue_max_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3839 .set_default(100 << 20)
3840 .set_description(""),
3841
3842 Option("filestore_caller_concurrency", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3843 .set_default(10)
3844 .set_description(""),
3845
3846 Option("filestore_expected_throughput_bytes", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3847 .set_default(200 << 20)
3848 .set_description(""),
3849
3850 Option("filestore_expected_throughput_ops", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3851 .set_default(200)
3852 .set_description(""),
3853
3854 Option("filestore_queue_max_delay_multiple", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3855 .set_default(0)
3856 .set_description(""),
3857
3858 Option("filestore_queue_high_delay_multiple", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3859 .set_default(0)
3860 .set_description(""),
3861
3862 Option("filestore_queue_low_threshhold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3863 .set_default(0.3)
3864 .set_description(""),
3865
3866 Option("filestore_queue_high_threshhold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3867 .set_default(0.9)
3868 .set_description(""),
3869
3870 Option("filestore_op_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3871 .set_default(2)
3872 .set_description(""),
3873
3874 Option("filestore_op_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3875 .set_default(60)
3876 .set_description(""),
3877
3878 Option("filestore_op_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3879 .set_default(180)
3880 .set_description(""),
3881
3882 Option("filestore_commit_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3883 .set_default(600)
3884 .set_description(""),
3885
3886 Option("filestore_fiemap_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3887 .set_default(4096)
3888 .set_description(""),
3889
3890 Option("filestore_merge_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3891 .set_default(10)
3892 .set_description(""),
3893
3894 Option("filestore_split_multiple", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3895 .set_default(2)
3896 .set_description(""),
3897
3898 Option("filestore_split_rand_factor", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3899 .set_default(20)
3900 .set_description(""),
3901
3902 Option("filestore_update_to", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3903 .set_default(1000)
3904 .set_description(""),
3905
3906 Option("filestore_blackhole", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3907 .set_default(false)
3908 .set_description(""),
3909
3910 Option("filestore_fd_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3911 .set_default(128)
3912 .set_description(""),
3913
3914 Option("filestore_fd_cache_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3915 .set_default(16)
3916 .set_description(""),
3917
3918 Option("filestore_ondisk_finisher_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3919 .set_default(1)
3920 .set_description(""),
3921
3922 Option("filestore_apply_finisher_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3923 .set_default(1)
3924 .set_description(""),
3925
3926 Option("filestore_dump_file", Option::TYPE_STR, Option::LEVEL_ADVANCED)
3927 .set_default("")
3928 .set_description(""),
3929
3930 Option("filestore_kill_at", Option::TYPE_INT, Option::LEVEL_DEV)
3931 .set_default(0)
3932 .set_description(""),
3933
3934 Option("filestore_inject_stall", Option::TYPE_INT, Option::LEVEL_DEV)
3935 .set_default(0)
3936 .set_description(""),
3937
3938 Option("filestore_fail_eio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3939 .set_default(true)
3940 .set_description(""),
3941
3942 Option("filestore_debug_verify_split", Option::TYPE_BOOL, Option::LEVEL_DEV)
3943 .set_default(false)
3944 .set_description(""),
3945
3946 Option("journal_dio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3947 .set_default(true)
3948 .set_description(""),
3949
3950 Option("journal_aio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3951 .set_default(true)
3952 .set_description(""),
3953
3954 Option("journal_force_aio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3955 .set_default(false)
3956 .set_description(""),
3957
3958 Option("journal_block_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3959 .set_default(4096)
3960 .set_description(""),
3961
3962 Option("journal_max_corrupt_search", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3963 .set_default(10<<20)
3964 .set_description(""),
3965
3966 Option("journal_block_align", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
3967 .set_default(true)
3968 .set_description(""),
3969
3970 Option("journal_write_header_frequency", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
3971 .set_default(0)
3972 .set_description(""),
3973
3974 Option("journal_max_write_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3975 .set_default(10 << 20)
3976 .set_description(""),
3977
3978 Option("journal_max_write_entries", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3979 .set_default(100)
3980 .set_description(""),
3981
3982 Option("journal_throttle_low_threshhold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3983 .set_default(0.6)
3984 .set_description(""),
3985
3986 Option("journal_throttle_high_threshhold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3987 .set_default(0.9)
3988 .set_description(""),
3989
3990 Option("journal_throttle_high_multiple", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3991 .set_default(0)
3992 .set_description(""),
3993
3994 Option("journal_throttle_max_multiple", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
3995 .set_default(0)
3996 .set_description(""),
3997
3998 Option("journal_align_min_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
3999 .set_default(64 << 10)
4000 .set_description(""),
4001
4002 Option("journal_replay_from", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4003 .set_default(0)
4004 .set_description(""),
4005
4006 Option("journal_zero_on_create", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4007 .set_default(false)
4008 .set_description(""),
4009
4010 Option("journal_ignore_corruption", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4011 .set_default(false)
4012 .set_description(""),
4013
4014 Option("journal_discard", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4015 .set_default(false)
4016 .set_description(""),
4017
4018 Option("fio_dir", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4019 .set_default("/tmp/fio")
4020 .set_description(""),
4021
4022 Option("rados_mon_op_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
4023 .set_default(0)
4024 .set_description(""),
4025
4026 Option("rados_osd_op_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
4027 .set_default(0)
4028 .set_description(""),
4029
4030 Option("rados_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4031 .set_default(false)
4032 .set_description(""),
4033
4034 Option("nss_db_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4035 .set_default("")
4036 .set_description(""),
4037
4038 Option("mgr_module_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4039 .set_default(CEPH_PKGLIBDIR "/mgr")
4040 .set_description(""),
4041
4042 Option("mgr_initial_modules", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4043 .set_default("restful status")
4044 .set_description(""),
4045
4046 Option("mgr_data", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4047 .set_default("/var/lib/ceph/mgr/$cluster-$id")
4048 .set_description(""),
4049
4050 Option("mgr_tick_period", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4051 .set_default(2)
4052 .set_description(""),
4053
4054 Option("mgr_stats_period", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4055 .set_default(5)
4056 .set_description(""),
4057
4058 Option("mgr_client_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
4059 .set_default(128*1048576)
4060 .set_description(""),
4061
4062 Option("mgr_client_messages", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
4063 .set_default(512)
4064 .set_description(""),
4065
4066 Option("mgr_osd_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
4067 .set_default(512*1048576)
4068 .set_description(""),
4069
4070 Option("mgr_osd_messages", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
4071 .set_default(8192)
4072 .set_description(""),
4073
4074 Option("mgr_mds_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
4075 .set_default(128*1048576)
4076 .set_description(""),
4077
4078 Option("mgr_mds_messages", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
4079 .set_default(128)
4080 .set_description(""),
4081
4082 Option("mgr_mon_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
4083 .set_default(128*1048576)
4084 .set_description(""),
4085
4086 Option("mgr_mon_messages", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
4087 .set_default(128)
4088 .set_description(""),
4089
4090 Option("mgr_connect_retry_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
4091 .set_default(1.0)
4092 .set_description(""),
4093
4094 Option("mgr_service_beacon_grace", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
4095 .set_default(60.0)
4096 .set_description(""),
4097
4098 Option("mon_mgr_digest_period", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4099 .set_default(5)
4100 .set_description(""),
4101
4102 Option("mon_mgr_beacon_grace", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4103 .set_default(30)
4104 .set_description(""),
4105
4106 Option("mon_mgr_inactive_grace", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4107 .set_default(60)
4108 .set_description(""),
4109
4110 Option("mon_mgr_mkfs_grace", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4111 .set_default(60)
4112 .set_description(""),
4113
4114 Option("mutex_perf_counter", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4115 .set_default(false)
4116 .set_description(""),
4117
4118 Option("throttler_perf_counter", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4119 .set_default(true)
4120 .set_description(""),
4121
4122 Option("event_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4123 .set_default(false)
4124 .set_description(""),
4125
4126 Option("internal_safe_to_start_threads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4127 .set_default(false)
4128 .set_description(""),
4129
4130 Option("debug_deliberately_leak_memory", Option::TYPE_BOOL, Option::LEVEL_DEV)
4131 .set_default(false)
4132 .set_description(""),
4133 });
4134 }
4135
4136 std::vector<Option> get_rgw_options() {
4137 return std::vector<Option>({
4138 Option("rgw_acl_grants_max_num", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4139 .set_default(100)
4140 .set_description(""),
4141
4142 Option("rgw_max_chunk_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4143 .set_default(4 * 1024 * 1024)
4144 .set_description(""),
4145
4146 Option("rgw_put_obj_min_window_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4147 .set_default(16 * 1024 * 1024)
4148 .set_description(""),
4149
4150 Option("rgw_put_obj_max_window_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4151 .set_default(64 * 1024 * 1024)
4152 .set_description(""),
4153
4154 Option("rgw_max_put_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
4155 .set_default(5ULL*1024*1024*1024)
4156 .set_description(""),
4157
4158 Option("rgw_max_put_param_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
4159 .set_default(1 * 1024 * 1024)
4160 .set_description(""),
4161
4162 Option("rgw_override_bucket_index_max_shards", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
4163 .set_default(0)
4164 .set_description(""),
4165
4166 Option("rgw_bucket_index_max_aio", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
4167 .set_default(8)
4168 .set_description(""),
4169
4170 Option("rgw_enable_quota_threads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4171 .set_default(true)
4172 .set_description(""),
4173
4174 Option("rgw_enable_gc_threads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4175 .set_default(true)
4176 .set_description(""),
4177
4178 Option("rgw_enable_lc_threads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4179 .set_default(true)
4180 .set_description(""),
4181
4182 Option("rgw_data", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4183 .set_default("/var/lib/ceph/radosgw/$cluster-$id")
4184 .set_description(""),
4185
4186 Option("rgw_enable_apis", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4187 .set_default("s3, s3website, swift, swift_auth, admin")
4188 .set_description(""),
4189
4190 Option("rgw_cache_enabled", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4191 .set_default(true)
4192 .set_description(""),
4193
4194 Option("rgw_cache_lru_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4195 .set_default(10000)
4196 .set_description(""),
4197
4198 Option("rgw_socket_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4199 .set_default("")
4200 .set_description(""),
4201
4202 Option("rgw_host", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4203 .set_default("")
4204 .set_description(""),
4205
4206 Option("rgw_port", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4207 .set_default("")
4208 .set_description(""),
4209
4210 Option("rgw_dns_name", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4211 .set_default("")
4212 .set_description(""),
4213
4214 Option("rgw_dns_s3website_name", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4215 .set_default("")
4216 .set_description(""),
4217
4218 Option("rgw_content_length_compat", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4219 .set_default(false)
4220 .set_description(""),
4221
4222 Option("rgw_lifecycle_work_time", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4223 .set_default("00:00-06:00")
4224 .set_description(""),
4225
4226 Option("rgw_lc_lock_max_time", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4227 .set_default(60)
4228 .set_description(""),
4229
4230 Option("rgw_lc_max_objs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4231 .set_default(32)
4232 .set_description(""),
4233
4234 Option("rgw_lc_debug_interval", Option::TYPE_INT, Option::LEVEL_DEV)
4235 .set_default(-1)
4236 .set_description(""),
4237
4238 Option("rgw_mp_lock_max_time", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4239 .set_default(600)
4240 .set_description(""),
4241
4242 Option("rgw_script_uri", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4243 .set_default("")
4244 .set_description(""),
4245
4246 Option("rgw_request_uri", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4247 .set_default("")
4248 .set_description(""),
4249
4250 Option("rgw_swift_url", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4251 .set_default("")
4252 .set_description(""),
4253
4254 Option("rgw_swift_url_prefix", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4255 .set_default("swift")
4256 .set_description(""),
4257
4258 Option("rgw_swift_auth_url", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4259 .set_default("")
4260 .set_description(""),
4261
4262 Option("rgw_swift_auth_entry", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4263 .set_default("auth")
4264 .set_description(""),
4265
4266 Option("rgw_swift_tenant_name", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4267 .set_default("")
4268 .set_description(""),
4269
4270 Option("rgw_swift_account_in_url", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4271 .set_default(false)
4272 .set_description(""),
4273
4274 Option("rgw_swift_enforce_content_length", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4275 .set_default(false)
4276 .set_description(""),
4277
4278 Option("rgw_keystone_url", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4279 .set_default("")
4280 .set_description(""),
4281
4282 Option("rgw_keystone_admin_token", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4283 .set_default("")
4284 .set_description(""),
4285
4286 Option("rgw_keystone_admin_user", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4287 .set_default("")
4288 .set_description(""),
4289
4290 Option("rgw_keystone_admin_password", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4291 .set_default("")
4292 .set_description(""),
4293
4294 Option("rgw_keystone_admin_tenant", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4295 .set_default("")
4296 .set_description(""),
4297
4298 Option("rgw_keystone_admin_project", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4299 .set_default("")
4300 .set_description(""),
4301
4302 Option("rgw_keystone_admin_domain", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4303 .set_default("")
4304 .set_description(""),
4305
4306 Option("rgw_keystone_barbican_user", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4307 .set_default("")
4308 .set_description(""),
4309
4310 Option("rgw_keystone_barbican_password", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4311 .set_default("")
4312 .set_description(""),
4313
4314 Option("rgw_keystone_barbican_tenant", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4315 .set_default("")
4316 .set_description(""),
4317
4318 Option("rgw_keystone_barbican_project", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4319 .set_default("")
4320 .set_description(""),
4321
4322 Option("rgw_keystone_barbican_domain", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4323 .set_default("")
4324 .set_description(""),
4325
4326 Option("rgw_keystone_api_version", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4327 .set_default(2)
4328 .set_description(""),
4329
4330 Option("rgw_keystone_accepted_roles", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4331 .set_default("Member, admin")
4332 .set_description(""),
4333
4334 Option("rgw_keystone_accepted_admin_roles", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4335 .set_default("")
4336 .set_description(""),
4337
4338 Option("rgw_keystone_token_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4339 .set_default(10000)
4340 .set_description(""),
4341
4342 Option("rgw_keystone_revocation_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4343 .set_default(15 * 60)
4344 .set_description(""),
4345
4346 Option("rgw_keystone_verify_ssl", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4347 .set_default(true)
4348 .set_description(""),
4349
4350 Option("rgw_keystone_implicit_tenants", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4351 .set_default(false)
4352 .set_description(""),
4353
4354 Option("rgw_cross_domain_policy", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4355 .set_default("<allow-access-from domain=\"*\" secure=\"false\" />")
4356 .set_description(""),
4357
4358 Option("rgw_healthcheck_disabling_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4359 .set_default("")
4360 .set_description(""),
4361
4362 Option("rgw_s3_auth_use_rados", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4363 .set_default(true)
4364 .set_description(""),
4365
4366 Option("rgw_s3_auth_use_keystone", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4367 .set_default(false)
4368 .set_description(""),
4369
4370 Option("rgw_s3_auth_aws4_force_boto2_compat", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4371 .set_default(true)
4372 .set_description(""),
4373
4374 Option("rgw_barbican_url", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4375 .set_default("")
4376 .set_description(""),
4377
4378 Option("rgw_ldap_uri", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4379 .set_default("ldaps://<ldap.your.domain>")
4380 .set_description(""),
4381
4382 Option("rgw_ldap_binddn", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4383 .set_default("uid=admin,cn=users,dc=example,dc=com")
4384 .set_description(""),
4385
4386 Option("rgw_ldap_searchdn", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4387 .set_default("cn=users,cn=accounts,dc=example,dc=com")
4388 .set_description(""),
4389
4390 Option("rgw_ldap_dnattr", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4391 .set_default("uid")
4392 .set_description(""),
4393
4394 Option("rgw_ldap_secret", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4395 .set_default("/etc/openldap/secret")
4396 .set_description(""),
4397
4398 Option("rgw_s3_auth_use_ldap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4399 .set_default(false)
4400 .set_description(""),
4401
4402 Option("rgw_ldap_searchfilter", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4403 .set_default("")
4404 .set_description(""),
4405
4406 Option("rgw_admin_entry", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4407 .set_default("admin")
4408 .set_description(""),
4409
4410 Option("rgw_enforce_swift_acls", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4411 .set_default(true)
4412 .set_description(""),
4413
4414 Option("rgw_swift_token_expiration", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4415 .set_default(24 * 3600)
4416 .set_description(""),
4417
4418 Option("rgw_print_continue", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4419 .set_default(true)
4420 .set_description(""),
4421
4422 Option("rgw_print_prohibited_content_length", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4423 .set_default(false)
4424 .set_description(""),
4425
4426 Option("rgw_remote_addr_param", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4427 .set_default("REMOTE_ADDR")
4428 .set_description(""),
4429
4430 Option("rgw_op_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4431 .set_default(10*60)
4432 .set_description(""),
4433
4434 Option("rgw_op_thread_suicide_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4435 .set_default(0)
4436 .set_description(""),
4437
4438 Option("rgw_thread_pool_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4439 .set_default(100)
4440 .set_description(""),
4441
4442 Option("rgw_num_control_oids", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4443 .set_default(8)
4444 .set_description(""),
4445
4446 Option("rgw_num_rados_handles", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
4447 .set_default(1)
4448 .set_description(""),
4449
4450 Option("rgw_verify_ssl", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4451 .set_default(true)
4452 .set_description(""),
4453
4454 Option("rgw_nfs_lru_lanes", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4455 .set_default(5)
4456 .set_description(""),
4457
4458 Option("rgw_nfs_lru_lane_hiwat", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4459 .set_default(911)
4460 .set_description(""),
4461
4462 Option("rgw_nfs_fhcache_partitions", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4463 .set_default(3)
4464 .set_description(""),
4465
4466 Option("rgw_nfs_fhcache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4467 .set_default(2017)
4468 .set_description(""),
4469
4470 Option("rgw_nfs_namespace_expire_secs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4471 .set_default(300)
4472 .set_min(1)
4473 .set_description(""),
4474
4475 Option("rgw_nfs_max_gc", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4476 .set_default(300)
4477 .set_min(1)
4478 .set_description(""),
4479
4480 Option("rgw_nfs_write_completion_interval_s", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4481 .set_default(10)
4482 .set_description(""),
4483
4484 Option("rgw_zone", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4485 .set_default("")
4486 .set_description(""),
4487
4488 Option("rgw_zone_root_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4489 .set_default(".rgw.root")
4490 .set_description(""),
4491
4492 Option("rgw_default_zone_info_oid", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4493 .set_default("default.zone")
4494 .set_description(""),
4495
4496 Option("rgw_region", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4497 .set_default("")
4498 .set_description(""),
4499
4500 Option("rgw_region_root_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4501 .set_default(".rgw.root")
4502 .set_description(""),
4503
4504 Option("rgw_default_region_info_oid", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4505 .set_default("default.region")
4506 .set_description(""),
4507
4508 Option("rgw_zonegroup", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4509 .set_default("")
4510 .set_description(""),
4511
4512 Option("rgw_zonegroup_root_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4513 .set_default(".rgw.root")
4514 .set_description(""),
4515
4516 Option("rgw_default_zonegroup_info_oid", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4517 .set_default("default.zonegroup")
4518 .set_description(""),
4519
4520 Option("rgw_realm", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4521 .set_default("")
4522 .set_description(""),
4523
4524 Option("rgw_realm_root_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4525 .set_default(".rgw.root")
4526 .set_description(""),
4527
4528 Option("rgw_default_realm_info_oid", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4529 .set_default("default.realm")
4530 .set_description(""),
4531
4532 Option("rgw_period_root_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4533 .set_default(".rgw.root")
4534 .set_description(""),
4535
4536 Option("rgw_period_latest_epoch_info_oid", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4537 .set_default(".latest_epoch")
4538 .set_description(""),
4539
4540 Option("rgw_log_nonexistent_bucket", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4541 .set_default(false)
4542 .set_description(""),
4543
4544 Option("rgw_log_object_name", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4545 .set_default("%Y-%m-%d-%H-%i-%n")
4546 .set_description(""),
4547
4548 Option("rgw_log_object_name_utc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4549 .set_default(false)
4550 .set_description(""),
4551
4552 Option("rgw_usage_max_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4553 .set_default(32)
4554 .set_description(""),
4555
4556 Option("rgw_usage_max_user_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4557 .set_default(1)
4558 .set_min(1)
4559 .set_description(""),
4560
4561 Option("rgw_enable_ops_log", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4562 .set_default(false)
4563 .set_description(""),
4564
4565 Option("rgw_enable_usage_log", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4566 .set_default(false)
4567 .set_description(""),
4568
4569 Option("rgw_ops_log_rados", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4570 .set_default(true)
4571 .set_description(""),
4572
4573 Option("rgw_ops_log_socket_path", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4574 .set_default("")
4575 .set_description(""),
4576
4577 Option("rgw_ops_log_data_backlog", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4578 .set_default(5 << 20)
4579 .set_description(""),
4580
4581 Option("rgw_fcgi_socket_backlog", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4582 .set_default(1024)
4583 .set_description(""),
4584
4585 Option("rgw_usage_log_flush_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4586 .set_default(1024)
4587 .set_description(""),
4588
4589 Option("rgw_usage_log_tick_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4590 .set_default(30)
4591 .set_description(""),
4592
4593 Option("rgw_intent_log_object_name", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4594 .set_default("%Y-%m-%d-%i-%n")
4595 .set_description(""),
4596
4597 Option("rgw_intent_log_object_name_utc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4598 .set_default(false)
4599 .set_description(""),
4600
4601 Option("rgw_init_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4602 .set_default(300)
4603 .set_description(""),
4604
4605 Option("rgw_mime_types_file", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4606 .set_default("/etc/mime.types")
4607 .set_description(""),
4608
4609 Option("rgw_gc_max_objs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4610 .set_default(32)
4611 .set_description(""),
4612
4613 Option("rgw_gc_obj_min_wait", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4614 .set_default(2 * 3600)
4615 .set_description(""),
4616
4617 Option("rgw_gc_processor_max_time", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4618 .set_default(3600)
4619 .set_description(""),
4620
4621 Option("rgw_gc_processor_period", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4622 .set_default(3600)
4623 .set_description(""),
4624
4625 Option("rgw_s3_success_create_obj_status", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4626 .set_default(0)
4627 .set_description(""),
4628
4629 Option("rgw_resolve_cname", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4630 .set_default(false)
4631 .set_description(""),
4632
4633 Option("rgw_obj_stripe_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4634 .set_default(4 << 20)
4635 .set_description(""),
4636
4637 Option("rgw_extended_http_attrs", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4638 .set_default("")
4639 .set_description(""),
4640
4641 Option("rgw_exit_timeout_secs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4642 .set_default(120)
4643 .set_description(""),
4644
4645 Option("rgw_get_obj_window_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4646 .set_default(16 << 20)
4647 .set_description(""),
4648
4649 Option("rgw_get_obj_max_req_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4650 .set_default(4 << 20)
4651 .set_description(""),
4652
4653 Option("rgw_relaxed_s3_bucket_names", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4654 .set_default(false)
4655 .set_description(""),
4656
4657 Option("rgw_defer_to_bucket_acls", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4658 .set_default("")
4659 .set_description(""),
4660
4661 Option("rgw_list_buckets_max_chunk", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4662 .set_default(1000)
4663 .set_description(""),
4664
4665 Option("rgw_md_log_max_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4666 .set_default(64)
4667 .set_description(""),
4668
4669 Option("rgw_num_zone_opstate_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4670 .set_default(128)
4671 .set_description(""),
4672
4673 Option("rgw_opstate_ratelimit_sec", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4674 .set_default(30)
4675 .set_description(""),
4676
4677 Option("rgw_curl_wait_timeout_ms", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4678 .set_default(1000)
4679 .set_description(""),
4680
4681 Option("rgw_copy_obj_progress", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4682 .set_default(true)
4683 .set_description(""),
4684
4685 Option("rgw_copy_obj_progress_every_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4686 .set_default(1024 * 1024)
4687 .set_description(""),
4688
4689 Option("rgw_obj_tombstone_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4690 .set_default(1000)
4691 .set_description(""),
4692
4693 Option("rgw_data_log_window", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4694 .set_default(30)
4695 .set_description(""),
4696
4697 Option("rgw_data_log_changes_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4698 .set_default(1000)
4699 .set_description(""),
4700
4701 Option("rgw_data_log_num_shards", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4702 .set_default(128)
4703 .set_description(""),
4704
4705 Option("rgw_data_log_obj_prefix", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4706 .set_default("data_log")
4707 .set_description(""),
4708
4709 Option("rgw_replica_log_obj_prefix", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4710 .set_default("replica_log")
4711 .set_description(""),
4712
4713 Option("rgw_bucket_quota_ttl", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4714 .set_default(600)
4715 .set_description(""),
4716
4717 Option("rgw_bucket_quota_soft_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
4718 .set_default(0.95)
4719 .set_description(""),
4720
4721 Option("rgw_bucket_quota_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4722 .set_default(10000)
4723 .set_description(""),
4724
4725 Option("rgw_bucket_default_quota_max_objects", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4726 .set_default(-1)
4727 .set_description(""),
4728
4729 Option("rgw_bucket_default_quota_max_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4730 .set_default(-1)
4731 .set_description(""),
4732
4733 Option("rgw_expose_bucket", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4734 .set_default(false)
4735 .set_description(""),
4736
4737 Option("rgw_frontends", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4738 .set_default("civetweb port=7480")
4739 .set_description(""),
4740
4741 Option("rgw_user_quota_bucket_sync_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4742 .set_default(180)
4743 .set_description(""),
4744
4745 Option("rgw_user_quota_sync_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4746 .set_default(3600 * 24)
4747 .set_description(""),
4748
4749 Option("rgw_user_quota_sync_idle_users", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4750 .set_default(false)
4751 .set_description(""),
4752
4753 Option("rgw_user_quota_sync_wait_time", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4754 .set_default(3600 * 24)
4755 .set_description(""),
4756
4757 Option("rgw_user_default_quota_max_objects", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4758 .set_default(-1)
4759 .set_description(""),
4760
4761 Option("rgw_user_default_quota_max_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4762 .set_default(-1)
4763 .set_description(""),
4764
4765 Option("rgw_multipart_min_part_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4766 .set_default(5 * 1024 * 1024)
4767 .set_description(""),
4768
4769 Option("rgw_multipart_part_upload_limit", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4770 .set_default(10000)
4771 .set_description(""),
4772
4773 Option("rgw_max_slo_entries", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4774 .set_default(1000)
4775 .set_description(""),
4776
4777 Option("rgw_olh_pending_timeout_sec", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4778 .set_default(3600)
4779 .set_description(""),
4780
4781 Option("rgw_user_max_buckets", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4782 .set_default(1000)
4783 .set_description(""),
4784
4785 Option("rgw_objexp_gc_interval", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
4786 .set_default(60 * 10)
4787 .set_description(""),
4788
4789 Option("rgw_objexp_time_step", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
4790 .set_default(4096)
4791 .set_description(""),
4792
4793 Option("rgw_objexp_hints_num_shards", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
4794 .set_default(127)
4795 .set_description(""),
4796
4797 Option("rgw_objexp_chunk_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
4798 .set_default(100)
4799 .set_description(""),
4800
4801 Option("rgw_enable_static_website", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4802 .set_default(false)
4803 .set_description(""),
4804
4805 Option("rgw_log_http_headers", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4806 .set_default("")
4807 .set_description(""),
4808
4809 Option("rgw_num_async_rados_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4810 .set_default(32)
4811 .set_description(""),
4812
4813 Option("rgw_md_notify_interval_msec", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4814 .set_default(200)
4815 .set_description(""),
4816
4817 Option("rgw_run_sync_thread", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4818 .set_default(true)
4819 .set_description(""),
4820
4821 Option("rgw_sync_lease_period", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4822 .set_default(120)
4823 .set_description(""),
4824
4825 Option("rgw_sync_log_trim_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4826 .set_default(1200)
4827 .set_description(""),
4828
4829 Option("rgw_sync_data_inject_err_probability", Option::TYPE_FLOAT, Option::LEVEL_DEV)
4830 .set_default(0)
4831 .set_description(""),
4832
4833 Option("rgw_sync_meta_inject_err_probability", Option::TYPE_FLOAT, Option::LEVEL_DEV)
4834 .set_default(0)
4835 .set_description(""),
4836
4837 Option("rgw_period_push_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
4838 .set_default(2)
4839 .set_description(""),
4840
4841 Option("rgw_period_push_interval_max", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
4842 .set_default(30)
4843 .set_description(""),
4844
4845 Option("rgw_safe_max_objects_per_shard", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4846 .set_default(100*1024)
4847 .set_description(""),
4848
4849 Option("rgw_shard_warning_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
4850 .set_default(90)
4851 .set_description(""),
4852
4853 Option("rgw_swift_versioning_enabled", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4854 .set_default(false)
4855 .set_description(""),
4856
4857 Option("rgw_swift_custom_header", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4858 .set_default("")
4859 .set_description(""),
4860
4861 Option("rgw_swift_need_stats", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4862 .set_default(true)
4863 .set_description(""),
4864
4865 Option("rgw_reshard_num_logs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4866 .set_default(16)
4867 .set_description(""),
4868
4869 Option("rgw_reshard_bucket_lock_duration", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4870 .set_default(120)
4871 .set_description(""),
4872
4873 Option("rgw_crypt_require_ssl", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4874 .set_default(true)
4875 .set_description(""),
4876
4877 Option("rgw_crypt_default_encryption_key", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4878 .set_default("")
4879 .set_description(""),
4880
4881 Option("rgw_crypt_s3_kms_encryption_keys", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4882 .set_default("")
4883 .set_description(""),
4884
4885 Option("rgw_crypt_suppress_logs", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4886 .set_default(true)
4887 .set_description(""),
4888
4889 Option("rgw_list_bucket_min_readahead", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4890 .set_default(1000)
4891 .set_description(""),
4892
4893 Option("rgw_rest_getusage_op_compat", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4894 .set_default(false)
4895 .set_description(""),
4896
4897 Option("rgw_torrent_flag", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4898 .set_default(false)
4899 .set_description(""),
4900
4901 Option("rgw_torrent_tracker", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4902 .set_default("")
4903 .set_description(""),
4904
4905 Option("rgw_torrent_createby", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4906 .set_default("")
4907 .set_description(""),
4908
4909 Option("rgw_torrent_comment", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4910 .set_default("")
4911 .set_description(""),
4912
4913 Option("rgw_torrent_encoding", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4914 .set_default("")
4915 .set_description(""),
4916
4917 Option("rgw_data_notify_interval_msec", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4918 .set_default(200)
4919 .set_description("data changes notification interval to followers"),
4920
4921 Option("rgw_torrent_origin", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4922 .set_default("")
4923 .set_description(""),
4924
4925 Option("rgw_torrent_sha_unit", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4926 .set_default(512*1024)
4927 .set_description(""),
4928
4929 Option("rgw_dynamic_resharding", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
4930 .set_default(false)
4931 .set_description(""),
4932
4933 Option("rgw_max_objs_per_shard", Option::TYPE_INT, Option::LEVEL_ADVANCED)
4934 .set_default(100000)
4935 .set_description(""),
4936
4937 Option("rgw_reshard_thread_interval", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
4938 .set_default(60 * 10)
4939 .set_description(""),
4940 });
4941 }
4942
4943 static std::vector<Option> get_rbd_options() {
4944 return std::vector<Option>({
4945 Option("rbd_default_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4946 .set_default("rbd")
4947 .set_description("")
4948 .set_validator([](std::string *value, std::string *error_message){
4949 boost::regex pattern("^[^@/]+$");
4950 if (!boost::regex_match (*value, pattern)) {
4951 *value = "rbd";
4952 *error_message = "invalid RBD default pool, resetting to 'rbd'";
4953 }
4954 return 0;
4955 }),
4956
4957 Option("rbd_default_data_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4958 .set_default("")
4959 .set_description("")
4960 .set_validator([](std::string *value, std::string *error_message){
4961 boost::regex pattern("^[^@/]*$");
4962 if (!boost::regex_match (*value, pattern)) {
4963 *value = "";
4964 *error_message = "ignoring invalid RBD data pool";
4965 }
4966 return 0;
4967 }),
4968
4969 Option("rbd_default_features", Option::TYPE_STR, Option::LEVEL_ADVANCED)
4970 .set_default("layering,exclusive-lock,object-map,fast-diff,deep-flatten")
4971 .set_description("")
4972 .set_safe()
4973 .set_validator([](std::string *value, std::string *error_message){
4974 static const std::map<std::string, uint64_t> FEATURE_MAP = {
4975 {RBD_FEATURE_NAME_LAYERING, RBD_FEATURE_LAYERING},
4976 {RBD_FEATURE_NAME_STRIPINGV2, RBD_FEATURE_STRIPINGV2},
4977 {RBD_FEATURE_NAME_EXCLUSIVE_LOCK, RBD_FEATURE_EXCLUSIVE_LOCK},
4978 {RBD_FEATURE_NAME_OBJECT_MAP, RBD_FEATURE_OBJECT_MAP},
4979 {RBD_FEATURE_NAME_FAST_DIFF, RBD_FEATURE_FAST_DIFF},
4980 {RBD_FEATURE_NAME_DEEP_FLATTEN, RBD_FEATURE_DEEP_FLATTEN},
4981 {RBD_FEATURE_NAME_JOURNALING, RBD_FEATURE_JOURNALING},
4982 {RBD_FEATURE_NAME_DATA_POOL, RBD_FEATURE_DATA_POOL},
4983 };
4984 static_assert((RBD_FEATURE_DATA_POOL << 1) > RBD_FEATURES_ALL,
4985 "new RBD feature added");
4986
4987 // convert user-friendly comma delimited feature name list to a bitmask
4988 // that is used by the librbd API
4989 uint64_t features = 0;
4990 error_message->clear();
4991
4992 try {
4993 features = boost::lexical_cast<decltype(features)>(*value);
4994
4995 uint64_t unsupported_features = (features & ~RBD_FEATURES_ALL);
4996 if (unsupported_features != 0ull) {
4997 features &= RBD_FEATURES_ALL;
4998
4999 std::stringstream ss;
5000 ss << "ignoring unknown feature mask 0x"
5001 << std::hex << unsupported_features;
5002 *error_message = ss.str();
5003 }
5004 } catch (const boost::bad_lexical_cast& ) {
5005 int r = 0;
5006 std::vector<std::string> feature_names;
5007 boost::split(feature_names, *value, boost::is_any_of(","));
5008 for (auto feature_name: feature_names) {
5009 boost::trim(feature_name);
5010 auto feature_it = FEATURE_MAP.find(feature_name);
5011 if (feature_it != FEATURE_MAP.end()) {
5012 features += feature_it->second;
5013 } else {
5014 if (!error_message->empty()) {
5015 *error_message += ", ";
5016 }
5017 *error_message += "ignoring unknown feature " + feature_name;
5018 r = -EINVAL;
5019 }
5020 }
5021
5022 if (features == 0 && r == -EINVAL) {
5023 features = RBD_FEATURES_DEFAULT;
5024 }
5025 }
5026 *value = stringify(features);
5027 return 0;
5028 }),
5029
5030 Option("rbd_op_threads", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5031 .set_default(1)
5032 .set_description(""),
5033
5034 Option("rbd_op_thread_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5035 .set_default(60)
5036 .set_description(""),
5037
5038 Option("rbd_non_blocking_aio", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5039 .set_default(true)
5040 .set_description(""),
5041
5042 Option("rbd_cache", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5043 .set_default(true)
5044 .set_description(""),
5045
5046 Option("rbd_cache_writethrough_until_flush", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5047 .set_default(true)
5048 .set_description(""),
5049
5050 Option("rbd_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5051 .set_default(32<<20)
5052 .set_description(""),
5053
5054 Option("rbd_cache_max_dirty", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5055 .set_default(24<<20)
5056 .set_description(""),
5057
5058 Option("rbd_cache_target_dirty", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5059 .set_default(16<<20)
5060 .set_description(""),
5061
5062 Option("rbd_cache_max_dirty_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5063 .set_default(1.0)
5064 .set_description(""),
5065
5066 Option("rbd_cache_max_dirty_object", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5067 .set_default(0)
5068 .set_description(""),
5069
5070 Option("rbd_cache_block_writes_upfront", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5071 .set_default(false)
5072 .set_description(""),
5073
5074 Option("rbd_concurrent_management_ops", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5075 .set_default(10)
5076 .set_min(1)
5077 .set_description(""),
5078
5079 Option("rbd_balance_snap_reads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5080 .set_default(false)
5081 .set_description(""),
5082
5083 Option("rbd_localize_snap_reads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5084 .set_default(false)
5085 .set_description(""),
5086
5087 Option("rbd_balance_parent_reads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5088 .set_default(false)
5089 .set_description(""),
5090
5091 Option("rbd_localize_parent_reads", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5092 .set_default(false)
5093 .set_description(""),
5094
5095 Option("rbd_readahead_trigger_requests", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5096 .set_default(10)
5097 .set_description(""),
5098
5099 Option("rbd_readahead_max_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5100 .set_default(512 * 1024)
5101 .set_description(""),
5102
5103 Option("rbd_readahead_disable_after_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5104 .set_default(50 * 1024 * 1024)
5105 .set_description(""),
5106
5107 Option("rbd_clone_copy_on_read", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5108 .set_default(false)
5109 .set_description(""),
5110
5111 Option("rbd_blacklist_on_break_lock", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5112 .set_default(true)
5113 .set_description(""),
5114
5115 Option("rbd_blacklist_expire_seconds", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5116 .set_default(0)
5117 .set_description(""),
5118
5119 Option("rbd_request_timed_out_seconds", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5120 .set_default(30)
5121 .set_description(""),
5122
5123 Option("rbd_skip_partial_discard", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5124 .set_default(false)
5125 .set_description(""),
5126
5127 Option("rbd_enable_alloc_hint", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5128 .set_default(true)
5129 .set_description(""),
5130
5131 Option("rbd_tracing", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5132 .set_default(false)
5133 .set_description(""),
5134
5135 Option("rbd_blkin_trace_all", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5136 .set_default(false)
5137 .set_description(""),
5138
5139 Option("rbd_validate_pool", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5140 .set_default(true)
5141 .set_description(""),
5142
5143 Option("rbd_validate_names", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5144 .set_default(true)
5145 .set_description(""),
5146
5147 Option("rbd_auto_exclusive_lock_until_manual_request", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5148 .set_default(true)
5149 .set_description(""),
5150
5151 Option("rbd_mirroring_resync_after_disconnect", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5152 .set_default(false)
5153 .set_description(""),
5154
5155 Option("rbd_mirroring_replay_delay", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5156 .set_default(0)
5157 .set_description(""),
5158
5159 Option("rbd_default_format", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5160 .set_default(2)
5161 .set_description(""),
5162
5163 Option("rbd_default_order", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5164 .set_default(22)
5165 .set_description(""),
5166
5167 Option("rbd_default_stripe_count", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5168 .set_default(0)
5169 .set_description(""),
5170
5171 Option("rbd_default_stripe_unit", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5172 .set_default(0)
5173 .set_description(""),
5174
5175 Option("rbd_default_map_options", Option::TYPE_STR, Option::LEVEL_ADVANCED)
5176 .set_default("")
5177 .set_description(""),
5178
5179 Option("rbd_journal_order", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5180 .set_default(24)
5181 .set_description(""),
5182
5183 Option("rbd_journal_splay_width", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5184 .set_default(4)
5185 .set_description(""),
5186
5187 Option("rbd_journal_commit_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5188 .set_default(5)
5189 .set_description(""),
5190
5191 Option("rbd_journal_object_flush_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5192 .set_default(0)
5193 .set_description(""),
5194
5195 Option("rbd_journal_object_flush_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5196 .set_default(0)
5197 .set_description(""),
5198
5199 Option("rbd_journal_object_flush_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5200 .set_default(0)
5201 .set_description(""),
5202
5203 Option("rbd_journal_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
5204 .set_default("")
5205 .set_description(""),
5206
5207 Option("rbd_journal_max_payload_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5208 .set_default(16384)
5209 .set_description(""),
5210
5211 Option("rbd_journal_max_concurrent_object_sets", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5212 .set_default(0)
5213 .set_description(""),
5214
5215 Option("rbd_mirror_journal_commit_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5216 .set_default(5)
5217 .set_description(""),
5218
5219 Option("rbd_mirror_journal_poll_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5220 .set_default(5)
5221 .set_description(""),
5222
5223 Option("rbd_mirror_journal_max_fetch_bytes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5224 .set_default(32768)
5225 .set_description(""),
5226
5227 Option("rbd_mirror_sync_point_update_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5228 .set_default(30)
5229 .set_description(""),
5230
5231 Option("rbd_mirror_concurrent_image_syncs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5232 .set_default(5)
5233 .set_description(""),
5234
5235 Option("rbd_mirror_pool_replayers_refresh_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5236 .set_default(30)
5237 .set_description(""),
5238
5239 Option("rbd_mirror_delete_retry_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5240 .set_default(30)
5241 .set_description(""),
5242
5243 Option("rbd_mirror_image_state_check_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5244 .set_default(30)
5245 .set_min(1)
5246 .set_description(""),
5247
5248 Option("rbd_mirror_leader_heartbeat_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5249 .set_default(5)
5250 .set_min(1)
5251 .set_description(""),
5252
5253 Option("rbd_mirror_leader_max_missed_heartbeats", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5254 .set_default(2)
5255 .set_description(""),
5256
5257 Option("rbd_mirror_leader_max_acquire_attempts_before_break", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5258 .set_default(3)
5259 .set_description(""),
5260 });
5261 }
5262
5263 std::vector<Option> get_mds_options() {
5264 return std::vector<Option>({
5265 Option("mds_data", Option::TYPE_STR, Option::LEVEL_ADVANCED)
5266 .set_default("/var/lib/ceph/mds/$cluster-$id")
5267 .set_description(""),
5268
5269 Option("mds_max_file_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5270 .set_default(1ULL << 40)
5271 .set_description(""),
5272
5273 Option("mds_max_xattr_pairs_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5274 .set_default(64 << 10)
5275 .set_description(""),
5276
5277 Option("mds_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5278 .set_default(100000)
5279 .set_description(""),
5280
5281 Option("mds_cache_mid", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5282 .set_default(.7)
5283 .set_description(""),
5284
5285 Option("mds_max_file_recover", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5286 .set_default(32)
5287 .set_description(""),
5288
5289 Option("mds_dir_max_commit_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5290 .set_default(10)
5291 .set_description(""),
5292
5293 Option("mds_dir_keys_per_op", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5294 .set_default(16384)
5295 .set_description(""),
5296
5297 Option("mds_decay_halflife", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5298 .set_default(5)
5299 .set_description(""),
5300
5301 Option("mds_beacon_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5302 .set_default(4)
5303 .set_description(""),
5304
5305 Option("mds_beacon_grace", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5306 .set_default(15)
5307 .set_description(""),
5308
5309 Option("mds_enforce_unique_name", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5310 .set_default(true)
5311 .set_description(""),
5312
5313 Option("mds_blacklist_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5314 .set_default(24.0*60.0)
5315 .set_description(""),
5316
5317 Option("mds_session_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5318 .set_default(60)
5319 .set_description(""),
5320
5321 Option("mds_session_blacklist_on_timeout", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5322 .set_default(true)
5323 .set_description(""),
5324
5325 Option("mds_session_blacklist_on_evict", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5326 .set_default(true)
5327 .set_description(""),
5328
5329 Option("mds_sessionmap_keys_per_op", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5330 .set_default(1024)
5331 .set_description(""),
5332
5333 Option("mds_revoke_cap_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5334 .set_default(60)
5335 .set_description(""),
5336
5337 Option("mds_recall_state_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5338 .set_default(60)
5339 .set_description(""),
5340
5341 Option("mds_freeze_tree_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5342 .set_default(30)
5343 .set_description(""),
5344
5345 Option("mds_session_autoclose", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5346 .set_default(300)
5347 .set_description(""),
5348
5349 Option("mds_health_summarize_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5350 .set_default(10)
5351 .set_description(""),
5352
5353 Option("mds_health_cache_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5354 .set_default(1.5)
5355 .set_description(""),
5356
5357 Option("mds_reconnect_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5358 .set_default(45)
5359 .set_description(""),
5360
5361 Option("mds_tick_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5362 .set_default(5)
5363 .set_description(""),
5364
5365 Option("mds_dirstat_min_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5366 .set_default(1)
5367 .set_description(""),
5368
5369 Option("mds_scatter_nudge_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5370 .set_default(5)
5371 .set_description(""),
5372
5373 Option("mds_client_prealloc_inos", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5374 .set_default(1000)
5375 .set_description(""),
5376
5377 Option("mds_early_reply", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5378 .set_default(true)
5379 .set_description(""),
5380
5381 Option("mds_default_dir_hash", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5382 .set_default(CEPH_STR_HASH_RJENKINS)
5383 .set_description(""),
5384
5385 Option("mds_log_pause", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5386 .set_default(false)
5387 .set_description(""),
5388
5389 Option("mds_log_skip_corrupt_events", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5390 .set_default(false)
5391 .set_description(""),
5392
5393 Option("mds_log_max_events", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5394 .set_default(-1)
5395 .set_description(""),
5396
5397 Option("mds_log_events_per_segment", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5398 .set_default(1024)
5399 .set_description(""),
5400
5401 Option("mds_log_segment_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5402 .set_default(0)
5403 .set_description(""),
5404
5405 Option("mds_log_max_segments", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5406 .set_default(30)
5407 .set_description(""),
5408
5409 Option("mds_log_max_expiring", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5410 .set_default(20)
5411 .set_description(""),
5412
5413 Option("mds_bal_export_pin", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5414 .set_default(true)
5415 .set_description(""),
5416
5417 Option("mds_bal_sample_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5418 .set_default(3.0)
5419 .set_description(""),
5420
5421 Option("mds_bal_replicate_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5422 .set_default(8000)
5423 .set_description(""),
5424
5425 Option("mds_bal_unreplicate_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5426 .set_default(0)
5427 .set_description(""),
5428
5429 Option("mds_bal_frag", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5430 .set_default(true)
5431 .set_description(""),
5432
5433 Option("mds_bal_split_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5434 .set_default(10000)
5435 .set_description(""),
5436
5437 Option("mds_bal_split_rd", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5438 .set_default(25000)
5439 .set_description(""),
5440
5441 Option("mds_bal_split_wr", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5442 .set_default(10000)
5443 .set_description(""),
5444
5445 Option("mds_bal_split_bits", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5446 .set_default(3)
5447 .set_description(""),
5448
5449 Option("mds_bal_merge_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5450 .set_default(50)
5451 .set_description(""),
5452
5453 Option("mds_bal_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5454 .set_default(10)
5455 .set_description(""),
5456
5457 Option("mds_bal_fragment_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5458 .set_default(5)
5459 .set_description(""),
5460
5461 Option("mds_bal_fragment_size_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5462 .set_default(10000*10)
5463 .set_description(""),
5464
5465 Option("mds_bal_fragment_fast_factor", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5466 .set_default(1.5)
5467 .set_description(""),
5468
5469 Option("mds_bal_idle_threshold", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5470 .set_default(0)
5471 .set_description(""),
5472
5473 Option("mds_bal_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5474 .set_default(-1)
5475 .set_description(""),
5476
5477 Option("mds_bal_max_until", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5478 .set_default(-1)
5479 .set_description(""),
5480
5481 Option("mds_bal_mode", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5482 .set_default(0)
5483 .set_description(""),
5484
5485 Option("mds_bal_min_rebalance", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5486 .set_default(.1)
5487 .set_description(""),
5488
5489 Option("mds_bal_min_start", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5490 .set_default(.2)
5491 .set_description(""),
5492
5493 Option("mds_bal_need_min", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5494 .set_default(.8)
5495 .set_description(""),
5496
5497 Option("mds_bal_need_max", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5498 .set_default(1.2)
5499 .set_description(""),
5500
5501 Option("mds_bal_midchunk", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5502 .set_default(.3)
5503 .set_description(""),
5504
5505 Option("mds_bal_minchunk", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5506 .set_default(.001)
5507 .set_description(""),
5508
5509 Option("mds_bal_target_decay", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5510 .set_default(10.0)
5511 .set_description(""),
5512
5513 Option("mds_replay_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5514 .set_default(1.0)
5515 .set_description(""),
5516
5517 Option("mds_shutdown_check", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5518 .set_default(0)
5519 .set_description(""),
5520
5521 Option("mds_thrash_exports", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5522 .set_default(0)
5523 .set_description(""),
5524
5525 Option("mds_thrash_fragments", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5526 .set_default(0)
5527 .set_description(""),
5528
5529 Option("mds_dump_cache_on_map", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5530 .set_default(false)
5531 .set_description(""),
5532
5533 Option("mds_dump_cache_after_rejoin", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5534 .set_default(false)
5535 .set_description(""),
5536
5537 Option("mds_verify_scatter", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5538 .set_default(false)
5539 .set_description(""),
5540
5541 Option("mds_debug_scatterstat", Option::TYPE_BOOL, Option::LEVEL_DEV)
5542 .set_default(false)
5543 .set_description(""),
5544
5545 Option("mds_debug_frag", Option::TYPE_BOOL, Option::LEVEL_DEV)
5546 .set_default(false)
5547 .set_description(""),
5548
5549 Option("mds_debug_auth_pins", Option::TYPE_BOOL, Option::LEVEL_DEV)
5550 .set_default(false)
5551 .set_description(""),
5552
5553 Option("mds_debug_subtrees", Option::TYPE_BOOL, Option::LEVEL_DEV)
5554 .set_default(false)
5555 .set_description(""),
5556
5557 Option("mds_kill_mdstable_at", Option::TYPE_INT, Option::LEVEL_DEV)
5558 .set_default(0)
5559 .set_description(""),
5560
5561 Option("mds_kill_export_at", Option::TYPE_INT, Option::LEVEL_DEV)
5562 .set_default(0)
5563 .set_description(""),
5564
5565 Option("mds_kill_import_at", Option::TYPE_INT, Option::LEVEL_DEV)
5566 .set_default(0)
5567 .set_description(""),
5568
5569 Option("mds_kill_link_at", Option::TYPE_INT, Option::LEVEL_DEV)
5570 .set_default(0)
5571 .set_description(""),
5572
5573 Option("mds_kill_rename_at", Option::TYPE_INT, Option::LEVEL_DEV)
5574 .set_default(0)
5575 .set_description(""),
5576
5577 Option("mds_kill_openc_at", Option::TYPE_INT, Option::LEVEL_DEV)
5578 .set_default(0)
5579 .set_description(""),
5580
5581 Option("mds_kill_journal_at", Option::TYPE_INT, Option::LEVEL_DEV)
5582 .set_default(0)
5583 .set_description(""),
5584
5585 Option("mds_kill_journal_expire_at", Option::TYPE_INT, Option::LEVEL_DEV)
5586 .set_default(0)
5587 .set_description(""),
5588
5589 Option("mds_kill_journal_replay_at", Option::TYPE_INT, Option::LEVEL_DEV)
5590 .set_default(0)
5591 .set_description(""),
5592
5593 Option("mds_journal_format", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5594 .set_default(1)
5595 .set_description(""),
5596
5597 Option("mds_kill_create_at", Option::TYPE_INT, Option::LEVEL_DEV)
5598 .set_default(0)
5599 .set_description(""),
5600
5601 Option("mds_inject_traceless_reply_probability", Option::TYPE_FLOAT, Option::LEVEL_DEV)
5602 .set_default(0)
5603 .set_description(""),
5604
5605 Option("mds_wipe_sessions", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5606 .set_default(0)
5607 .set_description(""),
5608
5609 Option("mds_wipe_ino_prealloc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5610 .set_default(0)
5611 .set_description(""),
5612
5613 Option("mds_skip_ino", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5614 .set_default(0)
5615 .set_description(""),
5616
5617 Option("mds_standby_for_name", Option::TYPE_STR, Option::LEVEL_ADVANCED)
5618 .set_default("")
5619 .set_description(""),
5620
5621 Option("mds_standby_for_rank", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5622 .set_default(-1)
5623 .set_description(""),
5624
5625 Option("mds_standby_for_fscid", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5626 .set_default(-1)
5627 .set_description(""),
5628
5629 Option("mds_standby_replay", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5630 .set_default(false)
5631 .set_description(""),
5632
5633 Option("mds_enable_op_tracker", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5634 .set_default(true)
5635 .set_description(""),
5636
5637 Option("mds_op_history_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5638 .set_default(20)
5639 .set_description(""),
5640
5641 Option("mds_op_history_duration", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5642 .set_default(600)
5643 .set_description(""),
5644
5645 Option("mds_op_complaint_time", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5646 .set_default(30)
5647 .set_description(""),
5648
5649 Option("mds_op_log_threshold", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5650 .set_default(5)
5651 .set_description(""),
5652
5653 Option("mds_snap_min_uid", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5654 .set_default(0)
5655 .set_description(""),
5656
5657 Option("mds_snap_max_uid", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5658 .set_default(4294967294)
5659 .set_description(""),
5660
5661 Option("mds_snap_rstat", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5662 .set_default(false)
5663 .set_description(""),
5664
5665 Option("mds_verify_backtrace", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5666 .set_default(1)
5667 .set_description(""),
5668
5669 Option("mds_max_completed_flushes", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5670 .set_default(100000)
5671 .set_description(""),
5672
5673 Option("mds_max_completed_requests", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5674 .set_default(100000)
5675 .set_description(""),
5676
5677 Option("mds_action_on_write_error", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5678 .set_default(1)
5679 .set_description(""),
5680
5681 Option("mds_mon_shutdown_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5682 .set_default(5)
5683 .set_description(""),
5684
5685 Option("mds_max_purge_files", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5686 .set_default(64)
5687 .set_description(""),
5688
5689 Option("mds_max_purge_ops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5690 .set_default(8192)
5691 .set_description(""),
5692
5693 Option("mds_max_purge_ops_per_pg", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5694 .set_default(0.5)
5695 .set_description(""),
5696
5697 Option("mds_purge_queue_busy_flush_period", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5698 .set_default(1.0)
5699 .set_description(""),
5700
5701 Option("mds_root_ino_uid", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5702 .set_default(0)
5703 .set_description(""),
5704
5705 Option("mds_root_ino_gid", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5706 .set_default(0)
5707 .set_description(""),
5708
5709 Option("mds_max_scrub_ops_in_progress", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5710 .set_default(5)
5711 .set_description(""),
5712
5713 Option("mds_damage_table_max_entries", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5714 .set_default(10000)
5715 .set_description(""),
5716
5717 Option("mds_client_writeable_range_max_inc_objs", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5718 .set_default(1024)
5719 .set_description(""),
5720 });
5721 }
5722
5723 std::vector<Option> get_mds_client_options() {
5724 return std::vector<Option>({
5725 Option("client_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5726 .set_default(16384)
5727 .set_description(""),
5728
5729 Option("client_cache_mid", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5730 .set_default(.75)
5731 .set_description(""),
5732
5733 Option("client_use_random_mds", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5734 .set_default(false)
5735 .set_description(""),
5736
5737 Option("client_mount_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5738 .set_default(300.0)
5739 .set_description(""),
5740
5741 Option("client_tick_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5742 .set_default(1.0)
5743 .set_description(""),
5744
5745 Option("client_trace", Option::TYPE_STR, Option::LEVEL_ADVANCED)
5746 .set_default("")
5747 .set_description(""),
5748
5749 Option("client_readahead_min", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5750 .set_default(128*1024)
5751 .set_description(""),
5752
5753 Option("client_readahead_max_bytes", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5754 .set_default(0)
5755 .set_description(""),
5756
5757 Option("client_readahead_max_periods", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5758 .set_default(4)
5759 .set_description(""),
5760
5761 Option("client_reconnect_stale", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5762 .set_default(false)
5763 .set_description(""),
5764
5765 Option("client_snapdir", Option::TYPE_STR, Option::LEVEL_ADVANCED)
5766 .set_default(".snap")
5767 .set_description(""),
5768
5769 Option("client_mountpoint", Option::TYPE_STR, Option::LEVEL_ADVANCED)
5770 .set_default("/")
5771 .set_description(""),
5772
5773 Option("client_mount_uid", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5774 .set_default(-1)
5775 .set_description(""),
5776
5777 Option("client_mount_gid", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5778 .set_default(-1)
5779 .set_description(""),
5780
5781 Option("client_notify_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5782 .set_default(10)
5783 .set_description(""),
5784
5785 Option("osd_client_watch_timeout", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5786 .set_default(30)
5787 .set_description(""),
5788
5789 Option("client_caps_release_delay", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5790 .set_default(5)
5791 .set_description(""),
5792
5793 Option("client_quota_df", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5794 .set_default(true)
5795 .set_description(""),
5796
5797 Option("client_oc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5798 .set_default(true)
5799 .set_description(""),
5800
5801 Option("client_oc_size", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5802 .set_default(1024*1024* 200)
5803 .set_description(""),
5804
5805 Option("client_oc_max_dirty", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5806 .set_default(1024*1024* 100)
5807 .set_description(""),
5808
5809 Option("client_oc_target_dirty", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5810 .set_default(1024*1024* 8)
5811 .set_description(""),
5812
5813 Option("client_oc_max_dirty_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
5814 .set_default(5.0)
5815 .set_description(""),
5816
5817 Option("client_oc_max_objects", Option::TYPE_INT, Option::LEVEL_ADVANCED)
5818 .set_default(1000)
5819 .set_description(""),
5820
5821 Option("client_debug_getattr_caps", Option::TYPE_BOOL, Option::LEVEL_DEV)
5822 .set_default(false)
5823 .set_description(""),
5824
5825 Option("client_debug_force_sync_read", Option::TYPE_BOOL, Option::LEVEL_DEV)
5826 .set_default(false)
5827 .set_description(""),
5828
5829 Option("client_debug_inject_tick_delay", Option::TYPE_INT, Option::LEVEL_DEV)
5830 .set_default(0)
5831 .set_description(""),
5832
5833 Option("client_max_inline_size", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
5834 .set_default(4096)
5835 .set_description(""),
5836
5837 Option("client_inject_release_failure", Option::TYPE_BOOL, Option::LEVEL_DEV)
5838 .set_default(false)
5839 .set_description(""),
5840
5841 Option("client_inject_fixed_oldest_tid", Option::TYPE_BOOL, Option::LEVEL_DEV)
5842 .set_default(false)
5843 .set_description(""),
5844
5845 Option("client_metadata", Option::TYPE_STR, Option::LEVEL_ADVANCED)
5846 .set_default("")
5847 .set_description(""),
5848
5849 Option("client_acl_type", Option::TYPE_STR, Option::LEVEL_ADVANCED)
5850 .set_default("")
5851 .set_description(""),
5852
5853 Option("client_permissions", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5854 .set_default(true)
5855 .set_description(""),
5856
5857 Option("client_dirsize_rbytes", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5858 .set_default(true)
5859 .set_description(""),
5860
5861 Option("fuse_use_invalidate_cb", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5862 .set_default(true)
5863 .set_description(""),
5864
5865 Option("fuse_disable_pagecache", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5866 .set_default(false)
5867 .set_description(""),
5868
5869 Option("fuse_allow_other", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5870 .set_default(true)
5871 .set_description(""),
5872
5873 Option("fuse_default_permissions", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5874 .set_default(false)
5875 .set_description(""),
5876
5877 Option("fuse_big_writes", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5878 .set_default(true)
5879 .set_description(""),
5880
5881 Option("fuse_atomic_o_trunc", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5882 .set_default(true)
5883 .set_description(""),
5884
5885 Option("fuse_debug", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5886 .set_default(false)
5887 .set_description(""),
5888
5889 Option("fuse_multithreaded", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5890 .set_default(true)
5891 .set_description(""),
5892
5893 Option("fuse_require_active_mds", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5894 .set_default(true)
5895 .set_description(""),
5896
5897 Option("fuse_syncfs_on_mksnap", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5898 .set_default(true)
5899 .set_description(""),
5900
5901 Option("fuse_set_user_groups", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5902 .set_default(false)
5903 .set_description(""),
5904
5905 Option("client_try_dentry_invalidate", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5906 .set_default(true)
5907 .set_description(""),
5908
5909 Option("client_die_on_failed_remount", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5910 .set_default(true)
5911 .set_description(""),
5912
5913 Option("client_check_pool_perm", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5914 .set_default(true)
5915 .set_description(""),
5916
5917 Option("client_use_faked_inos", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
5918 .set_default(false)
5919 .set_description(""),
5920
5921 Option("client_mds_namespace", Option::TYPE_STR, Option::LEVEL_ADVANCED)
5922 .set_default("")
5923 .set_description(""),
5924 });
5925 }
5926
5927
5928 static std::vector<Option> build_options()
5929 {
5930 std::vector<Option> result = get_global_options();
5931
5932 auto ingest = [&result](std::vector<Option>&& options, const char* svc) {
5933 for (const auto &o_in : options) {
5934 Option o(o_in);
5935 o.add_service(svc);
5936 result.push_back(o);
5937 }
5938 };
5939
5940 ingest(get_rgw_options(), "rgw");
5941 ingest(get_rbd_options(), "rbd");
5942 ingest(get_mds_options(), "mds");
5943 ingest(get_mds_client_options(), "mds_client");
5944
5945 return result;
5946 }
5947
5948 const std::vector<Option> ceph_options = build_options();