##====================================================================== ## LeoFS - Storage Configuration ## ## See: http://leo-project.net/leofs/docs/configuration/configuration_2.html ##====================================================================== ## -------------------------------------------------------------------- ## SASL ## -------------------------------------------------------------------- ## See: http://www.erlang.org/doc/man/sasl_app.html ## ## The following configuration parameters are defined for ## the SASL application. See app(4) for more information ## about configuration parameters ## SASL error log path ## sasl.sasl_error_log = ./log/sasl/sasl-error.log sasl.sasl_error_log = /tmp//package/leo_storage//log/sasl/sasl-error.log ## Restricts the error logging performed by the specified sasl_error_logger ## to error reports, progress reports, or both. ## errlog_type = [error | progress | all] ## sasl.errlog_type = error sasl.errlog_type = error ## Specifies in which directory the files are stored. ## If this parameter is undefined or false, the error_logger_mf_h is not installed. ## sasl.error_logger_mf_dir = ./log/sasl sasl.error_logger_mf_dir = /tmp//package/leo_storage//log/sasl ## Specifies how large each individual file can be. ## If this parameter is undefined, the error_logger_mf_h is not installed. ## sasl.error_logger_mf_maxbytes = 10485760 sasl.error_logger_mf_maxbytes = 10485760 ## Specifies how many files are used. ## If this parameter is undefined, the error_logger_mf_h is not installed. ## sasl.error_logger_mf_maxfiles = 5 sasl.error_logger_mf_maxfiles = 5 ## -------------------------------------------------------------------- ## Manager's Node(s) ## -------------------------------------------------------------------- ## Name of Manager node(s) managers = [leo_manager_0@192.168.100.35, leo_manager_1@192.168.100.35] ## -------------------------------------------------------------------- ## STORAGE ## -------------------------------------------------------------------- ## Object container ## e.g. Case of plural pathes ## obj_containers.path = [/var/leofs/avs/1, /var/leofs/avs/2] ## obj_containers.num_of_containers = [32, 64] obj_containers.path = [/data/avs] obj_containers.num_of_containers = [8] ## Metadata Storage: [bitcask, leveldb] - default:leveldb ## obj_containers.metadata_storage = leveldb obj_containers.metadata_storage = leveldb ## A number of virtual-nodes for the redundant-manager ## num_of_vnodes = 168 num_of_vnodes = 168 ## Enable strict check between checksum of a metadata and checksum of an object ## - default:false ## object_storage.is_strict_check = false object_storage.is_strict_check = false ## Threshold of slow processing (msec) - default:1000(msec) ## object_storage.threshold_of_slow_processing = 1000 object_storage.threshold_of_slow_processing = 1000 ## Timeout of seeking metadatas per a metadata - default:10(msec) ## seeking_timeout_per_metadata = 10 seeking_timeout_per_metadata = 10 ## Maximum number of processes for both write and read operation ## since v1.2.20 ## max_num_of_procs = 3000 max_num_of_procs = 3000 ## Total number of obj-storage-read processes per object-container, AVS ## Range: [1..100] ## since v1.2.20 ## num_of_obj_storage_read_procs = 3 num_of_obj_storage_read_procs = 3 ## -------------------------------------------------------------------- ## STORAGE - Watchdog ## -------------------------------------------------------------------- ## When reach a number of safe (clear watchdog), a watchdog loosen the control watchdog.common.loosen_control_at_safe_count = 1 ## ## Watchdog.REX(RPC) ## ## Is rex -watchdog enabled - default:false ## watchdog.rex.is_enabled = true watchdog.rex.is_enabled = true ## rex - watch interval - default:5sec ## watchdog.rex.interval = 5 watchdog.rex.interval = 5 ## Threshold memory capacity of binary for rex(rpc) - default:32MB watchdog.rex.threshold_mem_capacity = 33554432 ## ## Watchdog.CPU ## ## Is cpu-watchdog enabled - default:false ## watchdog.cpu.is_enabled = true watchdog.cpu.is_enabled = true ## cpu - raised error times ## watchdog.cpu.raised_error_times = 3 watchdog.cpu.raised_error_times = 3 ## cpu - watch interval - default:5sec ## watchdog.cpu.interval = 5 watchdog.cpu.interval = 5 ## Threshold CPU load avg for 1min/5min - default:5.0 ## watchdog.cpu.threshold_cpu_load_avg = 5.0 watchdog.cpu.threshold_cpu_load_avg = 5.0 ## Threshold CPU load util - default:100 = "100%" watchdog.cpu.threshold_cpu_util = 100 ## ## Watchdog.DISK ## ## Is disk-watchdog enabled - default:false ## watchdog.disk.is_enabled = false watchdog.disk.is_enabled = false ## disk - raised error times ## watchdog.disk.raised_error_times = 5 watchdog.disk.raised_error_times = 5 ## disk - watch interval - default:1sec ## watchdog.disk.interval = 1 watchdog.disk.interval = 1 ## Threshold use(%) of a target disk's capacity - defalut:85% ## watchdog.disk.threshold_disk_use = 85 watchdog.disk.threshold_disk_use = 85 ## Threshold disk utilization(%) - defalut:90% ## watchdog.disk.threshold_disk_util = 90 watchdog.disk.threshold_disk_util = 90 ## Threshold disk read kb/sec - defalut:98304(KB) = 96MB ## watchdog.disk.threshold_disk_rkb = 98304 watchdog.disk.threshold_disk_rkb = 98304 ## Threshold disk write kb/sec - defalut:98304(KB) = 96MB ## watchdog.disk.threshold_disk_wkb = 98304 watchdog.disk.threshold_disk_wkb = 98304 ## disk target devices for checking disk utilization ## watchdog.disk.target_devices = [] watchdog.disk.target_devices = [] ## ## Watchdog.Cluster ## ## Is cluster-watchdog enabled - default:false ## watchdog.cluster.is_enabled = false watchdog.cluster.is_enabled = false ## cluster - watch interval - default:10sec ## watchdog.cluster.interval = 10 watchdog.cluster.interval = 10 ## ## Watchdog.Error ## ## Is error-watchdog enabled - default:false ## watchdog.error.is_enabled = false watchdog.error.is_enabled = false ## error - watch interval - default:60sec ## watchdog.error.interval = 60 watchdog.error.interval = 60 ## error - threshold error count - default:100 ## watchdog.error.threshold_count = 100 watchdog.error.threshold_count = 100 ## -------------------------------------------------------------------- ## STORAGE - Autonomic Operation ## -------------------------------------------------------------------- ## [compaction] enabled compaction? - default:false ## autonomic_op.compaction.is_enabled = false autonomic_op.compaction.is_enabled = false ## [compaction] number of parallel procs - default:1 ## autonomic_op.compaction.parallel_procs = 1 autonomic_op.compaction.parallel_procs = 1 ## [compaction] execution interval time between data-compaction(sec) - default:3600(sec) (60min) ## autonomic_op.compaction.interval = 3600 autonomic_op.compaction.interval = 3600 ## [compaction] warning ratio of active size - default:70% ## autonomic_op.compaction.warn_active_size_ratio = 70 autonomic_op.compaction.warn_active_size_ratio = 70 ## [compaction] threshold ratio of active size - default:60% ## autonomic_op.compaction.threshold_active_size_ratio = 60 autonomic_op.compaction.threshold_active_size_ratio = 60 ## -------------------------------------------------------------------- ## STORAGE - Data Compcation ## -------------------------------------------------------------------- ## Limit of a number of procs to execute data-compaction in parallel compaction.limit_num_of_compaction_procs = 4 ## Regular value of compaction-proc waiting time/batch-proc(msec) compaction.waiting_time_regular = 500 ## Maximum value of compaction-proc waiting time/batch-proc(msec) compaction.waiting_time_max = 3000 ## Regular compaction batch processes compaction.batch_procs_regular = 1000 ## Maximum compaction batch processes compaction.batch_procs_max = 1500 ## -------------------------------------------------------------------- ## STORAGE - MQ ## -------------------------------------------------------------------- ## MQ backend storage: [leveldb | bitcask] - default:leveldb ## mq.backend_db = leveldb mq.backend_db = leveldb ## A number of mq-server's processes mq.num_of_mq_procs = 8 ## ## [Number of bach processes of message] ## ## Maximum number of bach processes of message mq.num_of_batch_process_max = 3000 ## Regular value of bach processes of message mq.num_of_batch_process_regular = 1600 ## ## [Interval beween batch-procs] ## ## Maximum value of interval between batch-procs(msec) mq.interval_between_batch_procs_max = 3000 ## Regular value of interval between batch-procs(msec) mq.interval_between_batch_procs_regular = 500 ## -------------------------------------------------------------------- ## STORAGE - Replication/Recovery object(s) ## -------------------------------------------------------------------- ## Rack-id for the rack-awareness replica placement ## replication.rack_awareness.rack_id = ## Size of stacked objects (bytes) ## replication.recovery.size_of_stacked_objs = 33554432 replication.recovery.size_of_stacked_objs = 33554432 ## Stacking timeout (sec) ## replication.recovery.stacking_timeout = 5 replication.recovery.stacking_timeout = 5 ## -------------------------------------------------------------------- ## STORAGE - MDC Replication ## -------------------------------------------------------------------- ## Size of stacked objects (bytes) - default:32MB ## mdc_replication.size_of_stacked_objs = 33554432 mdc_replication.size_of_stacked_objs = 33554432 ## Stacking timeout (sec) mdc_replication.stacking_timeout = 30 ## Request timeout (msec) mdc_replication.req_timeout = 30000 ## Number of stacking procs mdc_replication.stacking_procs = 1 ## -------------------------------------------------------------------- ## STORAGE - Log ## -------------------------------------------------------------------- ## ## Log level: [0:debug, 1:info, 2:warn, 3:error] ## log.log_level = 1 log.log_level = 0 ## Output log file(s) - Erlang's log ## log.erlang = ./log/erlang log.erlang = /tmp//package/leo_storage//log/erlang ## Output log file(s) - app ## log.app = ./log/app log.app = /tmp//package/leo_storage//log/app ## Output log file(s) - members of storage-cluster ## log.member_dir = ./log/ring log.member_dir = /tmp//package/leo_storage//log/ring ## Output log file(s) - ring ## log.ring_dir = ./log/ring log.ring_dir = /tmp//package/leo_storage//log/ring ## Output data-diagnosis log log.is_enable_diagnosis_log = true ## -------------------------------------------------------------------- ## STORAGE - Other Directories ## -------------------------------------------------------------------- ## Directory of queue for monitoring "RING" ## queue_dir = ./work/queue queue_dir = /tmp//package/leo_storage//work/queue/ ## Directory of SNMP agent configuration ## snmp_agent = ./snmp/snmpa_storage_0/LEO-STORAGE snmp_agent = ./snmp/snmpa_storage_0/LEO-STORAGE ## -------------------------------------------------------------------- ## Other Libs ## -------------------------------------------------------------------- ## Send after interval ## leo_ordning_reda.send_after_interval = 100 leo_ordning_reda.send_after_interval = 100 ## Temporary directory of stacked objects ## leo_ordning_reda.temp_stacked_dir = "work/ord_reda/" leo_ordning_reda.temp_stacked_dir = /tmp//package/leo_storage//work/ord_reda/ ## -------------------------------------------------------------------- ## RPC ## -------------------------------------------------------------------- ## RPC-Server's acceptors ## this value must be determinted by following logic ## rpc.server.acceptor need to be larger than ## rpc.client.connection_pool(buffer)_size * "# of storage nodes + # of manager nodes in your cluster" ## The default value is suitable for less than 16 nodes in a cluster rpc.server.acceptors = 128 ## RPC-Server's listening port number rpc.server.listen_port = 13077 ## RPC-Server's listening timeout rpc.server.listen_timeout = 30000 ## RPC-Client's size of connection pool rpc.client.connection_pool_size = 8 ## RPC-Client's size of connection buffer rpc.client.connection_buffer_size = 8 ## RPC-Client's max number of requests for reconnection to a remote-node ## * 1..: specialized value ## rpc.client.max_requests_for_reconnection = 64 rpc.client.max_requests_for_reconnection = 64 ## -------------------------------------------------------------------- ## MANAGER - Mnesia ## * Store the info storage-cluster and the info of gateway(s) ## * Store the RING and the command histories ## -------------------------------------------------------------------- ## The write threshold for transaction log dumps ## as the number of writes to the transaction log mnesia.dump_log_write_threshold = 50000 ## Controls how often disc_copies tables are dumped from memory mnesia.dc_dump_limit = 40 ## -------------------------------------------------------------------- ## Profiling ## -------------------------------------------------------------------- ## Enable profiler - leo_backend_db ## leo_backend_db.profile = false leo_backend_db.profile = false ## Enable profiler - leo_logger ## leo_logger.profile = false leo_logger.profile = false ## Enable profiler - leo_mq ## leo_mq.profile = false leo_mq.profile = false ## Enable profiler - leo_object_storage ## leo_object_storage.profile = false leo_object_storage.profile = false ## Enable profiler - leo_ordning_reda ## leo_ordning_reda.profile = false leo_ordning_reda.profile = false ## Enable profiler - leo_redundant_manager ## leo_redundant_manager.profile = false leo_redundant_manager.profile = false ## Enable profiler - leo_rpc ## leo_rpc.profile = false leo_rpc.profile = false ## Enable profiler - leo_statistics ## leo_statistics.profile = false leo_statistics.profile = false ##====================================================================== ## For vm.args ##====================================================================== ## Name of the leofs-storage node nodename = S0@192.168.100.36 ## Cookie for distributed node communication. All nodes in the same cluster ## should use the same cookie or they will not be able to communicate. distributed_cookie = 401321b4 ## Enable kernel poll erlang.kernel_poll = true ## Number of async threads erlang.asyc_threads = 32 ## Increase number of concurrent ports/sockets erlang.max_ports = 64000 ## Set the location of crash dumps erlang.crash_dump = /tmp//package/leo_storage//log/erl_crash.dump ## Raise the ETS table limit erlang.max_ets_tables = 256000 ## Enable SMP erlang.smp = enable ## Erlang scheduler's compaction of load erlang.schedulers.compaction_of_load = true ## Erlang scheduler's balancing of load erlang.schedulers.utilization_balancing = false ## Sender-side network distribution buffer size ## - default 32MB (32768KB) erlang.distribution_buffer_size = 32768 ## A non-negative integer which indicates ## how many times generational garbage collections ## can be done without forcing a fullsweep collection erlang.fullsweep_after = 0 ## Enable/Disable eager check I/O (Erlang 17.4/erts-6.3-, ref:OTP-12117) erlang.secio = true ## Raise the default erlang process limit process_limit = 1048576 ## Path of SNMP-agent configuration ## snmp_conf = ./snmp/snmpa_storage_0/leo_storage_snmp snmp_conf = ./snmp/snmpa_storage_0/leo_storage_snmp