CTDB and Clustered Samba
CTDB is a clustered database component in clustered Samba that provides a high-availability load-sharing CIFS server cluster.
The main functions of CTDB are:
- Provide a clustered version of the TDB database with automatic rebuild/recovery of the databases upon node failures.
- Monitor nodes in the cluster and services running on each node.
- Manage a pool of public IP addresses that are used to provide services to clients. Alternatively, CTDB can be used with LVS.
Combined with a cluster filesystem CTDB provides a full high-availablity (HA) environment for services such as clustered Samba, NFS and other services.
CTDB is primarily developed and tested on Linux. A subset of features may work on other platforms.
Getting and Building CTDB
Samba and CTDB must be installed on all nodes of a cluster. CTDB is part of Samba (>= 4.2.0), so to get CTDB you need to get Samba.
Getting CTDB Source code
If you download source code for Samba >= 4.2.0 then CTDB is included in the
- Your operating system may include pre-built packages for Samba and CTDB
- If you use pre-built packages then you need to ensure that Samba was built with cluster support
- You can get information about smbd's clustering features:
# smbd -b | grep -i 'ctdb\|cluster' CLUSTER_SUPPORT CTDB_SOCKET Cluster support features: CLUSTER_SUPPORT CTDB_SOCKET: /var/run/ctdb/ctdbd.socket CTDB_PROTOCOL: 1
- Note that output may vary slightly, but the
CLUSTER_SUPPORTfeature must be present.
- CTDB will usually be in a separate package to other Samba components called
Building from source code
CTDB should be built with Samba. Add the following options to the
- This enables clustering support in Samba and includes CTDB in the build
- Clustered Samba needs an IDMAP facility so it is worth building a few
Other than that, just follow instructions for building Samba.
Legacy CTDB versions
You should use a version of CTDB that comes with a supported Samba version.
However, legacy, standalone versions of CTDB are still available (including 2.x). These versions were used with Samba versions older than 4.2.0.