Tidb探究 扩容缩容

Tidb探究 扩容缩容

查看当前tidb配置

# 查看tidb信息
tiup cluster list

# 查看cluster的配置
tiup cluster edit-config <cluster-name>

# 查看集群状态
tiup cluster display <cluster-name>

扩容TiDB/PD/TiKV节点

添加节点ip地址为192.168.174.128,可按照如下步骤进行操作。

1.编写扩容拓扑配置

⚠️注意

  • 默认情况下,可以不填写端口以及目录信息。但在单机多实例场景下,则需要分配不同的端口以及目录,如果有端口或目录冲突,会在部署或扩容时提醒。
  • 从 TiUP v1.0.0 开始,扩容配置会继承原集群配置的 global 部分。

创建scale-out.yaml文件添加扩容拓扑配置

vi scale-out.yaml

TiDB配置文件参考:

tidb_servers:
  - host: 192.168.174.128
    ssh_port: 22
    port: 4000
    status_port: 10080
    # 文件存储地址,可参考edit-config
    deploy_dir: /tidb-deploy/tidb-4000
    log_dir: /tidb-deploy/tidb-4000/log

TiKV配置文件参考:

tikv_servers:
  - host: 192.168.174.128
    ssh_port: 22
    port: 20160
    status_port: 20180
    # 文件存储地址,可参考edit-config
    deploy_dir: /tidb-deploy/tikv-20160
    data_dir: /tidb-data/tikv-20160
    log_dir: /tidb-deploy/tikv-20160/log
    config:
      server.labels:
        host: 192.168.174.128

PD配置文件参考:

pd_servers:
  - host: 192.168.174.128
    ssh_port: 22
    name: pd-192.168.174.128-2379
    client_port: 2379
    peer_port: 2380
    # 文件存储地址,可参考edit-config
    deploy_dir: /tidb-deploy/pd-2379
    data_dir: /tidb-data/pd-2379
    log_dir: /tidb-deploy/pd-2379/log
2.执行扩容命令

执行scale-out命令前,先使用checkcheck --apply命令,检查和自动修复集群存在的潜在风险:

1.检查集群存在的潜在风险
tiup cluster check <cluster-name> scale-out.yaml --cluster --user tidb [-p] [-i /home/root/.ssh/gcp_rsa]

2.自动修复集群存在的潜在风险
tiup cluster check <cluster-name> scale-out.yaml --cluster --apply --user tidb [-p] [-i /home/root/.ssh/gcp_rsa]

3.执行`scale-out`命令扩容TiDB集群
tiup cluster scale-out <cluster-name> scale-out.yaml [-p] [-i /home/root/.ssh/gcp_rsa]

  • 扩容配置文件为 scale-out.yaml。
  • --user tidb 表示通过 tidb 用户登录到目标主机完成集群部署,该用户需要有 ssh 到目标机器的权限,并且在目标机器有 sudo 权限。也可以用其他有 ssh 和 sudo 权限的用户完成部署。
  • [-i] 及 [-p] 为可选项,如果已经配置免密登录目标机,则不需填写。否则选择其一即可,[-i] 为可登录到目标机的 root 用户(或 --user 指定的其他用户)的私钥,也可使用 [-p] 交互式输入该用户的密码。

预期日志结尾输出 Scaled cluster <cluster-name> out successfully 信息,表示扩容操作成功。

缩容TiDB/PD/TiKV节点

添加节点ip地址为192.168.174.128,可按照如下步骤进行操作。

⚠️ 注意

  • 移除 TiDB、PD 节点和移除 TiKV 节点的步骤类似。
  • 由于 TiKV、TiFlash 和 TiDB Binlog 组件是异步下线的,且下线过程耗时较长,所以 TiUP 对 TiKV、TiFlash 和 TiDB Binlog 组件做了特殊处理,详情参考下线特殊处理

⚠️ 注意
TiKV 中的 PD Client 会缓存 PD 节点的列表。当前版本的 TiKV 有定期自动更新 PD 节点的机制,可以降低 TiKV 缓存的 PD 节点列表过旧这一问题出现的概率。但你应尽量避免在扩容新 PD 后直接一次性缩容所有扩容前就已经存在的 PD 节点。如果需要,请确保在下线所有之前存在的 PD 节点前将 PD 的 leader 切换至新扩容的 PD 节点。

1.查看节点ID信息
tiup cluster display <cluster-name>
Starting /root/.tiup/components/cluster/v1.10.0/cluster display <cluster-name>

TiDB Cluster: <cluster-name>

TiDB Version: v6.1.0

ID       Role         Host    Ports                            Status  Data Dir        Deploy Dir

--       ----         ----      -----                            ------  --------        ----------

10.0.1.3:8300  cdc          10.0.1.3    8300                            Up      data/cdc-8300      deploy/cdc-8300

10.0.1.4:8300  cdc          10.0.1.4    8300                            Up      data/cdc-8300      deploy/cdc-8300

10.0.1.4:2379  pd           10.0.1.4    2379/2380                        Healthy data/pd-2379      deploy/pd-2379

10.0.1.1:20160 tikv         10.0.1.1    20160/20180                      Up      data/tikv-20160     deploy/tikv-20160

10.0.1.2:20160 tikv         10.0.1.2    20160/20180                      Up      data/tikv-20160     deploy/tikv-20160

10.0.1.5:20160 tikv        10.0.1.5    20160/20180                     Up      data/tikv-20160     deploy/tikv-20160

10.0.1.3:4000  tidb        10.0.1.3    4000/10080                      Up      -                 deploy/tidb-4000

10.0.1.4:4000  tidb        10.0.1.4    4000/10080                      Up      -                 deploy/tidb-4000

10.0.1.5:4000  tidb         10.0.1.5    4000/10080                       Up      -            deploy/tidb-4000

10.0.1.3:9000   tiflash      10.0.1.3    9000/8123/3930/20170/20292/8234  Up      data/tiflash-9000       deploy/tiflash-9000

10.0.1.4:9000   tiflash      10.0.1.4    9000/8123/3930/20170/20292/8234  Up      data/tiflash-9000       deploy/tiflash-9000

10.0.1.5:9090  prometheus   10.0.1.5    9090                             Up      data/prometheus-9090  deploy/prometheus-9090

10.0.1.5:3000  grafana      10.0.1.5    3000                             Up      -            deploy/grafana-3000

10.0.1.5:9093  alertmanager 10.0.1.5    9093/9094                        Up      data/alertmanager-9093 deploy/alertmanager-9093
2.执行缩容操作
tiup cluster scale-in <cluster-name> --node 10.0.1.5:20160


# tidb 端口是 4000
# tikv 端口是 20160
# pc 端口是 2379

其中 --node 参数为需要下线节点的 ID。
预期输出 Scaled cluster <cluster-name> in successfully 信息,表示缩容操作成功。
下线需要一定时间,下线节点的状态变为 Tombstone 就说明下线成功。

updatedupdated2022-12-302022-12-30