ctdb.conf - Man Page

CTDB configuration file

Description

This file contains CTDB configuration options that affect the operation of CTDB daemons and command-line tools. The default location of this file is /etc/ctdb/ctdb.conf.

Note that this is a Samba-style configuration file, so it has a very different syntax to previous CTDB configuration files.

For event script options please see ctdb-script.options(5).

Configuration options are grouped into several sections below. There are only a few options in each section, allowing them to be ordered (approximately) in decreasing order of importance.

Logging Configuration

Options in this section control CTDB's logging. They are valid within the logging section of file, indicated by [logging].

log level = LOGLEVEL

LOGLEVEL is a string that controls the verbosity of ctdbd's logging. See the LOG LEVELS section in ctdb(7) for more details.

Default: NOTICE

location = STRING

STRING specifies where ctdbd will write its log.

Valid values are:

file:FILENAME

FILENAME where ctdbd will write its log. This is usually /var/log/log.ctdb.

syslog[:METHOD]

CTDB will log to syslog. By default this will use the syslog(3) API.

If METHOD is specified then it specifies an extension that causes logging to be done in a non-blocking fashion. This can be useful under heavy loads that might cause the syslog daemon to dequeue messages too slowly, which would otherwise cause CTDB to block when logging. METHOD must be one of:

nonblocking

CTDB will log to syslog via /dev/log in non-blocking mode.

udp

CTDB will log to syslog via UDP to localhost:514. The syslog daemon must be configured to listen on (at least) localhost:514. Most implementations will log the messages against hostname "localhost" - this is a limit of the implementation for compatibility with more syslog daemon implementations.

udp-rfc5424

As with "udp" but messages are sent in RFC5424 format. This method will log the correct hostname but is not as widely implemented in syslog daemons.

Default: file:/var/log/log.ctdb

Cluster Configuration

Options in this section affect the CTDB cluster setup. They are valid within the cluster section of file, indicated by [cluster].

cluster lock = LOCK

LOCK specifies the cluster-wide mutex used to detect and prevent a partitioned cluster (or "split brain").

For information about the cluster lock please see the CLUSTER LOCK section in ctdb(7).

Default: NONE. However, uses of a cluster lock is strongly recommended.

leader capability = true|false

Indicates whether a node can become the leader for the cluster. If this is set to false then the node will not be able to become the leader for the cluster. This feature is primarily used for making a cluster span across a WAN link and use CTDB as a WAN-accelerator.

Please see the REMOTE CLUSTER NODES section in ctdb(7) for more information.

Default: true

leader timeout = SECONDS

Number of SECONDS without a leader broadcast before a node triggers an election.

Default: 5

node address = IPADDR

IPADDR is the private IP address that ctdbd will bind to.

This option is only required when automatic address detection can not be used. This can be the case when running multiple ctdbd daemons/nodes on the same physical host (usually for testing), using InfiniBand for the private network or on Linux when sysctl net.ipv4.ip_nonlocal_bind=1.

Default: CTDB selects the first address from the nodes list that it can bind to. See also the PRIVATE ADDRESS section in ctdb(7).

transport = tcp|ib

This option specifies which transport to use for ctdbd internode communications on the private network.

ib means InfiniBand. The InfiniBand support is not regularly tested. If it is known to be broken then it may be disabled so that a value of ib is considered invalid.

Default: tcp

Database Configuration

Options in this section affect the CTDB database setup. They are valid within the database section of file, indicated by [database].

volatile database directory = DIRECTORY

DIRECTORY on local storage where CTDB keeps a local copy of volatile TDB databases. This directory is local for each node and should not be stored on the shared cluster filesystem.

Mounting a tmpfs (or similar memory filesystem) on this directory can provide a significant performance improvement when there is I/O contention on the local disk.

Default: /var/lib/ctdb/volatile

persistent database directory=DIRECTORY

DIRECTORY on local storage where CTDB keeps a local copy of persistent TDB databases. This directory is local for each node and should not be stored on the shared cluster filesystem.

Default: /var/lib/ctdb/persistent

state database directory = DIRECTORY

DIRECTORY on local storage where CTDB keeps a local copy of internal state TDB databases. This directory is local for each node and should not be stored on the shared cluster filesystem.

Default: /var/lib/ctdb/state

tdb mutexes = true|false

This parameter enables TDB_MUTEX_LOCKING feature on volatile databases if the robust mutexes are supported. This optimizes the record locking using robust mutexes and is much more efficient that using posix locks.

If robust mutexes are unreliable on the platform being used then they can be disabled by setting this to false.

lock debug script = FILENAME

FILENAME is a script used by CTDB's database locking code to attempt to provide debugging information when CTDB is unable to lock an entire database or a record.

This script should be a bare filename relative to the CTDB configuration directory (/etc/ctdb/). Any directory prefix is ignored and the path is calculated relative to this directory.

CTDB provides a lock debugging script and installs it as /etc/ctdb/debug_locks.sh.

Default: NONE

Event Handling Configuration

Options in this section affect CTDB event handling. They are valid within the event section of file, indicated by [event].

debug script = FILENAME

FILENAME is a script used by CTDB's event handling code to attempt to provide debugging information when an event times out.

This script should be a bare filename relative to the CTDB configuration directory (/etc/ctdb/). Any directory prefix is ignored and the path is calculated relative to this directory.

CTDB provides a script for debugging timed out event scripts and installs it as /etc/ctdb/debug-hung-script.sh.

Default: NONE

Failover Configuration

Options in this section affect CTDB failover. They are valid within the failover section of file, indicated by [failover].

disabled = true|false

If set to true then public IP failover is disabled.

Default: false

Legacy Configuration

Options in this section affect legacy CTDB setup. They are valid within the legacy section of file, indicated by [legacy].

ctdb start as stopped = true|false

If set to true CTDB starts in the STOPPED state.

To allow the node to take part in the cluster it must be manually continued with the ctdb continue command.

Please see the NODE STATES section in ctdb(7) for more information about the STOPPED state.

Default: false

start as disabled = true|false

If set to true CTDB starts in the DISABLED state.

To allow the node to host public IP addresses and services, it must be manually enabled using the ctdb enable command.

Please see the NODE STATES section in ctdb(7) for more information about the DISABLED state.

Default: false

realtime scheduling = true|false

Usually CTDB runs with real-time priority. This helps it to perform effectively on a busy system, such as when there are thousands of Samba clients. If you are running CTDB on a platform that does not support real-time priority, you can set this to false.

Default: true

lmaster capability = true|false

Indicates whether a node can become a location master for records in a database. If this is set to false then the node will not be part of the vnnmap. This feature is primarily used for making a cluster span across a WAN link and use CTDB as a WAN-accelerator.

Please see the REMOTE CLUSTER NODES section in ctdb(7) for more information.

Default: true

script log level = LOGLEVEL

This option sets the debug level of event script output to LOGLEVEL.

See the DEBUG LEVELS section in ctdb(7) for more information.

Default: ERROR

Files

/etc/ctdb/ctdb.conf

See Also

ctdbd(1), onnode(1), ctdb.sysconfig(5), ctdb-script.options(5), ctdb(7), ctdb-tunables(7), http://ctdb.samba.org/

Author

This documentation was written by Amitay Isaacs, Martin Schwenke

Referenced By

ctdb(7), ctdbd(1), ctdb-etcd(7), ctdb_mutex_ceph_rados_helper(7), ctdb-script.options(5), ctdb-tunables(7).

03/12/2024 CTDB - clustered TDB database