首页
解决方案
数据库专业技术服务全栈式PostgreSQL解决方案Oracle分布式存储化数据库云PolarDB一体化解决方案
产品
CLup:PostgreSQL高可用集群平台 CMiner: PostgreSQL中的CDC CData高性能数据库云一体机 CBackup数据库备份恢复云平台 CPDA高性能双子星数据库机 CSYun超融合虚拟机产品 ZQPool数据库连接池 ConshGuard数据保护产品 APCC: Greenplum管理平台
文档
文章
客户及伙伴
中启开源
关于我们
公司简介 联系我们
中启开源
修改标题
往前插入
往后插入
删除

部署CLup的MMN架构集群

1. CLup的MMN架构

用户可能有这样的需求,用户有三个机房,但当一个机房出现故障之后,要求还可以通过CLup管理界面对数据库进行统一管理。这时我们可以在三个机房各部署一个CLup管理节点,这三个CLup管理节点组成一个集群,三个CLup管理节点在内部会自动选主,内部会有一个主管理节点,但是三个不同机房不同IP地址的CLup的Web管理界面看到的数据库信息都是一样的,在任意一个管理节点做的管理操作(包括切换操作)都是完全对等的,这种架构在CLup中我们称之为:MMN(Multi-management node)架构。而只有一个CLup管理节点的架构,我们称之为SMN(Single management node)架构。

在部署单个CLup管理节点下,也是可以避免单点故障的。当CLup管理节点停止了或出现故障时并不影响数据库的运行,只是这时数据库也出现故障了,高可用的自动切换失效了。而我们通常会在一台单独的主机上部署CLup管理节点,这样CLup管理节点和数据库节点同时除故障的概率很低了。所以SMN架构可以满足绝大多数的需求。

如果SMN架构不能满足要求时,用户可以考虑MMN架构。当前MMN架构必须是三个管理节点,不能是两个管理节点。MMN架构有点类似数据库的一主两备的高可用模式,其高可用切换的逻辑如下:

序号 故障节点 存活节点 服务是否可用 备注
1 1备 1主1备 备节点重新启动服务后会自动修复
2 2备 1主 备节点重新启动服务后会自动修复
3 1主 2备 会自动选择一个备节点提升为主
4 1主1备 1备 如果主节点机器没有问题,开机后启动CLup服务即可恢复

注意

CLup 集群版部署仅CLup企业版本支持。

下面部署MMN架构的部署方式。

2. 安装部署CLup Server

示例环境:

序号 IP 主机名 初始角色 操作系统
1 10.197.171.80 CLup-Server01 Primary RockyLinux 8.8
2 10.197.171.81 CLup-Server02 Standby RockyLinux 8.8
3 10.197.171.82 CLup-Server03 Standby RockyLinux 8.8

2.1 部署CLup Server的主节点

部署的步骤分三个步骤,需要在主机(10.197.171.80)上执行:

  1. 安装CLup Server
  2. 查看CLup Server的状态
  3. 打开网页查看
第一步:安装CLup Server

CLup-Server01上使用有sudo权限的用户(通常是root)安装CLup Server服务:

  1. wget -qO /tmp/clup.sh --no-check-certificate https://get.csudata.com/csuinst/clup.sh && bash /tmp/clup.sh clup install

详情参考快速安装

提示

上面的shell需要wget和tar 命令,如果没有此工具请先安装wget tar

第二步:查看CLup Server的状态

安装完后,查看CLup服务程序状态命令如下:

  1. [root@CLup-Server01 opt]# systemctl status clup
  2. clup.service - clup
  3. Loaded: loaded (/etc/systemd/system/clup.service; enabled; vendor preset: disabled)
  4. Drop-In: /run/systemd/system/clup.service.d
  5. └─zzz-lxc-service.conf
  6. Active: active (running) since Fri 2024-08-09 06:04:44 UTC; 39s ago
  7. Main PID: 2732 (clupserver)
  8. Tasks: 31 (limit: 182297)
  9. Memory: 71.1M
  10. CGroup: /system.slice/clup.service
  11. ├─2732 /opt/clup/bin/clupserver start
  12. ├─2733 /opt/clup/bin/clupserver start
