如何扩容TiDB 集群?

TiDB

1 前言

一个问题,一篇文章,一出故事。
笔者最近测试了TiDB集群,目前尝试基于该集群扩容节点。

2 最佳实践

2.1 部署tidb集群环境

如何安装部署TiDB集群?

2.2 扩容TiDB/PD/TiKV集群角色

2.2.1 切换身份

In hd24

su - tidb

2.2.2 创建配置文件

In hd24

cd /data/tidb/install/config-yaml
vim scale-out.yml

加入如下配置,

tidb_servers:
  - host: hd29.cmdschool.org
    deploy_dir: "/data/tidb/tidb-deploy/tidb-4000"
    log_dir: "/data/tidb/tidb-deploy/tidb-4000/log"
tikv_servers:
  - host: hd29.cmdschool.org
    deploy_dir: "/data/tidb/tidb-deploy/tikv-20160"
    data_dir: "/data/tidb/tidb-data/tikv-20160"
    log_dir: "/data/tidb/tidb-deploy/tikv-20160/log"
pd_servers:
  - host: hd29.cmdschool.org
    name: "pd-4"
    deploy_dir: "/data/tidb/tidb-deploy/pd-2379"
    data_dir: "/data/tidb/tidb-data/pd-2379"
    log_dir: "/data/tidb/tidb-deploy/pd-2379/log"

2.2.3 扩容前的检查与问题修复

In hd24

tiup cluster check tidb-cluster scale-out.yml --cluster --user tidb -i ~/.ssh/id_rsa

以上命令检查集群中存在的风险,然后,你可以使用如下命令修复风险,

tiup cluster check tidb-cluster scale-out.yml --cluster --apply --user tidb -i ~/.ssh/id_rsa

2.2.4 执行扩容前集群命令

In hd24

 tiup cluster scale-out tidb-cluster scale-out.yml --user tidb -i ~/.ssh/id_rsa

由于我们有添加PD节点,因此我们需要执行如下命令,

tiup cluster reload tidb-cluster --skip-restart

2.2.5 查看扩容后的集群状态

In hd24

tiup cluster display tidb-cluster

可见如下显示,

Cluster type:       tidb
Cluster name:       tidb-cluster
Cluster version:    v8.5.1
Deploy user:        tidb
SSH type:           builtin
Dashboard URL:      http://hd26.cmdschool.org:2379/dashboard
Grafana URL:        http://hd25.cmdschool.org:3030
ID                        Role          Host                Ports                            OS/Arch       Status   Data Dir                                Deploy Dir
--                        ----          ----                -----                            -------       ------   --------                                ----------
hd25.cmdschool.org:9093   alertmanager  hd25.cmdschool.org  9093/9094                        linux/x86_64  Up       /data/tidb/tidb-data/alertmanager-9093  /data/tidb/tidb-deploy/alertmanager-9093
hd25.cmdschool.org:3030   grafana       hd25.cmdschool.org  3030                             linux/x86_64  Up       -                                       /data/tidb/tidb-deploy/grafana-3030
hd26.cmdschool.org:2379   pd            hd26.cmdschool.org  2379/2380                        linux/x86_64  Up|L|UI  /data/tidb/tidb-data/pd-2379            /data/tidb/tidb-deploy/pd-2379
hd27.cmdschool.org:2379   pd            hd27.cmdschool.org  2379/2380                        linux/x86_64  Up       /data/tidb/tidb-data/pd-2379            /data/tidb/tidb-deploy/pd-2379
hd28.cmdschool.org:2379   pd            hd28.cmdschool.org  2379/2380                        linux/x86_64  Up       /data/tidb/tidb-data/pd-2379            /data/tidb/tidb-deploy/pd-2379
hd29.cmdschool.org:2379   pd            hd29.cmdschool.org  2379/2380                        linux/x86_64  Up       /data/tidb/tidb-data/pd-2379            /data/tidb/tidb-deploy/pd-2379
hd25.cmdschool.org:9190   prometheus    hd25.cmdschool.org  9190/12020                       linux/x86_64  Up       /data/tidb/tidb-data/prometheus-9190    /data/tidb/tidb-deploy/prometheus-9190
hd26.cmdschool.org:4000   tidb          hd26.cmdschool.org  4000/10080                       linux/x86_64  Up       -                                       /data/tidb/tidb-deploy/tidb-4000
hd27.cmdschool.org:4000   tidb          hd27.cmdschool.org  4000/10080                       linux/x86_64  Up       -                                       /data/tidb/tidb-deploy/tidb-4000
hd28.cmdschool.org:4000   tidb          hd28.cmdschool.org  4000/10080                       linux/x86_64  Up       -                                       /data/tidb/tidb-deploy/tidb-4000
hd29.cmdschool.org:4000   tidb          hd29.cmdschool.org  4000/10080                       linux/x86_64  Up       -                                       /data/tidb/tidb-deploy/tidb-4000
hd26.cmdschool.org:9001   tiflash       hd26.cmdschool.org  9001/3930/20170/20292/8234/8123  linux/x86_64  Up       /data/tidb/tidb-data/tiflash-9001       /data/tidb/tidb-deploy/tiflash-9001
hd27.cmdschool.org:9001   tiflash       hd27.cmdschool.org  9001/3930/20170/20292/8234/8123  linux/x86_64  Up       /data/tidb/tidb-data/tiflash-9001       /data/tidb/tidb-deploy/tiflash-9001
hd28.cmdschool.org:9001   tiflash       hd28.cmdschool.org  9001/3930/20170/20292/8234/8123  linux/x86_64  Up       /data/tidb/tidb-data/tiflash-9001       /data/tidb/tidb-deploy/tiflash-9001
hd26.cmdschool.org:20160  tikv          hd26.cmdschool.org  20160/20180                      linux/x86_64  Up       /data/tidb/tidb-data/tikv-20160         /data/tidb/tidb-deploy/tikv-20160
hd27.cmdschool.org:20160  tikv          hd27.cmdschool.org  20160/20180                      linux/x86_64  Up       /data/tidb/tidb-data/tikv-20160         /data/tidb/tidb-deploy/tikv-20160
hd28.cmdschool.org:20160  tikv          hd28.cmdschool.org  20160/20180                      linux/x86_64  Up       /data/tidb/tidb-data/tikv-20160         /data/tidb/tidb-deploy/tikv-20160
hd29.cmdschool.org:20160  tikv          hd29.cmdschool.org  20160/20180                      linux/x86_64  Up       /data/tidb/tidb-data/tikv-20160         /data/tidb/tidb-deploy/tikv-20160
hd19.cmdschool.org:6000   tiproxy       hd19.cmdschool.org  6000/3080                        linux/x86_64  Up       -                                       /data/tidb/tidb-deploy/tiproxy-6000
hd20.cmdschool.org:6000   tiproxy       hd20.cmdschool.org  6000/3080                        linux/x86_64  Up       -                                       /data/tidb/tidb-deploy/tiproxy-6000
hd21.cmdschool.org:6000   tiproxy       hd21.cmdschool.org  6000/3080                        linux/x86_64  Up       -                                       /data/tidb/tidb-deploy/tiproxy-6000
Total nodes: 21

