add instructions on how to set up HA-FTP using vsftpd and ctdb
[sahlberg/ctdb.git] / web / index.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
2 <HTML>
3 <HEAD>
4 <TITLE>CTDB</TITLE>
5 </HEAD>
6 <!--#include virtual="header.html" -->
7
8 <H2 align="center">Welcome to the CTDB web pages</H2>
9
10 CTDB is a cluster implementation of the TDB database used by Samba and
11 other projects to store temporary data. If an application is already
12 using TDB for temporary data it is very easy to convert that
13 application to be cluster aware and use CTDB instead.
14
15 <p>CTDB provides the same types of functions as TDB but with the
16 difference that it is clustered and thus it appears as a TDB database
17 that spans multiple physical hosts in a cluster.
18
19 <p>Features include:
20 <ul>
21 <li>CTDB provides a TDB that has consistent data and consistent locking across
22 all nodes in a cluster.
23 <li>CTDB is very fast.
24 <li>In case of node failures, CTDB will automatically recover and
25   repair all TDB databases that it manages.
26 <li>CTDB is the core component that provides <strong>pCIFS</strong>
27 ("parallel CIFS") with Samba3/4.
28 <li>CTDB provides HA features such as node monitoring, node failover,
29   and IP takeover.
30 <li>CTDB provides a reliable messaging transport to allow applications
31  linked with CTDB to communicate to other instances of the application
32  running on different nodes in the cluster.
33 <li>CTDB has pluggable transport backends. Currently implemented backends are TCP
34  and Infiniband.
35 <li>CTDB supports a system of application specific management scripts,
36   allowing applications that depend on network or filesystem resources
37   to be managed in a highly available manner on a cluster.
38 </ul>
39
40 <h2>Requirements</h2>
41
42 CTDB relies on that a clustered filesystem is available and shared on
43 all nodes that participate in the CTDB cluster. This filesystem must
44 be mounted and available on all nodes in the CTDB cluster.
45
46 <p>On top of this cluster filesystem, CTDB then provides clustered HA
47 features so that data from the clustered filesystem can be exported
48 through multiple nodes in the CTDB cluster using various
49 services. Currently this is used to export data off a clustered
50 filesystem using Samba (for SMB/CIFS) and NFS to Windows and Unix
51 clients.
52
53 <h2>TDB</h2>
54
55 TDB is a very fast simple database that was originally developed for
56 use in Samba. Today several other projects use TDB to store their data.
57
58 <p>See <a
59 href="http://viewcvs.samba.org/cgi-bin/viewcvs.cgi/branches/SAMBA_4_0/source/lib/tdb/docs/README">TDB
60 README file</a> for some description of how TDB is used.
61
62 <h2>Documentation</h2>
63
64 <ul>
65 <li><a href="download.html">Getting the code</a><br>
66 <li><a href="building.html">Building Samba and CTDB</a><br>
67 <li><a href="configuring.html">Configuring CTDB</a><br>
68 <li><a href="testing.html">Starting and testing CTDB</a><br>
69 <li><a href="samba.html">Setting up clustered Samba</a><br>
70 <li><a href="nfs.html">Setting up clustered NFS</a><br>
71 <li><a href="ftp.html">Setting up clustered FTP</a><br>
72 </ul>
73
74 <br>
75 Additional documentation on how to install and configure CTDB is available in the
76 <a href="http://wiki.samba.org/index.php/CTDB_Setup">CTDB
77   Wiki</a>. Please read all of the documentation carefully.
78
79 <h2>High Availability Features</h2>
80
81 The CTDB nodes in a cluster designates one node as a recovery master
82 through an election process. If the recovery master node fail a
83 new election is initiated so that the cluster will always guarantee
84 there will be a recovery master. The recovery master will
85 continuously monitor the cluster to verify that all nodes contain a
86 consistent configuration and view of the cluster and will initiate a
87 recovery process when required.
88
89 <p>During the recovery phase, the recovery master will automatically
90 rebuild/recover all clustered TDB database to ensure that the
91 databases are consistent. Recovery typically takes between 1 and 3
92 seconds. During the recovery period the databases are 'frozen', and
93 all IO operations by ctdb clients are suspended.
94
95 <h3>Is CTDB a HA solution?</h3>
96
97 Yes and no.<p>
98
99 CTDB alone is not a HA solution, but when you combine CTDB with a clustered 
100 filesystem it becomes one.<p>
101
102 CTDB is primarily developed around the concept of having a shared cluster 
103 filesystem shared across all the nodes in the cluster to provide the features
104 required for building a NAS cluster.<p>
105
106 Thus CTDB relies on an external component (the cluster filesystem) to provide 
107 the mechanisms for avoiding split-brain and other difficult tasks.<p>
108
109 However, If you applications do need a clustered filesystem for all the nodes, 
110 in that scenario CTDB will provide a very easy to install and manage 
111 solution for your clustering HA needs.
112
113 <h3>IP Takeover</h3>
114
115 When a node in a cluster fails, CTDB will arrange that a different
116 node takes over the IP address of the failed node to ensure that the
117 IP addresses for the services provided are always available.
118
119 <p>To speed up the process of IP takeover and when clients attached to
120 a failed node recovers as fast as possible, CTDB will automatically
121 generate gratuitous ARP packets to inform all nodes of the changed MAC
122 address for that IP.  CTDB will also send "tickle ACK" packets to all
123 attached clients to trigger the clients to immediately recognize that
124 the TCP connection needs to be re-established and to shortcut any TCP
125 retransmission timeouts that may be active in the clients.
126
127 <h2>Services using CTDB</h2>
128
129 <h3>Samba 3/4</h3>
130
131 Extensions has been developed to Samba3 and Samba 4 to integrate with
132 CTDB to build a clustered highly available version of Samba where the
133 same data/network shares are exported read-write from multiple nodes
134 in a cluster. These versions of Samba have been demonstrated to provide very good
135 scalability.<br><br>
136
137 See <a href="samba.html">Setting up clustered Samba</a> for instructions on how to configure samba for clustering.<br>
138
139 <p>Also see the <a href="http://wiki.samba.org/index.php/CTDB_Project">CTDB
140 Project at samba.org</a> for more information about
141 this <strong>pCIFS</strong> implementation.
142
143 <h3>NFS v2/v3</h3>
144
145 NFS v2/v3 has been successfully tested with exporting the same
146 data/network share from multiple nodes in a CTDB cluster with correct
147 file locking behaviour and lock recovery.<br><br>
148
149 See <a href="nfs.html">Setting up clustered NFS</a> for instruction on how to set up a NFS cluster.<br>
150
151 Also see <a href="http://wiki.samba.org/index.php/CTDB_Setup#Setting_up_CTDB_for_clustered_NFS">Configuring
152 NFS for CTDB clustering</a> at samba.org for additional information.
153
154 <h3>FTP</h3>
155
156 See <a href="ftp.html">Setting up clustered FTP</a><br> for instructions on how to use vsftpd together with CTDB to provide a HA solution for FTP.
157
158 <h2>Discussion and bug reports</h2>
159
160 For discussions please use
161 the <ahref="https://lists.samba.org/mailman/listinfo/samba-technical">samba-technical</a>
162 mailing list. To submit a bug report, please use
163 the <a href="http://bugzilla.samba.org/">Samba bugzilla</a> bug
164 tracking system.
165
166 <p>We would be very interested in hearing from and work with other
167 projects that want to make their services cluster aware using CTDB.
168
169 <p>CTDB discussions also happen on the #ctdb IRC channel on freenode.net
170
171
172 <h2>Download</h2>
173
174 You can download the latest source release
175 using <a href="http://bazaar-vcs.org/">bzr</a>. Install bzr, then run
176 this command:
177
178 <pre>
179   bzr branch http://samba.org/~tridge/ctdb
180 </pre>
181
182 Or alternatively you can use rsync like this:
183
184 <pre>
185   rsync -avz samba.org::ftp/unpacked/ctdb .
186 </pre>
187
188
189 <h2>Binary Packages</h2>
190
191 Note that packages are so far only available for RHEL4. Other packages
192 will come later. <p>
193
194 See <a href="packages/">packages</a> directory for package
195 downloads.
196
197 <hr>
198 <h2>Developers</h2>
199 <ul>
200 <li><a href="http://samba.org/~tridge/">Andrew Tridgell</a><br>
201 <li>Ronnie Sahlberg<br>
202 <li>Peter Somogyi<br>
203 <ul>
204
205 <!--#include virtual="footer.html" -->