TiKV 存储节点计划内外停机,如何去处理?
作者: gary 原文来源:https://tidb.net/blog/17cdb883
一、前言
二、计划内停机,单台服务器不可用时
待 Tiup 正常启动该 TiKV 实例后,我们需要观察 grafana PD 相关监控 Grafana PD–>PD Dashboard–>Region healthy1)PD_miss_peer_region_countRegion 的副本数小于 max-replicas 配置的值。
处理方法:1. 查看是否有 TiKV 宕机或在做下线操作,尝试定位问题产生的原因。2. 观察 region health 面板,查看 miss-peer-region-count 是否在不断减少。
2)PD_pending_peer_region_countRaft log 落后的 Region 过多。由于调度产生少量的 pending peer 是正常的,但是如果持续很高,就可能有问题
处理方法:1. 观察 region health 面板,检查 pending_peer_region_count 是否在不断减少。2. 检查 TiKV 之间的网络状况,特别是带宽是否足够。
3)PD_down_peer_region_numsRaft leader 上报有不响应 peer 的 Region 数量。
处理方法:1. 检查是否有 TiKV 宕机,或刚发生重启,或者繁忙。2. 观察 region health 面板,检查 down_peer_region_count 是否在不断减少。3. 检查是否有 TiKV 之间网络不通。
Grafana PD–>Operator–>Schedule Operator Createpd 发现 region 异常,比如 region 不均衡,region 缺副本,Operator 的创建情况。
Grafana PD–>Operator–>Operator finish durationRegion 在补副本时,主要看 pd 是否繁忙,Operator 执行耗时的情况
三、计划内停机,两台及以上服务器不可用
1. 如果上面命令输出为空,则满足 raft 协议,可以两台服务器同时进行停机处理。
2. 如果上面命令输出为非空,则有部分 region 不满足 raft 协议,需要逐一进行停机处理。
四、计划外停机,满足 raft 多数派
计划外停机满足 raft 多数派,节点如果可以正常拉起,是不需要人工干预的
但是我们需要留意 max-store-down-time 参数,PD 认为失联 store 无法恢复的时间,当超过指定的时间没有收到 store 的心跳后,PD 会在其他节点补充副本,默认值:30m。
计划外停机满足 raft 多数派,节点如果不可以正常拉起,我们快速处理的方法就是缩容掉异常节点,重新扩容一个新节点以保证集群正常运行
1.Rocks DB Apply Snapshot
日志里面可看到 sst file size mismatch 错误,这种只能通过扩缩容来解决
2.Raft 状态机损坏
日志里面可看到 last index 错误,找到所有损坏的副本,跳过问题 region 拉起
tikv-ctl –db /path/to/tikv-data/db bad-regions
Tikv-ctl -db /path/to/tikv-data/db tombstone -r <region-id> –force
五、计划外停机,不满足 raft 多数派
计划外停机不满足 raft 多数派的影响 1. 无法选举新 Leader 以及宕机超过 max-store-down-time 也无法进行补副本操作 2. 前端业务访问部分出现报错 3. 仅访问到异常 Region 的应用会出现报错
多副本损坏的有损恢复处理方法可参考:https://tidb.net/blog/b1ae4ee7
两副本丢失处理
三副本丢失处理
数据校验
保证数据与索引一致
六、总结
版权声明: 本文为 InfoQ 作者【TiDB 社区干货传送门】的原创文章。
原文链接:【http://xie.infoq.cn/article/aa93f1a0f472301d39b580f80】。文章转载请联系作者。
评论