关于CTDB

关于CTDB

CTDB是Samba和其他项目中存储临时数据的TDB数据库的集群实现。如果有个应用已经使用TDB存储临时数据,那么将其用集群化并使用CTDB替代会非常轻松。

CTDB使用集群方式提供了与TDB相同的功能方式,提供一种TDB方式的数据库在集群中聚合多种物理主机。

CTDB具有以下特性:

  • CTDB提供作用于所有集群节点用户持久化数据和持久化锁的TDB

  • CTDB非常快

  • 当节点失效时,CTDB会自动恢复和修复所有它管理的TDB数据库

  • CTDB是Samba/4提供pCIFS(“parallel CIFS”)的核心组件

  • CTDB提供HA特性,比如节点镜像,节点容错和IP接管

  • CTDB提供了一种可靠的消息传输方式,连接CTDB的应用可以和运行在集群中不同节点上的应用实例进行通信

  • CTDB拥有可插拔传输后端,当前已经实现了TCP和Infiniband

  • CTDB支持特定的管理脚本应用系统,可以通过集群高度可用的方式管理基于网络或者文件系统资源的应用

需求

CTDB 依赖集群化的文件系统,并且在参与CTDB集群的所有节点中共享。文件系统必须挂载,并且在CTDB集群中所有节点具有效。

在该集群系统的顶层,CTDB提供集群化的HA特性,因此集群文件系统中的数据可以使用多种服务通过CTDB集群的多重节点导出。当前包含CTDB 对于Samba、NFS和ftp出口而言都是必须的。对于添加对新服务类型的支持也很容易。

TDB

TDB是一个非常快速简单的数据库,刚开始是为Samba开发使用的。现在一些其他的项目使用TDB来存储自身的数据。

具体可以查看 TDB README 文件对TDB如何使用的描述。

高度可用性

集群中的CTDB节点通过选举方式指派其中一个节点作为恢复主节点。如果恢复主节点失效,新的选举过程启动,这样可以保证集群总是存在一个恢复主节点。恢复主节点会持续监控集群来保证所有的节点包含连续的配置和视图,并且在需要的时候初始化恢复进程。

在恢复阶段,恢复主节点会自动重建/恢复所有的集群化的TDB数据库,用以保证数据库是连续的。恢复通常需要花费1到3秒。在恢复过程中,数据库会被”冻结”,并且ctdb客户端的所有对数据库IO的操作都会暂时挂起。

CTDB是否是HA解决方案

既是又不是。

CTDB独自不是HA解决方案,但是CTDB和集群化文件系统结合起来就是一个HA解决方案。

CTDB主要围绕覆盖集群中所有节点的共享集群文件系统的概念开发,为构建NAS集群提供所需的特性。

CTDB依赖一个额外的组件(集群文件系统),提供避免脑裂的机制和其他核心集群任务。

然而,如果你真的拥有一个所有节点的集群系统,该场景下CTDB将会使集群的HA需求变得易于安装和管理。

IP接管

当集群中一个节点失效,CTDB会安排一个不同的节点接管失效节点的IP地址,保证该IP提供的服务依然有效。

当隶属于失败节点的客户端尽可能快的恢复以及加速IP接管,CTDB会自动产生免费ARP报文来通知所有节点IP地址对应的MAC地址变化。CTDB同样也会向附属的客户端发送“tickle ACK”报文让客户端立刻组织TCP链接重建。

转自:https://ctdb.samba.org/

你可能感兴趣的:(存储)