arm 单机上模拟部署 tidb 生产环境集群 安装了一套tidb,最近又要验证tidb的高可用等信息,发现原来的 tidb 集群不满足要求,所以进行了扩容,这次是单机扩容。

目前的集群信息如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
tiup cluster display cjctu
Cluster type:       tidb
Cluster name:       cjctu
Cluster version:    v7.1.3
Deploy user:        tidb
SSH type:           builtin
Dashboard URL:      http://10.0.0.15:2379/dashboard
Dashboard URLs:     http://10.0.0.15:2379/dashboard
Grafana URL:        http://10.0.0.15:3000
ID               Role        Host       Ports                            OS/Arch        Status   Data Dir                    Deploy Dir
--               ----        ----       -----                            -------        ------   --------                    ----------
10.0.0.15:3000   grafana     10.0.0.15  3000                             linux/aarch64  Up       -                           /tidb-deploy/grafana-3000
10.0.0.15:2379   pd          10.0.0.15  2379/2380                        linux/aarch64  Up|L|UI  /tidb-data/pd-2379          /tidb-deploy/pd-2379
10.0.0.15:9090   prometheus  10.0.0.15  9090/9115/9100/12020             linux/aarch64  Up       /tidb-data/prometheus-9090  /tidb-deploy/prometheus-9090
10.0.0.15:4000   tidb        10.0.0.15  4000/10080                       linux/aarch64  Up       -                           /tidb-deploy/tidb-4000
10.0.0.15:9000   tiflash     10.0.0.15  9000/3930/20170/20292/8234/8123  linux/aarch64  Up       /tidb-data/tiflash-9000     /tidb-deploy/tiflash-9000
10.0.0.15:20160  tikv        10.0.0.15  20160/20180                      linux/aarch64  Up       /tidb-data/tikv-20160       /tidb-deploy/tikv-20160
10.0.0.15:20161  tikv        10.0.0.15  20161/20181                      linux/aarch64  Up       /tidb-data/tikv-20161       /tidb-deploy/tikv-20161
10.0.0.15:20162  tikv        10.0.0.15  20162/20182                      linux/aarch64  Up       /tidb-data/tikv-20162       /tidb-deploy/tikv-20162
Total nodes: 8

借助AI写配置文件:

目前集群的状态如下: tiup cluster display cjctu
Cluster type: tidb
Cluster name: cjctu
Cluster version: v7.1.3
Deploy user: tidb
SSH type: builtin
Dashboard URL: http://10.0.0.15:2379/dashboard
Dashboard URLs: http://10.0.0.15:2379/dashboard
Grafana URL: http://10.0.0.15:3000
ID Role Host Ports OS/Arch Status Data Dir Deploy Dir


10.0.0.15:3000 grafana 10.0.0.15 3000 linux/aarch64 Up - /tidb-deploy/grafana-3000
10.0.0.15:2379 pd 10.0.0.15 2379/2380 linux/aarch64 Up|L|UI /tidb-data/pd-2379 /tidb-deploy/pd-2379
10.0.0.15:9090 prometheus 10.0.0.15 9090/9115/9100/12020 linux/aarch64 Up /tidb-data/prometheus-9090 /tidb-deploy/prometheus-9090
10.0.0.15:4000 tidb 10.0.0.15 4000/10080 linux/aarch64 Up - /tidb-deploy/tidb-4000
10.0.0.15:9000 tiflash 10.0.0.15 9000/3930/20170/20292/8234/8123 linux/aarch64 Up /tidb-data/tiflash-9000 /tidb-deploy/tiflash-9000
10.0.0.15:20160 tikv 10.0.0.15 20160/20180 linux/aarch64 Up /tidb-data/tikv-20160 /tidb-deploy/tikv-20160
10.0.0.15:20161 tikv 10.0.0.15 20161/20181 linux/aarch64 Up /tidb-data/tikv-20161 /tidb-deploy/tikv-20161
10.0.0.15:20162 tikv 10.0.0.15 20162/20182 linux/aarch64 Up /tidb-data/tikv-20162 /tidb-deploy/tikv-20162
Total nodes: 8

在本机上,在增加两个pd,2个tidb ,端口别冲突.

您好!我是 TiDB 数据库运维专家。根据您提供的集群现状(所有组件均部署在 10.0.0.15 单机上),在同一台机器上扩容 2 个 PD 节点和 2 个 TiDB 节点,核心难点在于精准规划端口和目录,以避免与现有服务发生冲突。

现有集群已占用端口总结:

  • PD: 2379 (Client), 2380 (Peer)
  • TiDB: 4000 (MySQL), 10080 (Status)
  • TiKV: 20160/20180, 20161/20181, 20162/20182
  • TiFlash: 9000, 3930, 8123, 8234, 20170, 20292
  • 监控: 9090 (Prometheus), 3000 (Grafana)