第三步:打开网页查看

我们可以打开网页 http://10.197.171.80:8090 查看下程序是否正常运行,默认的用户名和密码(admin/cstech)。

登录后看到的总览页面如下,此时CLup状态列表中可以看到CLupcsumdb(旧版本为clupmdb)服务都是running

img

2.2 部署CLup Server的备节点1

部署的步骤分三个步骤,需要在主机CLup-Server02上执行:

  1. 安装CLup Server
  2. 查看CLup Server的状态
  3. 停止本机上的CLup Server
第一步:安装CLup Server

CLup-Server02上使用有sudo权限的用户(通常是root)安装CLup Server服务:

  1. wget -qO /tmp/clup.sh --no-check-certificate https://get.csudata.com/csuinst/clup.sh && bash /tmp/clup.sh clup install

提示

需要使用wget和tar 命令,如果没有此工具请先安装wget tar

第二步:查看CLup Server的状态

安装完成后,我们查看下CLup Server的状态

  1. [root@CLup-Server02 ~]# systemctl status clup
  2. clup.service - clup
  3. Loaded: loaded (/etc/systemd/system/clup.service; enabled; vendor preset: disabled)
  4. Drop-In: /run/systemd/system/clup.service.d
  5. └─zzz-lxc-service.conf
  6. Active: active (running) since Fri 2024-08-09 06:17:10 UTC; 6s ago
  7. Main PID: 2040 (clupserver)
  8. Tasks: 20 (limit: 182297)
  9. Memory: 45.4M
  10. CGroup: /system.slice/clup.service
  11. ├─2040 /opt/clup/bin/clupserver start
  12. └─2041 /opt/clup/bin/clupserver start
  13. Aug 09 06:17:10 CLup-Server02 systemd[1]: Starting clup...
  14. Aug 09 06:17:10 CLup-Server02 clupserver[2036]: clup not running
  15. Aug 09 06:17:10 CLup-Server02 clupserver[2038]: 2024-08-09 06:17:10,872 INFO ========== CLup starting ==========
  16. Aug 09 06:17:10 CLup-Server02 su[2042]: (to csumdb) root on none
  17. Aug 09 06:17:10 CLup-Server02 su[2042]: pam_unix(su-l:session): session opened for user csumdb by (uid=0)
  18. Aug 09 06:17:10 CLup-Server02 systemd[1]: Started clup.
  19. Aug 09 06:17:11 CLup-Server02 su[2042]: pam_unix(su-l:session): session closed for user csumdb

提示

Active:栏显示active表示服务正常启动,如状态异常,可以查看安装启动过程中是否有报错,或者查看CLup服务的日志/opt/clup/logs/clupserver.log

第三步:停止本机上的CLup Server

现在先把服务停下来(后面集群部署需要修改配置文件,然后重新启动服务)。

  1. systemctl stop clup

2.3 部署CLup Server的备节点2

部署的步骤分三个步骤,需要在机器CLup-Server03上执行:

  1. 安装CLup Server
  2. 查看CLup Server的状态
  3. 停止本机上的CLup Server
第一步:安装CLup Server

CLup-Server03上使用有sudo权限的用户(通常是root)安装CLup-Server服务。

  1. wget -qO /tmp/clup.sh --no-check-certificate https://get.csudata.com/csuinst/clup.sh && bash /tmp/clup.sh clup install

提示

需要使用wget和tar 命令,如果没有此工具请先安装wget tar

第二步:查看CLup Server的状态

