CTDB and Clustered Samba: Difference between revisions

From SambaWiki
m (MartinSchwenke moved page CTDB to CTDB and Clustered Samba: More informative title)
m (/* added note)
(22 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= Introduction =
= CTDB and Clustered Samba =


CTDB is a clustered database component in clustered Samba that provides a high-availability load-sharing CIFS server cluster.
CTDB is a clustered database component in clustered Samba that provides a high-availability load-sharing CIFS server cluster.
Line 13: Line 13:
Combined with a cluster filesystem CTDB provides a full high-availablity (HA) environment for services such as clustered Samba, NFS and other services.
Combined with a cluster filesystem CTDB provides a full high-availablity (HA) environment for services such as clustered Samba, NFS and other services.


{{Imbox
= Supported platforms =
| type = note
| text = It should be noted that CTDB cannot be used with Samba AD DC's, it should only be used with Unix domain members or standalone servers.
}}


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 [https://www.samba.org/samba/download/ get Samba].


== Getting CTDB Source code ==


= Supported platforms =
If you [[Obtaining_Samba|download source code for Samba &gt;= 4.2.0]] then CTDB is included in the <code>ctdb</code> subdirectory.


CTDB is primarily developed and tested on Linux. A subset of features may work on other platforms.
== Binary packages ==


= Getting and Building CTDB =
* Your operating system may include pre-built packages for Samba and CTDB


Samba and CTDB must be installed on all nodes of a cluster. CTDB is part of Samba (&gt;= 4.2.0), so to get CTDB you need to [https://www.samba.org/samba/download/ get Samba].
* If you use pre-built packages then you need to ensure that Samba was built with cluster support


More details:
: You can get information about smbd's clustering features:


* [[Getting and Building CTDB]]
# smbd -b | grep -i 'ctdb\|cluster'
* [[Upgrading a CTDB cluster]]
CLUSTER_SUPPORT
CTDB_SOCKET
Cluster support features:
CLUSTER_SUPPORT
CTDB_SOCKET: /var/run/ctdb/ctdbd.socket
CTDB_PROTOCOL: 1


= Configuring Clusters with CTDB =
: Note that output may vary slightly, but the <code>CLUSTER_SUPPORT</code> feature must be present.


* [[Basic CTDB configuration]]
* CTDB will usually be in a separate package to other Samba components called <code>ctdb</code>
* [[Setting up a cluster filesystem]]
* [[Configuring the CTDB recovery lock]]
* [[Adding public IP addresses]]
* [[Configuring clustered Samba]]
* [[Setting up CTDB for Clustered NFS]]
* [[Setting up CTDB with other services]]
* [[Advanced CTDB configuration]]
* [[Samba_CTDB_GPFS_Cluster_HowTo|CTDB with GPFS]]
* [[GFS_CTDB_HowTo|CTDB with GFS]]


= Analysing CTDB problems =
== Building from source code ==


* [[Merged logs]]
CTDB should be built with Samba. Add the following options to the <code>./configure</code> command.
* [[CTDB log file search patterns]]


= Developing CTDB =
; <code>--with-cluster-support</code> : This enables clustering support in Samba and includes CTDB in the build
; <code>--with-shared-modules=idmap_rid,idmap_tdb2,idmap_ad</code> : Clustered Samba needs an IDMAP facility so it is worth building a few


* [[CTDB database design]]
Other than that, just [[Build_Samba_from_Source|follow instructions for building Samba]].
* [[Running CTDB tests]]


= Historical and Background Information =
== Legacy CTDB versions ==


Note that some of this information is out of date.
You should use a version of CTDB that comes with [[Samba_Release_Planning|a supported Samba version]].

However, [https://download.samba.org/pub/ctdb/ legacy, standalone versions of CTDB are still available] (including [[CTDB2releaseNotes|2.x]]). These versions were used with Samba versions older than 4.2.0.

The code is also available from the CTDB git repository at git://git.samba.org/ctdb.git. See also the [https://git.samba.org/?p=ctdb.git;a=summary GIT web interface].

= Configuring Clusters with CTDB =


* [[CTDB Project]]
* [[CTDB_Setup|Configuring a Samba Cluster with CTDB]]
* [[Clustered Samba]]
* [[Samba & Clustering]]
* [http://samba.org/~obnox/presentations/sambaXP-2009/ Michael Adam's clustered NAS articles]

Revision as of 16:55, 23 November 2020

Introduction

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.



Supported platforms

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.

More details:

Configuring Clusters with CTDB

Analysing CTDB problems

Developing CTDB

Historical and Background Information

Note that some of this information is out of date.