使用 TiUP 修改集群目录实践
作者: 啦啦啦啦啦原文来源:https://tidb.net/blog/bc27e244
【是否原创】是
【首发渠道】TiDB 社区
【首发渠道链接】其他平台首发请附上对应链接
【正文】
一、背景
首先,不建议对集群目录进行更改,因为该操作需要重启集群,风险较大。有时也能看到社区有同学提问由于各种原因想更改集群目录并尝试使用 edit-config 修改失败。查阅官方文档中并没有相关操作的步骤,但是搜索社区问答发现有 SOP 非常详细地介绍了更改集群 IP、端口和目录的步骤。(【SOP 系列 12】TiUP 修改集群 IP 、Port 和目录)于是按照步骤进行了一次测试,发现卡在 reload 步骤没能够成功,觉得可能是自己有哪个步骤漏了或是操作不规范,当时手头有其他事而且这种操作“800 年“也用不到一回于是不了了之。后来又发现有同学在论坛遇到了相同的问题,于是趁假期闲来无事用测试集群进行了比较详细的测试。
二、集群拓扑规划
手头刚好有两台测试机 10.0.0.1 和 10.0.0.2,配置都为 8C 16G 100G。
测试集群版本为 v5.4.0
三、测试过程
目标:将数据路径 /export/tidb-data 全部替换为 /export/tidb-data-test
1. 按照拓扑部署 5.4.0 集群(详细步骤省略)
2. 停止目标集群
tiup cluster stop tidb-test
3. 备份数据目录及配置文件
在 10.0.0.1 和 10.0.0.2 均操作
cp -r /export/tidb-data /export/tidb-data-bak
在中控机操作
cp ~/.tiup/storage/cluster/clusters/tidb-test/meta.yaml ~/.tiup/storage/cluster/clusters/tidb-test/meta_bak.yaml
4. 修改配置文件
建议使用批量替换防止遗漏
vi ~/.tiup/storage/cluster/clusters/tidb-test/meta.yaml
:%s/tidb-data/tidb-data-test/g
5. 移动部署目录
由于步骤三已备份,所以直接使用 mv(10.0.0.1 和 10.0.0.2 均操作)
mv /export/tidb-data /export/tidb-data-test/
6. 删除 tikv 及 tiflash 的数据目录中的 last_tikv.toml
find /export/tidb-data-test -name last_tikv.toml -exec rm -rf {} \;
7.reload 和 restart 集群
使用tiup cluster reload tidb-test
报错
看报错是和 pd 通信失败,因为步骤 2 整个集群都已经关闭,所以报这个错也符合预期。根据官方文档说明,tiup cluster reload
会执行两个操作,刷新所有节点配置并且重启指定节点。--skip-restart
参数可以仅刷新配置,不重启任何节点,这样刷新的配置也不会应用,需要等对应服务下次重启才会生效,于是加该参数进行尝试。
tiup cluster reload tidb-test --skip-restart
reload 成功
tiup cluster display tidb-test
检测集群正常,目录替换成功
四、测试其他版本
SOP 文章的发布时间是 20 年底,怀疑有可能是版本差异带来的报错,因此又部署了 4.0 的最新版本 v4.0.16(tiup 1.8.0) 和 v4.0.0(tiup 1.3.2) 版本分别测试
v4.0.16 报错与 v5.4.0 一样,均报无法与 pd 通信。
v4.0.0 既不报错也不超时,等待 1 小时后 Ctrl+Z 手动退出
四、总结
tiup cluster reload tidb-test
会去连接 pd,所以各个版本修改集群目录在集群关闭后 reload 均要带-skip-restart
参数,其余步骤参考 SOP 即可。
参考文档:https://asktug.com/t/topic/63294
感谢 CTC 老师的 SOP 文档指导
以上,如果有不严谨或者纰漏的地方请见谅。
版权声明: 本文为 InfoQ 作者【TiDB 社区干货传送门】的原创文章。
原文链接:【http://xie.infoq.cn/article/4c7129e0615d61e338d18cea2】。文章转载请联系作者。
评论