Welcome to the CTDB web pagesCTDB is a cluster implementation of the TDB database used by Samba and other projects to store temporary data. If an application is already using TDB for temporary data it is very easy to convert that application to be cluster aware and use CTDB instead.
CTDB provides the same types of functions as TDB but in a clustered fashion, providing a TDB-style database that spans multiple physical hosts in a cluster.
RequirementsCTDB relies on a clustered filesystem being available and shared on all nodes that participate in the CTDB cluster. This filesystem must be mounted and available on all nodes in the CTDB cluster.
On top of this cluster filesystem, CTDB then provides clustered HA features so that data from the clustered filesystem can be exported through multiple nodes in the CTDB cluster using various services. Currently included with CTDB are the necessary hooks for Samba, NFS and ftp exports. Support for new service types can easily be added.
TDBTDB is a very fast simple database that was originally developed for use in Samba. Today several other projects use TDB to store their data.
See the TDB README file for a description of how TDB is used.
Additional documentation on how to install and configure CTDB is available in the CTDB Wiki. Please read all of the documentation carefully.
High Availability FeaturesThe CTDB nodes in a cluster designates one node as a recovery master through an election process. If the recovery master node fails a new election is initiated so that the cluster will always guarantee there will be a recovery master. The recovery master will continuously monitor the cluster to verify that all nodes contain a consistent configuration and view of the cluster and will initiate a recovery process when required.
During the recovery phase, the recovery master will automatically rebuild/recover all clustered TDB database to ensure that the databases are consistent. Recovery typically takes between 1 and 3 seconds. During the recovery period the databases are 'frozen', and all database IO operations by ctdb clients are suspended.
Is CTDB a HA solution?Yes and no.
CTDB alone is not a HA solution, but when you combine CTDB with a clustered filesystem it becomes one.
CTDB is primarily developed around the concept of having a shared cluster filesystem across all the nodes in the cluster to provide the features required for building a NAS cluster.
Thus CTDB relies on an external component (the cluster filesystem) to provide the mechanisms for avoiding split-brain and other core clustering tasks.
However, if you do have a clustered filesystem for all the nodes, in that scenario CTDB will provide a very easy to install and manage solution for your clustering HA needs.
IP TakeoverWhen a node in a cluster fails, CTDB will arrange that a different node takes over the IP address of the failed node to ensure that the IP addresses for the services provided are always available.
To speed up the process of IP takeover and when clients attached to a failed node recovers as fast as possible, CTDB will automatically generate gratuitous ARP packets to inform all nodes of the changed MAC address for that IP. CTDB will also send "tickle ACK" packets to all attached clients to trigger the clients to immediately recognize that the TCP connection needs to be re-established and to shortcut any TCP retransmission timeouts that may be active in the clients.
Discussion and bug reportsFor discussions please use the samba-technical mailing list. To submit a bug report, please use the Samba bugzilla bug tracking system.
We would be very interested in hearing from and work with other projects that want to make their services cluster aware using CTDB.
CTDB discussions also happen on the #ctdb IRC channel on freenode.net