以下是为您定制的扩容操作手册。

1. 规划拓扑 (scale-out.yaml)

我们需要为新节点分配未被占用的端口,并指定独立的部署目录。

端口规划:

  • 新增 PD 节点 1: Client Port 2381, Peer Port 2382
  • 新增 PD 节点 2: Client Port 2383, Peer Port 2384
  • 新增 TiDB 节点 1: Port 4001, Status Port 10081
  • 新增 TiDB 节点 2: Port 4002, Status Port 10082

请在中控机(运行 tiup 的机器)上创建一个名为 scale-out.yaml 的文件,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# scale-out.yaml
pd_servers:
- host: 10.0.0.15
ssh_port: 22
name: "pd-2381"
client_port: 2381
peer_port: 2382
deploy_dir: "/tidb-deploy/pd-2381"
data_dir: "/tidb-data/pd-2381"
log_dir: "/tidb-deploy/pd-2381/log"

- host: 10.0.0.15
ssh_port: 22
name: "pd-2383"
client_port: 2383
peer_port: 2384
deploy_dir: "/tidb-deploy/pd-2383"
data_dir: "/tidb-data/pd-2383"
log_dir: "/tidb-deploy/pd-2383/log"

tidb_servers:
- host: 10.0.0.15
ssh_port: 22
port: 4001
status_port: 10081
deploy_dir: "/tidb-deploy/tidb-4001"
log_dir: "/tidb-deploy/tidb-4001/log"

- host: 10.0.0.15
ssh_port: 22
port: 4002
status_port: 10082
deploy_dir: "/tidb-deploy/tidb-4002"
log_dir: "/tidb-deploy/tidb-4002/log"

直接运行:

1
tiup cluster scale-out cjctu scale-out.yaml

会给出确认信息,然后输入 y。这里忘记截图了。

扩容后的信息如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
tiup cluster display cjctu
Cluster type:       tidb
Cluster name:       cjctu
Cluster version:    v7.1.3
Deploy user:        tidb
SSH type:           builtin
Dashboard URL:      http://10.0.0.15:2379/dashboard
Dashboard URLs:     http://10.0.0.15:2379/dashboard
Grafana URL:        http://10.0.0.15:3000
ID               Role        Host       Ports                            OS/Arch        Status   Data Dir                    Deploy Dir
--               ----        ----       -----                            -------        ------   --------                    ----------
10.0.0.15:3000   grafana     10.0.0.15  3000                             linux/aarch64  Up       -                           /tidb-deploy/grafana-3000
10.0.0.15:2379   pd          10.0.0.15  2379/2380                        linux/aarch64  Up|L|UI  /tidb-data/pd-2379          /tidb-deploy/pd-2379
10.0.0.15:2381   pd          10.0.0.15  2381/2382                        linux/aarch64  Up       /tidb-data/pd-2381          /tidb-deploy/pd-2381
10.0.0.15:2383   pd          10.0.0.15  2383/2384                        linux/aarch64  Up       /tidb-data/pd-2383          /tidb-deploy/pd-2383
10.0.0.15:9090   prometheus  10.0.0.15  9090/9115/9100/12020             linux/aarch64  Up       /tidb-data/prometheus-9090  /tidb-deploy/prometheus-9090
10.0.0.15:4000   tidb        10.0.0.15  4000/10080                       linux/aarch64  Up       -                           /tidb-deploy/tidb-4000
10.0.0.15:4001   tidb        10.0.0.15  4001/10081                       linux/aarch64  Up       -                           /tidb-deploy/tidb-4001
10.0.0.15:4002   tidb        10.0.0.15  4002/10082                       linux/aarch64  Up       -                           /tidb-deploy/tidb-4002
10.0.0.15:9000   tiflash     10.0.0.15  9000/3930/20170/20292/8234/8123  linux/aarch64  Up       /tidb-data/tiflash-9000     /tidb-deploy/tiflash-9000
10.0.0.15:20160  tikv        10.0.0.15  20160/20180                      linux/aarch64  Up       /tidb-data/tikv-20160       /tidb-deploy/tikv-20160
10.0.0.15:20161  tikv        10.0.0.15  20161/20181                      linux/aarch64  Up       /tidb-data/tikv-20161       /tidb-deploy/tikv-20161
10.0.0.15:20162  tikv        10.0.0.15  20162/20182                      linux/aarch64  Up       /tidb-data/tikv-20162       /tidb-deploy/tikv-20162
Total nodes: 12

其他命令:查看/编辑集群配置信息

1
2
tiup cluster edit-config cjctu
tiup cluster show-config cjctu

原文作者: liups.com

原文链接: http://liups.com/posts/f1b0c068/

许可协议: 知识共享署名-非商业性使用 4.0 国际许可协议