1 | <!--#set var="TITLE" value="CTDB" -->
|
---|
2 | <!--#include virtual="header.html" -->
|
---|
3 |
|
---|
4 | <H2 align="center">Welcome to the CTDB web pages</H2>
|
---|
5 |
|
---|
6 | CTDB is a cluster implementation of the TDB database used by Samba and
|
---|
7 | other projects to store temporary data. If an application is already
|
---|
8 | using TDB for temporary data it is very easy to convert that
|
---|
9 | application to be cluster aware and use CTDB instead.
|
---|
10 |
|
---|
11 | <p>CTDB provides the same types of functions as TDB but in a clustered
|
---|
12 | fashion, providing a TDB-style database that spans multiple physical
|
---|
13 | hosts in a cluster.
|
---|
14 |
|
---|
15 | <p>Features include:
|
---|
16 | <ul>
|
---|
17 | <li>CTDB provides a TDB that has consistent data and consistent locking across
|
---|
18 | all nodes in a cluster.
|
---|
19 | <li>CTDB is very fast.
|
---|
20 | <li>In case of node failures, CTDB will automatically recover and
|
---|
21 | repair all TDB databases that it manages.
|
---|
22 | <li>CTDB is the core component that provides <strong>pCIFS</strong>
|
---|
23 | ("parallel CIFS") with Samba3/4.
|
---|
24 | <li>CTDB provides HA features such as node monitoring, node failover,
|
---|
25 | and IP takeover.
|
---|
26 | <li>CTDB provides a reliable messaging transport to allow applications
|
---|
27 | linked with CTDB to communicate to other instances of the application
|
---|
28 | running on different nodes in the cluster.
|
---|
29 | <li>CTDB has pluggable transport backends. Currently implemented backends are TCP
|
---|
30 | and Infiniband.
|
---|
31 | <li>CTDB supports a system of application specific management scripts,
|
---|
32 | allowing applications that depend on network or filesystem resources
|
---|
33 | to be managed in a highly available manner on a cluster.
|
---|
34 | </ul>
|
---|
35 |
|
---|
36 | <h2>Requirements</h2>
|
---|
37 |
|
---|
38 | CTDB relies on a clustered filesystem being available and shared on
|
---|
39 | all nodes that participate in the CTDB cluster. This filesystem must
|
---|
40 | be mounted and available on all nodes in the CTDB cluster.
|
---|
41 |
|
---|
42 | <p>On top of this cluster filesystem, CTDB then provides clustered HA
|
---|
43 | features so that data from the clustered filesystem can be exported
|
---|
44 | through multiple nodes in the CTDB cluster using various
|
---|
45 | services. Currently included with CTDB are the necessary hooks for Samba, NFS
|
---|
46 | and ftp exports. Support for new service types can easily be added.
|
---|
47 |
|
---|
48 | <h2>TDB</h2>
|
---|
49 |
|
---|
50 | TDB is a very fast simple database that was originally developed for
|
---|
51 | use in Samba. Today several other projects use TDB to store their data.
|
---|
52 |
|
---|
53 | <p>See the <a
|
---|
54 | href="http://samba.org/ftp/unpacked/tdb/docs/README">TDB
|
---|
55 | README file</a> for a description of how TDB is used.
|
---|
56 |
|
---|
57 | <h2>Documentation</h2>
|
---|
58 |
|
---|
59 | <a href="./documentation.html">CTDB documentation</a><br><br>
|
---|
60 |
|
---|
61 | Additional documentation on how to install and configure CTDB is available in the
|
---|
62 | <a href="http://wiki.samba.org/index.php/CTDB_Setup">CTDB
|
---|
63 | Wiki</a>. Please read all of the documentation carefully.
|
---|
64 |
|
---|
65 | <h2>High Availability Features</h2>
|
---|
66 |
|
---|
67 | The CTDB nodes in a cluster designates one node as a recovery master
|
---|
68 | through an election process. If the recovery master node fails a
|
---|
69 | new election is initiated so that the cluster will always guarantee
|
---|
70 | there will be a recovery master. The recovery master will
|
---|
71 | continuously monitor the cluster to verify that all nodes contain a
|
---|
72 | consistent configuration and view of the cluster and will initiate a
|
---|
73 | recovery process when required.
|
---|
74 |
|
---|
75 | <p>During the recovery phase, the recovery master will automatically
|
---|
76 | rebuild/recover all clustered TDB database to ensure that the
|
---|
77 | databases are consistent. Recovery typically takes between 1 and 3
|
---|
78 | seconds. During the recovery period the databases are 'frozen', and
|
---|
79 | all database IO operations by ctdb clients are suspended.
|
---|
80 |
|
---|
81 | <h3>Is CTDB a HA solution?</h3>
|
---|
82 |
|
---|
83 | Yes and no.<p>
|
---|
84 |
|
---|
85 | CTDB alone is not a HA solution, but when you combine CTDB with a clustered
|
---|
86 | filesystem it becomes one.<p>
|
---|
87 |
|
---|
88 | CTDB is primarily developed around the concept of having a shared
|
---|
89 | cluster filesystem across all the nodes in the cluster to provide the
|
---|
90 | features required for building a NAS cluster.<p>
|
---|
91 |
|
---|
92 | Thus CTDB relies on an external component (the cluster filesystem) to
|
---|
93 | provide the mechanisms for avoiding split-brain and other core
|
---|
94 | clustering tasks.<p>
|
---|
95 |
|
---|
96 | However, if you do have a clustered filesystem for all the nodes, in
|
---|
97 | that scenario CTDB will provide a very easy to install and manage
|
---|
98 | solution for your clustering HA needs.
|
---|
99 |
|
---|
100 | <h3>IP Takeover</h3>
|
---|
101 |
|
---|
102 | When a node in a cluster fails, CTDB will arrange that a different
|
---|
103 | node takes over the IP address of the failed node to ensure that the
|
---|
104 | IP addresses for the services provided are always available.
|
---|
105 |
|
---|
106 | <p>To speed up the process of IP takeover and when clients attached to
|
---|
107 | a failed node recovers as fast as possible, CTDB will automatically
|
---|
108 | generate gratuitous ARP packets to inform all nodes of the changed MAC
|
---|
109 | address for that IP. CTDB will also send "tickle ACK" packets to all
|
---|
110 | attached clients to trigger the clients to immediately recognize that
|
---|
111 | the TCP connection needs to be re-established and to shortcut any TCP
|
---|
112 | retransmission timeouts that may be active in the clients.
|
---|
113 |
|
---|
114 | <h2>Discussion and bug reports</h2>
|
---|
115 |
|
---|
116 | For discussions please use
|
---|
117 | the <a href="https://lists.samba.org/mailman/listinfo/samba-technical">samba-technical</a>
|
---|
118 | mailing list. To submit a bug report, please use
|
---|
119 | the <a href="http://bugzilla.samba.org/">Samba bugzilla</a> bug
|
---|
120 | tracking system.
|
---|
121 |
|
---|
122 | <p>We would be very interested in hearing from and work with other
|
---|
123 | projects that want to make their services cluster aware using CTDB.
|
---|
124 |
|
---|
125 | <p>CTDB discussions also happen on the #ctdb IRC channel on freenode.net
|
---|
126 |
|
---|
127 |
|
---|
128 | <hr>
|
---|
129 | <h2>Developers</h2>
|
---|
130 | <ul>
|
---|
131 | <li><a href="http://samba.org/~tridge/">Andrew Tridgell</a></li>
|
---|
132 | <li><a href="http://samba.org/~sahlberg/">Ronnie Sahlberg</a></li>
|
---|
133 | <li><a href="http://samba.org/~obnox/">Michael Adam</a></li>
|
---|
134 | <li>Peter Somogyi</li>
|
---|
135 | <li><a href="http://sernet.de/Samba/">Volker Lendecke</a></li>
|
---|
136 | <li>Stefan Metzmacher</li>
|
---|
137 | <li><a href="http://meltin.net/people/martin/">Martin Schwenke</a></li>
|
---|
138 | <li>Amitay Isaacs</li>
|
---|
139 | </ul>
|
---|
140 |
|
---|
141 | <!--#include virtual="footer.html" -->
|
---|