s3:utils: add 'net witness force-response'
[Samba.git] / ctdb / doc / ctdb-script.options.5.xml
bloba01b10a949c750cfca95cebe524a6e22e8f873fc
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE refentry
3         PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
4         "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
6 <refentry id="ctdb-script.options.5">
8   <refmeta>
9     <refentrytitle>ctdb-script.options</refentrytitle>
10     <manvolnum>5</manvolnum>
11     <refmiscinfo class="source">ctdb</refmiscinfo>
12     <refmiscinfo class="manual">CTDB - clustered TDB database</refmiscinfo>
13   </refmeta>
15   <refnamediv>
16     <refname>ctdb-script.options</refname>
17     <refpurpose>CTDB scripts configuration files</refpurpose>
18   </refnamediv>
20   <refsect1>
21     <title>DESCRIPTION</title>
23     <refsect2>
24       <title>Location</title>
25       <para>
26         Each CTDB script has 2 possible locations for its configuration options:
27       </para>
29       <variablelist>
31         <varlistentry>
32           <term>
33             <filename>/usr/local/etc/ctdb/script.options</filename>
34           </term>
35           <listitem>
36             <para>
37               This is a catch-all global file for general purpose
38               scripts and for options that are used in multiple event
39               scripts.
40             </para>
41           </listitem>
42         </varlistentry>
44         <varlistentry>
45           <term>
46             <parameter>SCRIPT</parameter>.options
47           </term>
48           <listitem>
49             <para>
50               That is, options for
51               <filename><parameter>SCRIPT</parameter></filename> are
52               placed in a file alongside the script, with a ".script"
53               suffix added.  This style is usually recommended for event
54               scripts.
55             </para>
57             <para>
58               Options in this script-specific file override those in
59               the global file.
60             </para>
61           </listitem>
62         </varlistentry>
64       </variablelist>
65     </refsect2>
67     <refsect2>
68       <title>Contents</title>
70       <para>
71         These files should include simple shell-style variable
72         assignments and shell-style comments.
73       </para>
74     </refsect2>
76     <refsect2>
77       <title>Monitoring Thresholds</title>
79       <para>
80         Event scripts can monitor resources or services.  When a
81         problem is detected, it may be better to warn about a problem
82         rather than to immediately fail monitoring and mark a node as
83         unhealthy.  CTDB provides support for event scripts to do
84         threshold-based monitoring.
85       </para>
87       <para>
88         A threshold setting looks like
89         <parameter>WARNING_THRESHOLD<optional>:ERROR_THRESHOLD</optional></parameter>.
90         If the number of problems is ≥ WARNING_THRESHOLD then the
91         script will log a warning and continue.  If the number
92         problems is ≥ ERROR_THRESHOLD then the script will log an
93         error and exit with failure, causing monitoring to fail.  Note
94         that ERROR_THRESHOLD is optional, and follows the optional
95         colon (:) separator.
96       </para>
97     </refsect2>
99   </refsect1>
101   <refsect1>
102     <title>NETWORK CONFIGURATION</title>
104     <refsect2>
105       <title>10.interface</title>
107       <para>
108         This event script handles monitoring of interfaces using by
109         public IP addresses.
110       </para>
112       <variablelist>
114         <varlistentry>
115           <term>
116             CTDB_PARTIALLY_ONLINE_INTERFACES=yes|no
117           </term>
118           <listitem>
119             <para>
120               Whether one or more offline interfaces should cause a
121               monitor event to fail if there are other interfaces that
122               are up.  If this is "yes" and a node has some interfaces
123               that are down then <command>ctdb status</command> will
124               display the node as "PARTIALLYONLINE".
125             </para>
127             <para>
128               Note that CTDB_PARTIALLY_ONLINE_INTERFACES=yes is not
129               generally compatible with NAT gateway or LVS.  NAT
130               gateway relies on the interface configured by
131               CTDB_NATGW_PUBLIC_IFACE to be up and LVS replies on
132               CTDB_LVS_PUBLIC_IFACE to be up.  CTDB does not check if
133               these options are set in an incompatible way so care is
134               needed to understand the interaction.
135             </para>
137             <para>
138               Default is "no".
139             </para>
140           </listitem>
141         </varlistentry>
143       </variablelist>
144     </refsect2>
146     <refsect2>
147       <title>11.natgw</title>
149       <para>
150         Provides CTDB's NAT gateway functionality.
151       </para>
153       <para>
154         NAT gateway is used to configure fallback routing for nodes
155         when they do not host any public IP addresses.  For example,
156         it allows unhealthy nodes to reliably communicate with
157         external infrastructure.  One node in a NAT gateway group will
158         be designated as the NAT gateway leader node and other (follower)
159         nodes will be configured with fallback routes via the NAT
160         gateway leader node.  For more information, see the
161         <citetitle>NAT GATEWAY</citetitle> section in
162         <citerefentry><refentrytitle>ctdb</refentrytitle>
163         <manvolnum>7</manvolnum></citerefentry>.
164       </para>
166       <variablelist>
168         <varlistentry>
169           <term>CTDB_NATGW_DEFAULT_GATEWAY=<parameter>IPADDR</parameter></term>
170           <listitem>
171             <para>
172               IPADDR is an alternate network gateway to use on the NAT
173               gateway leader node.  If set, a fallback default route
174               is added via this network gateway.
175             </para>
176             <para>
177               No default.  Setting this variable is optional - if not
178               set that no route is created on the NAT gateway leader
179               node.
180             </para>
181           </listitem>
182         </varlistentry>
184         <varlistentry>
185           <term>CTDB_NATGW_NODES=<parameter>FILENAME</parameter></term>
186           <listitem>
187             <para>
188               FILENAME contains the list of nodes that belong to the
189               same NAT gateway group.
190             </para>
191             <para>
192               File format:
193               <screen>
194 <parameter>IPADDR</parameter> <optional>follower-only</optional>
195               </screen>
196             </para>
197             <para>
198               IPADDR is the private IP address of each node in the NAT
199               gateway group.
200             </para>
201             <para>
202               If "follower-only" is specified then the corresponding node
203               can not be the NAT gateway leader node.  In this case
204               <varname>CTDB_NATGW_PUBLIC_IFACE</varname> and
205               <varname>CTDB_NATGW_PUBLIC_IP</varname> are optional and
206               unused.
207             </para>
208             <para>
209               No default, usually
210               <filename>/usr/local/etc/ctdb/natgw_nodes</filename> when enabled.
211             </para>
212           </listitem>
213         </varlistentry>
215         <varlistentry>
216           <term>CTDB_NATGW_PRIVATE_NETWORK=<parameter>IPADDR/MASK</parameter></term>
217           <listitem>
218             <para>
219               IPADDR/MASK is the private sub-network that is
220               internally routed via the NAT gateway leader node.  This
221               is usually the private network that is used for node
222               addresses.
223             </para>
224             <para>
225               No default.
226             </para>
227           </listitem>
228         </varlistentry>
230         <varlistentry>
231           <term>CTDB_NATGW_PUBLIC_IFACE=<parameter>IFACE</parameter></term>
232           <listitem>
233             <para>
234               IFACE is the network interface on which the
235               CTDB_NATGW_PUBLIC_IP will be configured.
236             </para>
237             <para>
238               No default.
239             </para>
240           </listitem>
241         </varlistentry>
243         <varlistentry>
244           <term>CTDB_NATGW_PUBLIC_IP=<parameter>IPADDR/MASK</parameter></term>
245           <listitem>
246             <para>
247               IPADDR/MASK indicates the IP address that is used for
248               outgoing traffic (originating from
249               CTDB_NATGW_PRIVATE_NETWORK) on the NAT gateway leader
250               node.  This <emphasis>must not</emphasis> be a
251               configured public IP address.
252             </para>
253             <para>
254               No default.
255             </para>
256           </listitem>
257         </varlistentry>
259         <varlistentry>
260           <term>CTDB_NATGW_STATIC_ROUTES=<parameter>IPADDR/MASK[@GATEWAY]</parameter> ...</term>
261           <listitem>
262             <para>
263               Each IPADDR/MASK identifies a network or host to which
264               NATGW should create a fallback route, instead of
265               creating a single default route.  This can be used when
266               there is already a default route, via an interface that
267               can not reach required infrastructure, that overrides
268               the NAT gateway default route.
269             </para>
270             <para>
271               If GATEWAY is specified then the corresponding route on
272               the NATGW leader node will be via GATEWAY.  Such routes
273               are created even if
274               <varname>CTDB_NATGW_DEFAULT_GATEWAY</varname> is not
275               specified.  If GATEWAY is not specified for some
276               networks then routes are only created on the NATGW
277               leader node for those networks if
278               <varname>CTDB_NATGW_DEFAULT_GATEWAY</varname> is
279               specified.
280             </para>
281             <para>
282               This should be used with care to avoid causing traffic
283               to unnecessarily double-hop through the NAT gateway
284               leader, even when a node is hosting public IP addresses.
285               Each specified network or host should probably have a
286               corresponding automatically created link route or static
287               route to avoid this.
288             </para>
289             <para>
290               No default.
291             </para>
292           </listitem>
293         </varlistentry>
295       </variablelist>
297       <refsect3>
298         <title>Example</title>
299         <screen>
300 CTDB_NATGW_NODES=/usr/local/etc/ctdb/natgw_nodes
301 CTDB_NATGW_PRIVATE_NETWORK=192.168.1.0/24
302 CTDB_NATGW_DEFAULT_GATEWAY=10.0.0.1
303 CTDB_NATGW_PUBLIC_IP=10.0.0.227/24
304 CTDB_NATGW_PUBLIC_IFACE=eth0
305         </screen>
307         <para>
308           A variation that ensures that infrastructure (ADS, DNS, ...)
309           directly attached to the public network (10.0.0.0/24) is
310           always reachable would look like this:
311         </para>
312         <screen>
313 CTDB_NATGW_NODES=/usr/local/etc/ctdb/natgw_nodes
314 CTDB_NATGW_PRIVATE_NETWORK=192.168.1.0/24
315 CTDB_NATGW_PUBLIC_IP=10.0.0.227/24
316 CTDB_NATGW_PUBLIC_IFACE=eth0
317 CTDB_NATGW_STATIC_ROUTES=10.0.0.0/24
318         </screen>
319         <para>
320           Note that <varname>CTDB_NATGW_DEFAULT_GATEWAY</varname> is
321           not specified.
322         </para>
323       </refsect3>
325     </refsect2>
327     <refsect2>
328       <title>13.per_ip_routing</title>
330       <para>
331         Provides CTDB's policy routing functionality.
332       </para>
334       <para>
335         A node running CTDB may be a component of a complex network
336         topology.  In particular, public addresses may be spread
337         across several different networks (or VLANs) and it may not be
338         possible to route packets from these public addresses via the
339         system's default route.  Therefore, CTDB has support for
340         policy routing via the <filename>13.per_ip_routing</filename>
341         eventscript.  This allows routing to be specified for packets
342         sourced from each public address.  The routes are added and
343         removed as CTDB moves public addresses between nodes.
344       </para>
346       <para>
347         For more information, see the <citetitle>POLICY
348         ROUTING</citetitle> section in
349         <citerefentry><refentrytitle>ctdb</refentrytitle>
350         <manvolnum>7</manvolnum></citerefentry>.
351       </para>
353       <variablelist>
354         <varlistentry>
355           <term>CTDB_PER_IP_ROUTING_CONF=<parameter>FILENAME</parameter></term>
356           <listitem>
357             <para>
358               FILENAME contains elements for constructing the desired
359               routes for each source address.
360             </para>
362             <para>
363               The special FILENAME value
364               <constant>__auto_link_local__</constant> indicates that no
365               configuration file is provided and that CTDB should
366               generate reasonable link-local routes for each public IP
367               address.
368             </para>
370             <para>
371               File format:
372               <screen>
373                 <parameter>IPADDR</parameter> <parameter>DEST-IPADDR/MASK</parameter> <optional><parameter>GATEWAY-IPADDR</parameter></optional>
374               </screen>
375             </para>
377             <para>
378               No default, usually
379               <filename>/usr/local/etc/ctdb/policy_routing</filename>
380               when enabled.
381             </para>
382           </listitem>
383         </varlistentry>
385         <varlistentry>
386           <term>
387             CTDB_PER_IP_ROUTING_RULE_PREF=<parameter>NUM</parameter>
388           </term>
389         <listitem>
390           <para>
391             NUM sets the priority (or preference) for the routing
392             rules that are added by CTDB.
393           </para>
395           <para>
396             This should be (strictly) greater than 0 and (strictly)
397             less than 32766.  A priority of 100 is recommended, unless
398             this conflicts with a priority already in use on the
399             system.  See
400             <citerefentry><refentrytitle>ip</refentrytitle>
401             <manvolnum>8</manvolnum></citerefentry>, for more details.
402           </para>
403         </listitem>
404         </varlistentry>
406         <varlistentry>
407           <term>
408             CTDB_PER_IP_ROUTING_TABLE_ID_LOW=<parameter>LOW-NUM</parameter>,
409             CTDB_PER_IP_ROUTING_TABLE_ID_HIGH=<parameter>HIGH-NUM</parameter>
410           </term>
411           <listitem>
412             <para>
413               CTDB determines a unique routing table number to use for
414               the routing related to each public address.  LOW-NUM and
415               HIGH-NUM indicate the minimum and maximum routing table
416               numbers that are used.
417             </para>
419             <para>
420               <citerefentry><refentrytitle>ip</refentrytitle>
421               <manvolnum>8</manvolnum></citerefentry> uses some
422               reserved routing table numbers below 255.  Therefore,
423               CTDB_PER_IP_ROUTING_TABLE_ID_LOW should be (strictly)
424               greater than 255.
425             </para>
427             <para>
428               CTDB uses the standard file
429               <filename>/etc/iproute2/rt_tables</filename> to maintain
430               a mapping between the routing table numbers and labels.
431               The label for a public address
432               <replaceable>ADDR</replaceable> will look like
433               ctdb.<replaceable>addr</replaceable>.  This means that
434               the associated rules and routes are easy to read (and
435               manipulate).
436             </para>
438             <para>
439               No default, usually 1000 and 9000.
440             </para>
441           </listitem>
442         </varlistentry>
443       </variablelist>
445       <refsect3>
446         <title>Example</title>
447         <screen>
448 CTDB_PER_IP_ROUTING_CONF=/usr/local/etc/ctdb/policy_routing
449 CTDB_PER_IP_ROUTING_RULE_PREF=100
450 CTDB_PER_IP_ROUTING_TABLE_ID_LOW=1000
451 CTDB_PER_IP_ROUTING_TABLE_ID_HIGH=9000
452         </screen>
453       </refsect3>
455     </refsect2>
457     <refsect2>
458       <title>91.lvs</title>
460       <para>
461         Provides CTDB's LVS functionality.
462       </para>
464       <para>
465         For a general description see the <citetitle>LVS</citetitle>
466         section in <citerefentry><refentrytitle>ctdb</refentrytitle>
467         <manvolnum>7</manvolnum></citerefentry>.
468       </para>
470       <variablelist>
472         <varlistentry>
473           <term>
474             CTDB_LVS_NODES=<parameter>FILENAME</parameter>
475           </term>
476           <listitem>
477             <para>
478               FILENAME contains the list of nodes that belong to the
479               same LVS group.
480             </para>
481             <para>
482               File format:
483               <screen>
484 <parameter>IPADDR</parameter> <optional>follower-only</optional>
485               </screen>
486             </para>
487             <para>
488               IPADDR is the private IP address of each node in the LVS
489               group.
490             </para>
491             <para>
492               If "follower-only" is specified then the corresponding node
493               can not be the LVS leader node.  In this case
494               <varname>CTDB_LVS_PUBLIC_IFACE</varname> and
495               <varname>CTDB_LVS_PUBLIC_IP</varname> are optional and
496               unused.
497             </para>
498             <para>
499               No default, usually
500               <filename>/usr/local/etc/ctdb/lvs_nodes</filename> when enabled.
501             </para>
502           </listitem>
503         </varlistentry>
505         <varlistentry>
506           <term>
507             CTDB_LVS_PUBLIC_IFACE=<parameter>INTERFACE</parameter>
508           </term>
509           <listitem>
510             <para>
511               INTERFACE is the network interface that clients will use
512               to connection to <varname>CTDB_LVS_PUBLIC_IP</varname>.
513               This is optional for follower-only nodes.
514               No default.
515             </para>
516           </listitem>
517         </varlistentry>
519         <varlistentry>
520           <term>
521             CTDB_LVS_PUBLIC_IP=<parameter>IPADDR</parameter>
522           </term>
523           <listitem>
524             <para>
525               CTDB_LVS_PUBLIC_IP is the LVS public address.  No
526               default.
527           </para>
528           </listitem>
529         </varlistentry>
531       </variablelist>
532     </refsect2>
534   </refsect1>
536   <refsect1>
537     <title>SERVICE CONFIGURATION</title>
539     <para>
540       CTDB can be configured to manage and/or monitor various NAS (and
541       other) services via its eventscripts.
542     </para>
544     <para>
545       In the simplest case CTDB will manage a service.  This means the
546       service will be started and stopped along with CTDB, CTDB will
547       monitor the service and CTDB will do any required
548       reconfiguration of the service when public IP addresses are
549       failed over.
550     </para>
552     <refsect2>
553       <title>20.multipathd</title>
555       <para>
556         Provides CTDB's Linux multipathd service management.
557       </para>
559       <para>
560         It can monitor multipath devices to ensure that active paths
561         are available.
562       </para>
564       <variablelist>
565         <varlistentry>
566           <term>
567             CTDB_MONITOR_MPDEVICES=<parameter>MP-DEVICE-LIST</parameter>
568           </term>
569           <listitem>
570             <para>
571               MP-DEVICE-LIST is a list of multipath devices for CTDB to monitor?
572             </para>
573             <para>
574               No default.
575             </para>
576           </listitem>
577         </varlistentry>
578       </variablelist>
579     </refsect2>
581     <refsect2>
582       <title>31.clamd</title>
584       <para>
585         This event script provide CTDB's ClamAV anti-virus service
586         management.
587       </para>
589       <para>
590         This eventscript is not enabled by default.  Use <command>ctdb
591         enablescript</command> to enable it.
592       </para>
594       <variablelist>
596         <varlistentry>
597           <term>
598             CTDB_CLAMD_SOCKET=<parameter>FILENAME</parameter>
599           </term>
600           <listitem>
601             <para>
602               FILENAME is the socket to monitor ClamAV.
603             </para>
604             <para>
605               No default.
606             </para>
607           </listitem>
608         </varlistentry>
610       </variablelist>
612     </refsect2>
614     <refsect2>
615       <title>40.vsftpd</title>
617       <para>
618         Provides CTDB's vsftpd service management.
619       </para>
621       <variablelist>
622         <varlistentry>
623           <term>
624             CTDB_VSFTPD_MONITOR_THRESHOLDS=<parameter>THRESHOLDS</parameter>
625           </term>
626           <listitem>
627             <para>
628               THRESHOLDS indicates how many consecutive monitoring
629               attempts need to report that vsftpd is not listening on
630               TCP port 21 before a warning is logged and before
631               monitoring fails.  See the <citetitle>Monitoring
632               Thresholds</citetitle> for a description of how
633               monitoring thresholds work.
634             </para>
635             <para>
636               Default is 1:2.
637             </para>
638           </listitem>
639         </varlistentry>
641       </variablelist>
643     </refsect2>
645     <refsect2>
646       <title>48.netbios</title>
648       <para>
649         Provides CTDB's NetBIOS service management.
650       </para>
652       <variablelist>
653         <varlistentry>
654           <term>
655             CTDB_SERVICE_NMB=<parameter>SERVICE</parameter>
656           </term>
657           <listitem>
658             <para>
659               Distribution specific SERVICE for managing nmbd.
660             </para>
661             <para>
662               Default is distribution-dependant.
663             </para>
664           </listitem>
665         </varlistentry>
667       </variablelist>
669     </refsect2>
671     <refsect2>
672       <title>49.winbind</title>
674       <para>
675         Provides CTDB's Samba winbind service management.
676       </para>
678       <variablelist>
680         <varlistentry>
681           <term>
682             CTDB_SERVICE_WINBIND=<parameter>SERVICE</parameter>
683           </term>
684           <listitem>
685             <para>
686               Distribution specific SERVICE for managing winbindd.
687             </para>
688             <para>
689               Default is "winbind".
690             </para>
691           </listitem>
692         </varlistentry>
694       </variablelist>
696     </refsect2>
698     <refsect2>
699       <title>50.samba</title>
701       <para>
702         Provides the core of CTDB's Samba file service management.
703       </para>
705       <variablelist>
707         <varlistentry>
708           <term>
709             CTDB_SAMBA_CHECK_PORTS=<parameter>PORT-LIST</parameter>
710           </term>
711           <listitem>
712             <para>
713               When monitoring Samba, check TCP ports in
714               space-separated PORT-LIST.
715             </para>
716             <para>
717               Default is to monitor ports that Samba is configured to listen on.
718             </para>
719           </listitem>
720         </varlistentry>
722         <varlistentry>
723           <term>
724             CTDB_SAMBA_SKIP_SHARE_CHECK=yes|no
725           </term>
726           <listitem>
727             <para>
728               As part of monitoring, should CTDB skip the check for
729               the existence of each directory configured as share in
730               Samba.  This may be desirable if there is a large number
731               of shares.
732             </para>
733             <para>
734               Default is no.
735             </para>
736           </listitem>
737         </varlistentry>
739         <varlistentry>
740           <term>
741             CTDB_SERVICE_SMB=<parameter>SERVICE</parameter>
742           </term>
743           <listitem>
744             <para>
745               Distribution specific SERVICE for managing smbd.
746             </para>
747             <para>
748               Default is distribution-dependant.
749             </para>
750           </listitem>
751         </varlistentry>
753       </variablelist>
755     </refsect2>
757     <refsect2>
758       <title>60.nfs</title>
760       <para>
761         This event script (along with 06.nfs) provides CTDB's NFS
762         service management.
763       </para>
765       <para>
766         This includes parameters for the kernel NFS server.
767         Alternative NFS subsystems (such as <ulink
768         url="https://github.com/nfs-ganesha/nfs-ganesha/wiki">NFS-Ganesha</ulink>)
769         can be integrated using <varname>CTDB_NFS_CALLOUT</varname>.
770       </para>
772       <variablelist>
774         <varlistentry>
775           <term>
776             CTDB_NFS_CALLOUT=<parameter>COMMAND</parameter>
777           </term>
778           <listitem>
779             <para>
780               COMMAND specifies the path to a callout to handle
781               interactions with the configured NFS system, including
782               startup, shutdown, monitoring.
783             </para>
784             <para>
785               Default is the included
786               <command>nfs-linux-kernel-callout</command>.
787             </para>
788           </listitem>
789         </varlistentry>
791         <varlistentry>
792           <term>
793             CTDB_NFS_CHECKS_DIR=<parameter>DIRECTORY</parameter>
794           </term>
795           <listitem>
796             <para>
797               Specifies the path to a DIRECTORY containing files that
798               describe how to monitor the responsiveness of NFS RPC
799               services.  See the README file for this directory for an
800               explanation of the contents of these "check" files.
801             </para>
802             <para>
803               CTDB_NFS_CHECKS_DIR can be used to point to different
804               sets of checks for different NFS servers.
805             </para>
806             <para>
807               One way of using this is to have it point to, say,
808               <filename>/usr/local/etc/ctdb/nfs-checks-enabled.d</filename>
809               and populate it with symbolic links to the desired check
810               files.  This avoids duplication and is upgrade-safe.
811             </para>
812             <para>
813               Default is
814               <filename>/usr/local/etc/ctdb/nfs-checks.d</filename>,
815               which contains NFS RPC checks suitable for Linux kernel
816               NFS.
817             </para>
818           </listitem>
819         </varlistentry>
821         <varlistentry>
822           <term>
823             CTDB_NFS_SKIP_SHARE_CHECK=yes|no
824           </term>
825           <listitem>
826             <para>
827               As part of monitoring, should CTDB skip the check for
828               the existence of each directory exported via NFS.  This
829               may be desirable if there is a large number of exports.
830             </para>
831             <para>
832               Default is no.
833             </para>
834           </listitem>
835         </varlistentry>
837         <varlistentry>
838           <term>
839             CTDB_RPCINFO_LOCALHOST=<parameter>IPADDR</parameter>|<parameter>HOSTNAME</parameter>
840           </term>
841           <listitem>
842             <para>
843               IPADDR or HOSTNAME indicates the address that
844               <command>rpcinfo</command> should connect to when doing
845               <command>rpcinfo</command> check on IPv4 RPC service during
846               monitoring.  Optimally this would be "localhost".
847               However, this can add some performance overheads.
848             </para>
849             <para>
850               Default is "127.0.0.1".
851             </para>
852           </listitem>
853         </varlistentry>
855         <varlistentry>
856           <term>
857             CTDB_RPCINFO_LOCALHOST6=<parameter>IPADDR</parameter>|<parameter>HOSTNAME</parameter>
858           </term>
859           <listitem>
860             <para>
861               IPADDR or HOSTNAME indicates the address that
862               <command>rpcinfo</command> should connect to when doing
863               <command>rpcinfo</command> check on IPv6 RPC service
864               during monitoring.  Optimally this would be "localhost6"
865               (or similar).  However, this can add some performance
866               overheads.
867             </para>
868             <para>
869               Default is "::1".
870             </para>
871           </listitem>
872         </varlistentry>
874         <varlistentry>
875           <term>
876             CTDB_NFS_STATE_FS_TYPE=<parameter>TYPE</parameter>
877           </term>
878           <listitem>
879             <para>
880               The type of filesystem used for a clustered NFS' shared
881               state. No default.
882             </para>
883           </listitem>
884         </varlistentry>
886         <varlistentry>
887           <term>
888             CTDB_NFS_STATE_MNT=<parameter>DIR</parameter>
889           </term>
890           <listitem>
891             <para>
892               The directory where a clustered NFS' shared state will be
893               located. No default.
894             </para>
895           </listitem>
896         </varlistentry>
898       </variablelist>
900     </refsect2>
902     <refsect2>
903       <title>70.iscsi</title>
905       <para>
906         Provides CTDB's Linux iSCSI tgtd service management.
907       </para>
909       <variablelist>
911         <varlistentry>
912           <term>
913             CTDB_START_ISCSI_SCRIPTS=<parameter>DIRECTORY</parameter>
914           </term>
915           <listitem>
916             <para>
917               DIRECTORY on shared storage containing scripts to start
918               tgtd for each public IP address.
919             </para>
920             <para>
921               No default.
922             </para>
923           </listitem>
924         </varlistentry>
925       </variablelist>
926     </refsect2>
928   </refsect1>
930   <refsect1>
931     <title>
932       DATABASE SETUP
933       </title>
935       <para>
936         CTDB checks the consistency of databases during startup.
937       </para>
939       <refsect2>
940         <title>00.ctdb</title>
942         <variablelist>
944           <varlistentry>
945             <term>CTDB_MAX_CORRUPT_DB_BACKUPS=<parameter>NUM</parameter></term>
946             <listitem>
947               <para>
948                 NUM is the maximum number of volatile TDB database
949                 backups to be kept (for each database) when a corrupt
950                 database is found during startup.  Volatile TDBs are
951                 zeroed during startup so backups are needed to debug
952                 any corruption that occurs before a restart.
953               </para>
954               <para>
955                 Default is 10.
956               </para>
957             </listitem>
958           </varlistentry>
960         </variablelist>
961       </refsect2>
963   </refsect1>
965   <refsect1>
966     <title>SYSTEM RESOURCE MONITORING</title>
968     <refsect2>
969       <title>
970         05.system
971       </title>
973       <para>
974         Provides CTDB's filesystem and memory usage monitoring.
975       </para>
977       <para>
978         CTDB can experience seemingly random (performance and other)
979         issues if system resources become too constrained.  Options in
980         this section can be enabled to allow certain system resources
981         to be checked.  They allows warnings to be logged and nodes to
982         be marked unhealthy when system resource usage reaches the
983         configured thresholds.
984       </para>
986       <para>
987         Some checks are enabled by default.  It is recommended that
988         these checks remain enabled or are augmented by extra checks.
989         There is no supported way of completely disabling the checks.
990       </para>
992       <variablelist>
994         <varlistentry>
995           <term>
996             CTDB_MONITOR_FILESYSTEM_USAGE=<parameter>FS-LIMIT-LIST</parameter>
997           </term>
998           <listitem>
999             <para>
1000               FS-LIMIT-LIST is a space-separated list of
1001               <parameter>FILESYSTEM</parameter>:<parameter>WARN_LIMIT</parameter><optional>:<parameter>UNHEALTHY_LIMIT</parameter></optional>
1002               triples indicating that warnings should be logged if the
1003               space used on FILESYSTEM reaches WARN_LIMIT%.  If usage
1004               reaches UNHEALTHY_LIMIT then the node should be flagged
1005               unhealthy.  Either WARN_LIMIT or UNHEALTHY_LIMIT may be
1006               left blank, meaning that check will be omitted.
1007             </para>
1009             <para>
1010               Default is to warn for each filesystem containing a
1011               database directory
1012               (<literal>volatile&nbsp;database&nbsp;directory</literal>,
1013               <literal>persistent&nbsp;database&nbsp;directory</literal>,
1014               <literal>state&nbsp;database&nbsp;directory</literal>)
1015               with a threshold of 90%.
1016             </para>
1017           </listitem>
1018         </varlistentry>
1020         <varlistentry>
1021           <term>
1022             CTDB_MONITOR_MEMORY_USAGE=<parameter>MEM-LIMITS</parameter>
1023           </term>
1024           <listitem>
1025             <para>
1026               MEM-LIMITS takes the form
1027               <parameter>WARN_LIMIT</parameter><optional>:<parameter>UNHEALTHY_LIMIT</parameter></optional>
1028               indicating that warnings should be logged if memory
1029               usage reaches WARN_LIMIT%.  If usage reaches
1030               UNHEALTHY_LIMIT then the node should be flagged
1031               unhealthy.  Either WARN_LIMIT or UNHEALTHY_LIMIT may be
1032               left blank, meaning that check will be omitted.
1033             </para>
1034             <para>
1035               Default is 80, so warnings will be logged when memory
1036               usage reaches 80%.
1037             </para>
1038           </listitem>
1039         </varlistentry>
1041       </variablelist>
1042     </refsect2>
1044   </refsect1>
1047   <refsect1>
1048     <title>EVENT SCRIPT DEBUGGING</title>
1050     <refsect2>
1051       <title>
1052         debug-hung-script.sh
1053       </title>
1055       <variablelist>
1057         <varlistentry>
1058           <term>CTDB_DEBUG_HUNG_SCRIPT_STACKPAT=<parameter>REGEXP</parameter></term>
1059           <listitem>
1060             <para>
1061               REGEXP specifies interesting processes for which stack
1062               traces should be logged when debugging hung eventscripts
1063               and those processes are matched in pstree output.
1064               REGEXP is an extended regexp so choices are separated by
1065               pipes ('|').  However, REGEXP should not contain
1066               parentheses.  See also the <citerefentry><refentrytitle>ctdb.conf</refentrytitle>
1067               <manvolnum>5</manvolnum></citerefentry>
1068               [event] "debug&nbsp;script" option.
1069             </para>
1070             <para>
1071               Default is "exportfs|rpcinfo".
1072             </para>
1073           </listitem>
1074         </varlistentry>
1076       </variablelist>
1077     </refsect2>
1079   </refsect1>
1081   <refsect1>
1082     <title>FILES</title>
1084     <simplelist>
1085       <member><filename>/usr/local/etc/ctdb/script.options</filename></member>
1086     </simplelist>
1087   </refsect1>
1089   <refsect1>
1090     <title>SEE ALSO</title>
1091     <para>
1092       <citerefentry><refentrytitle>ctdbd</refentrytitle>
1093       <manvolnum>1</manvolnum></citerefentry>,
1095       <citerefentry><refentrytitle>ctdb</refentrytitle>
1096       <manvolnum>7</manvolnum></citerefentry>,
1098       <ulink url="http://ctdb.samba.org/"/>
1099     </para>
1100   </refsect1>
1102   <refentryinfo>
1103     <author>
1104       <contrib>
1105         This documentation was written by
1106         Amitay Isaacs,
1107         Martin Schwenke
1108       </contrib>
1109     </author>
1111     <copyright>
1112       <year>2007</year>
1113       <holder>Andrew Tridgell</holder>
1114       <holder>Ronnie Sahlberg</holder>
1115     </copyright>
1116     <legalnotice>
1117       <para>
1118         This program is free software; you can redistribute it and/or
1119         modify it under the terms of the GNU General Public License as
1120         published by the Free Software Foundation; either version 3 of
1121         the License, or (at your option) any later version.
1122       </para>
1123       <para>
1124         This program is distributed in the hope that it will be
1125         useful, but WITHOUT ANY WARRANTY; without even the implied
1126         warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
1127         PURPOSE.  See the GNU General Public License for more details.
1128       </para>
1129       <para>
1130         You should have received a copy of the GNU General Public
1131         License along with this program; if not, see
1132         <ulink url="http://www.gnu.org/licenses"/>.
1133       </para>
1134     </legalnotice>
1135   </refentryinfo>
1137 </refentry>