0
0
1
0
专栏/.../

同城双机房公网+阿里云ECS搭建混合云TIDB集群

 Fly-bird  发表于  2023-11-14

前言:在上一篇文章中我们记录了在同城双机房私用公网进行搭建TIDB集群的操作步骤,详见https://tidb.net/blog/3e68a790。由于最近出现的某云故障问题,为了追求高可用的数据库集群,所以我们需要组建一个混合云。

本文记述通过公网环境扩容阿里云ECS节点,组建混合云的TIDB集群操作步骤,组建完成的混合云架构为无锡江阴IDC节点1+无锡惠山IDC节点2+阿里云杭州节点3,通过云服务器+IDC服务器形成高可用的数据库集群,本文是基于测试实现,真正的架构是无锡江阴IDC节点1*2+无锡惠山IDC节点2*2+阿里云杭州节点3*3,形成7个PD,7个tidb-server,7个tikv的生产部署节点。

一、新增阿里云ECS服务器节点

购买云服务器后,在安全组中放行集群其他服务器的网络,本文为了快速测试,所以全部放行了集群其他服务器的ip,生产中建议只放行对应端口

image.png

安全组策略如下

企业微信截图_16999278647747.png

二、计划扩容后的服务器分布

新增阿里云ECS为节点4,原集群节点2准备在完成扩容后进行缩容

服务器 公网ip ssh端口-外 pd端口外 pd端口外 tikv端口外 tikv端口外 tidb端口外 tidb端口外 告警 告警 监控 grafana
原集群-外网地址 部署PD、TIDB、TIKV server1 58.214.27.A 20122 12379 12380 10160 10180 14000 10080
部署PD、TIDB、TIKV server2 218.90.180.B 20222 22379 22380 20160 20180 24000 20080
部署PD、TIDB、TIKV、ALERT、MONITOR server3 121.235.65.C 20322 32379 32380 30160 30180 34000 30080 9093 9094 9090 3000
新增节点 部署PD、TIDB、TIKV server4 116.62.208.D 22 42379 42380 40160 40180 44000 40080
服务器 内网ip ssh端口-内 pd端口内 pd端口内 tikv端口内 tikv端口内 tidb端口内 tidb端口内 告警 告警 监控 grafana
原集群-内网地址 部署PD、TIDB、TIKV server1 192.168.30.201 22 12379 12380 10160 10180 14000 10080
部署PD、TIDB、TIKV server2 192.168.30.202 22 22379 22380 20160 20180 24000 20080
部署PD、TIDB、TIKV、ALERT、MONITOR server3 192.168.0.203 22 32379 32380 30160 30180 34000 30080 9093 9094 9090 3000
新增节点 部署PD、TIDB、TIKV server4 172.16.0.188 22 42379 42380 40160 40180 44000 40080

三、编辑扩容文件

# # Global variables are applied to all deployments and used as the default value of
# # the deployments if a specific deployment value is missing.
global:
  user: "tsp-tidb"
  ssh_port: 22
  deploy_dir: "/data/tidb-deploy"
  data_dir: "/data/tidb-data"

# # Monitored variables are applied to all the machines.
#monitored:
# node_exporter_port: 9100
# blackbox_exporter_port: 9115

pd_servers:
  - host: 116.62.208.D
    ssh_port: 22
    name: "pd-4"
    client_port: 42379
    peer_port: 42380
    deploy_dir: "/data/tidb-deploy/pd-42379"
    data_dir: "/data/tidb-data/pd-42379"
    log_dir: "/data/tidb-deploy/pd-42379/log"
tidb_servers:
  - host: 116.62.208.D
    ssh_port: 22
    port: 44000
    status_port: 40080
    deploy_dir: "/data/tidb-deploy/tidb-44000"
    log_dir: "/data/tidb-deploy/tidb-44000/log"
    config:
        log.slow-query-file: /data/tidb-slow-overwrited.log
tikv_servers:
  - host: 116.62.208.D
    ssh_port: 22
    port: 40160
    status_port: 40180
    deploy_dir: "/data/tidb-deploy/tikv-40160"
    data_dir: "/data/tidb-data/tikv-40160"
    log_dir: "/data/tidb-deploy/tikv-40160/log"

四、执行扩容

tiup cluster scale-out qzn scale-out.yaml

企业微信截图_16999286273138.png

企业微信截图_16999287767120.png

扩容完成后发现有个PD节点是DOWN的状态,这是因为PD只能是奇数个节点,不允许出现偶数个节点。由于即将卸载一个PD节点,所以本问题忽略

企业微信截图_1699928868369.png

在控制面板上查看tidb集群的节点状态

企业微信截图_16999289511999.png

五、缩容

基于成本考虑,本环境为为无锡江阴IDC节点1+无锡惠山IDC节点2+阿里云杭州节点3,所以缩容江阴IDC节点2

执行缩容命令

tiup cluster scale-in qzn --node 116.62.208.B:42379

缩容后查看状态,状态为DOWN的节点消失

企业微信截图_16999291173267.png

六、测试sql连接

为了保证正常的使用,我们测试各节点的连接(阿里云节点需要在安全组放行tidb-server的端口44000)

image.png

企业微信截图_16999293735857.png

企业微信截图_16999294016931.png

七、至此我们就完成了TIDB集群的混合云部署

经过测试,我们可以通过3个节点的任意一个IP地址连接使用数据库,部署的代码也可以通过内网IP在局域网环境下连接数据库。在此模式下,我们可以将代码分散的部署在各个机房,实现服务的主备部署,在保障数据库高可用的同时也可以保障业务系统的高可用,从而实现系统容灾。

总结:在生产环境中,我们准备使用IDC节点1*2+IDC节点2*2+云服务节点3*3,形成7个PD+7个tidb-server+7个tikv的生产部署节点,每个节点都可以实现高可用。

0
0
1
0

版权声明:本文为 TiDB 社区用户原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接和本声明。

评论
暂无评论