summaryrefslogtreecommitdiffstats
path: root/ctdb/doc/ctdb.conf.5.xml
blob: b9bf3a6d08b928c16e0e94996d23516fa98136ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry
	PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
	"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">

<refentry id="ctdb.conf.5">

  <refmeta>
    <refentrytitle>ctdb.conf</refentrytitle>
    <manvolnum>5</manvolnum>
    <refmiscinfo class="source">ctdb</refmiscinfo>
    <refmiscinfo class="manual">CTDB - clustered TDB database</refmiscinfo>
  </refmeta>

  <refnamediv>
    <refname>ctdb.conf</refname>
    <refpurpose>CTDB configuration file</refpurpose>
  </refnamediv>

  <refsect1>
    <title>DESCRIPTION</title>

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

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

    <para>
      For event script options please see
      <citerefentry><refentrytitle>ctdb-script.options</refentrytitle>
      <manvolnum>5</manvolnum></citerefentry>.
    </para>

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

  </refsect1>

  <refsect1>
    <title>
      LOGGING CONFIGURATION
    </title>

    <para>
      Options in this section control CTDB's logging.  They are valid
      within the <emphasis>logging</emphasis> section of file,
      indicated by <literal>[logging]</literal>.
    </para>

    <variablelist>

      <varlistentry>
	<term>log level = <parameter>LOGLEVEL</parameter></term>
	<listitem>
	  <para>
	    LOGLEVEL is a string that controls the verbosity of
	    ctdbd's logging.  See the <citetitle>LOG
	    LEVELS</citetitle> section in
	    <citerefentry><refentrytitle>ctdb</refentrytitle>
	    <manvolnum>7</manvolnum></citerefentry> for more details.
	  </para>
	  <para>
	    Default: <literal>NOTICE</literal>
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>location = <parameter>STRING</parameter></term>
	<listitem>
	  <para>
	    STRING specifies where ctdbd will write its log.
	  </para>
	  <para>
	    Valid values are:
	  </para>
	  <variablelist>
	    <varlistentry>
	      <term>file:<parameter>FILENAME</parameter></term>
	      <listitem>
		<para>
		  FILENAME where ctdbd will write its log. This is usually
		  <filename>/usr/local/var/log/log.ctdb</filename>.
		</para>
	      </listitem>
	    </varlistentry>
	    <varlistentry>
	      <term>syslog<optional>:<parameter>METHOD</parameter></optional></term>
	      <listitem>
		<para>
		  CTDB will log to syslog.  By default this will use
		  the syslog(3) API.
		</para>
		<para>
		  If METHOD is specified then it specifies an
		  extension that causes logging to be done in a
		  non-blocking fashion.  This can be useful under
		  heavy loads that might cause the syslog daemon to
		  dequeue messages too slowly, which would otherwise
		  cause CTDB to block when logging.  METHOD must be
		  one of:
		</para>
		<variablelist>
		  <varlistentry>
		    <term>nonblocking</term>
		    <listitem>
		      <para>
			CTDB will log to syslog via
			<filename>/dev/log</filename> in non-blocking
			mode.
		      </para>
		    </listitem>
		  </varlistentry>
		  <varlistentry>
		    <term>udp</term>
		    <listitem>
		      <para>
			CTDB will log to syslog via UDP to
			localhost:514.  The syslog daemon must be
			configured to listen on (at least)
			localhost:514.  Most implementations will log
			the messages against hostname "localhost" -
			this is a limit of the implementation for
			compatibility with more syslog daemon
			implementations.
		      </para>
		    </listitem>
		  </varlistentry>
		  <varlistentry>
		    <term>udp-rfc5424</term>
		    <listitem>
		      <para>
			As with "udp" but messages are sent in RFC5424
			format.  This method will log the correct
			hostname but is not as widely implemented in
			syslog daemons.
		      </para>
		    </listitem>
		  </varlistentry>
		</variablelist>
	      </listitem>
	    </varlistentry>
	  </variablelist>
	  <para>
	    Default:
	    file:<filename>/usr/local/var/log/log.ctdb</filename>
	  </para>
	</listitem>
      </varlistentry>

    </variablelist>
  </refsect1>

  <refsect1>
    <title>
      CLUSTER CONFIGURATION
    </title>

    <para>
      Options in this section affect the CTDB cluster setup. They
      are valid within the <emphasis>cluster</emphasis> section of
      file, indicated by <literal>[cluster]</literal>.
    </para>

    <variablelist>

      <varlistentry>
	<term>cluster lock = <parameter>LOCK</parameter></term>
	<listitem>
	  <para>
	    LOCK specifies the cluster-wide mutex used to detect and
	    prevent a partitioned cluster (or "split brain").
	  </para>
	  <para>
	    For information about the cluster lock please see the
	    <citetitle>CLUSTER LOCK</citetitle> section in
	    <citerefentry><refentrytitle>ctdb</refentrytitle>
	    <manvolnum>7</manvolnum></citerefentry>.
	  </para>
	  <para>
	    Default: NONE.  However, uses of a cluster lock is
	    <emphasis>strongly recommended</emphasis>.
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>leader capability = true|false</term>
	<listitem>
	  <para>
	    Indicates whether a node can become the leader
	    for the cluster. If this is set to
	    <literal>false</literal> then the node will not be able to
	    become the leader for the cluster. This feature
	    is primarily used for making a cluster span across a WAN
	    link and use CTDB as a WAN-accelerator.
	  </para>
	  <para>
	    Please see the <citetitle>REMOTE CLUSTER NODES</citetitle>
	    section in
	    <citerefentry><refentrytitle>ctdb</refentrytitle>
	    <manvolnum>7</manvolnum></citerefentry> for more
	    information.
	  </para>
	  <para>
	    Default: <literal>true</literal>
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>leader timeout = <parameter>SECONDS</parameter></term>
	<listitem>
	  <para>
	    Number of SECONDS without a leader broadcast before a node
	    triggers an election.
	  </para>
	  <para>
	    Default: <literal>5</literal>
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>node address = <parameter>IPADDR</parameter></term>
	<listitem>
	  <para>
	    IPADDR is the private IP address that ctdbd will bind to.
	  </para>
	  <para>
	    This option is only required when automatic address
	    detection can not be used.  This can be the case when
	    running multiple ctdbd daemons/nodes on the same physical
	    host (usually for testing), using InfiniBand for the
	    private network or on Linux when sysctl
	    net.ipv4.ip_nonlocal_bind=1.
	  </para>
	  <para>
	    Default: CTDB selects the first address from the nodes
	    list that it can bind to.  See also the <citetitle>PRIVATE
	    ADDRESS</citetitle> section in
	    <citerefentry><refentrytitle>ctdb</refentrytitle>
	    <manvolnum>7</manvolnum></citerefentry>.
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>transport = tcp|ib</term>
	<listitem>
	  <para>
	    This option specifies which transport to use for ctdbd
	    internode communications on the private network.
	  </para>
	  <para>
	    <literal>ib</literal> means InfiniBand.  The InfiniBand
	    support is not regularly tested.  If it is known to be
	    broken then it may be disabled so that a value of
	    <literal>ib</literal> is considered invalid.
	  </para>
	  <para>
	    Default: <literal>tcp</literal>
	  </para>
	</listitem>
      </varlistentry>

    </variablelist>
  </refsect1>

  <refsect1>
    <title>
      DATABASE CONFIGURATION
    </title>

    <para>
      Options in this section affect the CTDB database setup. They
      are valid within the <emphasis>database</emphasis> section of
      file, indicated by <literal>[database]</literal>.
    </para>

    <variablelist>

      <varlistentry>
	<term>volatile database directory = <parameter>DIRECTORY</parameter></term>
	<listitem>
	  <para>
	    DIRECTORY on local storage where CTDB keeps a local copy
	    of volatile TDB databases.  This directory is local for
	    each node and should not be stored on the shared cluster
	    filesystem.
	  </para>
	  <para>
	    Mounting a tmpfs (or similar memory filesystem) on this
	    directory can provide a significant performance
	    improvement when there is I/O contention on the local
	    disk.
	  </para>
	  <para>
	    Default: <filename>/usr/local/var/lib/ctdb/volatile</filename>
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>persistent database directory=<parameter>DIRECTORY</parameter></term>
	<listitem>
	  <para>
	    DIRECTORY on local storage where CTDB keeps a local copy
	    of persistent TDB databases.  This directory is local for
	    each node and should not be stored on the shared cluster
	    filesystem.
	  </para>
	  <para>
	    Default: <filename>/usr/local/var/lib/ctdb/persistent</filename>
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>state database directory = <parameter>DIRECTORY</parameter></term>
	<listitem>
	  <para>
	    DIRECTORY on local storage where CTDB keeps a local copy
	    of internal state TDB databases.  This directory is local
	    for each node and should not be stored on the shared
	    cluster filesystem.
	  </para>
	  <para>
	    Default: <filename>/usr/local/var/lib/ctdb/state</filename>
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>tdb mutexes = true|false</term>
	<listitem>
	  <para>
	    This parameter enables TDB_MUTEX_LOCKING feature on
	    volatile databases if the robust mutexes are
	    supported. This optimizes the record locking using robust
	    mutexes and is much more efficient that using posix locks.
	  </para>
	  <para>
	    If robust mutexes are unreliable on the platform being
	    used then they can be disabled by setting this to
	    <literal>false</literal>.
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>lock debug script = <parameter>FILENAME</parameter></term>
	<listitem>
	  <para>
	    FILENAME is a script used by CTDB's database locking code
	    to attempt to provide debugging information when CTDB is
	    unable to lock an entire database or a record.
	  </para>
	  <para>
	    This script should be a bare filename relative to the CTDB
	    configuration directory
	    (<filename>/usr/local/etc/ctdb/</filename>).  Any
	    directory prefix is ignored and the path is calculated
	    relative to this directory.
	  </para>
	  <para>
	    CTDB provides a lock debugging script and installs it as
	    <filename>/usr/local/etc/ctdb/debug_locks.sh</filename>.
	  </para>
	  <para>
	    Default: NONE
	  </para>
	</listitem>
      </varlistentry>

    </variablelist>
  </refsect1>

  <refsect1>
    <title>
      EVENT HANDLING CONFIGURATION
    </title>

    <para>
      Options in this section affect CTDB event handling. They are
      valid within the <emphasis>event</emphasis> section of file,
      indicated by <literal>[event]</literal>.
    </para>

    <variablelist>

      <varlistentry>
	<term>debug script = <parameter>FILENAME</parameter></term>
	<listitem>
	  <para>
	    FILENAME is a script used by CTDB's event handling code to
	    attempt to provide debugging information when an event
	    times out.
	  </para>
	  <para>
	    This script should be a bare filename relative to the CTDB
	    configuration directory
	    (<filename>/usr/local/etc/ctdb/</filename>).  Any
	    directory prefix is ignored and the path is calculated
	    relative to this directory.
	  </para>
	  <para>
	    CTDB provides a script for debugging timed out event
	    scripts and installs it as
	    <filename>/usr/local/etc/ctdb/debug-hung-script.sh</filename>.
	  </para>
	  <para>
	    Default: NONE
	  </para>
	</listitem>
      </varlistentry>

    </variablelist>
  </refsect1>

  <refsect1>
    <title>
      FAILOVER CONFIGURATION
    </title>

    <para>
      Options in this section affect CTDB failover. They are
      valid within the <emphasis>failover</emphasis> section of file,
      indicated by <literal>[failover]</literal>.
    </para>

    <variablelist>

      <varlistentry>
	<term>disabled = true|false</term>
	<listitem>
	  <para>
	    If set to <literal>true</literal> then public IP failover
	    is disabled.
	  </para>
	  <para>
	    Default: <literal>false</literal>
	  </para>
	</listitem>
      </varlistentry>

    </variablelist>
  </refsect1>

  <refsect1>
    <title>
      LEGACY CONFIGURATION
    </title>

    <para>
      Options in this section affect legacy CTDB setup. They are valid
      within the <emphasis>legacy</emphasis> section of file,
      indicated by <literal>[legacy]</literal>.
    </para>

    <variablelist>

      <varlistentry>
	<term>ctdb start as stopped = true|false</term>
	<listitem>
	  <para>
	    If set to <literal>true</literal> CTDB starts in the
	    STOPPED state.
	  </para>
	  <para>
	    To allow the node to take part in the cluster it must be
	    manually continued with the <command>ctdb
	    continue</command> command.
	  </para>
	  <para>
	    Please see the <citetitle>NODE STATES</citetitle> section
	    in <citerefentry><refentrytitle>ctdb</refentrytitle>
	    <manvolnum>7</manvolnum></citerefentry> for more
	    information about the STOPPED state.
	  </para>
	  <para>
	    Default: <literal>false</literal>
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>start as disabled = true|false</term>
	<listitem>
	  <para>
	    If set to <literal>true</literal> CTDB starts in the
	    DISABLED state.
	  </para>
	  <para>
	    To allow the node to host public IP addresses and
	    services, it must be manually enabled using the
	    <command>ctdb enable</command> command.
	  </para>
	  <para>
	    Please see the <citetitle>NODE STATES</citetitle> section
	    in <citerefentry><refentrytitle>ctdb</refentrytitle>
	    <manvolnum>7</manvolnum></citerefentry> for more
	    information about the DISABLED state.
	  </para>
	  <para>
	    Default: <literal>false</literal>
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>realtime scheduling = true|false</term>
	<listitem>
	  <para>
	    Usually CTDB runs with real-time priority. This helps it
	    to perform effectively on a busy system, such as when
	    there are thousands of Samba clients. If you are running
	    CTDB on a platform that does not support real-time
	    priority, you can set this to <literal>false</literal>.
	  </para>
	  <para>
	    Default: <literal>true</literal>
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>lmaster capability = true|false</term>
	<listitem>
	  <para>
	    Indicates whether a node can become a location master for
	    records in a database. If this is set to
	    <literal>false</literal> then the node will not be part of
	    the vnnmap. This feature is primarily used for making a
	    cluster span across a WAN link and use CTDB as a
	    WAN-accelerator.
	  </para>
	  <para>
	    Please see the <citetitle>REMOTE CLUSTER NODES</citetitle>
	    section in
	    <citerefentry><refentrytitle>ctdb</refentrytitle>
	    <manvolnum>7</manvolnum></citerefentry> for more
	    information.
	  </para>
	  <para>
	    Default: <literal>true</literal>
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>script log level = <parameter>LOGLEVEL</parameter></term>
	<listitem>
	  <para>
	    This option sets the debug level of event script output to
	    LOGLEVEL.
	  </para>
	  <para>
	    See the <citetitle>DEBUG LEVELS</citetitle> section in
	    <citerefentry><refentrytitle>ctdb</refentrytitle>
	    <manvolnum>7</manvolnum></citerefentry> for more
	    information.
	  </para>
	  <para>
	    Default: <literal>ERROR</literal>
	  </para>
	</listitem>
      </varlistentry>

    </variablelist>

  </refsect1>

  <refsect1>
    <title>FILES</title>

    <simplelist>
      <member><filename>/usr/local/etc/ctdb/ctdb.conf</filename></member>
    </simplelist>
  </refsect1>

  <refsect1>
    <title>SEE ALSO</title>
    <para>
      <citerefentry><refentrytitle>ctdbd</refentrytitle>
      <manvolnum>1</manvolnum></citerefentry>,

      <citerefentry><refentrytitle>onnode</refentrytitle>
      <manvolnum>1</manvolnum></citerefentry>,

      <citerefentry><refentrytitle>ctdb.sysconfig</refentrytitle>
      <manvolnum>5</manvolnum></citerefentry>,

      <citerefentry><refentrytitle>ctdb-script.options</refentrytitle>
      <manvolnum>5</manvolnum></citerefentry>,

      <citerefentry><refentrytitle>ctdb</refentrytitle>
      <manvolnum>7</manvolnum></citerefentry>,

      <citerefentry><refentrytitle>ctdb-tunables</refentrytitle>
      <manvolnum>7</manvolnum></citerefentry>,

      <ulink url="http://ctdb.samba.org/"/>
    </para>
  </refsect1>

  <info>
    <author>
      <contrib>
	This documentation was written by
	Amitay Isaacs,
	Martin Schwenke
      </contrib>
    </author>

    <copyright>
      <year>2007</year>
      <holder>Andrew Tridgell</holder>
      <holder>Ronnie Sahlberg</holder>
    </copyright>
    <legalnotice>
      <para>
	This program is free software; you can redistribute it and/or
	modify it under the terms of the GNU General Public License as
	published by the Free Software Foundation; either version 3 of
	the License, or (at your option) any later version.
      </para>
      <para>
	This program is distributed in the hope that it will be
	useful, but WITHOUT ANY WARRANTY; without even the implied
	warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
	PURPOSE.  See the GNU General Public License for more details.
      </para>
      <para>
	You should have received a copy of the GNU General Public
	License along with this program; if not, see
	<ulink url="http://www.gnu.org/licenses"/>.
      </para>
    </legalnotice>
  </info>

</refentry>