引言
CLup软件是一款专为管理PostgreSQL、PolarDB等数据库设计的强大工具,其特色功能之一在于对数据库高可用性的支持。要确保数据库管理的持续性,管理软件自身的高可用性同样至关重要,那CLup自身怎么实现高可用呢?本文将深入探讨CLup如何实现其自身的高可用性,揭秘其独特的MMN架构(Multi-Management Node,即多管理节点)部署方式。
示例环境
部署单节点CLup-Server
在三台服务器上使用sudo权限的用户(通常是root)安装CLup-Server服务:
wget -qO /tmp/clup.sh --no-check-certificate
https://get.csudata.com/csuinst/clup.sh && bash /tmp/clup.sh clup install
安装后进入CLup Web管理界面,在总览处看到目前CLup-Server只有一个管理端,运行状态正常。
修改CLup Server配置
停止所有节点的CLup Server服务
systemctl stop clup
在所有节点上修改/opt/clup/conf/clup.conf配置文件,配置如下内容:
# ++++++++++++++++++++++++++++++++ 容灾三节点CLup配置 ++++++++++++++++++++++++++++++++
# 如果在3台机器上安装CLup做集群,则需要做下面的设置
clup_host_list = 10.197.165.27,10.197.165.28,10.197.165.29
重搭Standby节点的csumdb
停止并删除掉Standby节点的csumdb数据库的目录
su - csumdb
pg_ctl stop
rm -rf /home/csumdb/pgdata
重新搭建Standby节点的csumdb
PGPASSWORD=csuMgr232 pg_basebackup -h10.197.165.27 -p3500 -Ucsuapp -P -Xs -D $PGDATA
搭建后在/home/csumdb/pgdata/postgresql.conf文件末尾增加下面的内容
primary_conninfo='user=csuapp password=csuMgr232 host=10.197.165.27 port=3500 application_name=10.197.165.28 sslmode=prefer sslcompression=1 krbsrvname=postgres'
创建standby.signal,以表明此库是作为备库启动
touch /home/csumdb/pgdata/standby.signal
启动Standby节点的csumdb
pg_ctl start
此时CLup的Web界面可以看到有三个管理端,即部署MMN架构成功了。
在各管理节点故障后,会有对应高可用措施来修复,保证CLup软件的持续可用。
具体如下:
安装CLup-Agent
在CLup-Server启用MMN架构后,CLup-agent指定的CLup-Server地址配置也将变化。目前clup-agentX.Y.Z.bin安装包暂不支持直接指定多个CLup Server的地址,所以需要安装后修改配置文件指定多个CLup-Server地址再重启CLup-Agent。
安装Clup-Agent,在提示输入CLup-Server地址时输入Primary节点的地址。
wget -qO /tmp/clup.sh --no-check-certificate
https://get.csudata.com/csuinst/clup.sh && bash /tmp/clup.sh clup-agent install
==== Your ip is 10.197.171.83/20
Enter Clup Server IP Addr: 10.197.171.80
Clup Server ip is 10.197.171.80!
==== register systemd service
...
注意此时安装过程中启动CLup-Agent服务将会失败,查看CLup-Agent日志
cat /opt/clup-agent/logs/clup-agent.log
2025-01-17 09:53:57,631 INFO clup-agent v5.1.5 Copyright (c) 2018-2023 CSUDATA.COM All rights reserved.
2025-01-17 09:53:58,174 INFO clup-agent v5.1.5 Copyright (c) 2018-2023 CSUDATA.COM All rights reserved.
2025-01-17 09:53:58,180 INFO ========== clup-agent starting ==========
2025-01-17 09:53:58,189 INFO clup return primary is 10.197.165.27, clup_host_list is ['10.197.165.27', '10.197.165.28', '10.197.165.29']
2025-01-17 09:53:58,189 CRITICAL clup is multiple clup mode, but clup-agent is not multiple clup mode, inconsistency config, so exit!
修改CLup-Agent配置文件
/opt/clup-agent/conf/clup-agent.conf
server_address = 10.197.165.27:4242,10.197.165.28:4242,10.197.165.29:4242
启动CLup-Agent
systemctl start clup-agent
进入CLup的Web界面,可在系统管理->Agent状态管理检查Agent状态。
总结
部署MMN架构的CLup软件不仅在功能上提供了对PostgreSQL、PolarDB等数据库的全面管理,更在架构层面确保了自身的高可用性。在遭遇单点故障、网络问题或硬件失效等挑战时,MMN架构能够迅速切换至备用管理节点,无缝接管任务,从而保障CLup软件的持续运行与数据库管理的连贯性。简而言之,CLup软件以MMN架构为基石,构建了一道坚实的防线,持续为您的数据库安全、高效运行保驾护航!
更多技术了解请移步至官网:www.csudata.com