生产环境 TiDB 集群缩容 TiKV 操作步骤
作者: Liuhaoao 原文来源:https://tidb.net/blog/31647125
1、查看现有集群节点及其状态:
su - tidb
tiup cluster display tidb-test
2、确认需缩容的节点实例情况:
确认需缩容的节点为 10.3.65.141:20161

3、缩容前,登录 grafana 监控界面,检查检查集群 region health、region leader 分布情况,磁盘 io、内存、cpu 及集群负载等各项关键指标是否正常。



(因为需要缩容的节点是我刚才在测试集群扩容出来的,所以监控曲线有些升高,对缩容无影响,暂且忽略。如果是在生产环境操作,需排查清楚各项指标升高原因,确认处理完毕恢复正常或对缩容无影响再做操作)
4、修改 PD 参数,加快 balance 进度
/tidb-data1/pd/tidb-deploy/pd-2379/bin/pd-ctl -i -u http://127.0.0.1:2379
# 查看参数
» config show » store limit(将集群原参数设置保留一份,修改如果出现问题可迅速修改回原参数)
# 修改参数
» config set max-pending-peer-count 256(控制单个 store 的 pending peer 上限,防止在部分节点产生大量日志落后的 Region。需要加快补副本或 balance 速度可以适当调大这个值,设置为 0 则表示不限制。)
» config set replica-schedule-limit 512 (可以控制同时进行 replica 调度的任务个数。这个配置主要控制节点挂掉或者下线的时候进行调度的速度,值越大调度得越快,设置为 0 则关闭调度。Replica 调度的开销较大,一般不建议将此值设置过大,但我这是测试集群,设置值大一些加快速度。)
» store limit all 800 add-peer(设置所有 store 添加 peer 的速度上限为每分钟 800 个)
» store limit all 20000 remove-peer(设置所有 store 删除 peer 的速度上限为每分钟20000个)
# 如有问题,回滚原参数
5、开始缩容:
使用 screen 工具执行,因为缩容过程命令可能会执行很久,防止因意外导致链接断开,命令执行失败:
screen -S test
tiup cluster scale-in tidb-test -N 10.3.65.141:20161
命令执行过程中,关注集群监控,检查 leader 与 region 是否平滑迁出缩容的 tkv 实例,region health、leader region 分布状态,磁盘 io 使用状态,内存使用情况。
缩容前集群各项监控指标:



缩容命令执行完成后集群各项监控指标:




从监控图可以看出,集群已经开始迁移副本,数据量越大,迁移副本耗时越久。迁移副本过程中,需要关注集群关键指标,出现问题及时处理。
6、节点缩容完成后,检查集群状态:
tiup cluster display tidb-test


确认已经缩容的节点状态为 Tombstone,同时登录 grafana 监控界面,进入 overview–>TiKV 面板,查看 leader 及 region 分布情况,确认迁移副本调度完成。


确认 balance 完成,开始执行清理命令
tiup cluster prune tidb-test
tiup cluster display tidb-test

至此集群已经缩容完成,缩容后的集群符合预期,但还需进入 pd 删除 tombstone 组件,否则 grafana 监控还会记录 tombstone kv。
检查是否有 tombstone 组件:
./pd-ctl store –state Tombstone

./pd-ctl store remove-tombstone
./pd-ctl store –state Tombstone

清理完成:
登录 grafana 监控面板,查看集群各项健康指标是否正常,节点数量是否符合预期。


集群组件状态正常,节点数量符合预期。
最后将 PD 参数调整回集群原参数。
#将PD参数调整回原参数
/tidb-data/pd/tidb-deploy/pd-2379/bin/pd-ctl -i -u http://127.0.0.1::2379
» config set max-pending-peer-count 16
» config set replica-schedule-limit 64
» store limit all 15 add-peer
» store limit all 15 remove-peer
#检查参数
» config show » store limit
确认集群参数已经修改至缩容前状态。至此,TiKV 节点已缩容完毕。
至此,我的这个缩容操作已经讲完了,中间添加了一些做的时候自己的理解,各位大佬如果有什么想要补充的,或者是发现我有写的不对的地方,欢迎补充
版权声明: 本文为 InfoQ 作者【TiDB 社区干货传送门】的原创文章。
原文链接:【http://xie.infoq.cn/article/8d357f34a184779af1655d533】。文章转载请联系作者。
评论