User:Orlando.richards/CTDB

CTDB
CTDB is a software stack which is used for clustering. In particular, it is used for clustering TDB databases (TDB: Trivial Data Base), though it offers additional features built on this core concept.

CTDB is most often deployed in Samba (software) environments, though it can be used in any software which uses TDB. In this role, it is often used to provide both performance scaling and resilience in NAS services.

Failover
CTDB provides functionality for managing automatic (and manual) fail over between cluster members.

The failover process is fairly advanced when compared a traditional process which simply moves the IP address between cluster nodes. In particular, CTDB implements:
 * Gratuitous ARP broadcasting by the target node as it brings up the new IP address, thus updating the ARP cache on listening systems on the LAN. This avoids fail over delays caused by peer systems on the LAN caching MAC addresses against the IP address.
 * "Tickle ACK" packets - out of sequence ACK packets are sent to connected clients, causing their TCP connections to re-establish immediately, thus causing failover to complete faster than if the TCP sessions were allowed to time out naturally.

High Availability
CTDB can be used to provide high availability services, through a combination of automatic fail over (see above) and health monitoring.

Performance scaling
CTDB can be used to provide "scale out" performance improvements of its clustered services. It is typically used to provision multiple servers offering NAS access to data held on a parallel file system. IBM use it in this guise when providing their SONAS (Scale Out NAS) and SOFS (Scale Out File System) products.