2.3 扩容TiFlash集群角色

2.3.1 切换身份

In hd24

su - tidb

2.3.2 创建配置文件

In hd24

cd /data/tidb/install/config-yaml
vim scale-out.yml

加入如下配置,

tiflash_servers:
  - host: hd29.cmdschool.org
    tcp_port: 9001
    deploy_dir: "/data/tidb/tidb-deploy/tiflash-9001"
    data_dir: "/data/tidb/tidb-data/tiflash-9001"
    log_dir: "/data/tidb/tidb-deploy/tiflash-9001/log"

2.3.3 扩容前的检查与问题修复

In hd24

tiup cluster check tidb-cluster scale-out.yml --cluster --user tidb -i ~/.ssh/id_rsa

以上命令检查集群中存在的风险,然后,你可以使用如下命令修复风险,

tiup cluster check tidb-cluster scale-out.yml --cluster --apply --user tidb -i ~/.ssh/id_rsa

2.3.4 执行扩容前集群命令

In hd24

 tiup cluster scale-out tidb-cluster scale-out.yml --user tidb -i ~/.ssh/id_rsa

2.3.5 查看扩容后的集群状态

In hd24

tiup cluster display tidb-cluster

可见如下显示,

Cluster type:       tidb
Cluster name:       tidb-cluster
Cluster version:    v8.5.1
Deploy user:        tidb
SSH type:           builtin
Dashboard URL:      http://hd26.cmdschool.org:2379/dashboard
Grafana URL:        http://hd25.cmdschool.org:3030
ID                        Role          Host                Ports                            OS/Arch       Status   Data Dir                                Deploy Dir
--                        ----          ----                -----                            -------       ------   --------                                ----------
hd25.cmdschool.org:9093   alertmanager  hd25.cmdschool.org  9093/9094                        linux/x86_64  Up       /data/tidb/tidb-data/alertmanager-9093  /data/tidb/tidb-deploy/alertmanager-9093
hd25.cmdschool.org:3030   grafana       hd25.cmdschool.org  3030                             linux/x86_64  Up       -                                       /data/tidb/tidb-deploy/grafana-3030
hd26.cmdschool.org:2379   pd            hd26.cmdschool.org  2379/2380                        linux/x86_64  Up|L|UI  /data/tidb/tidb-data/pd-2379            /data/tidb/tidb-deploy/pd-2379
hd27.cmdschool.org:2379   pd            hd27.cmdschool.org  2379/2380                        linux/x86_64  Up       /data/tidb/tidb-data/pd-2379            /data/tidb/tidb-deploy/pd-2379
hd28.cmdschool.org:2379   pd            hd28.cmdschool.org  2379/2380                        linux/x86_64  Up       /data/tidb/tidb-data/pd-2379            /data/tidb/tidb-deploy/pd-2379
hd29.cmdschool.org:2379   pd            hd29.cmdschool.org  2379/2380                        linux/x86_64  Up       /data/tidb/tidb-data/pd-2379            /data/tidb/tidb-deploy/pd-2379
hd25.cmdschool.org:9190   prometheus    hd25.cmdschool.org  9190/12020                       linux/x86_64  Up       /data/tidb/tidb-data/prometheus-9190    /data/tidb/tidb-deploy/prometheus-9190
hd26.cmdschool.org:4000   tidb          hd26.cmdschool.org  4000/10080                       linux/x86_64  Up       -                                       /data/tidb/tidb-deploy/tidb-4000
hd27.cmdschool.org:4000   tidb          hd27.cmdschool.org  4000/10080                       linux/x86_64  Up       -                                       /data/tidb/tidb-deploy/tidb-4000
hd28.cmdschool.org:4000   tidb          hd28.cmdschool.org  4000/10080                       linux/x86_64  Up       -                                       /data/tidb/tidb-deploy/tidb-4000
hd29.cmdschool.org:4000   tidb          hd29.cmdschool.org  4000/10080                       linux/x86_64  Up       -                                       /data/tidb/tidb-deploy/tidb-4000
hd26.cmdschool.org:9001   tiflash       hd26.cmdschool.org  9001/3930/20170/20292/8234/8123  linux/x86_64  Up       /data/tidb/tidb-data/tiflash-9001       /data/tidb/tidb-deploy/tiflash-9001
hd27.cmdschool.org:9001   tiflash       hd27.cmdschool.org  9001/3930/20170/20292/8234/8123  linux/x86_64  Up       /data/tidb/tidb-data/tiflash-9001       /data/tidb/tidb-deploy/tiflash-9001
hd28.cmdschool.org:9001   tiflash       hd28.cmdschool.org  9001/3930/20170/20292/8234/8123  linux/x86_64  Up       /data/tidb/tidb-data/tiflash-9001       /data/tidb/tidb-deploy/tiflash-9001
hd29.cmdschool.org:9001   tiflash       hd29.cmdschool.org  9001/3930/20170/20292/8234/8123  linux/x86_64  Up       /data/tidb/tidb-data/tiflash-9001       /data/tidb/tidb-deploy/tiflash-9001
hd26.cmdschool.org:20160  tikv          hd26.cmdschool.org  20160/20180                      linux/x86_64  Up       /data/tidb/tidb-data/tikv-20160         /data/tidb/tidb-deploy/tikv-20160
hd27.cmdschool.org:20160  tikv          hd27.cmdschool.org  20160/20180                      linux/x86_64  Up       /data/tidb/tidb-data/tikv-20160         /data/tidb/tidb-deploy/tikv-20160
hd28.cmdschool.org:20160  tikv          hd28.cmdschool.org  20160/20180                      linux/x86_64  Up       /data/tidb/tidb-data/tikv-20160         /data/tidb/tidb-deploy/tikv-20160
hd29.cmdschool.org:20160  tikv          hd29.cmdschool.org  20160/20180                      linux/x86_64  Up       /data/tidb/tidb-data/tikv-20160         /data/tidb/tidb-deploy/tikv-20160
hd19.cmdschool.org:6000   tiproxy       hd19.cmdschool.org  6000/3080                        linux/x86_64  Up       -                                       /data/tidb/tidb-deploy/tiproxy-6000
hd20.cmdschool.org:6000   tiproxy       hd20.cmdschool.org  6000/3080                        linux/x86_64  Up       -                                       /data/tidb/tidb-deploy/tiproxy-6000
hd21.cmdschool.org:6000   tiproxy       hd21.cmdschool.org  6000/3080                        linux/x86_64  Up       -                                       /data/tidb/tidb-deploy/tiproxy-6000
Total nodes: 22

参阅文档
===================
https://docs.pingcap.com/zh/tidb/stable/scale-tidb-using-tiup/

没有评论

发表回复

TiDB
如何熟悉TiDB集群的常用命令?

1 前言 一个问题,一篇文章,一出故事。 笔者最近学习了TiDB集群, 如何安装部署TiDB集群? …

TiDB
如何缩容TiDB 集群?

1 前言 一个问题,一篇文章,一出故事。 上一章节笔者做了扩展集群节点的实验,本章进行扩展的逆向操作 …

TiDB
如何熟悉TiDB Data Migration?

1 基础知识 1.1 软件简介 – TiDB DM的英文全称为TiDB Data Mig …