NAME dlm_controld - daemon that configures dlm according to cluster events

SYNOPSIS dlm_controld [OPTIONS]

DESCRIPTION The dlm lives in the kernel, and the cluster infrastructure (corosync membership and group management) lives in user space. The dlm in the kernel needs to adjust/recover for certain cluster events. Its the job of dlm_controld to receive these events and reconfigure the kernel dlm as needed. dlm_controld controls and configures the dlm through sysfs and configfs files that are considered dlm-internal interfaces.

The cman init script usually starts the dlm_controld daemon.

OPTIONS Command line options override a corresponding setting in cluster.conf.

-D Enable debugging to stderr and dont fork. See also dlm_tool dump in dlm_tool(8).

-L Enable debugging to log file. See also logging in cluster.conf(5).

-K Enable kernel dlm debugging messages. See also log_debug below.

-r num dlm kernel lowcomms protocol, 0 tcp, 1 sctp, 2 detect. 2 selects tcp if corosync rrp_mode is "none", otherwise sctp. Default 2.

-g num groupd compatibility mode, 0 off, 1 on. Default 0.

-f num Enable (1) or disable (0) fencing recovery dependency. Default 1.

-q num Enable (1) or disable (0) quorum recovery dependency. Default 0.

-d num Enable (1) or disable (0) deadlock detection code. Default 0.

-p num Enable (1) or disable (0) plock code for cluster fs. Default 1.

-l num Limit the rate of plock operations, 0 for no limit. Default 0.

-o num Enable (1) or disable (0) plock ownership. Default 0.

-t ms Plock ownership drop resources time (milliseconds). Default 10000.

-c num Plock ownership drop resources count. Default 10.

-a ms Plock ownership drop resources age (milliseconds). Default 10000.

-P Enable plock debugging messages (can produce excessive output).

-h Print a help message describing available options, then exit.

-V Print program version information, then exit.

FILES cluster.conf(5) is usually located at /etc/cluster/cluster.conf. It is not read directly. Other cluster components load the contents into memory, and the values are accessed through the libccs library.

Configuration options for dlm (kernel) and dlm_controld are added to the <dlm /> section of cluster.conf, within the top level <cluster> section.

Kernel options protocol The network protocol can be set to tcp, sctp or detect which selects tcp or sctp based on the corosync rrp_mode configuration (redundant ring protocol). The rrp_mode "none" results in tcp. Default detect.

<dlm protocol="detect"/>

timewarn After waiting timewarn centiseconds, the dlm will emit a warning via netlink. This only applies to lockspaces created with the DLM_LSFL_TIMEWARN flag, and is used for deadlock detection. Default 500 (5 seconds).

<dlm timewarn="500"/>

log_debug DLM kernel debug messages can be enabled by setting log_debug to 1. Default 0.

<dlm log_debug="0"/>

clusternode/weight The lock directory weight can be specified one the clusternode lines. Weights would usually be used in the lock server configurations shown below instead.

<clusternode name="node01" nodeid="1" weight="1"/>

Daemon options enable_fencing See command line description.

<dlm enable_fencing="1"/>

enable_quorum See command line description.

<dlm enable_quorum="0"/>

enable_deadlk See command line description.

<dlm enable_deadlk="0"/>

enable_plock See command line description.

<dlm enable_plock="1"/>

plock_rate_limit See command line description.

<dlm plock_rate_limit="0"/>

plock_ownership See command line description.

<dlm plock_ownership="0"/>

drop_resources_time See command line description.

<dlm drop_resources_time="10000"/>

drop_resources_count See command line description.

<dlm drop_resources_count="10"/>

drop_resources_age See command line description.

<dlm drop_resources_age="10000"/>

plock_debug Enable (1) or disable (0) plock debugging messages (can produce excessive output). Default 0.

<dlm plock_debug="0"/>

Disabling resource directory Lockspaces usually use a resource directory to keep track of which node is the master of each resource. The dlm can operate without the resource directory, though, by statically assigning the master of a resource using a hash of the resource name. To enable, set the per- lockspace nodir option to 1.

<dlm> <lockspace name="foo" nodir="1"/> </dlm>

Lock-server configuration The nodir setting can be combined with node weights to create a config- uration where select node(s) are the master of all resources/locks. These master nodes can be viewed as "lock servers" for the other nodes.

<dlm> <lockspace name="foo" nodir="1"> <master name="node01"/> </lockspace> </dlm>


<dlm> <lockspace name="foo" nodir="1"> <master name="node01"/> <master name="node02"/> </lockspace> </dlm>

Lock management will be partitioned among the available masters. There can be any number of masters defined. The designated master nodes will master all resources/locks (according to the resource name hash). When no masters are members of the lockspace, then the nodes revert to the common fully-distributed configuration. Recovery is faster, with lit- tle disruption, when a non-master node joins/leaves.

There is no special mode in the dlm for this lock server configuration, its just a natural consequence of combining the "nodir" option with node weights. When a lockspace has master nodes defined, the master has a default weight of 1 and all non-master nodes have weight of 0. An explicit non-zero weight can also be assigned to master nodes, e.g.

<dlm> <lockspace name="foo" nodir="1"> <master name="node01" weight="2"/> <master name="node02" weight="1"/> </lockspace> </dlm>

In which case node01 will master 2/3 of the total resources and node2 will master the other 1/3.

SEE ALSO dlm_tool(8), fenced(8), cman(5), cluster.conf(5)

cluster 2009-01-18 DLM_CONTROLD(8)