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

网友投稿 705 2023-11-24

前言:在上一篇文章中我们记录了在同城双机房私用公网进行搭建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,生产中建议只放行对应端口

安全组策略如下

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

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

服务器公网ipssh端口-外pd端口外pd端口外tikv端口外tikv端口外tidb端口外tidb端口外告警告警监控grafana原集群-外网地址部署PD、TIDB、TIKVserver158.214.27.A20122123791238010160101801400010080部署PD、TIDB、TIKVserver2218.90.180.B20222223792238020160201802400020080部署PD、TIDB、TIKV、ALERT、MONITORserver3121.235.65.C203223237932380301603018034000300809093909490903000新增节点部署PD、TIDB、TIKVserver4116.62.208.D22423794238040160401804400040080服务器内网ipssh端口-内pd端口内pd端口内tikv端口内tikv端口内tidb端口内tidb端口内告警告警监控grafana原集群-内网地址部署PD、TIDB、TIKVserver1192.168.30.20122123791238010160101801400010080部署PD、TIDB、TIKVserver2192.168.30.20222223792238020160201802400020080部署PD、TIDB、TIKV、ALERT、MONITORserver3192.168.0.203223237932380301603018034000300809093909490903000新增节点部署PD、TIDB、TIKVserver4172.16.0.18822423794238040160401804400040080

三、编辑扩容文件

# # 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

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

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

五、缩容

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

执行缩容命令

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

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

六、测试sql连接

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

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

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【SOP】最佳实践之 TiDB OOM 分析
下一篇:TiDB Cloud 上 Tiflash 列存功能初体验
相关文章