HAC 集群主节点状态在starting、running之间频繁切换

文章目录

环境

系统平台:N/A

版本:4.5

症状

1、集群主节点状态在starting、running之间频繁来回切换;

2、HAC持续输出警告日志:

复制代码
WARNING: I am the leader but not owner of the lease;

3、etcd 日志持续输出高时钟漂移告警,节点间时钟偏移达 1 分 13 秒;

复制代码
{"level":"warn","ts":"2026-06-30T15:16:42.510106333+0800","caller":"rafthttp/probing_status.go:82","msg":"prober found high clock drift","round-tripper-name":"ROUND_TRIPPER_SNAPSHOT","remote-peer-id":"de112373a298a62","clock-drift":"1m13.697308085s","rtt":"481.862µs"}

4、配置时钟同步后,etcd日志正常,HAC集群日志依然报错,集群主节点状态依然在starting、running之间频繁来回切换

问题原因

1、集群各节点系统时钟存在 73 秒大幅漂移,etcd 依赖时间做租约有效期、Raft 集群状态判定,时差导致租约逻辑错乱;

2、主节点本地进程判定自身是集群 Leader,但 etcd 集群因时间差判定主节点租约已过期,锁失效,HAC持续输出租约丢失告警;

3、HAC检测到租约丢失,判定集群状态异常,主动下发指令重启 HGDB 数据库,数据库启动阶段显示starting,启动完成短暂变为running,循环往复;

4、仅配置时钟同步只能修复后续时间偏差,无法清除时差错乱遗留的 etcd 持久化脏数据(过期租约、冲突集群元数据),因此同步时间后告警、节点切换故障依旧存在。

解决方案

1、全节点完成 chrony/NTP 时钟同步校准,消除节点间时钟偏移;

2、各节点停止 HAC 集群、停止 etcd 服务;

sql 复制代码
#确定集群主备状态
hghactl -c /usr/local/hghac/hghac.yml list

#按照先备后主的顺序关闭hghac服务
systemctl stop hghac.service

#停止所有节点上的etcd服务
systemctl stop etcd.service

3、备份原有 etcd 数据目录,清空 etcd 持久化存储目录

复制代码
#所有节点备份原来的etcd data目录 (存储路径为etcd.yml中data-dir配置,依据实际配置备份)
mv /usr/local/hghac/etcd/data    /usr/local/hghac/etcd/data.bak

4、依次启动 etcd 服务、HAC 集群,由 HAC重新向干净的 etcd 写入元数据

sql 复制代码
#启动所有节点的etcd服务
systemclt start etcd.service

#检查etcd集群状态
etcdctl endpoint health --write-out=table

按照先主后备的顺序启动hac集群

#启动hghac服务
systemctl start  hghac.service

#确定集群主备状态
hghactl -c /usr/local/hghac/hghac.yml list

5、观察日志不再输出租约丢失告警,主节点稳定保持running状态,故障修复。

相关推荐
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
这个DBA有点耶3 天前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
DBA_G3 天前
从地面到云霄:GBase数据库在民航三大场景的落地实践
数据库
自由能燃气设备3 天前
商用全预混低氮冷凝锅炉免费方案vs付费方案对比+选型避坑指南
大数据·数据库·人工智能
科创致远3 天前
科创致远 ESOP 系统核心效能与实战价值展示
大数据·数据库·人工智能·精益工程
AI职业加油站3 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
geovindu3 天前
sql: Transaction & Concurrency Patterns using postgresql 18
postgresql·数据库开发·数据库架构
此冬歌咏3 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
2601_962218613 天前
万象生鲜系统称重自动多退少补算法解决生鲜非标品痛点
大数据·数据库·人工智能·python·算法
-梅3 天前
linux(8) 软硬链接
linux·运维·服务器