安装完成后,我们查看下CLup Server的状态

  1. [root@CLup-Server03 ~]# systemctl status clup
  2. clup.service - clup
  3. Loaded: loaded (/etc/systemd/system/clup.service; enabled; vendor preset: disabled)
  4. Drop-In: /run/systemd/system/clup.service.d
  5. └─zzz-lxc-service.conf
  6. Active: active (running) since Fri 2024-08-09 06:23:04 UTC; 5s ago
  7. Main PID: 2047 (clupserver)
  8. Tasks: 20 (limit: 182297)
  9. Memory: 47.4M
  10. CGroup: /system.slice/clup.service
  11. ├─2047 /opt/clup/bin/clupserver start
  12. └─2048 /opt/clup/bin/clupserver start
  13. Aug 09 06:23:04 CLup-Server03 systemd[1]: Starting clup...
  14. Aug 09 06:23:04 CLup-Server03 clupserver[2043]: clup not running
  15. Aug 09 06:23:04 CLup-Server03 clupserver[2045]: 2024-08-09 06:23:04,725 INFO ========== CLup starting ==========
  16. Aug 09 06:23:04 CLup-Server03 su[2049]: (to csumdb) root on none
  17. Aug 09 06:23:04 CLup-Server03 systemd[1]: Started clup.
  18. Aug 09 06:23:04 CLup-Server03 su[2049]: pam_unix(su-l:session): session opened for user csumdb by (uid=0)
  19. Aug 09 06:23:05 CLup-Server03 su[2049]: pam_unix(su-l:session): session closed for user csumdb

提示

Active:栏显示active表示服务正常启动,如状态异常,可以查看安装启动过程中是否有报错,或者查看CLup服务的日志/opt/clup/logs/clupserver.log

第三步:停止本机上的CLup Server

现在先把服务停下来(后面集群部署需要修改配置文件,然后重新启动服务)。

  1. systemctl stop clup

2.4 修改CLup Server配置

操作可以分为两个步骤,第二步需要在三台机器上都执行:

  1. 停止本机上的CLup Server
  2. 修改CLup Server配置文件
第一步:停止主节点上的CLup Server

在机器CLup-Server01上停止CLup Server服务

  1. systemctl stop clup
第二步:修改CLup Server配置文件

此操作需要在三台机器CLup-Server01、CLup-Server02、CLup-Server03上都执行。

打开配置文件/opt/clup/conf/clup.conf,找到如下配置并修改。

  1. # ++++++++++++++++++++++++++++++++ 容灾三节点CLup配置 ++++++++++++++++++++++++++++++++# 如果在3台机器上安装CLup做集群,则需要做下面的设置
  2. clup_host_list = 10.197.171.80,10.197.171.81,10.197.171.82

提示

clup_host_list配置为三台CLup服务的IP,使用’,’分隔。

2.5 备节点重新搭建csumdb并启动CLup Server服务

此操作分为3步:

  1. 重搭备节点1(10.197.171.81)上的csumdb
  2. 重搭备节点2(10.197.171.82)上的csumdb
  3. 登录Web页面检查CLup集群的状态
第一步:重搭备节点1(10.197.171.81)上的csumdb
  1. 停止并删除掉csumdb数据库的目录

    1. su - csumdb
    2. pg_ctl stop
    3. rm -rf /home/csumdb/pgdata
  2. 重新搭建csumdb

    1. PGPASSWORD=csuMgr232 pg_basebackup -h10.197.171.80 -p3500 -Ucsuapp -P -Xs -D $PGDATA
  3. 修改数据库参数/home/csumdb/pgdata/postgresql.conf,文件末尾增加下面的内容

    1. primary_conninfo='user=csuapp password=csuMgr232 host=10.197.171.80 port=3500 application_name=10.197.171.81 sslmode=prefer sslcompression=1 krbsrvname=postgres'

    提示

    注意替换application_name的值为当前主机的IP(此示例为:10.197.171.81)。

  4. 创建一个空文件,以表明此库是作为备库启动

    1. touch /home/csumdb/pgdata/standby.signal
  5. 启动数据库

    1. pg_ctl start
