CLup产品文档

往前插入
往后插入
删除

CLup简介

1. 为什么要使用CLup

CLup软件一套管理PostgreSQL、PolarDB等数据库的管理软件。

企业在开始使用PostgreSQL、PolarDB等数据库时,总是遇到这些问题:

  • 怎么实现数据库的高可用方案:当数据库出现问题时,能自动切换,不需要DBA半夜爬起来处理。
  • 如何对数据库进行监控告警。
  • 如何对进行备份,保证数据的安全性。
  • 如何快速搭建一套数据库系统起来。
  • 如何快速搭建现有数据库的备库。
  • 如何快速修改主备库之间的级连关系。
  • 如何实现容灾,当整个机房的网络断了,如何快速恢复业务。

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用户的高可用及监控管理的软件,让企业可以快速搭建一套高可靠、高可用、高性能的数据库,同时满足易管理维护、集中管理的一套数据库解决方案。

使用CLup可以轻松创建和管理几十套至上百套PostgreSQL高可用的数据库集群。当发生故障切换后,有详细得故障切换日志,方便故障原因定位。另还可以手工一键切换,满足运维中日常停机的需要。CLup还提供了PostgreSQL的一些基本监控和TOP SQL的监控以及容灾管理及一键加备库,最大限度的简化DBA的工作。

2. CLup发展历程

CLup软件从2017年就开始研发,第一个正式版本发布于2017年11月20日。版本发展的历程如下:

  • CLup1.0:实现了高可用、读写分离的功能,命令行管理模式。
  • CLup2.0: 增加了WEB统一管理界面,大大提升了易用性。
  • CLup3.0: 增加了共享存储类型的高可用模式;增加了一键搭建备库的功能,增加了数据库容灾管理的功能;
  • CLup4.0: 增加了数据库备份的功能,全面支持了国产鲲鹏平台和各种国产OS,如UOS、银河麒麟。支持了多种的基于PostgreSQL的国产数据库。

3. CLup的亮点功能

亮点功能如下:

  • 基于流复制的高可用集群中,当主库出现故障时,备库被激活后,原先的主库需要转换成目前新主库的备库,这个过程很复杂,我们的程序可以把各种情况下做成自动化,整个恢复过程都可以是一键完成。
  • 可以支持容灾的高可用方案,如一主两个本地备库+一个远程容灾库,本地主库出现问题时优先切换本地备库,本地出现严重问题后,可以一键切换容灾库。
  • 对于主库可以update做心跳检测,对备库可以配置一个只读查询做心跳检测,保证检测的准确性。
  • 为防止主库负载过大造成update返回超时,设计上采用多次探测每次。超时时间递增
  • 探测方有自身检测:探测前应通过第三方网关确认自身网络状态正常。
  • 对于共享存储的集群,通过特别的处理机制解决了脑裂问题。
  • 一键搭建备库的功能
  • 可以管理各种复杂的级联关系的流复制集群,如主库A后面有一个备库B,而B后面又有两个备库等任意复杂的流复制集群。这个功能对于容灾特别管用。同时通过鼠标点一点就可以改变级连关系,如主库是A,A后面挂了一个B备库,B备库再挂一个C备库,即为A->B->C的级连关系,可以一键改成A->C->B。
  • 可以对现有管理的PostgreSQL数据库做统一备份和管理,可以一键恢复数据库,并可以通过WAL日志恢复到任意时间点。
  • 可以手工一键切换,如有时想对某台机器做停机维护,为了不影响业务,可以进行手工高可用切换。手工切换类似Oracle数据库中的switchover,可以任意可逆切换。一键切换的界面如下:
  • 在同一套CLup中,可以同时对很多套PostgreSQL高可用集群进行统一集成中管理

在监控的功能中,监控了一些最有价值的指标,而不是像有些监控工具中,监控了很多指标,但大多数都是没有啥用处的功能。 特色功能是我们有TopSQL的监控。

另外CLup是一套非常容易部署,对环境要求很低的高可用集群管理软件,如可以在2GB内存的机器上部署和使用,对机器的CPU没有要求。之所以可以做到这种程度,原因是此软件完全是由我们自己研发的,并不是基于一些开源软件上做的二次封装。有一些友商的管理平台是在第三方开源高可用软件上封装的,如ZooKeeper、etcd、repmgr或patroni上做的封装,导致对环境要求高,系统资源占用大等问题。