记录一下本次生产环境 TiKV 扩容节点详细操作步骤。
背景: 由于负载问题,需要将TiKV 从6台扩容3台,当前6台每台数据大概在2.2T。扩容完成后每台1.5T数据左右。
TiDB版本: 4.0.11
系统版本: CentOS 7.6
一、系统配置(新扩容节点操作)
1、关闭防火墙
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service
2、关闭 swap 分区
临时生效
sysctl -w vm.swappiness=0
永久生效
/etc/sysctl.conf 添加以下行
vm.swappiness=0
3、检查时区
echo $TZ
ll /etc/localtime
date -R
确保为东8区,和其他节点保持一致。
4、添加中控机访问SSH授信
(1) 添加 tidb 用户
useradd tidb
(2) 设置 tidb 用户密码。
passwd tidb
(3) 配置 tidb 用户 sudo 免密码
$ visudo
将 tidb ALL=(ALL) NOPASSWD: ALL 添加到文件末尾然后保存。
(4) 创建 SSH 目录
$ su - tidb
切换到 tidb 用户下执行以下命令
ssh-keygen -t rsa
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
(5) 拷贝中控机公钥
拷贝中控机公钥到新节点的 ~/.ssh/authorized_keys 文件
登录中控机并切换到tidb用户,然后获取公钥
$ cat .ssh/id_rsa.pub
以上系统配置就完成了,记得check一下,确保中控机的 tidb 用户可以ssh到新节点。下面开始具体的扩容操作。
二、扩容 TiKV
检查一下这2个配置参数,不能太大也不能太小。
leader-schedule-limit 可以调整为4,调太大leader迁移过高,可能会影响业务使用。
region-schedule-limit 可以调整为32。
登录pd查看配置
tiup ctl pd -u http://pdip:2379 -i
>> config show all
1、编辑toml文件
登录中控机操作
$ touch tikv.yaml
tikv_servers: - host: 172.16.1.21 - host: 172.16.1.22
2、扩容命令
扩容前检查集群状态,确保所有组件正常后才能扩容
tiup cluster display cluster-name
执行扩容
tiup cluster scale-out cluster-name tikv.yaml
3、扩容中根据需要调整均衡速度
tiup ctl pd -u http://pdip:2379 -i
config set leader-schedule-limit 4
config set region-schedule-limit 32
本次扩容业务使用无任何影响,TiCDC偶尔会有延迟的情况,是因为 leader 迁移导致。
4、扩容完成
PS:扩容完成后记得备份.tiup目录
本次扩容数据均衡大概花了51小时。上图: