Skip to content

LeoManager Settings

Prior Knowledge

The current version, v1.3 of LeoManager depends on Erlang Mnesia, A distributed telecommunications DBMS to manage configurations of a LeoFS system and information of all nodes. LeoManager nodes must keep running to replicate the data for preventing data loss. You need to configure both LeoManager master and the slave.

Other Configurations

If you want to modify settings like where to place leo_manager.conf, what user is starting a LeoManager process and so on, refer For Administrators / Settings / Environment Configuration for more information.

Configuration

There are some configuration differences between LeoManager-master and LeoManager-slave. LeoManager-master only has the consistency level and the multi datacenter replication.

The default setting is to launch a LeoFS system on one node, whose setting cannot replicate data because the total number of the replica is one, and data loss could happen with high probability. You need to modify the configuration suitably before launching the LeoFS system on your production or other environments.

LeoManager Configurations

Item Description
Basic
manager.partner The partner of manager's alias. This configuration is necessary for communicationg between LeoManager's master and LeoManager's slave.
( Default: [email protected] )
console.bind_address The IP address LeoManager listens on. You can set not only a specific IP address but also any which can be used to listen on all interfaces and localhost which can be used to listen on the loopback interface.
( Default: localhost )
console.port.cui The port number of LeoManager's console for text format
( Default: 10010 )
console.port.json The port number of LeoManager's console for JSON format
( Default: 10020 )
console.acceptors.cui The maximum number of acceptors of LeoManager's console for text format
( Default: 3 )
console.acceptors.json The maximum number of acceptors of LeoManager's console for JSON format
( Default:16 )
System
system.dc_id Datacenter ID is necessary for using the data center replication
( Default: dc_1 )
system.cluster_id Cluster ID is also necessary for using the data center replication
( Default: leofs_1 )
Consistency Level
consistency.num_of_replicas only LeoManager's master
The total number of object copies
( Default: 1 )
consistency.write only LeoManager's master
The total number of object copies needed for a successful WRITE operation
( Default: 1 )
consistency.read only LeoManager's master
The total number of object copies needed for a successful READ operation
( Default: 1 )
consistency.delete only LeoManager's master
The total number of object copies needed for a successful DELETE operation
( Default: 1 )
consistency.rack_aware_replicas only LeoManager's master
The total number of object copies of rack-aware
( Default: 0 )
Multi Data Center Replication
mdc_replication.max_targets only LeoManager's master
The maximum number of replication targets of clusters OR data centers
( Default: 2 )
mdc_replication.num_of_replicas_a_dc only LeoManager's master
A remote cluster of a LeoFS system which receives this cluster's objects, and then replicates them, which adhere to a replication method of each object
( Default: 1 )
mdc_replication.consistency.write only LeoManager's master [since 1.3.3]
A number of replicas needed for a successful WRITE-operation
( Default: 1 )
mdc_replication.consistency.read only LeoManager's master [since 1.3.3]
A number of replicas needed for a successful READ-operation
( Default: 1 )
mdc_replication.consistency.delete only LeoManager's master [since 1.3.3]
A number of replicas needed for a successful DELETE-operation
( Default: 1 )
RPC for Multi Datacenter Replication
rpc.server.acceptors The total number of acceptor of the RPC server
( Default: 16 )
rpc.server.listen_port The listening port of the RPC server
( Default: 13075 )
rpc.server.listen_timeout The listening timeout
( Default: 5000 )
rpc.client.connection_pool_size A client is able to keep connections of a remote LeoFS up to the pool size
( Default: 16 )
rpc.client.connection_buffer_size A client is able to increase connections of a remote LeoFS up to the buffer size
( Default: 16 )
Mnesia
mnesia.dir The directory of the database file of Mnesia*(Erlang distributed DB)
( Default: ./work/mnesia/127.0.0.1 )*
mnesia.dump_log_write_threshold The maximum number of writes allowed to the transaction log before a new dump of the log is performed. Default is 100 log writes.

- See also: Erlang Mnesia dump_log_write_threshold
( Default: 50000 )
mnesia.dc_dump_limit Mnesia's tables are dumped when filesize(Log) > (filesize(Tab)/Dc_dump_limit). Lower values reduce CPU overhead but increase disk space and startup times. Default is 4.

- See also: Erlang Mnesia
( Default: 40 )
Log
log.log_level LeoManager's logger controls outputting logs by the log level:
  • 1: Info
  • 2: Warn
  • 3: Error
( Default: 1 )
log.erlang The output destination of Erlang's logs
( Default: ./log/erlang )
log.app The output destination of LeoManager's logs
( Default: ./log/app )
log.member_dir The output destination of the member's dump file
( Default: ./log/ring )
log.ring_dir The output destination of the RING's dump file
( Default: ./log/ring )
Other Directories
queue_dir The directory of the data file of LeoFS' MQ
( Default: ./work/queue )
snmp_agent The directory of the snmp agent file of LeoFS
( Default: ./snmp/snmpa_manager_0/LEO-MANAGER )
Item Description
nodename The format of the node name is <NAME>@<IP-ADDRESS>, which must be unique always in a LeoFS system

( Default: [email protected] )

distributed_cookie Sets the magic cookie of the node to Cookie.

- See also: Distributed Erlang

( Default: 401321b4 )

erlang.kernel_poll Kernel poll reduces LeoFS' CPU usage when it has hundreds (or more) network connections.

( Default: true )

erlang.asyc_threads The total number of Erlang aynch threads

( Default: 32 )

erlang.max_ports The max_ports sets the default value of maximum number of ports.

- See also: Erlang erlang:open_port/2

( Default: 64000 )

erlang.crash_dump The output destination of an Erlang crash dump

( Default: ./log/erl_crash.dump )

erlang.max_ets_tables The maxinum number of Erlagn ETS tables

( Default: 256000 )

erlang.smp -smp enable and -smp start the Erlang runtime system with SMP support enabled.

( Default: enable )

erlang.schedulers.compaction_of_load Enables or disables scheduler compaction of load. If it's enabled, the Erlang VM will attempt to fully load as many scheduler threads as mush as possible.

( Default: true )

erlang.schedulers.utilization_balancing Enables or disables scheduler utilization balancing of load. By default scheduler utilization balancing is disabled and instead scheduler compaction of load is enabled, which strives for a load distribution that causes as many scheduler threads as possible to be fully loaded (that is, not run out of work).

( Default: false )

erlang.distribution_buffer_size Sender-side network distribution buffer size (unit: KB)

( Default: 32768 )

erlang.fullsweep_after Option fullsweep_after makes it possible to specify the maximum number of generational collections before forcing a fullsweep, even if there is room on the old heap. Setting the number to zero disables the general collection algorithm, that is, all live data is copied at every garbage collection.

( Default: 0 )

erlang.secio Enables or disables eager check I/O scheduling. The flag effects when schedulers will check for I/O operations possible to execute, and when such I/O operations will execute.

( Default: true )

process_limit The maxinum number of Erlang processes. Sets the maximum number of simultaneously existing processes for this system if a Number is passed as value. Valid range for Number is [1024-134217727]

( Default: 1048576 )