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:
|
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 ) |
Erlang VM's Related Configurations¶
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 ) |