From: Yehuda Sadeh Date: Thu, 29 Jan 2009 21:55:33 +0000 (-0800) Subject: ceph.sh: startup script that uses conf file X-Git-Tag: v0.7~268 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=48d9c94891ebb615028bc24737e7f6d9c523abb5;p=ceph.git ceph.sh: startup script that uses conf file --- diff --git a/src/cconf.cc b/src/cconf.cc index 6112f8aec6ad..736002fed2f3 100644 --- a/src/cconf.cc +++ b/src/cconf.cc @@ -65,7 +65,7 @@ int main(int argc, const char **argv) usage(); ConfFile cf(fname); - cf.parse(); + parse_config_file(&cf, true); for (unsigned i=0; iread(section, var, &g_conf.inout, g_conf.inout) #define CF_READ_TYPE(section, var, type, inout) \ - cf.read(section, var, (type *)&g_conf.inout, (type)g_conf.inout) + cf->read(section, var, (type *)&g_conf.inout, (type)g_conf.inout) #define CF_READ_STR(section, var, inout) \ - cf.read(section, var, (char **)&g_conf.inout, (char *)g_conf.inout) + cf->read(section, var, (char **)&g_conf.inout, (char *)g_conf.inout) -void parse_config_file(const char *fname, bool dump_conf) +void parse_config_file(ConfFile *cf, bool auto_update) { - ConfFile cf(fname); + cf->set_auto_update(true); - cf.set_auto_update(dump_conf); + cf->parse(); - cf.parse(); - - CF_READ("global", "num_mon", num_mon); - CF_READ("global", "num_mds", num_mds); - CF_READ("global", "num_osd", num_osd); + CF_READ("global", "num mon", num_mon); + CF_READ("global", "num mds", num_mds); + CF_READ("global", "num osd", num_osd); CF_READ("global", "mkfs", mkfs); CF_READ("global", "daemonize", daemonize); - CF_READ("global", "file_logs", file_logs); + CF_READ("global", "file logs", file_logs); CF_READ("global", "log", log); - CF_READ("global", "log_interval", log_interval); - CF_READ_STR("global", "log_name", log_name); - CF_READ("global", "log_messages", log_messages); - CF_READ("global", "log_pins", log_pins); - CF_READ_STR("global", "dout_dir", dout_dir); - CF_READ_STR("global", "dout_sym_dir", dout_sym_dir); + CF_READ("global", "log interval", log_interval); + CF_READ_STR("global", "log name", log_name); + CF_READ("global", "log messages", log_messages); + CF_READ("global", "log pins", log_pins); + CF_READ_STR("global", "dout dir", dout_dir); + CF_READ_STR("global", "dout sym dir", dout_sym_dir); CF_READ("debug", "debug", debug); - CF_READ("debug", "debug_lockdep", debug_lockdep); - CF_READ("debug", "debug_mds", debug_mds); - CF_READ("debug", "debug_mds_balancer", debug_mds_balancer); - CF_READ("debug", "debug_mds_log_expire", debug_mds_log_expire); - CF_READ("debug", "debug_buffer", debug_buffer); - CF_READ("debug", "debug_filer", debug_filer); - CF_READ("debug", "debug_journaler", debug_journaler); - CF_READ("debug", "debug_client", debug_client); - CF_READ("debug", "debug_ebofs", debug_ebofs); - CF_READ("debug", "debug_journal", debug_journal); - CF_READ("debug", "debug_ns", debug_ns); - CF_READ("debug", "debug_mon", debug_mon); - CF_READ("debug", "debug_tp", debug_tp); - CF_READ("debug", "use_abspaths", use_abspaths); - - CF_READ("clock", "clock_lock", clock_lock); - CF_READ("clock", "clock_tare", clock_tare); - - CF_READ("messenger", "ms_tcp_nodelay", ms_tcp_nodelay); - CF_READ("messenger", "ms_retry_interval", ms_retry_interval); - CF_READ("messenger", "ms_fail_interval", ms_fail_interval); - CF_READ("messenger", "ms_die_on_failure", ms_die_on_failure); - CF_READ("messenger", "ms_stripe_osds", ms_stripe_osds); - CF_READ("messenger", "ms_skip_rank0", ms_skip_rank0); - CF_READ("messenger", "ms_overlay_clients", ms_overlay_clients); - CF_READ("messenger", "ms_no_crc", ms_nocrc); - - CF_READ("mon", "mon_tick_interval", mon_tick_interval); - CF_READ("mon", "mon_osd_down_out_interval", mon_osd_down_out_interval); - CF_READ("mon", "mon_lease", mon_lease); - CF_READ("mon", "mon_lease_renew_interval", mon_lease_renew_interval); - CF_READ("mon", "mon_lease_ack_timeout", mon_lease_ack_timeout); - CF_READ("mon", "mon_lease_timeout", mon_lease_timeout); - CF_READ("mon", "mon_accept_timeout", mon_accept_timeout); - CF_READ("mon", "mon_stop_on_last_unmount", mon_stop_on_last_unmount); - CF_READ("mon", "mon_stop_with_last_mds", mon_stop_with_last_mds); - CF_READ("mon", "mon_allow_mds_bully", mon_allow_mds_bully); - CF_READ("mon", "mon_pg_create_interval", mon_pg_create_interval); - - CF_READ("paxos", "paxos_propose_interval", paxos_propose_interval); - CF_READ("paxos", "paxos_observer_timeout", paxos_observer_timeout); - - CF_READ("client", "client_cache_size", client_cache_size); - CF_READ("client", "client_cache_mid", client_cache_mid); - CF_READ("client", "client_cache_stat_ttl", client_cache_stat_ttl); - CF_READ("client", "client_cache_readdir_ttl", client_cache_readdir_ttl); - CF_READ("client", "client_use_random_mds", client_use_random_mds); - CF_READ("client", "client_mount_timeout", client_mount_timeout); - CF_READ("client", "client_tick_interval", client_tick_interval); - CF_READ("client", "client_hack_balance_reads", client_hack_balance_reads); - CF_READ_STR("client", "client_trace", client_trace); - CF_READ_TYPE("client", "client_readahead_min", long long, client_readahead_min); - CF_READ_TYPE("client", "client_readahead_max_bytes", long long, client_readahead_max_bytes); - CF_READ_TYPE("client", "client_readahead_max_periods", long long, client_readahead_max_periods); - CF_READ_STR("client", "client_snapdir", client_snapdir); - - CF_READ("fuse", "fuse_direct_io", fuse_direct_io); + CF_READ("debug", "lockdep", debug_lockdep); + CF_READ("debug", "mds", debug_mds); + CF_READ("debug", "mds balancer", debug_mds_balancer); + CF_READ("debug", "mds log expire", debug_mds_log_expire); + CF_READ("debug", "buffer", debug_buffer); + CF_READ("debug", "filer", debug_filer); + CF_READ("debug", "journaler", debug_journaler); + CF_READ("debug", "client", debug_client); + CF_READ("debug", "ebofs", debug_ebofs); + CF_READ("debug", "journal", debug_journal); + CF_READ("debug", "ns", debug_ns); + CF_READ("debug", "mon", debug_mon); + CF_READ("debug", "tp", debug_tp); + CF_READ("debug", "use abspaths", use_abspaths); + + CF_READ("clock", "lock", clock_lock); + CF_READ("clock", "tare", clock_tare); + + CF_READ("messenger", "tcp nodelay", ms_tcp_nodelay); + CF_READ("messenger", "retry interval", ms_retry_interval); + CF_READ("messenger", "fail interval", ms_fail_interval); + CF_READ("messenger", "die on failure", ms_die_on_failure); + CF_READ("messenger", "stripe osds", ms_stripe_osds); + CF_READ("messenger", "skip rank0", ms_skip_rank0); + CF_READ("messenger", "overlay clients", ms_overlay_clients); + CF_READ("messenger", "no crc", ms_nocrc); + + CF_READ("mon", "tick interval", mon_tick_interval); + CF_READ("mon", "osd down out interval", mon_osd_down_out_interval); + CF_READ("mon", "lease", mon_lease); + CF_READ("mon", "lease renew interval", mon_lease_renew_interval); + CF_READ("mon", "lease ack timeout", mon_lease_ack_timeout); + CF_READ("mon", "lease timeout", mon_lease_timeout); + CF_READ("mon", "accept timeout", mon_accept_timeout); + CF_READ("mon", "stop on last unmount", mon_stop_on_last_unmount); + CF_READ("mon", "stop with last mds", mon_stop_with_last_mds); + CF_READ("mon", "allow mds bully", mon_allow_mds_bully); + CF_READ("mon", "pg create interval", mon_pg_create_interval); + + CF_READ("paxos", "propose interval", paxos_propose_interval); + CF_READ("paxos", "observer timeout", paxos_observer_timeout); + + CF_READ("client", "cache size", client_cache_size); + CF_READ("client", "cache mid", client_cache_mid); + CF_READ("client", "cache stat ttl", client_cache_stat_ttl); + CF_READ("client", "cache readdir ttl", client_cache_readdir_ttl); + CF_READ("client", "use random mds", client_use_random_mds); + CF_READ("client", "mount timeout", client_mount_timeout); + CF_READ("client", "tick interval", client_tick_interval); + CF_READ("client", "hack balance reads", client_hack_balance_reads); + CF_READ_STR("client", "trace", client_trace); + CF_READ_TYPE("client", "readahead min", long long, client_readahead_min); + CF_READ_TYPE("client", "readahead max bytes", long long, client_readahead_max_bytes); + CF_READ_TYPE("client", "readahead max periods", long long, client_readahead_max_periods); + CF_READ_STR("client", "snapdir", client_snapdir); + + CF_READ("fuse", "direct io", fuse_direct_io); CF_READ("fuse", "fuse_ll", fuse_ll); - CF_READ("client_oc", "client_oc", client_oc); - CF_READ("client_oc", "client_oc_size", client_oc_size); - CF_READ("client_oc", "client_oc_max_dirty", client_oc_max_dirty); - CF_READ("client_oc", "client_oc_target_dirty", client_oc_target_dirty); - CF_READ_TYPE("client_oc", "client_oc_max_sync_write", unsigned long long, client_oc_max_sync_write); - - CF_READ("objecter", "objecter_buffer_uncommitted", objecter_buffer_uncommitted); - CF_READ("objecter", "objecter_map_request_interval", objecter_map_request_interval); - CF_READ("objecter", "objecter_tick_interval", objecter_tick_interval); - CF_READ("objecter", "objecter_timeout", objecter_timeout); - - CF_READ("journaler", "journaler_allow_split_entries", journaler_allow_split_entries); - CF_READ("journaler", "journaler_safe", journaler_safe); - CF_READ("journaler", "journaler_write_head_interval", journaler_write_head_interval); - CF_READ("journaler", "journaler_cache", journaler_cache); - CF_READ("journaler", "journaler_prefetch_periods", journaler_prefetch_periods); - CF_READ("journaler", "journaler_batch_interval", journaler_batch_interval); - CF_READ_TYPE("journaler", "journaler_batch_max", unsigned long long, journaler_batch_max); - - CF_READ("mds", "mds_cache_size", mds_cache_size); - CF_READ("mds", "mds_cache_mid", mds_cache_mid); - CF_READ("mds", "mds_decay_halflife", mds_decay_halflife); - CF_READ("mds", "mds_beacon_interval", mds_beacon_interval); - CF_READ("mds", "mds_beacon_grace", mds_beacon_grace); - CF_READ("mds", "mds_blacklist_interval", mds_blacklist_interval); - CF_READ("mds", "mds_session_timeout", mds_session_timeout); - CF_READ("mds", "mds_session_autoclose", mds_session_autoclose); - CF_READ("mds", "mds_client_lease", mds_client_lease); - CF_READ("mds", "mds_reconnect_timeout", mds_reconnect_timeout); - CF_READ("mds", "mds_tick_interval", mds_tick_interval); - CF_READ("mds", "mds_scatter_nudge_interval", mds_scatter_nudge_interval); - CF_READ("mds", "mds_client_prealloc_inos", mds_client_prealloc_inos); - CF_READ("mds", "mds_early_reply", mds_early_reply); - CF_READ("mds", "mds_log", mds_log); - CF_READ("mds", "mds_log_max_events", mds_log_max_events); - CF_READ("mds", "mds_log_max_segments", mds_log_max_segments); - CF_READ("mds", "mds_log_max_expiring", mds_log_max_expiring); - CF_READ("mds", "mds_log_pad_entry", mds_log_pad_entry); - CF_READ("mds", "mds_log_eopen_size", mds_log_eopen_size); - CF_READ("mds", "mds_bal_sample_interval", mds_bal_sample_interval); - CF_READ("mds", "mds_bal_replicate_threshold", mds_bal_replicate_threshold); - CF_READ("mds", "mds_bal_unreplicate_threshold", mds_bal_unreplicate_threshold); - CF_READ("mds", "mds_bal_frag", mds_bal_frag); - CF_READ("mds", "mds_bal_split_size", mds_bal_split_size); - CF_READ("mds", "mds_bal_split_rd", mds_bal_split_rd); - CF_READ("mds", "mds_bal_split_wr", mds_bal_split_wr); - CF_READ("mds", "mds_bal_merge_size", mds_bal_merge_size); - CF_READ("mds", "mds_bal_merge_rd", mds_bal_merge_rd); - CF_READ("mds", "mds_bal_merge_wr", mds_bal_merge_wr); - CF_READ("mds", "mds_bal_interval", mds_bal_interval); - CF_READ("mds", "mds_bal_fragment_interval", mds_bal_fragment_interval); - CF_READ("mds", "mds_bal_idle_threshold", mds_bal_idle_threshold); - CF_READ("mds", "mds_bal_max", mds_bal_max); - CF_READ("mds", "mds_bal_max_until", mds_bal_max_until); - CF_READ("mds", "mds_bal_mode", mds_bal_mode); - CF_READ("mds", "mds_bal_min_rebalance", mds_bal_min_rebalance); - CF_READ("mds", "mds_bal_min_start", mds_bal_min_start); - CF_READ("mds", "mds_bal_need_min", mds_bal_need_min); - CF_READ("mds", "mds_bal_need_max", mds_bal_need_max); - CF_READ("mds", "mds_bal_midchunk", mds_bal_midchunk); - CF_READ("mds", "mds_bal_minchunk", mds_bal_minchunk); - CF_READ("mds", "mds_trim_on_rejoin", mds_trim_on_rejoin); - CF_READ("mds", "mds_shutdown_check", mds_shutdown_check); - CF_READ("mds", "mds_verify_export_dirauth", mds_verify_export_dirauth); - CF_READ("mds", "mds_local_osd", mds_local_osd); - CF_READ("mds", "mds_thrash_exports", mds_thrash_exports); - CF_READ("mds", "mds_thrash_fragments", mds_thrash_fragments); - CF_READ("mds", "mds_dump_cache_on_map", mds_dump_cache_on_map); - CF_READ("mds", "mds_dump_cache_after_rejoin", mds_dump_cache_after_rejoin); - CF_READ("mds", "mds_hack_log_expire_for_better_stats", mds_hack_log_expire_for_better_stats); - - CF_READ("osd", "osd_rep", osd_rep); - CF_READ("osd", "osd_balance_reads", osd_balance_reads); - CF_READ("osd", "osd_flash_crowd_iat_threshold", osd_flash_crowd_iat_threshold); - CF_READ("osd", "osd_flash_crowd_iat_alpha", osd_flash_crowd_iat_alpha); - CF_READ("osd", "osd_balance_reads_temp", osd_balance_reads_temp); - CF_READ("osd", "osd_shed_reads", osd_shed_reads); - CF_READ("osd", "osd_shed_reads_min_latency", osd_shed_reads_min_latency); - CF_READ("osd", "osd_shed_reads_min_latency_diff", osd_shed_reads_min_latency_diff); - CF_READ("osd", "osd_shed_reads_min_latency_ratio", osd_shed_reads_min_latency_ratio); - CF_READ("osd", "osd_immediate_read_from_cache", osd_immediate_read_from_cache); - CF_READ("osd", "osd_exclusive_caching", osd_exclusive_caching); - CF_READ("osd", "osd_stat_refresh_interval", osd_stat_refresh_interval); - CF_READ("osd", "osd_min_pg_size_without_alive", osd_min_pg_size_without_alive); - CF_READ("osd", "osd_pg_bits", osd_pg_bits); - CF_READ("osd", "osd_lpg_bits", osd_lpg_bits); - CF_READ("osd", "osd_object_layout", osd_object_layout); - CF_READ("osd", "osd_pg_layout", osd_pg_layout); - CF_READ("osd", "osd_min_rep", osd_min_rep); - CF_READ("osd", "osd_max_rep", osd_max_rep); - CF_READ("osd", "osd_min_raid_width", osd_min_raid_width); - CF_READ("osd", "osd_max_raid_width", osd_max_raid_width); - CF_READ("osd", "osd_maxthreads", osd_maxthreads); - CF_READ("osd", "osd_max_opq", osd_max_opq); - CF_READ("osd", "osd_mkfs", osd_mkfs); - CF_READ("osd", "osd_age", osd_age); - CF_READ("osd", "osd_age_time", osd_age_time); - CF_READ("osd", "osd_heartbeat_interval", osd_heartbeat_interval); - CF_READ("osd", "osd_mon_heartbeat_interval", osd_mon_heartbeat_interval); - CF_READ("osd", "osd_heartbeat_grace", osd_heartbeat_grace); - CF_READ("osd", "osd_mon_report_interval", osd_mon_report_interval); - CF_READ("osd", "osd_replay_window", osd_replay_window); - CF_READ("osd", "osd_max_pull", osd_max_pull); - CF_READ("osd", "osd_preserve_trimmed_log", osd_preserve_trimmed_log); - CF_READ("osd", "osd_recovery_delay_start", osd_recovery_delay_start); - CF_READ("osd", "osd_recovery_max_active", osd_recovery_max_active); - CF_READ("osd", "osd_auto_weight", osd_auto_weight); + CF_READ("client oc", "oc", client_oc); + CF_READ("client oc", "oc size", client_oc_size); + CF_READ("client oc", "oc max dirty", client_oc_max_dirty); + CF_READ("client oc", "oc target dirty", client_oc_target_dirty); + CF_READ_TYPE("client oc", "oc max sync write", unsigned long long, client_oc_max_sync_write); + + CF_READ("objecter", "buffer uncommitted", objecter_buffer_uncommitted); + CF_READ("objecter", "map request interval", objecter_map_request_interval); + CF_READ("objecter", "tick interval", objecter_tick_interval); + CF_READ("objecter", "timeout", objecter_timeout); + + CF_READ("journaler", "allow split entries", journaler_allow_split_entries); + CF_READ("journaler", "safe", journaler_safe); + CF_READ("journaler", "write head interval", journaler_write_head_interval); + CF_READ("journaler", "cache", journaler_cache); + CF_READ("journaler", "prefetch periods", journaler_prefetch_periods); + CF_READ("journaler", "batch interval", journaler_batch_interval); + CF_READ_TYPE("journaler", "batch max", unsigned long long, journaler_batch_max); + + CF_READ("mds", "cache size", mds_cache_size); + CF_READ("mds", "cache mid", mds_cache_mid); + CF_READ("mds", "decay halflife", mds_decay_halflife); + CF_READ("mds", "beacon interval", mds_beacon_interval); + CF_READ("mds", "beacon grace", mds_beacon_grace); + CF_READ("mds", "blacklist interval", mds_blacklist_interval); + CF_READ("mds", "session timeout", mds_session_timeout); + CF_READ("mds", "session autoclose", mds_session_autoclose); + CF_READ("mds", "client lease", mds_client_lease); + CF_READ("mds", "reconnect timeout", mds_reconnect_timeout); + CF_READ("mds", "tick interval", mds_tick_interval); + CF_READ("mds", "scatter nudge interval", mds_scatter_nudge_interval); + CF_READ("mds", "client prealloc inos", mds_client_prealloc_inos); + CF_READ("mds", "early reply", mds_early_reply); + CF_READ("mds", "log", mds_log); + CF_READ("mds", "log max events", mds_log_max_events); + CF_READ("mds", "log max segments", mds_log_max_segments); + CF_READ("mds", "log max expiring", mds_log_max_expiring); + CF_READ("mds", "log pad entry", mds_log_pad_entry); + CF_READ("mds", "log eopen size", mds_log_eopen_size); + CF_READ("mds", "bal sample interval", mds_bal_sample_interval); + CF_READ("mds", "bal replicate threshold", mds_bal_replicate_threshold); + CF_READ("mds", "bal unreplicate threshold", mds_bal_unreplicate_threshold); + CF_READ("mds", "bal frag", mds_bal_frag); + CF_READ("mds", "bal split size", mds_bal_split_size); + CF_READ("mds", "bal split rd", mds_bal_split_rd); + CF_READ("mds", "bal split wr", mds_bal_split_wr); + CF_READ("mds", "bal merge size", mds_bal_merge_size); + CF_READ("mds", "bal merge rd", mds_bal_merge_rd); + CF_READ("mds", "bal merge wr", mds_bal_merge_wr); + CF_READ("mds", "bal interval", mds_bal_interval); + CF_READ("mds", "bal fragment interval", mds_bal_fragment_interval); + CF_READ("mds", "bal idle threshold", mds_bal_idle_threshold); + CF_READ("mds", "bal max", mds_bal_max); + CF_READ("mds", "bal max until", mds_bal_max_until); + CF_READ("mds", "bal mode", mds_bal_mode); + CF_READ("mds", "bal min rebalance", mds_bal_min_rebalance); + CF_READ("mds", "bal min start", mds_bal_min_start); + CF_READ("mds", "bal need min", mds_bal_need_min); + CF_READ("mds", "bal need max", mds_bal_need_max); + CF_READ("mds", "bal midchunk", mds_bal_midchunk); + CF_READ("mds", "bal minchunk", mds_bal_minchunk); + CF_READ("mds", "trim on rejoin", mds_trim_on_rejoin); + CF_READ("mds", "shutdown check", mds_shutdown_check); + CF_READ("mds", "verify export dirauth", mds_verify_export_dirauth); + CF_READ("mds", "local osd", mds_local_osd); + CF_READ("mds", "thrash exports", mds_thrash_exports); + CF_READ("mds", "thrash fragments", mds_thrash_fragments); + CF_READ("mds", "dump cache on map", mds_dump_cache_on_map); + CF_READ("mds", "dump cache after rejoin", mds_dump_cache_after_rejoin); + CF_READ("mds", "hack log expire for better stats", mds_hack_log_expire_for_better_stats); + + CF_READ("osd", "rep", osd_rep); + CF_READ("osd", "balance reads", osd_balance_reads); + CF_READ("osd", "flash crowd iat threshold", osd_flash_crowd_iat_threshold); + CF_READ("osd", "flash crowd iat alpha", osd_flash_crowd_iat_alpha); + CF_READ("osd", "balance reads temp", osd_balance_reads_temp); + CF_READ("osd", "shed reads", osd_shed_reads); + CF_READ("osd", "shed reads min latency", osd_shed_reads_min_latency); + CF_READ("osd", "shed reads min latency diff", osd_shed_reads_min_latency_diff); + CF_READ("osd", "shed reads min latency ratio", osd_shed_reads_min_latency_ratio); + CF_READ("osd", "immediate read from cache", osd_immediate_read_from_cache); + CF_READ("osd", "exclusive caching", osd_exclusive_caching); + CF_READ("osd", "stat refresh interval", osd_stat_refresh_interval); + CF_READ("osd", "min pg size without alive", osd_min_pg_size_without_alive); + CF_READ("osd", "pg bits", osd_pg_bits); + CF_READ("osd", "lpg bits", osd_lpg_bits); + CF_READ("osd", "object layout", osd_object_layout); + CF_READ("osd", "pg layout", osd_pg_layout); + CF_READ("osd", "min rep", osd_min_rep); + CF_READ("osd", "max rep", osd_max_rep); + CF_READ("osd", "min raid width", osd_min_raid_width); + CF_READ("osd", "max raid width", osd_max_raid_width); + CF_READ("osd", "maxthreads", osd_maxthreads); + CF_READ("osd", "max opq", osd_max_opq); + CF_READ("osd", "mkfs", osd_mkfs); + CF_READ("osd", "age", osd_age); + CF_READ("osd", "age time", osd_age_time); + CF_READ("osd", "heartbeat interval", osd_heartbeat_interval); + CF_READ("osd", "mon heartbeat interval", osd_mon_heartbeat_interval); + CF_READ("osd", "heartbeat grace", osd_heartbeat_grace); + CF_READ("osd", "mon report interval", osd_mon_report_interval); + CF_READ("osd", "replay window", osd_replay_window); + CF_READ("osd", "max pull", osd_max_pull); + CF_READ("osd", "preserve trimmed log", osd_preserve_trimmed_log); + CF_READ("osd", "recovery delay start", osd_recovery_delay_start); + CF_READ("osd", "recovery max active", osd_recovery_max_active); + CF_READ("osd", "auto weight", osd_auto_weight); CF_READ("filestore", "filestore", filestore); - CF_READ("filestore", "filestore_sync_interval", filestore_sync_interval); - CF_READ("filestore", "filestore_fake_attrs", filestore_fake_attrs); - CF_READ("filestore", "filestore_fake_collections", filestore_fake_collections); - CF_READ_STR("filestore", "filestore_dev", filestore_dev); - CF_READ("filestore", "filestore_btrfs_trans", filestore_btrfs_trans); + CF_READ("filestore", "sync interval", filestore_sync_interval); + CF_READ("filestore", "fake attrs", filestore_fake_attrs); + CF_READ("filestore", "fake collections", filestore_fake_collections); + CF_READ_STR("filestore", "dev", filestore_dev); + CF_READ("filestore", "btrfs trans", filestore_btrfs_trans); CF_READ("ebofs", "ebofs", ebofs); - CF_READ("ebofs", "ebofs_cloneable", ebofs_cloneable); - CF_READ("ebofs", "ebofs_verify", ebofs_verify); - CF_READ("ebofs", "ebofs_commit_ms", ebofs_commit_ms); - CF_READ("ebofs", "ebofs_oc_size", ebofs_oc_size); - CF_READ("ebofs", "ebofs_cc_size", ebofs_cc_size); - CF_READ_TYPE("ebofs", "ebofs_bc_size", unsigned long long, ebofs_bc_size); - CF_READ_TYPE("ebofs", "ebofs_bc_max_dirty", unsigned long long, ebofs_bc_max_dirty); - CF_READ("ebofs", "ebofs_max_prefetch", ebofs_max_prefetch); - CF_READ("ebofs", "ebofs_realloc", ebofs_realloc); - CF_READ("ebofs", "ebofs_verify_csum_on_read", ebofs_verify_csum_on_read); - - CF_READ("journal", "journal_dio", journal_dio); - CF_READ("journal", "journal_max_write_bytes", journal_max_write_bytes); - CF_READ("journal", "journal_max_write_entries", journal_max_write_entries); - - CF_READ("bdev", "bdev_lock", bdev_lock); - CF_READ("bdev", "bdev_iothreads", bdev_iothreads); - CF_READ("bdev", "bdev_idle_kick_after_ms", bdev_idle_kick_after_ms); - CF_READ("bdev", "bdev_el_fw_max_ms", bdev_el_fw_max_ms); - CF_READ("bdev", "bdev_el_bw_max_ms", bdev_el_bw_max_ms); - CF_READ("bdev", "bdev_el_bidir", bdev_el_bidir); - CF_READ("bdev", "bdev_iov_max", bdev_iov_max); - CF_READ("bdev", "bdev_debug_check_io_overlap", bdev_debug_check_io_overlap); - CF_READ("bdev", "bdev_fake_mb", bdev_fake_mb); - CF_READ("bdev", "bdev_fake_max_mb", bdev_fake_max_mb); + CF_READ("ebofs", "cloneable", ebofs_cloneable); + CF_READ("ebofs", "verify", ebofs_verify); + CF_READ("ebofs", "commit ms", ebofs_commit_ms); + CF_READ("ebofs", "oc size", ebofs_oc_size); + CF_READ("ebofs", "cc size", ebofs_cc_size); + CF_READ_TYPE("ebofs", "bc size", unsigned long long, ebofs_bc_size); + CF_READ_TYPE("ebofs", "bc max dirty", unsigned long long, ebofs_bc_max_dirty); + CF_READ("ebofs", "max prefetch", ebofs_max_prefetch); + CF_READ("ebofs", "realloc", ebofs_realloc); + CF_READ("ebofs", "verify csum on read", ebofs_verify_csum_on_read); + + CF_READ("journal", "dio", journal_dio); + CF_READ("journal", "max write bytes", journal_max_write_bytes); + CF_READ("journal", "max write entries", journal_max_write_entries); + + CF_READ("bdev", "lock", bdev_lock); + CF_READ("bdev", "iothreads", bdev_iothreads); + CF_READ("bdev", "idle kick after ms", bdev_idle_kick_after_ms); + CF_READ("bdev", "el fw max ms", bdev_el_fw_max_ms); + CF_READ("bdev", "el bw max ms", bdev_el_bw_max_ms); + CF_READ("bdev", "el bidir", bdev_el_bidir); + CF_READ("bdev", "iov max", bdev_iov_max); + CF_READ("bdev", "debug check io overlap", bdev_debug_check_io_overlap); + CF_READ("bdev", "fake mb", bdev_fake_mb); + CF_READ("bdev", "fake max mb", bdev_fake_max_mb); #ifdef USE_OSBDB CF_READ("bdstore", "bdbstore", bdbstore); - CF_READ("bdstore", "bdstore_debug", debug_bdbstore); - CF_READ("bdstore", "bdbstore_btree", bdbstore_btree); - CF_READ("bdstore", "bdbstore_ffactor", bdbstore_ffactor); - CF_READ("bdstore", "bdbstore_nelem", bdbstore_nelem); - CF_READ("bdstore", "bdbstore_pagesize", bdbstore_pagesize); - CF_READ("bdstore", "bdbstore_cachesize", bdbstore_cachesize); - CF_READ("bdstore", "bdbstore_transactional", bdbstore_transactional); + CF_READ("bdstore", "debug", debug_bdbstore); + CF_READ("bdstore", "btree", bdbstore_btree); + CF_READ("bdstore", "ffactor", bdbstore_ffactor); + CF_READ("bdstore", "nelem", bdbstore_nelem); + CF_READ("bdstore", "pagesize", bdbstore_pagesize); + CF_READ("bdstore", "cachesize", bdbstore_cachesize); + CF_READ("bdstore", "transactional", bdbstore_transactional); #endif - - if (dump_conf) - cf.dump(); } void parse_config_options(std::vector& args, bool open) @@ -861,7 +856,11 @@ void parse_config_options(std::vector& args, bool open) g_conf.dump_conf = true; } - parse_config_file(g_conf.conf_file, g_conf.dump_conf); + ConfFile cf(g_conf.conf_file); + + parse_config_file(&cf, true); + if (g_conf.dump_conf) + cf.dump(); for (unsigned i=0; i