尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

CTDB 脚本配置文件指南

CTDB 脚本配置文件指南
📅 发布时间:2026/6/17 20:31:46

适用版本:CTDB ≥ 4.20,Ubuntu 20.04 LTS 及更新版本。

文件定位与优先级


每个事件脚本按以下顺序读取配置,后读入者优先:

  1. 全局文件
    /etc/ctdb/script.options
    存放所有脚本共享的通用变量,避免重复定义。

  2. 脚本专用文件
    SCRIPT.options(与脚本同名、同目录,仅后缀为 .options)
    当变量名冲突时,此文件内容覆盖全局文件。


语法与阈值表达式


  • 仅支持 Shell 变量赋值 与 行注释 #。
  • 布尔值统一使用 yes / no。
  • 阈值语法:WARNING_THRESHOLD[:ERROR_THRESHOLD]
    • 仅给出警告阈值:当监控指标 ≥ 该值时记录 warning,脚本继续运行。
    • 同时给出错误阈值:当指标 ≥ 错误阈值时脚本以非 0 退出,节点会被标记为 UNHEALTHY。

网络事件脚本


10.interface – 公网接口与连接重置

变量 取值范围 默认值 说明
CTDB_KILLTCP_USE_SS_KILL yes / try / no no 是否在 releaseip 阶段使用 ss -K 强制重置 TCP 连接。
yes:仅用 ss;
try:先 ss,失败退回 ctdb_killtcp;
no:始终使用 ctdb_killtcp。
CTDB_PARTIALLY_ONLINE_INTERFACES yes / no no yes 时,只要还有一个接口在线,节点状态为 PARTIALLYONLINE 而非 UNHEALTHY。
注意:与 NAT 网关或 LVS 同时启用时,需确保对应接口必须在线,否则流量会中断。

11.natgw – NAT 网关

场景:当节点未持有任何公网 IP 时,通过 leader 节点做 SNAT,保证节点仍可访问外部网络。

变量 是否必填 示例值 说明
CTDB_NATGW_NODES ✔ /etc/ctdb/natgw_nodes 节点列表,每行格式:IPADDR [follower-only]。
标记 follower-only 的节点永远不会被选为 leader。
CTDB_NATGW_PRIVATE_NETWORK ✔ 192.168.1.0/24 需做 NAT 的私网段。
CTDB_NATGW_PUBLIC_IP ✔(leader) 10.0.0.227/24 Leader 节点出向 SNAT 地址,不能是 CTDB 公网 IP。
CTDB_NATGW_PUBLIC_IFACE ✔(leader) eth0 上述地址所在接口。
CTDB_NATGW_DEFAULT_GATEWAY ✘ 10.0.0.1 Leader 节点额外默认网关,用于出向流量。
CTDB_NATGW_STATIC_ROUTES ✘ 10.0.0.0/24 172.16.5.0/24@10.0.0.254 为特定网段创建静态路由而非整网默认路由,可避免流量绕路。

最小可运行配置示例

# /etc/ctdb/script.options
CTDB_NATGW_NODES=/etc/ctdb/natgw_nodes
CTDB_NATGW_PRIVATE_NETWORK=192.168.1.0/24
CTDB_NATGW_PUBLIC_IP=10.0.0.227/24
CTDB_NATGW_PUBLIC_IFACE=eth0

13.per_ip_routing – 策略路由

若公网地址位于不同二层网段,需要为每个地址独立出接口路由。

变量 推荐值 说明
CTDB_PER_IP_ROUTING_CONF /etc/ctdb/policy_routing 每行格式:<公网IP> <目标网段/掩码> [网关]。
CTDB_PER_IP_ROUTING_RULE_PREF 100 ip rule 优先级,需避开系统保留区间。
CTDB_PER_IP_ROUTING_TABLE_ID_LOW 1000 自动生成路由表号下限,必须 >255。
CTDB_PER_IP_ROUTING_TABLE_ID_HIGH 9000 上限。

示例 policy_routing 文件

192.168.100.10/32 0.0.0.0/0 10.10.10.254
192.168.101.10/32 0.0.0.0/0 10.10.11.254

91.lvs – LVS 负载均衡

与 NAT 网关变量完全对应,仅前缀改为 CTDB_LVS_。
需额外注意:

  • CTDB_LVS_PUBLIC_IP 为 对外提供服务的虚拟 IP。
  • 若节点标记为 follower-only,则无需配置 PUBLIC_IFACE 与 PUBLIC_IP。

服务事件脚本


启用/禁用脚本:

ctdb enablescript  50.samba
ctdb disablescript 70.iscsi

20.multipathd – 多路径设备监控

CTDB_MONITOR_MPDEVICES="mpatha mpathb"

31.clamd – ClamAV 防病毒

  • 默认未启用。
  • CTDB_CLAMD_SOCKET="/var/run/clamav/clamd.ctl"

40.vsftpd – FTP 服务

  • CTDB_VSFTPD_MONITOR_THRESHOLDS="3:5"
    连续 3 次检查失败记录警告,5 次失败则标记节点 UNHEALTHY。

