扩容的内部逻辑如同部署类似,TiOps 会先保证节点的 SSH 连接,在目标节点上创建必要的目录,然后执行部署并且启动服务。其中 PD 节点的扩容会通过 join 方式加入到集群中,并且会更新与 PD 有关联的服务的配置;其他服务直接启动加入到集群中。所有服务在扩容时都会做正确性验证,最终返回是否扩容成功。

    1. 新建 scale.yaml 文件,添加 TiKV 和 PD 节点 IP。
    1. 执行扩容操作。TiOps 根据 scale.yaml 文件中声明的端口、目录等信息在集群中添加相应的节点。
    1. $ tiops scale-out -c tidb-test -T scale.yaml

    执行完成之后可以通过 tiops display -c tidb-test --status 命令检查扩容后的集群状态。

    1.3.1.2 缩容

    • 对 TiKV 及 Binlog 组件的操作
      • TiOps 通过 API 将其下线后直接退出而不等待下线完成
      • 等之后再执行集群操作相关的命令时会检查是否存在已经下线完成的 TiKV 或者 Binlog 节点。如果不存在,则继续执行指定的操作;如果存在,则执行如下操作:
        • 停止已经下线掉的节点的服务
        • 清理已经下线掉的节点的相关数据文件
        • 更新集群的拓扑,移除已经下线掉的节点
    1. 查看并选择需要下线的节点。为了操作简便,我们采用指定 ID 的方式来下线节点,可以通过 display 命令来查看指定集群所有节点的 ID。这里选择 ID 为 d294683d 的 PD 节点。
    1. $ tiops display -c tidb-test
    2. TiDB cluster tidb-test, version 4.0.0-beta.1
    3. ID Role Host Ports Data Dir Deploy Dir
    4. e5f0e2d2 Monitoring 10.9.26.126 9090/9091 /home/tidb/data/tidb-test/monitoring-e5f0e2d2 /home/tidb/deploy/tidb-test/monitoring-e5f0e2d2
    5. f8cd24a7 PD 10.9.26.126 2379/2380 /home/tidb/data/tidb-test/pd-f8cd24a7 /home/tidb/deploy/tidb-test/pd-f8cd24a7
    6. g993a624 PD 10.9.170.207 2379/2380 /home/tidb/data/tidb-test/pd-g993a624 /home/tidb/deploy/tidb-test/pd-g993a624
    7. d294683d PD 10.9.20.15 2379/2380 /home/tidb/data/tidb-test/pd-d294683d /home/tidb/deploy/tidb-test/pd-d294683d
    8. abb1e0ca TiDB 10.9.170.207 4000/10080 - /home/tidb/deploy/tidb-test/tidb-abb1e0ca
    9. db591398 Monitored 10.9.165.44 9100/9115 - /home/tidb/deploy/tidb-test/monitored-db591398
    10. d444b608 Monitored 10.9.170.207 9100/9115 - /home/tidb/deploy/tidb-test/monitored-d444b608
    11. de205f0f TiKV 10.9.26.126 20160/20180 /home/tidb/data/tidb-test/tikv-de205f0f /home/tidb/deploy/tidb-test/tikv-de205f0f
    12. jd4610dc TiKV 10.9.170.207 20160/20180 /home/tidb/data/tidb-test/tikv-jd4610dc /home/tidb/deploy/tidb-test/tikv-jd4610dc
    13. bcb3e186 TiKV 10.9.165.44 20160/20180 /home/tidb/data/tidb-test/tikv-bcb3e186 /home/tidb/deploy/tidb-test/tikv-bcb3e186
    14. h592456d TiKV 10.9.20.15 20160/20180 /home/tidb/data/tidb-test/tikv-h592456d /home/tidb/deploy/tidb-test/tikv-h592456d
    15. h5f8ca0d Grafana 10.9.26.126 3001 - /home/tidb/deploy/tidb-test/grafana-h5f8ca0d
    1. 执行缩容操作。
    1. -c | --cluster-name 必选参数。用以标识需要扩容的集群
    2. -f | --forks 可选参数。执行命令时的并发数,默认:5;当节点数比较多时,可以适当调大

    执行完成之后可以通过 tiops display -c tidb-test --status 命令检查缩容后的集群状态。