写点什么

故障排查:PD 的 leader 切换,某 tikv 的 leader 被驱逐

  • 2024-06-14
    北京
  • 本文字数:1406 字

    阅读完需:约 5 分钟

作者: 这里介绍不了我原文来源:https://tidb.net/blog/e28ecf2b

一、现象描述


在一个平平无奇的下午收到告警,登录到监控进行查看:


Overview -> Tikv -> leader



Overview -> Tikv -> region



通过观察 leader 和 region 的面板,我们发现某 TiKV 节点的 leader 被驱逐,leader 数量呈断崖式下降,最终 leader 被全部驱逐。但与此同时,该期间 region 数量正常变化,这是令人比较诧异的一个现象。


到这里,我们还不能判断是什么原因导致的这一现象,下面继续分析。

二、问题排查

2.1 IO 被打满

Overview -> System Info -> IO Util



到这里,我们看到某节点磁盘利用率被打满过,该节点上混部了我们的一个 TiDB 和 一个 PD 。

2.2 查看该机器日志


在这里发现了 kernel 级别的错误,controller encountered a fatal error and was reset,表示某个硬件控制器出现了严重错误并被重置。

2.3 PD 集群 Leader 切换

Overview -> PD -> Region health



随后观察 PD 的 Region health 监控,发现告警后的数据没有显示,除此之外还有其他面板有相似的情况:



通常来说,TiKV 节点会将这些信息上报给 PD 集群中的 Leader 节点。因为在 PD 集群中,Leader 节点是负责处理所有数据调度操作的。所以,这里猜测 PD 集群中的 Leader 节点发生了切换。


后面通过 tiup cluster display 集群名称 以及 监控:Overview -> PD -> PD role 发现,PD 集群的 Leader 节点确实进行了切换。


截止到这里,关于某个 TiKV 节点的 leader 被驱逐的原因还是没有被分析出来,不过既然得知 PD 集群 Leader 被切换也算是稍有眉目了。

2.4 查看 PD 日志

旧 Leader 节点的日志:



leader failed to send out heartbeat on time; took too long, leader is overloaded likely from slow disk。Leader 节点没有在预定的时间内发送出心跳信息,发送心跳信息所需的时间过长,可能是因为 Leader 节点的磁盘响应速度过慢,导致了过载。


pd leader election,紧接着 PD 集群开始的 Leader 的选举。



新 Leader 节点的日志:



同样,我们看到了 send keepalive message fail, store maybe disconnected ,PD 给 Store 发送信息失败,认为其有可能失去连接。


除此之外,在它 “ 晋升 ” 为 Leader 后 对某个 Store 添加了 evict-leader-scheduler 的任务。

2.5 及时解决

  • 既然是由于 evict-leader-scheduler 造成的,我们只需要执行 scheduler remove evict-leader-scheduler 即可。



  • 在有资源的前提下,考虑将 TiDB 和 PD 分开部署;资源有限的前提下,将 TiDB 和 PD 部署到同一台机器的不同磁盘上,降低风险。

  • 当前版本为 V5.4.3,后续也考虑将集群进行升级,规避一些未知风险。

三、总结

根本原因是系统级别的磁盘 Kernel 故障,带来了一系列影响。首先是 PD 集群的 Leader 角色磁盘负载升高,导致 Leader 进行切换,之后对某个 Store 节点上的 Region 的 Leader 角色进行了驱逐,产生告警。


首先,我们要肯定 PD 切换 Leader 这一操作是十分正确的。但对于为某个 TiKV 节点添加 evict-leader-scheduler 这一操作还是有疑惑的,有可能是因为 V5.2.0 起,TiKV 引入了慢节点检测机制导致的,导致我们的 PD 集群的 Leader 切换后,觉得某个 TiKV 慢,从而进行了 Region 的 leader 驱逐。并且我们针对 leader 被驱逐的 TiKV 做了检测,并未发现存在硬件问题。后续也期待官方在 TiKV 慢节点检测这方面的优化。



除此之外,在整个切换过程中,业务感知良好,没有产生很大影响,也验证了 TiDB 高可用性的强大,手动点赞。


发布于: 刚刚阅读数: 4
用户头像

TiDB 社区官网:https://tidb.net/ 2021-12-15 加入

TiDB 社区干货传送门是由 TiDB 社区中布道师组委会自发组织的 TiDB 社区优质内容对外宣布的栏目,旨在加深 TiDBer 之间的交流和学习。一起构建有爱、互助、共创共建的 TiDB 社区 https://tidb.net/

评论

发布
暂无评论
故障排查:PD 的 leader 切换,某 tikv 的 leader 被驱逐_实践案例_TiDB 社区干货传送门_InfoQ写作社区