<para>
This file contains CTDB configuration variables that are affect
the operation of CTDB. The default location of this file is
- <filename>/etc/ctdb/ctdbd.conf</filename>.
+ <filename>/usr/local/etc/ctdb/ctdbd.conf</filename>.
</para>
<para>
<filename>/etc/default/ctdb</filename> (Debian). However, these
files should be reserved for variables used by the initscript.
A historical alternative is
- <filename>/etc/ctdb/sysconfig/ctdb</filename> - this is
+ <filename>/usr/local/etc/ctdb/sysconfig/ctdb</filename> - this is
deprecated.
</para>
</para>
<para>
- Default is <filename>/var/run/ctdb/ctdbd.pid</filename>.
+ Default is <filename>/usr/local/var/run/ctdb/ctdbd.pid</filename>.
Corresponds to <option>--pidfile</option>.
</para>
</listitem>
</listitem>
</varlistentry>
- <varlistentry>
- <term>CTDB_VARDIR=<parameter>DIRECTORY</parameter></term>
- <listitem>
- <para>
- DIRECTORY containing CTDB files that are modified at
- runtime.
- </para>
- <para>
- Defaults to <filename>/var/ctdb</filename>, unless
- <filename>/var/lib/ctdb</filename> already exists in which
- case it is used.
- </para>
- </listitem>
- </varlistentry>
-
-
</variablelist>
</refsect1>
<term>CTDB_DBDIR=<parameter>DIRECTORY</parameter></term>
<listitem>
<para>
- Defaults to <varname>CTDB_VARDIR</varname>. Corresponds to
- <option>--dbdir</option>.
+ Defaults to <filename>/usr/local/var/lib/ctdb</filename>.
+ </para>
+ <para>
+ Apart from a DIRECTORY, this can take a special value of
+ the form
+ <option>tmpfs</option><optional>:<parameter>OPTIONS</parameter></optional>.
+ OPTIONS is a comma-separated list of any permissible
+ options to the tmpfs filesystem. The only pre-specified
+ default is <option>mode=700</option>, which can
+ overridden by specifying <option>mode</option> in
+ OPTIONS. It probably makes sense to specify a maximum
+ <option>size</option>.
+ </para>
+ <para>
+ Corresponds to <option>--dbdir</option>.
</para>
</listitem>
</varlistentry>
<term>CTDB_DBDIR_PERSISTENT=<parameter>DIRECTORY</parameter></term>
<listitem>
<para>
- Defaults to <varname>CTDB_VARDIR</varname>/persistent.
+ Defaults to <filename>/usr/local/var/lib/ctdb/persistent</filename>.
+ </para>
+ <para>
Corresponds to <option>--dbdir-persistent</option>.
</para>
</listitem>
<term>CTDB_DBDIR_STATE=<parameter>DIRECTORY</parameter></term>
<listitem>
<para>
- Defaults to <varname>CTDB_VARDIR</varname>/state.
+ Defaults to <filename>/usr/local/var/lib/ctdb/state</filename>.
+ </para>
+ <para>
Corresponds to <option>--dbdir-state</option>.
</para>
</listitem>
<term>CTDB_DEBUGLEVEL=<parameter>DEBUGLEVEL</parameter></term>
<listitem>
<para>
- Default is ERR (0). Corresponds to <option>-d</option> or
+ Default is NOTICE. Corresponds to <option>-d</option> or
<option>--debug</option>.
</para>
</listitem>
<listitem>
<para>
Default is <varname>CTDB_BASE</varname>/events.d, so usually
- <filename>/etc/ctdb/events.d</filename>. Corresponds to
+ <filename>/usr/local/etc/ctdb/events.d</filename>. Corresponds to
<option>--event-script-dir</option>.
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>CTDB_LOGFILE=<parameter>FILENAME</parameter></term>
+ <term>CTDB_LOGGING=<parameter>STRING</parameter></term>
<listitem>
<para>
- Defaults to <filename>/var/log/log.ctdb</filename>.
- Corresponds to <option>--logfile</option>. See also
- <citetitle>CTDB_SYSLOG</citetitle>.
+ STRING specifies where ctdbd will write its log. The
+ default is
+ file:<filename>/usr/local/var/log/log.ctdb</filename>.
+ Corresponds to <option>--logging</option>.
</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_LOG_RINGBUF_SIZE=<parameter>NUM</parameter></term>
- <listitem>
<para>
- Default is 0. Corresponds to
- <option>--log-ringbuf-size</option>.
+ Valid values are:
</para>
+ <variablelist>
+ <varlistentry>
+ <term>file:<parameter>FILENAME</parameter></term>
+ <listitem>
+ <para>
+ FILENAME where ctdbd will write its log. This is usually
+ <filename>/usr/local/var/log/log.ctdb</filename>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>syslog<optional>:<parameter>METHOD</parameter></optional></term>
+ <listitem>
+ <para>
+ CTDB will log to syslog. By default this will use
+ the syslog(3) API.
+ </para>
+ <para>
+ 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:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>nonblocking</term>
+ <listitem>
+ <para>
+ CTDB will log to syslog via
+ <filename>/dev/log</filename> in non-blocking
+ mode.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>udp</term>
+ <listitem>
+ <para>
+ 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.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>udp-rfc5424</term>
+ <listitem>
+ <para>
+ 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.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
</listitem>
</varlistentry>
<varlistentry>
- <term>CTDB_LVS_PUBLIC_IP=<parameter>IPADDR</parameter></term>
+ <term>CTDB_NODES=<parameter>FILENAME</parameter></term>
<listitem>
<para>
- No default. Corresponds to "<option>--lvs</option>
- <option>--single-public-ip IPADDR"</option>.
+ Default is <varname>CTDB_BASE</varname>/nodes, so usually
+ <filename>/usr/local/etc/ctdb/nodes</filename>. Corresponds to
+ <option>--nlist</option>.
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>CTDB_NODES=<parameter>FILENAME</parameter></term>
+ <term>CTDB_NOSETSCHED=yes|no</term>
<listitem>
<para>
- Default is <varname>CTDB_BASE</varname>/nodes, so usually
- <filename>/etc/ctdb/nodes</filename>. Corresponds to
- <option>--nlist</option>.
+ Defaults to no. Corresponds to <option>--nosetsched</option>.
+ </para>
+ <para>
+ Usually CTDB runs with real-time priority. If you are running
+ CTDB on a platform that does not support real-time priority,
+ you can set this.
</para>
</listitem>
</varlistentry>
<listitem>
<para>
No default, usually
- <filename>/etc/ctdb/notify.sh</filename>. Corresponds to
+ <filename>/usr/local/etc/ctdb/notify.sh</filename>. Corresponds to
<option>--notification-script</option>.
</para>
</listitem>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term>CTDB_NODE_ADDRESS=<parameter>IPADDR</parameter></term>
+ <listitem>
+ <para>
+ IPADDR is the private IP address that ctdbd will bind to.
+ Corresponds to <option>--listen</option>.
+ </para>
+ <para>
+ By default ctdbd will select the first address from the
+ nodes list that in can bind to. See also
+ <citetitle>CTDB_NODES</citetitle>.
+ </para>
+ <para>
+ 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.
+ </para>
+ </listitem>
+ </varlistentry>
+
<varlistentry>
<term>CTDB_PUBLIC_ADDRESSES=<parameter>FILENAME</parameter></term>
<listitem>
<para>
No default, usually
- <filename>/etc/ctdb/public_addresses</filename>.
+ <filename>/usr/local/etc/ctdb/public_addresses</filename>.
Corresponds to <option>--public-addresses</option>.
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>CTDB_RECOVERY_LOCK=<parameter>FILENAME</parameter></term>
+ <term>CTDB_RECOVERY_LOCK=<parameter>LOCK</parameter></term>
<listitem>
<para>
- Defaults to
+ LOCK specifies the cluster-wide mutex used to detect and
+ prevent a partitioned cluster (or "split brain").
+ </para>
+ <para>
+ No default, but the default configuration file specifies
<filename>/some/place/on/shared/storage</filename>, which
should be change to a useful value. Corresponds to
<option>--reclock</option>.
</para>
+ <para>
+ For information about the recovery lock please see the
+ <citetitle>RECOVERY LOCK</citetitle> section in
+ <citerefentry><refentrytitle>ctdb</refentrytitle>
+ <manvolnum>7</manvolnum></citerefentry>.
+ </para>
</listitem>
</varlistentry>
<term>CTDB_SCRIPT_LOG_LEVEL=<parameter>DEBUGLEVEL</parameter></term>
<listitem>
<para>
- Defaults to ERR (0). Corresponds to
+ Defaults to ERR. Corresponds to
<option>--script-log-level</option>.
</para>
</listitem>
<term>CTDB_SOCKET=<parameter>FILENAME</parameter></term>
<listitem>
<para>
- Defaults to <filename>/tmp/ctdb.socket</filename>.
+ Defaults to <filename>/usr/local/var/run/ctdb/ctdbd.socket</filename>.
Corresponds to <option>--socket</option>.
</para>
<para>
If you change this then you probably want to set this in
- root's enviroment (perhaps in a file in
+ root's environment (perhaps in a file in
<filename>/etc/profile.d</filename>) so that you can use
the <citerefentry><refentrytitle>ctdb</refentrytitle>
<manvolnum>1</manvolnum></citerefentry> command in a
</listitem>
</varlistentry>
- <varlistentry>
- <term>CTDB_SYSLOG=yes|no</term>
- <listitem>
- <para>
- Default is no. Corresponds to <option>--syslog</option>.
- </para>
- </listitem>
- </varlistentry>
-
<varlistentry>
<term>CTDB_TRANSPORT=tcp|infiniband</term>
<listitem>
<para>
File format:
<screen>
-<parameter>IPADDR</parameter>
+<parameter>IPADDR</parameter> <optional>slave-only</optional>
</screen>
</para>
+ <para>
+ IPADDR is the private IP address of each node in the NAT
+ gateway group.
+ </para>
+ <para>
+ If "slave-only" is specified then the corresponding node
+ can not be the NAT gateway master node. In this case
+ <varname>CTDB_NATGW_PUBLIC_IFACE</varname> and
+ <varname>CTDB_NATGW_PUBLIC_IP</varname> are optional and
+ unused.
+ </para>
<para>
No default, usually
- <filename>/etc/ctdb/natgw_nodes</filename> when enabled.
+ <filename>/usr/local/etc/ctdb/natgw_nodes</filename> when enabled.
</para>
</listitem>
</varlistentry>
</listitem>
</varlistentry>
- <varlistentry>
- <term>CTDB_NATGW_SLAVE_ONLY=yes|no</term>
- <listitem>
- <para>
- When set to "yes" a node can not be a NAT gateway master
- node. In this case
- <varname>CTDB_NATGW_PUBLIC_IFACE</varname> and
- <varname>CTDB_NATGW_PUBLIC_IP</varname> are optional
- and unused.
- </para>
- <para>
- Default is no.
- </para>
- </listitem>
- </varlistentry>
-
<varlistentry>
<term>CTDB_NATGW_STATIC_ROUTES=<parameter>IPADDR/MASK[@GATEWAY]</parameter> ...</term>
<listitem>
<refsect3>
<title>Example</title>
<screen>
-CTDB_NATGW_NODES=/etc/ctdb/natgw_nodes
+CTDB_NATGW_NODES=/usr/local/etc/ctdb/natgw_nodes
CTDB_NATGW_PRIVATE_NETWORK=192.168.1.0/24
CTDB_NATGW_DEFAULT_GATEWAY=10.0.0.1
CTDB_NATGW_PUBLIC_IP=10.0.0.227/24
always reachable would look like this:
</para>
<screen>
-CTDB_NATGW_NODES=/etc/ctdb/natgw_nodes
+CTDB_NATGW_NODES=/usr/local/etc/ctdb/natgw_nodes
CTDB_NATGW_PRIVATE_NETWORK=192.168.1.0/24
CTDB_NATGW_PUBLIC_IP=10.0.0.227/24
CTDB_NATGW_PUBLIC_IFACE=eth0
<para>
No default, usually
- <filename>/etc/ctdb/policy_routing</filename> when enabled.
+ <filename>/usr/local/etc/ctdb/policy_routing</filename> when enabled.
</para>
</listitem>
</varlistentry>
<refsect3>
<title>Example</title>
<screen>
-CTDB_PER_IP_ROUTING_CONF=/etc/ctdb/policy_routing
+CTDB_PER_IP_ROUTING_CONF=/usr/local/etc/ctdb/policy_routing
CTDB_PER_IP_ROUTING_RULE_PREF=100
CTDB_PER_IP_ROUTING_TABLE_ID_LOW=1000
CTDB_PER_IP_ROUTING_TABLE_ID_HIGH=9000
</refsect2>
+ <refsect2>
+ <title>LVS</title>
+
+ <para>
+ For a general description see the <citetitle>LVS</citetitle>
+ section in <citerefentry><refentrytitle>ctdb</refentrytitle>
+ <manvolnum>7</manvolnum></citerefentry>.
+ </para>
+
+ <refsect3>
+ <title>Eventscript</title>
+
+ <simplelist>
+ <member><filename>91.lvs</filename></member>
+ </simplelist>
+ </refsect3>
+
+ <variablelist>
+
+ <varlistentry>
+ <term>CTDB_LVS_NODES=<parameter>FILENAME</parameter></term>
+ <listitem>
+ <para>
+ FILENAME contains the list of nodes that belong to the
+ same LVS group.
+ </para>
+ <para>
+ File format:
+ <screen>
+<parameter>IPADDR</parameter> <optional>slave-only</optional>
+ </screen>
+ </para>
+ <para>
+ IPADDR is the private IP address of each node in the LVS
+ group.
+ </para>
+ <para>
+ If "slave-only" is specified then the corresponding node
+ can not be the LVS master node. In this case
+ <varname>CTDB_LVS_PUBLIC_IFACE</varname> and
+ <varname>CTDB_LVS_PUBLIC_IP</varname> are optional and
+ unused.
+ </para>
+ <para>
+ No default, usually
+ <filename>/usr/local/etc/ctdb/lvs_nodes</filename> when enabled.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>CTDB_LVS_PUBLIC_IFACE=<parameter>INTERFACE</parameter></term>
+ <listitem>
+ <para>
+ INTERFACE is the network interface that clients will use
+ to connection to <varname>CTDB_LVS_PUBLIC_IP</varname>.
+ This is optional for slave-only nodes.
+ No default.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>CTDB_LVS_PUBLIC_IP=<parameter>IPADDR</parameter></term>
+ <listitem>
+ <para>
+ CTDB_LVS_PUBLIC_IP is the LVS public address. No
+ default.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect2>
+
<refsect2>
<title>MISCELLANEOUS NETWORK CONFIGURATION</title>
display the node as "PARTIALLYONLINE".
</para>
+ <para>
+ Note that CTDB_PARTIALLY_ONLINE_INTERFACES=yes is
+ incompatible with NAT gateway, since NAT gateway relies
+ on the interface configured by CTDB_NATGW_PUBLIC_IFACE
+ to be up.
+ </para>
+
<para>
Default is "no".
</para>
<title>NFS</title>
<para>
- This includes parameters for the kernel NFS server and the
- user-space
- <ulink url="https://github.com/nfs-ganesha/nfs-ganesha/wiki">NFS-Ganesha</ulink>
- server.
+ This includes parameters for the kernel NFS server.
+ Alternative NFS subsystems (such as <ulink
+ url="https://github.com/nfs-ganesha/nfs-ganesha/wiki">NFS-Ganesha</ulink>)
+ can be integrated using <varname>CTDB_NFS_CALLOUT</varname>.
</para>
<refsect3>
- <title>Eventscripts</title>
+ <title>Eventscript</title>
<simplelist>
<member><filename>60.nfs</filename></member>
- <member><filename>60.ganesha</filename></member>
</simplelist>
</refsect3>
<variablelist>
- <varlistentry>
- <term>CTDB_CLUSTER_FILESYSTEM_TYPE=gpfs</term>
- <listitem>
- <para>
- The type of cluster filesystem to use with NFS-ganesha.
- Currently only "gpfs" is supported.
- </para>
- <para>
- Default is "gpfs".
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_GANESHA_REC_SUBDIR<parameter>SUBDIR</parameter></term>
- <listitem>
- <para>
- SUBDIR is the name of a top-level subdirectory in the
- first cluster filesystem. This subdirectory is used to
- allow communication between NFS-Ganesha and the
- <filename>60.ganesha</filename> script.
- </para>
- <para>
- Default is ".ganesha".
- </para>
- </listitem>
- </varlistentry>
-
<varlistentry>
<term>CTDB_MANAGES_NFS=yes|no</term>
<listitem>
</varlistentry>
<varlistentry>
- <term>CTDB_MONITOR_NFS_THREAD_COUNT=yes|no</term>
+ <term>CTDB_NFS_CALLOUT=<parameter>COMMAND</parameter></term>
<listitem>
<para>
- Whether to monitor the NFS kernel server thread count.
+ COMMAND specifies the path to a callout to handle
+ interactions with the configured NFS system, including
+ startup, shutdown, monitoring.
</para>
<para>
- This works around a limitation in some NFS initscripts
- where some threads can be stuck in host filesystem calls
- (perhaps due to slow storage), a restart occurs, some
- threads don't exit, the start only adds the missing
- number of threads, the stuck threads exit, and the
- result is a lower than expected thread count. Note that
- if you must also set <varname>RPCNFSDCOUNT</varname>
- (RedHat/Debian) or <varname>USE_KERNEL_NFSD_NUMBER</varname>
- (SUSE) in your NFS configuration so the monitoring code
- knows how many threads there should be - if neither of
- these are set then this option will be ignored.
- </para>
- <para>
- Default is no.
+ Default is the included
+ <command>nfs-linux-kernel-callout</command>.
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>CTDB_NFS_DUMP_STUCK_THREADS=<parameter>NUM</parameter></term>
+ <term>CTDB_NFS_CHECKS_DIR=<parameter>DIRECTORY</parameter></term>
<listitem>
<para>
- NUM is the number of NFS kernel server threads to dump
- stack traces for if some are still alive after stopping
- NFS during a restart.
+ Specifies the path to a DIRECTORY containing files that
+ describe how to monitor the responsiveness of NFS RPC
+ services. See the README file for this directory for an
+ explanation of the contents of these "check" files.
</para>
<para>
- Default is 5. Set this to 0 to disable this feature.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_NFS_SERVER_MODE=kernel|ganesha</term>
- <listitem>
- <para>
- Selects which NFS server to be managed.
+ CTDB_NFS_CHECKS_DIR can be used to point to different
+ sets of checks for different NFS servers.
</para>
<para>
- This replaces the deprecated variable
- <varname>NFS_SERVER_MODE</varname>.
+ One way of using this is to have it point to, say,
+ <filename>/usr/local/etc/ctdb/nfs-checks-enabled.d</filename>
+ and populate it with symbolic links to the desired check
+ files. This avoids duplication and is upgrade-safe.
</para>
<para>
- Default is "kernel".
+ Default is
+ <filename>/usr/local/etc/ctdb/nfs-checks.d</filename>,
+ which contains NFS RPC checks suitable for Linux kernel
+ NFS.
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>CTDB_NFS_SKIP_KNFSD_ALIVE_CHECK=yes|no</term>
+ <term>CTDB_NFS_SKIP_SHARE_CHECK=yes|no</term>
<listitem>
<para>
- During monitoring, should CTDB skip the
- <command>rpcinfo</command> check that is used to see if
- the NFS kernel server is functional.
+ As part of monitoring, should CTDB skip the check for
+ the existence of each directory exported via NFS. This
+ may be desirable if there is a large number of exports.
</para>
<para>
Default is no.
</varlistentry>
<varlistentry>
- <term>CTDB_NFS_SKIP_SHARE_CHECK=yes|no</term>
+ <term>CTDB_RPCINFO_LOCALHOST=<parameter>IPADDR</parameter>|<parameter>HOSTNAME</parameter></term>
<listitem>
<para>
- As part of monitoring, should CTDB skip the check for
- the existence of each directory exported via NFS. This
- may be desirable if there is a large number of exports.
+ IPADDR or HOSTNAME indicates the address that
+ <command>rpcinfo</command> should connect to when doing
+ <command>rpcinfo</command> check on IPv4 RPC service during
+ monitoring. Optimally this would be "localhost".
+ However, this can add some performance overheads.
</para>
<para>
- Default is no.
+ Default is "127.0.0.1".
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>CTDB_RPCINFO_LOCALHOST=<parameter>IPADDR</parameter>|<parameter>HOSTNAME</parameter></term>
+ <term>CTDB_RPCINFO_LOCALHOST6=<parameter>IPADDR</parameter>|<parameter>HOSTNAME</parameter></term>
<listitem>
<para>
IPADDR or HOSTNAME indicates the address that
<command>rpcinfo</command> should connect to when doing
- <command>rpcinfo</command> check on RPC service during
- monitoring. Optimally this would be "localhost".
- However, this can add some performance overheads.
+ <command>rpcinfo</command> check on IPv6 RPC service
+ during monitoring. Optimally this would be "localhost6"
+ (or similar). However, this can add some performance
+ overheads.
</para>
<para>
- Default is "127.0.0.1".
+ Default is "::1".
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>CTDB_SKIP_GANESHA_NFSD_CHECK=yes|no</term>
+ <term>CTDB_NFS_STATE_FS_TYPE=<parameter>TYPE</parameter></term>
<listitem>
<para>
- As part of monitoring, should CTDB skip the check for
- the existence of each directory exported via
- NFS-Ganesha. This may be desirable if there is a large
- number of exports.
+ The type of filesystem used for a clustered NFS' shared
+ state. No default.
</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>CTDB_NFS_STATE_MNT=<parameter>DIR</parameter></term>
+ <listitem>
<para>
- Default is no.
+ The directory where a clustered NFS' shared state will be
+ located. No default.
</para>
</listitem>
</varlistentry>
<para>
CTDB can experience seemingly random (performance and other)
- issues if system resources become too contrained. Options in
- this section can be enabled to allow certain system resources to
- be checked.
+ issues if system resources become too constrained. Options in
+ this section can be enabled to allow certain system resources
+ to be checked. They allows warnings to be logged and nodes to
+ be marked unhealthy when system resource usage reaches the
+ configured thresholds.
+ </para>
+
+ <para>
+ Some checks are enabled by default. It is recommended that
+ these checks remain enabled or are augmented by extra checks.
+ There is no supported way of completely disabling the checks.
</para>
<refsect3>
<title>Eventscripts</title>
<simplelist>
- <member><filename>00.ctdb</filename></member>
- <member><filename>40.fs_use</filename></member>
+ <member><filename>05.system</filename></member>
</simplelist>
<para>
- Filesystem usage monitoring is in
- <filename>40.fs_use</filename>. This eventscript is not
- enabled by default. Use <command>ctdb
- enablescript</command> to enable it.
+ Filesystem and memory usage monitoring is in
+ <filename>05.system</filename>.
</para>
</refsect3>
<variablelist>
<varlistentry>
- <term>CTDB_CHECK_FS_USE=<parameter>FS-LIMIT-LIST</parameter></term>
+ <term>CTDB_MONITOR_FILESYSTEM_USAGE=<parameter>FS-LIMIT-LIST</parameter></term>
<listitem>
<para>
FS-LIMIT-LIST is a space-separated list of
- <parameter>FILESYSTEM</parameter>:<parameter>LIMIT</parameter>
- pairs indicating that a node should be flagged unhealthy
- if the space used on FILESYSTEM reaches LIMIT%.
- </para>
-
- <para>
- No default.
+ <parameter>FILESYSTEM</parameter>:<parameter>WARN_LIMIT</parameter><optional>:<parameter>UNHEALTHY_LIMIT</parameter></optional>
+ triples indicating that warnings should be logged if the
+ space used on FILESYSTEM reaches WARN_LIMIT%. If usage
+ reaches UNHEALTHY_LIMIT then the node should be flagged
+ unhealthy. Either WARN_LIMIT or UNHEALTHY_LIMIT may be
+ left blank, meaning that check will be omitted.
</para>
<para>
- Note that this feature uses the
- <filename>40.fs_use</filename> eventscript, which is not
- enabled by default. Use <command>ctdb
- enablescript</command> to enable it.
+ Default is to warn for each filesystem containing a
+ database directory (<envar>CTDB_DBDIR</envar>,
+ <envar>CTDB_DBDIR_PERSISTENT</envar>,
+ <envar>CTDB_DBDIR_STATE</envar>) with a threshold of
+ 90%.
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>CTDB_CHECK_SWAP_IS_NOT_USED=yes|no</term>
+ <term>CTDB_MONITOR_MEMORY_USAGE=<parameter>MEM-LIMITS</parameter></term>
<listitem>
<para>
- Should a warning be logged if swap space is in use.
+ MEM-LIMITS takes the form
+ <parameter>WARN_LIMIT</parameter><optional>:<parameter>UNHEALTHY_LIMIT</parameter></optional>
+ indicating that warnings should be logged if memory
+ usage reaches WARN_LIMIT%. If usage reaches
+ UNHEALTHY_LIMIT then the node should be flagged
+ unhealthy. Either WARN_LIMIT or UNHEALTHY_LIMIT may be
+ left blank, meaning that check will be omitted.
</para>
<para>
- Default is no.
+ Default is 80, so warnings will be logged when memory
+ usage reaches 80%.
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>CTDB_MONITOR_FREE_MEMORY=<parameter>NUM</parameter></term>
+ <term>CTDB_MONITOR_SWAP_USAGE=<parameter>SWAP-LIMITS</parameter></term>
<listitem>
<para>
- NUM is a lower limit on available system memory, expressed
- in megabytes. If this is set and the amount of available
- memory falls below this limit then some debug information
- will be logged, the node will be disabled and then CTDB
- will be shut down.
+ SWAP-LIMITS takes the form
+ <parameter>WARN_LIMIT</parameter><optional>:<parameter>UNHEALTHY_LIMIT</parameter></optional>
+ indicating that warnings should be logged if
+ swap usage reaches WARN_LIMIT%. If usage reaches
+ UNHEALTHY_LIMIT then the node should be flagged
+ unhealthy. Either WARN_LIMIT or UNHEALTHY_LIMIT may be
+ left blank, meaning that check will be omitted.
</para>
<para>
- No default.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_MONITOR_FREE_MEMORY_WARN=<parameter>NUM</parameter></term>
- <listitem>
- <para>
- NUM is a lower limit on available system memory, expressed
- in megabytes. If this is set and the amount of available
- memory falls below this limit then a warning will be
- logged.
- </para>
- <para>
- No default.
+ Default is 25, so warnings will be logged when swap
+ usage reaches 25%.
</para>
</listitem>
</varlistentry>
</listitem>
</varlistentry>
- <varlistentry>
- <term>CTDB_SERVICE_AUTOSTARTSTOP=yes|no</term>
- <listitem>
- <para>
- When CTDB should start and stop services if they become
- managed or unmanaged.
- </para>
- <para>
- Default is no.
- </para>
- </listitem>
- </varlistentry>
-
</variablelist>
</refsect2>
<para>
REGEXP specifies interesting processes for which stack
traces should be logged when debugging hung eventscripts
- and those processes are matched in pstree output. See
- also <citetitle>CTDB_DEBUG_HUNG_SCRIPT</citetitle>.
+ and those processes are matched in pstree output. REGEXP
+ is an extended regexp so choices are separated by pipes
+ ('|'). However, REGEXP should not contain parentheses.
+ See also <citetitle>CTDB_DEBUG_HUNG_SCRIPT</citetitle>.
</para>
<para>
- Default is "exportfs\|rpcinfo".
+ Default is "exportfs|rpcinfo".
</para>
</listitem>
</varlistentry>
</varlistentry>
<varlistentry>
- <term>CTDB_ETCDIR=<parameter>DIRECTORY</parameter></term>
+ <term>CTDB_SYS_ETCDIR=<parameter>DIRECTORY</parameter></term>
<listitem>
<para>
DIRECTORY containing system configuration files. This is
</listitem>
</varlistentry>
+ <varlistentry>
+ <term>CTDB_MAX_OPEN_FILES=<parameter>NUM</parameter></term>
+ <listitem>
+ <para>
+ NUM is the maximum number of open files.
+ </para>
+ <para>
+ There is no default.
+ </para>
+ </listitem>
+ </varlistentry>
+
<varlistentry>
<term>CTDB_RC_LOCAL=<parameter>FILENAME</parameter></term>
<listitem>
</listitem>
</varlistentry>
- <varlistentry>
- <term>CTDB_SCRIPT_DEBUGLEVEL=<parameter>NUM</parameter></term>
- <listitem>
- <para>
- NUM is the level debugging messages printed by CTDB
- scripts. Setting this to a higher number (e.g. 4) will
- cause some scripts to log more messages.
- </para>
- <para>
- Default is 2.
- </para>
- </listitem>
- </varlistentry>
-
<varlistentry>
<term>CTDB_SUPPRESS_COREFILE=yes|no</term>
<listitem>
<manvolnum>1</manvolnum></citerefentry> to be run under
<citerefentry><refentrytitle>valgrind</refentrytitle>
<manvolnum>1</manvolnum></citerefentry> with logs going to
- <filename>/var/log/ctdb_valgrind</filename>. If neither
+ <filename>/usr/local/var/log/ctdb_valgrind</filename>. If neither
"yes" nor "no" then the value is assumed to be a COMMAND
(e.g. a <command>valgrind</command> variation, a
<citerefentry><refentrytitle>gdb</refentrytitle>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term>CTDB_VARDIR=<parameter>DIRECTORY</parameter></term>
+ <listitem>
+ <para>
+ DIRECTORY containing CTDB files that are modified at
+ runtime.
+ </para>
+ <para>
+ Defaults to <filename>/usr/local/var/lib/ctdb</filename>.
+ </para>
+ </listitem>
+ </varlistentry>
+
</variablelist>
</refsect1>
<title>FILES</title>
<simplelist>
- <member><filename>/etc/ctdb/ctdbd.conf</filename></member>
+ <member><filename>/usr/local/etc/ctdb/ctdbd.conf</filename></member>
<member><filename>/etc/sysconfig/ctdb</filename></member>
<member><filename>/etc/default/ctdb</filename></member>
- <member><filename>/etc/ctdb/sysconfig/ctdb</filename></member>
+ <member><filename>/usr/local/etc/ctdb/sysconfig/ctdb</filename></member>
</simplelist>
</refsect1>