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