<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>
</refsect1>
- <refsect1>
- <title>
- INITSCRIPT CONFIGURATION
- </title>
-
- <para>
- Some options must be available to the initscript so they need to
- be set in the distribution-specific initscript configuration,
- such as <filename>/etc/sysconfig/ctdb</filename> or
- <filename>/etc/default/ctdb</filename>.
- </para>
-
- <variablelist>
-
- <varlistentry>
- <term>CTDB_PIDFILE=<parameter>FILENAME</parameter></term>
- <listitem>
- <para>
- FILENAME is the name of the file used to contain the
- process ID (PID) of the main CTDB daemon when it is
- running. This is passed from the initscript to
- <citerefentry><refentrytitle>ctdbd_wrapper</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry>.
- </para>
-
- <para>
- Default is <filename>/var/run/ctdb/ctdbd.pid</filename>.
- Corresponds to <option>--pidfile</option>.
- </para>
- </listitem>
- </varlistentry>
-
- </variablelist>
- </refsect1>
-
- <refsect1>
- <title>
- GLOBAL CONFIGURATION
- </title>
-
- <para>
- These options may be used in the initscripts, daemon and
- scripts.
- </para>
-
- <variablelist>
-
- <varlistentry>
- <term>CTDB_BASE=<parameter>DIRECTORY</parameter></term>
- <listitem>
- <para>
- DIRECTORY containing CTDB scripts and configuration files.
- </para>
- </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>
-
<refsect1>
<title>
DAEMON CONFIGURATION
<manvolnum>1</manvolnum></citerefentry> and are converted into
command-line arguments to
<citerefentry><refentrytitle>ctdbd</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry>. Correspondence with
- <citerefentry><refentrytitle>ctdbd</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> options is shown for
- each variable. The the documentation for the relevant options
- for more details.
+ <manvolnum>1</manvolnum></citerefentry>.
</para>
<para>
<term>CTDB_CAPABILITY_LMASTER=yes|no</term>
<listitem>
<para>
- Defaults to yes. Corresponds to <option>--no-lmaster</option>.
+ Defaults to yes.
</para>
</listitem>
</varlistentry>
<term>CTDB_CAPABILITY_RECMASTER=yes|no</term>
<listitem>
<para>
- Defaults to yes. Corresponds to
- <option>--no-recmaster</option>.
+ Defaults to yes.
</para>
</listitem>
</varlistentry>
<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/volatile</filename>.
</para>
</listitem>
</varlistentry>
<term>CTDB_DBDIR_PERSISTENT=<parameter>DIRECTORY</parameter></term>
<listitem>
<para>
- Defaults to <varname>CTDB_VARDIR</varname>/persistent.
- Corresponds to <option>--dbdir-persistent</option>.
+ Defaults to <filename>/usr/local/var/lib/ctdb/persistent</filename>.
</para>
</listitem>
</varlistentry>
<term>CTDB_DBDIR_STATE=<parameter>DIRECTORY</parameter></term>
<listitem>
<para>
- Defaults to <varname>CTDB_VARDIR</varname>/state.
- Corresponds to <option>--dbdir-state</option>.
+ Defaults to <filename>/usr/local/var/lib/ctdb/state</filename>.
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>CTDB_DEBUGLEVEL=<parameter>DEBUGLEVEL</parameter></term>
+ <term>CTDB_DEBUG_HUNG_SCRIPT=<parameter>FILENAME</parameter></term>
+ <listitem>
+ <para>
+ FILENAME is a script to run to log debug information when
+ an event script times out.
+ </para>
+ <para>
+ Default is <filename>/usr/local/etc/ctdb/debug-hung-script.sh</filename>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>CTDB_DEBUG_LOCKS=<parameter>FILENAME</parameter></term>
<listitem>
<para>
- Default is NOTICE (2). Corresponds to <option>-d</option> or
- <option>--debug</option>.
+ FILENAME is a script to run to log debug information when
+ an CTDB fails to freeze databases during recovery.
+ </para>
+ <para>
+ No default, usually
+ <filename>/usr/local/etc/ctdb/debug_locks.sh</filename>.
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>CTDB_EVENT_SCRIPT_DIR=<parameter>DIRECTORY</parameter></term>
+ <term>CTDB_DEBUGLEVEL=<parameter>DEBUGLEVEL</parameter></term>
<listitem>
<para>
- Default is <varname>CTDB_BASE</varname>/events.d, so usually
- <filename>/etc/ctdb/events.d</filename>. Corresponds to
- <option>--event-script-dir</option>.
+ Default is NOTICE.
</para>
</listitem>
</varlistentry>
<listitem>
<para>
STRING specifies where ctdbd will write its log. The
- default is file:<filename>/var/log/log.ctdb</filename> or
- similar - the prefix may differ depending on how CTDB was
- built. Corresponds to <option>--logging</option>.
+ default is
+ file:<filename>/usr/local/var/log/log.ctdb</filename>.
</para>
<para>
Valid values are:
<listitem>
<para>
FILENAME where ctdbd will write its log. This is usually
- <filename>/var/log/log.ctdb</filename>.
+ <filename>/usr/local/var/log/log.ctdb</filename>.
</para>
</listitem>
</varlistentry>
</varlistentry>
<varlistentry>
- <term>CTDB_LVS_PUBLIC_IP=<parameter>IPADDR</parameter></term>
- <listitem>
- <para>
- No default. Corresponds to "<option>--lvs</option>
- <option>--single-public-ip IPADDR"</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.
</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_NOTIFY_SCRIPT=<parameter>FILENAME</parameter></term>
- <listitem>
<para>
- No default, usually
- <filename>/etc/ctdb/notify.sh</filename>. Corresponds to
- <option>--notification-script</option>.
+ 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>
<varlistentry>
- <term>CTDB_MAX_PERSISTENT_CHECK_ERRORS=<parameter>NUM</parameter></term>
- <listitem>
- <para>
- Default 0. Corresponds to
- <option>--max-persistent-check-errors</option>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_NODE_ADDRESS=<parameter>FILENAME</parameter></term>
+ <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>.
+ nodes list that in can bind to. See also the
+ <citetitle>Private address</citetitle> section in
+ <citerefentry><refentrytitle>ctdb</refentrytitle>
+ <manvolnum>7</manvolnum></citerefentry>.
</para>
<para>
This option is only required when automatic address
</varlistentry>
<varlistentry>
- <term>CTDB_PUBLIC_ADDRESSES=<parameter>FILENAME</parameter></term>
- <listitem>
- <para>
- No default, usually
- <filename>/etc/ctdb/public_addresses</filename>.
- Corresponds to <option>--public-addresses</option>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_PUBLIC_INTERFACE=<parameter>INTERFACE</parameter></term>
+ <term>CTDB_RECOVERY_LOCK=<parameter>LOCK</parameter></term>
<listitem>
<para>
- No default. Corresponds to
- <option>--public-interface</option>.
+ LOCK specifies the cluster-wide mutex used to detect and
+ prevent a partitioned cluster (or "split brain").
</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_RECOVERY_LOCK=<parameter>FILENAME</parameter></term>
- <listitem>
<para>
- Defaults to
+ 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>.
+ should be change to a useful value.
</para>
<para>
For information about the recovery lock please see the
<term>CTDB_SCRIPT_LOG_LEVEL=<parameter>DEBUGLEVEL</parameter></term>
<listitem>
<para>
- Defaults to ERR (0). Corresponds to
- <option>--script-log-level</option>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_SOCKET=<parameter>FILENAME</parameter></term>
- <listitem>
- <para>
- Defaults to <filename>/tmp/ctdb.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
- <filename>/etc/profile.d</filename>) so that you can use
- the <citerefentry><refentrytitle>ctdb</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> command in a
- straightforward manner.
+ Defaults to ERR.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>CTDB_START_AS_DISABLED=yes|no</term>
<listitem>
- <para>
- Default is no. Corresponds to
- <option>--start-as-disabled</option>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_START_AS_STOPPED=yes|no</term>
- <listitem>
- <para>
- Default is no. Corresponds to
- <option>--start-as-stopped</option>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_TRANSPORT=tcp|infiniband</term>
- <listitem>
- <para>
- Defaults to tcp. Corresponds to
- <option>--transport</option>.
- </para>
- </listitem>
- </varlistentry>
-
- </variablelist>
-
- <para>
- While the following variables do not translate into daemon
- options they are used by
- <citerefentry><refentrytitle>ctdbd_wrapper</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> when starting and
- stopping <citerefentry><refentrytitle>ctdbd</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry>.
- </para>
-
- <variablelist>
-
- <varlistentry>
- <term>CTDB_SHUTDOWN_TIMEOUT=<parameter>NUM</parameter></term>
- <listitem>
- <para>
- NUM is the number of seconds to wait for
- <citerefentry><refentrytitle>ctdbd</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> to shut down
- gracefully before giving up and killing it.
- </para>
-
- <para>
- Defaults is 30.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_STARTUP_TIMEOUT=<parameter>NUM</parameter></term>
- <listitem>
- <para>
- NUM is the number of seconds to wait for
- <citerefentry><refentrytitle>ctdbd</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> complete early
- initialisation up to a point where it is unlikely to
- abort. If <command>ctdbd</command> doesn't complete the
- "setup" event before this timeout then it is killed.
- </para>
-
- <para>
- Defaults is 10.
- </para>
- </listitem>
- </varlistentry>
-
- </variablelist>
- </refsect1>
-
- <refsect1>
- <title>NETWORK CONFIGURATION</title>
-
- <refsect2>
- <title>NAT GATEWAY</title>
-
- <para>
- NAT gateway is used to configure fallback routing for nodes
- when they do not host any public IP addresses. For example,
- it allows unhealthy nodes to reliably communicate with
- external infrastructure. One node in a NAT gateway group will
- be designated as the NAT gateway master node and other (slave)
- nodes will be configured with fallback routes via the NAT
- gateway master node. For more information, see the
- <citetitle>NAT GATEWAY</citetitle> section in
- <citerefentry><refentrytitle>ctdb</refentrytitle>
- <manvolnum>7</manvolnum></citerefentry>.
- </para>
-
- <variablelist>
-
- <varlistentry>
- <term>CTDB_NATGW_DEFAULT_GATEWAY=<parameter>IPADDR</parameter></term>
- <listitem>
- <para>
- IPADDR is an alternate network gateway to use on the NAT
- gateway master node. If set, a fallback default route
- is added via this network gateway.
- </para>
- <para>
- No default. Setting this variable is optional - if not
- set that no route is created on the NAT gateway master
- node.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_NATGW_NODES=<parameter>FILENAME</parameter></term>
- <listitem>
- <para>
- FILENAME contains the list of nodes that belong to the
- same NAT gateway group.
- </para>
- <para>
- File format:
- <screen>
-<parameter>IPADDR</parameter>
- </screen>
- </para>
- <para>
- No default, usually
- <filename>/etc/ctdb/natgw_nodes</filename> when enabled.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_NATGW_PRIVATE_NETWORK=<parameter>IPADDR/MASK</parameter></term>
- <listitem>
- <para>
- IPADDR/MASK is the private sub-network that is
- internally routed via the NAT gateway master node. This
- is usually the private network that is used for node
- addresses.
- </para>
- <para>
- No default.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_NATGW_PUBLIC_IFACE=<parameter>IFACE</parameter></term>
- <listitem>
- <para>
- IFACE is the network interface on which the
- CTDB_NATGW_PUBLIC_IP will be configured.
- </para>
- <para>
- No default.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_NATGW_PUBLIC_IP=<parameter>IPADDR/MASK</parameter></term>
- <listitem>
- <para>
- IPADDR/MASK indicates the IP address that is used for
- outgoing traffic (originating from
- CTDB_NATGW_PRIVATE_NETWORK) on the NAT gateway master
- node. This <emphasis>must not</emphasis> be a
- configured public IP address.
- </para>
- <para>
- No default.
- </para>
- </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>
- <para>
- Each IPADDR/MASK identifies a network or host to which
- NATGW should create a fallback route, instead of
- creating a single default route. This can be used when
- there is already a default route, via an interface that
- can not reach required infrastructure, that overrides
- the NAT gateway default route.
- </para>
- <para>
- If GATEWAY is specified then the corresponding route on
- the NATGW master node will be via GATEWAY. Such routes
- are created even if
- <varname>CTDB_NATGW_DEFAULT_GATEWAY</varname> is not
- specified. If GATEWAY is not specified for some
- networks then routes are only created on the NATGW
- master node for those networks if
- <varname>CTDB_NATGW_DEFAULT_GATEWAY</varname> is
- specified.
- </para>
- <para>
- This should be used with care to avoid causing traffic
- to unnecessarily double-hop through the NAT gateway
- master, even when a node is hosting public IP addresses.
- Each specified network or host should probably have a
- corresponding automatically created link route or static
- route to avoid this.
- </para>
- <para>
- No default.
- </para>
- </listitem>
- </varlistentry>
-
- </variablelist>
-
- <refsect3>
- <title>Example</title>
- <screen>
-CTDB_NATGW_NODES=/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
-CTDB_NATGW_PUBLIC_IFACE=eth0
- </screen>
-
- <para>
- A variation that ensures that infrastructure (ADS, DNS, ...)
- directly attached to the public network (10.0.0.0/24) is
- always reachable would look like this:
- </para>
- <screen>
-CTDB_NATGW_NODES=/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
-CTDB_NATGW_STATIC_ROUTES=10.0.0.0/24
- </screen>
- <para>
- Note that <varname>CTDB_NATGW_DEFAULT_GATEWAY</varname> is
- not specified.
- </para>
- </refsect3>
-
- </refsect2>
-
- <refsect2>
- <title>POLICY ROUTING</title>
-
- <para>
- A node running CTDB may be a component of a complex network
- topology. In particular, public addresses may be spread
- across several different networks (or VLANs) and it may not be
- possible to route packets from these public addresses via the
- system's default route. Therefore, CTDB has support for
- policy routing via the <filename>13.per_ip_routing</filename>
- eventscript. This allows routing to be specified for packets
- sourced from each public address. The routes are added and
- removed as CTDB moves public addresses between nodes.
- </para>
-
- <para>
- For more information, see the <citetitle>POLICY
- ROUTING</citetitle> section in
- <citerefentry><refentrytitle>ctdb</refentrytitle>
- <manvolnum>7</manvolnum></citerefentry>.
- </para>
-
- <variablelist>
- <varlistentry>
- <term>CTDB_PER_IP_ROUTING_CONF=<parameter>FILENAME</parameter></term>
- <listitem>
- <para>
- FILENAME contains elements for constructing the desired
- routes for each source address.
- </para>
-
- <para>
- The special FILENAME value
- <constant>__auto_link_local__</constant> indicates that no
- configuration file is provided and that CTDB should
- generate reasonable link-local routes for each public IP
- address.
- </para>
-
- <para>
- File format:
- <screen>
-<parameter>IPADDR</parameter> <parameter>DEST-IPADDR/MASK</parameter> <optional><parameter>GATEWAY-IPADDR</parameter></optional>
- </screen>
- </para>
-
- <para>
- No default, usually
- <filename>/etc/ctdb/policy_routing</filename> when enabled.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_PER_IP_ROUTING_RULE_PREF=<parameter>NUM</parameter></term>
- <listitem>
- <para>
- NUM sets the priority (or preference) for the routing
- rules that are added by CTDB.
- </para>
-
- <para>
- This should be (strictly) greater than 0 and (strictly)
- less than 32766. A priority of 100 is recommended, unless
- this conflicts with a priority already in use on the
- system. See
- <citerefentry><refentrytitle>ip</refentrytitle>
- <manvolnum>8</manvolnum></citerefentry>, for more details.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- CTDB_PER_IP_ROUTING_TABLE_ID_LOW=<parameter>LOW-NUM</parameter>,
- CTDB_PER_IP_ROUTING_TABLE_ID_HIGH=<parameter>HIGH-NUM</parameter>
- </term>
- <listitem>
- <para>
- CTDB determines a unique routing table number to use for
- the routing related to each public address. LOW-NUM and
- HIGH-NUM indicate the minimum and maximum routing table
- numbers that are used.
- </para>
-
- <para>
- <citerefentry><refentrytitle>ip</refentrytitle>
- <manvolnum>8</manvolnum></citerefentry> uses some
- reserved routing table numbers below 255. Therefore,
- CTDB_PER_IP_ROUTING_TABLE_ID_LOW should be (strictly)
- greater than 255.
- </para>
-
- <para>
- CTDB uses the standard file
- <filename>/etc/iproute2/rt_tables</filename> to maintain
- a mapping between the routing table numbers and labels.
- The label for a public address
- <replaceable>ADDR</replaceable> will look like
- ctdb.<replaceable>addr</replaceable>. This means that
- the associated rules and routes are easy to read (and
- manipulate).
- </para>
-
- <para>
- No default, usually 1000 and 9000.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <refsect3>
- <title>Example</title>
- <screen>
-CTDB_PER_IP_ROUTING_CONF=/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
- </screen>
- </refsect3>
-
- </refsect2>
-
- <refsect2>
- <title>MISCELLANEOUS NETWORK CONFIGURATION</title>
-
- <variablelist>
-
- <varlistentry>
- <term>CTDB_PARTIALLY_ONLINE_INTERFACES=yes|no</term>
- <listitem>
- <para>
- Whether one or more offline interfaces should cause a
- monitor event to fail if there are other interfaces that
- are up. If this is "yes" and a node has some interfaces
- that are down then <command>ctdb status</command> will
- display the node as "PARTIALLYONLINE".
- </para>
-
- <para>
- Default is "no".
- </para>
- </listitem>
- </varlistentry>
-
- </variablelist>
- </refsect2>
-
- </refsect1>
-
- <refsect1>
- <title>SERVICE CONFIGURATION</title>
-
- <para>
- CTDB can be configured to manage and/or monitor various NAS (and
- other) services via its eventscripts.
- </para>
-
- <para>
- In the simplest case CTDB will manage a service. This means the
- service will be started and stopped along with CTDB, CTDB will
- monitor the service and CTDB will do any required
- reconfiguration of the service when public IP addresses are
- failed over.
- </para>
-
- <refsect2>
- <title>SAMBA</title>
-
- <refsect3>
- <title>Eventscripts</title>
-
- <simplelist>
- <member><filename>49.winbind</filename></member>
- <member><filename>50.samba</filename></member>
- </simplelist>
- </refsect3>
-
- <variablelist>
-
- <varlistentry>
- <term>CTDB_MANAGES_SAMBA=yes|no</term>
- <listitem>
- <para>
- Should CTDB manage Samba?
- </para>
- <para>
- Default is no.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_MANAGES_WINBIND=yes|no</term>
- <listitem>
- <para>
- Should CTDB manage Winbind?
- </para>
- <para>
- Default is no.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_SAMBA_CHECK_PORTS=<parameter>PORT-LIST</parameter></term>
- <listitem>
- <para>
- When monitoring Samba, check TCP ports in
- space-separated PORT-LIST.
- </para>
- <para>
- Default is to monitor ports that Samba is configured to listen on.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_SAMBA_SKIP_SHARE_CHECK=yes|no</term>
- <listitem>
- <para>
- As part of monitoring, should CTDB skip the check for
- the existence of each directory configured as share in
- Samba. This may be desirable if there is a large number
- of shares.
- </para>
- <para>
- Default is no.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_SERVICE_NMB=<parameter>SERVICE</parameter></term>
- <listitem>
- <para>
- Distribution specific SERVICE for managing nmbd.
- </para>
- <para>
- Default is distribution-dependant.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>CTDB_SERVICE_SMB=<parameter>SERVICE</parameter></term>
- <listitem>
- <para>
- Distribution specific SERVICE for managing smbd.
- </para>
- <para>
- Default is distribution-dependant.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_SERVICE_WINBIND=<parameter>SERVICE</parameter></term>
- <listitem>
- <para>
- Distribution specific SERVICE for managing winbindd.
- </para>
- <para>
- Default is "winbind".
- </para>
- </listitem>
- </varlistentry>
-
- </variablelist>
-
- </refsect2>
-
- <refsect2>
- <title>NFS</title>
-
- <para>
- 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>Eventscript</title>
-
- <simplelist>
- <member><filename>60.nfs</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_MANAGES_NFS=yes|no</term>
- <listitem>
- <para>
- Should CTDB manage NFS?
- </para>
- <para>
- Default is no.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_NFS_CALLOUT=<parameter>COMMAND</parameter></term>
- <listitem>
- <para>
- COMMAND specifies the path to a callout to handle
- interactions with the configured NFS system, including
- startup, shutdown, monitoring.
- </para>
- <para>
- Default is the included
- <command>nfs-linux-kernel-callout</command>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_NFS_SKIP_SHARE_CHECK=yes|no</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.
- </para>
- <para>
- Default is no.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_RPCINFO_LOCALHOST=<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 IPv4 RPC service during
- monitoring. Optimally this would be "localhost".
- However, this can add some performance overheads.
- </para>
- <para>
- Default is "127.0.0.1".
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <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 IPv6 RPC service
- during monitoring. Optimally this would be "localhost6"
- (or similar). However, this can add some performance
- overheads.
- </para>
- <para>
- Default is "::1".
- </para>
- </listitem>
- </varlistentry>
-
- </variablelist>
-
- </refsect2>
-
- <refsect2>
- <title>APACHE HTTPD</title>
-
- <para>
- CTDB can manage the Apache web server.
- </para>
-
- <refsect3>
- <title>Eventscript</title>
-
- <simplelist>
- <member><filename>41.httpd</filename></member>
- </simplelist>
- </refsect3>
-
- <variablelist>
- <varlistentry>
- <term>CTDB_MANAGES_HTTPD=yes|no</term>
- <listitem>
- <para>
- Should CTDB manage the Apache web server?
- </para>
- <para>
- Default is no.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect2>
-
- <refsect2>
- <title>CLAMAV</title>
-
- <para>
- CTDB has support to manage the popular anti-virus daemon
- ClamAV.
- </para>
-
- <refsect3>
- <title>Eventscript</title>
-
- <simplelist>
- <member><filename>31.clamd</filename></member>
- </simplelist>
-
- <para>
- This eventscript is not enabled by default. Use
- <command>ctdb enablescript</command> to enable it.
- </para>
-
- </refsect3>
-
- <variablelist>
-
- <varlistentry>
- <term>CTDB_MANAGES_CLAMD=yes|no</term>
- <listitem>
- <para>
- Should CTDB manage ClamAV?
- </para>
- <para>
- Default is no.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_CLAMD_SOCKET=<parameter>FILENAME</parameter></term>
- <listitem>
- <para>
- FILENAME is the socket to monitor ClamAV.
- </para>
- <para>
- No default.
- </para>
- </listitem>
- </varlistentry>
-
- </variablelist>
-
- </refsect2>
-
- <refsect2>
- <title>ISCSI</title>
-
- <para>
- CTDB has support for managing the Linux iSCSI tgtd service.
- </para>
-
- <refsect3>
- <title>Eventscript</title>
-
- <simplelist>
- <member><filename>70.iscsi</filename></member>
- </simplelist>
- </refsect3>
-
- <variablelist>
-
- <varlistentry>
- <term>CTDB_MANAGES_ISCSI=yes|no</term>
- <listitem>
- <para>
- Should CTDB manage iSCSI tgtd?
- </para>
- <para>
- Default is no.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_START_ISCSI_SCRIPTS=<parameter>DIRECTORY</parameter></term>
- <listitem>
- <para>
- DIRECTORY on shared storage containing scripts to start
- tgtd for each public IP address.
- </para>
- <para>
- No default.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect2>
-
- <refsect2>
- <title>MULTIPATHD</title>
-
- <para>
- CTDB can monitor multipath devices to ensure that active paths
- are available.
- </para>
-
- <refsect3>
- <title>Eventscript</title>
-
- <simplelist>
- <member><filename>20.multipathd</filename></member>
- </simplelist>
-
- <para>
- This eventscript is not enabled by default. Use
- <command>ctdb enablescript</command> to enable it.
- </para>
- </refsect3>
-
- <variablelist>
- <varlistentry>
- <term>CTDB_MONITOR_MPDEVICES=<parameter>MP-DEVICE-LIST</parameter></term>
- <listitem>
- <para>
- MP-DEVICE-LIST is a list of multipath devices for CTDB to monitor?
- </para>
- <para>
- No default.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect2>
-
- <refsect2>
- <title>VSFTPD</title>
-
- <para>
- CTDB can manage the vsftpd FTP server.
- </para>
-
- <refsect3>
- <title>Eventscript</title>
-
- <simplelist>
- <member><filename>40.vsftpd</filename></member>
- </simplelist>
- </refsect3>
-
- <variablelist>
- <varlistentry>
- <term>CTDB_MANAGES_VSFTPD=yes|no</term>
- <listitem>
- <para>
- Should CTDB manage the vsftpd FTP server?
- </para>
- <para>
- Default is no.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect2>
-
- <refsect2>
- <title>
- SYSTEM RESOURCE MONITORING CONFIGURATION
- </title>
-
- <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.
- </para>
-
- <refsect3>
- <title>Eventscripts</title>
-
- <simplelist>
- <member><filename>00.ctdb</filename></member>
- <member><filename>05.system</filename></member>
- </simplelist>
-
- <para>
- Filesystem usage monitoring is in
- <filename>05.system</filename>. This eventscript is not
- enabled by default. Use <command>ctdb
- enablescript</command> to enable it.
- </para>
- </refsect3>
-
- <variablelist>
-
- <varlistentry>
- <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>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>
- No default.
- </para>
-
- <para>
- Note that this feature uses the
- <filename>05.system</filename> eventscript, which is not
- enabled by default. Use <command>ctdb
- enablescript</command> to enable it.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_CHECK_SWAP_IS_NOT_USED=yes|no</term>
- <listitem>
- <para>
- Should a warning be logged if swap space is in use.
- </para>
- <para>
- Default is no.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_MONITOR_FREE_MEMORY=<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 some debug information
- will be logged, the node will be disabled and then CTDB
- will be shut down.
- </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.
- </para>
- </listitem>
- </varlistentry>
-
- </variablelist>
- </refsect2>
-
- <refsect2>
- <title>MISCELLANEOUS SERVICE-RELATED CONFIGURATION</title>
-
- <variablelist>
-
- <varlistentry>
- <term>CTDB_MANAGED_SERVICES=<parameter>SERVICE-LIST</parameter></term>
- <listitem>
- <para>
- SERVICE-LIST is a space-separated list of SERVICEs that
- CTDB should manage. This can be used as an alternative
- to the
- <varname>CTDB_MANAGES_<replaceable>SERVICE</replaceable></varname>
- variables.
- </para>
- <para>
- No default.
- </para>
- </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>
-
- </refsect1>
-
- <refsect1>
- <title>
- TUNABLES CONFIGURATION
- </title>
-
- <para>
- CTDB tunables (see
- <citerefentry><refentrytitle>ctdbd-tunables</refentrytitle>
- <manvolnum>7</manvolnum></citerefentry>) can be set from the
- configuration file. They are set as follows:
-
- <literallayout>
-CTDB_SET_<replaceable>TUNABLE</replaceable>=<replaceable>VALUE</replaceable>
- </literallayout>
- </para>
-
- <para>
- For example:
-
- <screen format="linespecific">
-CTDB_SET_MonitorInterval=20
- </screen>
- </para>
- </refsect1>
-
- <refsect1>
- <title>
- DEBUG AND TEST
- </title>
-
- <para>
- Variable in this section are for debugging and testing CTDB.
- They should not generally be needed.
- </para>
-
- <variablelist>
-
- <varlistentry>
- <term>CTDB_DEBUG_HUNG_SCRIPT=<parameter>FILENAME</parameter></term>
- <listitem>
- <para>
- FILENAME is a script to run to log debug information when
- an event script times out.
- </para>
- <para>
- Default is <filename><varname>CTDB_BASE</varname>/debug-hung-script.sh</filename>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_DEBUG_HUNG_SCRIPT_LOGFILE=<parameter>FILENAME</parameter></term>
- <listitem>
- <para>
- FILENAME specifies where log messages should go when
- debugging hung eventscripts. This is a testing option.
- See also <citetitle>CTDB_DEBUG_HUNG_SCRIPT</citetitle>.
- </para>
- <para>
- No default. Messages go to stdout/stderr and are logged
- to the same place as other CTDB log messages.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_DEBUG_HUNG_SCRIPT_STACKPAT=<parameter>REGEXP</parameter></term>
- <listitem>
- <para>
- REGEXP specifies interesting processes for which stack
- traces should be logged when debugging hung eventscripts
- 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".
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_DEBUG_LOCKS=<parameter>FILENAME</parameter></term>
- <listitem>
- <para>
- FILENAME is a script to run to log debug information when
- an CTDB fails to freeze databases during recovery.
- </para>
- <para>
- No default, usually
- <filename><varname>CTDB_BASE</varname>/debug_locks.sh</filename>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_ETCDIR=<parameter>DIRECTORY</parameter></term>
- <listitem>
- <para>
- DIRECTORY containing system configuration files. This is
- used to provide alternate configuration when testing and
- should not need to be changed from the default.
- </para>
- <para>
- Default is <filename>/etc</filename>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_INIT_STYLE=debian|redhat|suse</term>
- <listitem>
- <para>
- This is the init style used by the Linux distribution (or
- other operating system) being used. This is usually
- determined dynamically by checking the system. This
- variable is used by the initscript to determine which init
- system primitives to use. It is also used by some
- eventscripts to choose the name of initscripts for certain
- services, since these can vary between distributions.
- </para>
- <para>
- No fixed default.
- </para>
- <para>
- If this option needs to be changed from the calculated
- default for the initscript to function properly, then it
- must be set in the distribution-specific initscript
- configuration, such as
- <filename>/etc/sysconfig/ctdb</filename>
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_MAX_CORRUPT_DB_BACKUPS=<parameter>NUM</parameter></term>
- <listitem>
- <para>
- NUM is the maximum number of volatile TDB database backups
- to be kept (for each database) when a corrupt database is
- found during startup. Volatile TDBs are zeroed during
- startup so backups are needed to debug any corruption that
- occurs before a restart.
- </para>
- <para>
- Default is 10.
- </para>
- </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>
- <para>
- FILENAME is a script fragment to be sourced by the
- <filename>functions</filename> that is sourced by scripts.
- On example use would be to override function definitions
- in unit tests. As a sanity check, this file must be
- executable for it to be used.
- </para>
- <para>
- No default.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CTDB_RUN_TIMEOUT_MONITOR=yes|no</term>
- <listitem>
- <para>
- Whether CTDB should simulate timing out monitor events.
- This uses the <filename>99.timeout</filename> eventscript.
- </para>
<para>
Default is no.
</para>
</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>
+ <term>CTDB_START_AS_STOPPED=yes|no</term>
<listitem>
- <para>
- Whether CTDB core files should be suppressed.
- </para>
<para>
Default is no.
</para>
</varlistentry>
<varlistentry>
- <term>CTDB_VALGRIND=yes|no|<parameter>COMMAND</parameter></term>
+ <term>CTDB_TRANSPORT=tcp|infiniband</term>
<listitem>
<para>
- If "yes", this causes
- <citerefentry><refentrytitle>ctdbd</refentrytitle>
- <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
- "yes" nor "no" then the value is assumed to be a COMMAND
- (e.g. a <command>valgrind</command> variation, a
- <citerefentry><refentrytitle>gdb</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> command) that is
- used in place of the default <command>valgrind</command>
- command. In either case, the <option>--valgrind</option>
- option is passed to <command>ctdbd</command>.
- </para>
- <para>
- Default is no.
+ Defaults to tcp.
</para>
</listitem>
</varlistentry>
</refsect1>
-
<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>
</simplelist>
</refsect1>