第二步:重搭备节点2(10.197.171.82)上的csumdb
  1. 停止并删除掉csumdb数据库的目录

    1. su - csumdb
    2. pg_ctl stop
    3. rm -rf /home/csumdb/pgdata
  2. 重新搭建csumdb

    1. PGPASSWORD=csuMgr232 pg_basebackup -h10.197.171.80 -p3500 -Ucsuapp -P -Xs -D $PGDATA
  3. 修改数据库参数/home/csumdb/pgdata/postgresql.conf,文件末尾增加下面的内容

    1. primary_conninfo='user=csuapp password=csuMgr232 host=10.197.171.80 port=3500 application_name=10.197.171.82 sslmode=prefer sslcompression=1 krbsrvname=postgres'

    提示

    注意替换application_name的值为当前主机的IP(此示例为:10.197.171.82)。

  4. 创建一个空文件,以表明此库是作为备库启动

    1. touch /home/csumdb/pgdata/standby.signal
  5. 启动数据库

    1. pg_ctl start
第三步:登录Web页面检查CLup集群的状态

登录Web页面查看,可以看到三个节点都正常了,至此CLup-Serve集群版就部署成功了。

img

上面的界面中我们看到有一条Clup-Check的告警,我们可以将其清理掉(标记为已解决->确定)即可。

img

3. 安装部署CLup Agent

clup-agentX.Y.Z.bin安装包暂不支持直接指定多个CLup Server的地址,CLup集群版下安装部署clup-agent的步骤如下:

  1. 安装CLup Agent服务
  2. 修改CLup Agent配置文件
  3. 启动CLup Agent服务
  4. 登录CLup的Web页面查看主机状态

示例环境

序号 IP 主机名 操作系统
1 10.197.171.83 CLup-Agent01 Rocky8.8
第一步: 安装CLup Agent服务

使用一键安装脚本快速安装,输入CLup Server的IP地址,这里我们先输入主节点的IP10.197.171.80

  1. wget -qO /tmp/clup.sh --no-check-certificate https://get.csudata.com/csuinst/clup.sh && bash /tmp/clup.sh clup-agent install
  2. ==== Your ip is 10.197.171.83/20
  3. Enter Clup Server IP Addr: 10.197.171.80
  4. Clup Server ip is 10.197.171.80!
  5. ==== register systemd service
  6. ...

后面我们可以看到默认启动服务失败,查看日志/opt/clup-agent/logs/clup-agent.log

  1. [root@CLup-Agent01 ~]# cat /opt/clup-agent/logs/clup-agent.log
  2. 2024-08-09 10:01:18,081 INFO clup-agent v5.1.3 Copyright (c) 2018-2023 CSUDATA.COM All rights reserved.
  3. 2024-08-09 10:01:18,844 INFO clup-agent v5.1.3 Copyright (c) 2018-2023 CSUDATA.COM All rights reserved.
  4. 2024-08-09 10:01:18,848 INFO ========== clup-agent starting ==========
  5. 2024-08-09 10:01:18,853 INFO clup return primary is 10.197.171.80, clup_host_list is ['10.197.171.80', '10.197.171.81', '10.197.171.82']
  6. 2024-08-09 10:01:18,853 CRITICAL clup is multiple clup mode, but clup-agent is not multiple clup mode, inconsistency config, so exit!

提示

从日志中可以看到CLup Server是集群模式,需要修改配置文件。

第二步:修改CLup Agent配置文件

修改配置文件/opt/clup-agent/clup-agent.conf,修改下面这行

  1. server_address = 10.197.171.80:4242,10.197.171.81:4242,10.197.171.82:4242

提示

替换IP地址为三台CLup Server的IP。

第三步:启动CLup Agent服务

启动clup-agent服务

  1. systemctl start clup-agent

如果没有注册systemctl系统服务,则使用下面的命令

  1. /Sopt/clup-agent/bin/clup-agent start
第四步:登录CLup的Web页面查看主机状态

登录Web页面可以查看到clup-agent的状态

img

目录
img