1. Clup 简介
CLup最大的特色功能是高可用。目前已存在几个开源的高可用软件:
- keepalived: 是一个较简单的高可用软件,其最早是于用LVS负载均衡软件,现在也常常用于ngnix的高可用,也可以用于数据库领域,但需要自己定制切换脚本才能完成数据库的高可用功能,另keepalived基于VRRP协议实现的,其存在着脑裂的问题。
- haproxy: 通常是用于http等web应用,较少使用于数据库领域
- Heartbeat或pacemaker+corosync: 这两个软件是通用型高可用软件,并不是专为PostgreSQL设计,安装时需要安装很多依赖包,有很多的配置,比较复杂,如果不是非常精通的人员搭建出来的高可用集群,经常容易出现误切换等问题
- repmgr:是一个套针对于PostgreSQL数据库的高可用方案,相对其他的高可用方案来说,相对比较简单。不足之处在于没有对VIP的管理,如果要实现VIP的管理,需要自己写脚本来实现。
- patroni:是另一个套针对于PostgreSQL数据库的高可用方案,相对repmgr来说,复杂一些。不足之处与repmgr类似,没有实现对VIP的管理,如果要实现VIP的管理,需要自己写脚本来实现
- pgpool-II: 是PostgreSQL数据库领域比较常见的高可用软件,其最早是做为连接池来使用的,pgpool-II除了高可用功能外,设计了一些更复杂的使用模式,对于初学者来说,如果没有深入的学习pgpool-II,根本搞不清楚复制模式、主备模式、并行查询模式的区别。实际上pgpool-II这么多的模式真正在企业中可以使用的模式基本只有“流复制+Standby的主/备模式”,其它模式都有各种各样的缺点,实用性不强。但由于这些绝大多数使用不上的功能,导致pgpool-II的配置很复杂,稍有不慎就容易发生因为配置不合理而导致的重大事故。
但上面这些开源软件无一例外有以下这些问题:
- 需要自己实现一些脚本才能完整实现高可用的功能
- HA的切换的配置有一定的复杂度,文档中对一些高可用切换原理性和参数介绍得较少或介绍得晦涩难懂,难以掌握,如果没有深入的学习,容易出现错误的配置,从而导致一些严重得故障
- 无集中管理的功能,无法一套软件同时管理多套高可用集群,增加了运维工作的难度
所以 中启乘数科技 为PostgreSQL数据库量身定制一套最符合PostgreSQL用户的高可用及监控管理的软件,让企业可以快速搭建一套高可靠、高可用、高性能的数据库,同时满足易管理维护、集中管理的一套数据库解决方案。
2.Clup 安装
2.1 安装基础
CLup程序分两个模块:
- clup-server: 通常需要一台单独的机器安装此模块,此管理模块提供WEB界面以及其他的管理功能,高可用功能也是由此模块完成。clup-server从这台机器上去探测各个数据库是否正常,如果不正常,会执行相应的高可用切换动作。要求这台机器可以访问所有的数据库主机。
- clup-agent: 每台数据库主机上都需要安装此模块,clup-server模块是通过向每台数据库主机上的clup-agent程序发送命令来完成对每台机器上的数据库的控制。
机器规划:
主机 | IP | 作用 | 数据目录 |
---|---|---|---|
Ufo001 | 39.106.66.132 | 部署clup-server | N/A |
Ufo002 | 39.106.17.174 | 数据库机器,部署clup-agent | /data/pgdata |
Ufo003 | 39.106.133.186 | 数据库机器,部署clup-agent | /data/pgdata |
Ufo004 | 39.107.72.46 | 数据库机器,部署clup-agent | /data/pgdata |
2.2 环境依赖
CLUP管理模块需要安装到一台独立的机器上,对此机器的配置不需要很高,具体需求如下:
- X86或ARM64的服务器
- 对CPU基本没有要求
- 4G内存以上
- 硬盘20G以上,如果使用TopSQL的功能,建议200G以上磁盘空间。
CLUP管理机器以及clup-agent部署的数据库库主机上需要安装以下依赖包:
yum install -y tcl tcl-devel tk
注意:clup-agent机器上需要安装ipmitool工具、arping包以及psmisc.x86_64包,clup-agent需要使用ipmitool中的ipmitool命令和arping包中的arping命令来以及psmisc.x86_64包中的fuser命令。
如果在CentOS或Redhat等操作系统下,安装命令如下:
yum install ipmitool.x86_64
yum install psmisc
注意:clup-server和clup-agent模块都需要运行在操作系统的 root 用户下。
CLUP目前支持PostgreSQL9.5以上的版本,不支持PostgreSQL9.5以下的版本。
注意:数据库软件中需要安装 pg_stat_statements 插件。
2.3 安装 clup-server
在 ufo001 机器上:
安装clupmdb模块,下载clupmdb安装包:
[root@ufo001 ~]# wget https://gitee.com/csudata_admin/clup-community/releases/download/4.2.5/clupmdb4.0.0.el7.x86_64.bin
运行:bash clupmdb4.0.0.el7.x86_64.bin:
[root@ufo001 ~]# bash clupmdb4.0.0.el7.x86_64.bin
==== Installation is starting ...
Loaded plugins: fastestmirror
Determining fastest mirrors
安装clup-server模块,下载clup-server安装包:
[root@ufo001 ~]# wget https://gitee.com/csudata_admin/clup-community/releases/download/4.2.5/clup4.2.5.el7.x86_64.bin
运行:bash clup4.2.5.el7.x86_64.bin:
[root@ufo001 ~]# bash clup4.2.5.el7.x86_64.bin
==== Installation is starting ...
==== Your ip is 39.106.66.132/20
==== register systemd service ...
already register systemd service!
==== register systemd service ok.
==== Installation is complete.
然后我们在浏览器输入 http://39.106.66.132:8090 ,打开WEB界面(如果是云服务器需要设置安全策略,开放端口,允许浏览器访问):
默认的用户名为:admin
默认密码为:cstech
输入后就可以登陆CLup的管理界面了。WEB界面中可以管理的数据库当前都是空的,还需要在数据库主机中安装clup-agent后,才能进一步的操作。
2.4 安装clup-agent
在需要部署数据库的主机上安装clup-agent。在本示例是在 ufo002、ufo003、ufo004 机器上安装clup-agent。
下载clup-agent安装程序:
wget https://gitee.com/csudata_admin/clup-community/releases/download/4.2.5/clup-agent4.2.5.el7.x86_64.bin
运行:bash clup-agent4.2.5.el7.x86_64.bin:
[root@xxx ~]# bash clup-agent4.2.5.el7.x86_64.bin
==== Installation is starting ...
==== Your ip is 10.199.160.11/20
Enter Clup Server IP Addr:
输入clup服务端的IP地址:ufo001 然后回车继续:
Enter Clup Server IP Addr: 39.106.66.132
Clup Server ip is 39.106.66.132!
==== register systemd service ...
2022-11-23 19:07:06,082 INFO clup-agent v4.2.5 Copyright (c) 2018-2022 CSUDATA.COM All rights reserved.
already register systemd service!
==== register systemd service ok.
==== Installation is complete.
2.5 安装PostgreSQL数据库
可以使用PostgreSQL官方提供的方法安装PostgreSQL。但这里为了方便大家快速的入门,这里提供了一个快速安装的PostgreSQL数据库的方法,下载安装包:
wget https://gitee.com/csudata/csupg/releases/download/1.0/csupg.1.0.el7.x86_64.bin
安装:
bash csupg.1.0.el7.x86_64.bin
提供了多个版本的安装包,具体的数据库安装可以在Web控制台上进行操作安装:
3. culp 实战操作
3.1 创建数据库实例
在 Web 或后台创建管理用户:
搭建备库
垃圾!垃圾!垃圾!请不要下载社区版测试!浪费时间!各种限制,无法进行MVP最佳实战测试。遇到过最垃圾的软件!