48.netbios – NetBIOS 名称解析

  • CTDB_SERVICE_NMB="nmbd"(不同发行版可能为 samba-nmbd)

49.winbind – Samba Winbind

变量 作用
CTDB_SERVICE_WINBIND 服务名,如 winbind
CTDB_SAMBA_INTERFACES_FILE 自动生成 interfaces.conf 供 Samba 使用,限制 SMB 多通道
CTDB_SAMBA_INTERFACES_EXTRA 额外绑定接口列表

示例:

CTDB_SAMBA_INTERFACES_FILE="/etc/samba/interfaces.conf"
CTDB_SAMBA_INTERFACES_EXTRA="bond0"

50.samba – SMB 文件服务

变量 默认值 说明
CTDB_SAMBA_CHECK_PORTS Samba 实际监听端口 可强制指定端口列表
CTDB_SAMBA_SKIP_SHARE_CHECK no 共享目录存在性检查开关
CTDB_SERVICE_SMB 发行版决定 smbd 服务名

60.nfs – NFS 服务

变量 默认值 说明
CTDB_NFS_CALLOUT nfs-linux-kernel-callout 可替换为 Ganesha 等外部脚本
CTDB_NFS_CHECKS_DIR /etc/ctdb/nfs-checks.d 监控 RPC 服务的检查脚本目录
CTDB_NFS_EXPORTS_FILE 见下 导出文件路径
CTDB_NFS_SKIP_SHARE_CHECK no 导出目录存在性检查开关
CTDB_NFS_SHARED_STATE_DIR 无 存放集群 NFS 状态,需位于共享文件系统
CTDB_RPCINFO_LOCALHOST 127.0.0.1 rpcinfo IPv4 测试地址
CTDB_RPCINFO_LOCALHOST6 ::1 IPv6
CTDB_STATD_CALLOUT_SHARED_STORAGE 无 NFSv3 statd 状态共享方式

CTDB_NFS_EXPORTS_FILE 默认值:

  • 内核 NFS: /var/lib/nfs/etab
  • Ganesha: /etc/ganesha/ganesha.conf

statd 共享存储三种模式:

  • persistent_db[:TDB]:本地队列 + TDB,性能较好,有短暂窗口丢失锁风险。
  • shared_dir[:DIR]:共享目录,需评估延迟。
  • none:不共享,NFSv3 锁回收失效,仅测试用。

70.iscsi – iSCSI target 服务

CTDB_START_ISCSI_SCRIPTS="/cluster/tgtd.d"

该目录需位于共享存储,每个公网 IP 对应一个启动脚本。


数据库完整性及备份策略


变量 默认值 说明
CTDB_MAX_CORRUPT_DB_BACKUPS 10 启动时发现损坏的易失 TDB 备份数
CTDB_PERSISTENT_DB_BACKUP_DIR 无 持久 TDB 每日备份目录(需共享文件系统)
CTDB_PERSISTENT_DB_BACKUP_LIMIT 14 备份保留上限

若不想在监控事件内备份,可改用定时任务:

# /etc/cron.d/ctdb-backup
0 2 * * * root /etc/ctdb/ctdb-backup-persistent-tdbs.sh -l /cluster/ctdb-backups

系统资源监控


05.system 脚本防止因磁盘或内存耗尽导致集群异常。

变量 默认值 示例
CTDB_MONITOR_FILESYSTEM_USAGE 含数据库目录的文件系统 90% /:85:95 /data:90:97
CTDB_MONITOR_MEMORY_USAGE 80 75:90

事件脚本调试


当脚本长时间阻塞,可设置:

CTDB_DEBUG_HUNG_SCRIPT_STACKPAT="exportfs|rpcinfo|smbd|python3"

匹配进程将打印堆栈至系统日志,结合 ctdb scriptstatus 可迅速定位死锁位置。


常用文件路径索引


  • 全局配置:/etc/ctdb/script.options
  • 脚本专用:/etc/ctdb/events.d/*.options
  • NAT 网关节点列表:/etc/ctdb/natgw_nodes
  • LVS 节点列表:/etc/ctdb/lvs_nodes
  • 策略路由表:/etc/ctdb/policy_routing
  • NFS 检查脚本:/etc/ctdb/nfs-checks.d/
  • 持久 TDB 备份:/cluster/ctdb-backups/(示例)

相关新闻

  • canal同步mysql到kafka
  • pb9新建“工具”选项卡中文说明
  • EasyWeChat报错Failed to cache access token.

最新新闻

  • 生产级机器学习系统:延迟、弹性与可观测性实战指南
  • 北京老凤祥 / 周大福品牌黄金回收,优选正规门店,回收有保障 - 奢侈品回收测评
  • 苏州靠谱宠物店整理,新手买宠可以先看看 - 园友3800037
  • 闲置黄金在北京回收 2026 门店报价透明支持到店结算 - 奢侈品回收测评
  • 杭州靠谱宠物店整理,新手买宠可以先看看 - 园友3800037
  • 2026沈阳钻石回收行情多少?1克拉GIA钻戒变现真实估价科普 - 奢品小当家

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号