高可用集群
高可用集群架构
GBase 8s集群软件中实例级高可用集群有共享存储集群SSC、同城灾备集群HAC、异地容灾集群RHAC三种,并支持组合,实现两地三中心高可用部署。集群切换可通过连接管理器(CM)组件实现。其中,
- 主备集群HAC(High availability cluster)根据备份距离不同分为同城灾备集群HAC和异地容灾集群RHAC。HAC技术是一种将数据从主服务器复制到备服务器的技术。异地容灾集群是同城灾备的扩展,提供远程的容灾备份方案,同城灾备集群支持同步、半同步、异步三种模式,异地容灾集群仅支持异步模式;
- 共享存储集群SSC(Shared storage cluster) 通过多个节点对外提供服务,保障系统高可用。数据保存在共享存储上,所有节点共享一份数据。当主节点出现故障时,备节点将自动、快速接管主节点服务。
- 连接管理器(CM)是一个轻量级连接管理组件,位于应用程序和8s高可用数据库集群之间,根据集群状态提供负载均衡及故障接管功能,支持代理和重定向两种模式。
共享存储集群SSC
针对各行业信息化系统可能出现的服务器断电、断网、进程消失及数据库宕机等问题,GBase 8s集群软件推出了基于共享存储的高可用集群解决方案,该方案实现了在低成本服务器上构建数据库高可用系统,应用自由部署,故障自动切换。GBase 8s共享存储集群Shared Storage Cluster(SSC)通过多个节点对外提供服务,保障系统高可用。数据保存在共享存储上,所有节点共享一份数据。共享存储集群提供的通信协议、SQL协议与单机相同,保障应用系统无缝迁移。GBase 8s SSC目前已经在包括电信、金融、电力、轨道交通、政府等众多行业得到大规模使用,成熟稳定。
SSC具备如下功能特性:
-
高可用性
当某节点发生故障时,其他节点自动接管服务请求。主节点故障秒级切换,辅助节点故障不影响数据库服务。
-
高扩展性
GBase 8s共享存储集群最高可支持16节点,用户可根据自己需要在线增加节点数。
-
应用透明性
搭配GBase 8s连接管理器使用,故障切换不影响业务。
SSC工作原理
SSC主备节点状态一致性通过LSN同步+逻辑日志重放实现。SSC主节点接收业务请求,写逻辑日志,并将逻辑日志中与操作一一对应的LSN号发给各个备节点,从主节点接收到LSN号,从磁盘读取相应逻辑日志到缓冲区进行重放,从而达到主备节点数据状态一致。备节点缓冲区数据的更改并不持久化到磁盘。
SSC技术特点
- SSC具有扩展性,可以在一定范围内随业务需要而扩展;
- 节点间关系对等,有节点失败后,集群中其他节点会接管失败节点的工作;
- SSC部署简单,可以非常容易地配置多个SSC;
- 与连接管理器配合使用,实现负载均衡、故障切换;
- 应用无感知,客户端应用程序就像使用单个数据库一样使用SSC;
- 低成本,主备节点共享一套存储,节省存储成本。
SSC部署
共享存储集群SSC部署示意图:
同城灾备集群HAC
GBase 8s HAC(高可用容灾集群)采用逻辑日志复制技术实现节点高可用。根据灾备距离不同分为同城容灾集群和异地灾备集群。同城容灾集群支持一主一从的部署方式,异地灾备集群支持一主多备的部署方式。HAC集群主节点执行读写业务的同时,备节点可承担查询、报表等读业务。HAC集群具有安装简单、应用无感知、故障自动切换、无须额外付费等特点。
HAC工作原理
HAC主备节点状态一致性通过逻辑日志复制技术实现,因此要求主备服务器的数据库版本完全相同,主备服务器的硬件和操作系统版本尽量相同。使用时,HAC主节点接收业务请求,写逻辑日志,将逻辑日志置于发送缓冲区,通过局域网或广域网发送给各备节点,备节点接收到逻辑日志,在内存中进行重放,从而达到主备节点数据状态一致。集群通过CM(连接管理器)实现主备节点间互相切换。
HAC架构技术是一种基于逻辑日志的集群技术,逻辑日志的更新模式支持同步和异步两种模式。
- 同步模式:逻辑日志同步更新模式下备实例上的事务始终和主实例保持一致,所以在发生故障时不会丢失数据。适用于主备节点距离较近(同机房或跨机房)的同城容灾集群。
- 半同步模式:逻辑日志半同步更新模式下,主实例在将逻辑日志刷新到磁盘之前要确保备实例日志已回放完成。适用于对主备节点相距几十或上百公里的同城容灾集群。
- 异步模式:逻辑日志异步更新模式下,主实例在将逻辑日志刷新到磁盘之前不需要收到备实例的确认信息,所以此模式可以提高日志的复制速度。适用于主备节点相距上千公里异地灾备集群。
此外,系统管理员可以通过配置,改进HAC高可用集群同步模式,用以平衡系统性能和数据保护。
HAC技术特点
- HAC仅支持一主一备两节点,保障业务一致性;
- 节点间关系有主备之分,主节点失败后,可以控制选择集群中备节点是否自动升级为主节点继续接管业务工作;
- HAC部署简单,数据冗余;
- 应用透明访问,所有节点可读可写;
- 支持三种同步模式全同步、近同步和异步。
HAC部署
同城灾备集群HAC部署示意图:
异地容灾集群RHAC
RHAC集群是GBase8s集群的另外一种表现形式,从集群形态上支持一主多从,主要用于远距离传输、异地容灾的业务场景,对网络的延迟和带宽要求都比较宽松。RHAC是典型的异步传输机制,主节点负责接受和处理交易,并把交易的redo log源源不断的发送到目标节点,不需要等目标节点的接受消息,也不需要等目标节点的检查点,只需要目标节点在重做redo log之后才会向主节点返回redo log的位置信息。
RHAC工作原理
RHAC总体架构上和HAC基本相同,不同之处是发送缓冲区与接收缓冲区之间的同步,采用了服务器多路复用器组件(SMX)技术。SMX是支持高可用性环境中各服务器之间的多路复用网络连接的通信接口。其为数据库服务器实例之间提供可靠、高性能通信机制。
-
主节点验证其已连接到从节点,那么日志发送线程将页面从磁盘或逻辑日志缓冲区复制到数据复制缓冲区。
-
日志发送线程使用“服务器多路复用器组”(SMX) 将数据复制缓冲区发送至从节点的日志接收线程。
-
日志接收线程将数据写入接收缓冲区。
-
日志重做线程将接收缓冲区复制到恢复缓冲区。
不同于HAC完全同步方式或接近同步的方式,RHAC主节点在发送下一个缓冲区之前不需要来自备节点的确认。在日志发送线程等待日志接收线程接收来自辅节点的确认之前,主节点最多可发送32个未确认的数据复制缓冲区。
RHAC技术特点
- 通过数据库的redo log进行复制,在备用节点恢复的时候可以通过最后一个检查点自动追平redo log,保证主从节点的数据完整性和一致性;
- 对主节点性能影响最小;
- 对应用透明访问;
- 故障切换时间在30秒内完成;
- 一主多从,最大支持256个从节点,主从节点均可读可写。
RHAC部署
异地容灾集群RHAC部署示意图:
数据实时同步交换共享集群ER
ER(Enterprise Replication)即是GBase 8s集群软件中的一个实现数据实时同步共享的集群组件,也是一种基于数据实时同步交换共享技术的多写多读数据库集群解决方案。该组件可以在GBase 8s实例之间进行数据实时同步,从而实现数据交换和共享的功能。
ER工作原理
ER就是在一个或多个地点产生数据的多份拷贝,实现数据共享目的。ER是基于日志的异步工具,用于在GBase 8s数据库服务器之间复制数据。源服务器上的ER通过读取逻辑日志,存储事务并将每个事务作为复制数据可靠传输至目标服务器。ER 复制数据分为三个阶段:数据捕获、数据传输和应用复制的数据。ER的数据同步过程包含以下几个阶段:
-
捕获事务
源服务器上的ER实时读取逻辑日志、打包事务、合并事务(如果发现可以抵消的事务就不再进行发送),并存入发送队列中。。
-
数据传输
ER通过发送和接收队列将源端服务器上的合并事务发送到目标服务器上。在发送和接受之间会有ACK消息确认,确保传送数据的准确性和顺序性。
-
应用已复制数据
目标服务器在接受到源端事务之后,按照顺序重做事务,如果在重做过程中遇到事务冲突或其他异常,可以进行异常处理、保存日志、重做等方法,保障源和目标端数据的一致性。
-
确认事务
目标端会根据数据复制的变化情况向源端汇报数据应用的进展,这也是数据库异常之后能继续精准推送或传送的机制保障,是保证源端和目标端数据一致性的技术基础。
ER技术特点
- ER支持全表同步、部分列同步、部分行同步;
- ER支持一个表在两个数据库节点之间实现数据的单向同步和双向同步;
- ER支持实时同步(秒级)、延迟同步、定时同步三种同步逻辑;
- ER 支持在同步过程中如果目标端写入发生冲突,支持4种冲突处理策略;
- ER 支持源端和目标端的数据比对,如果有差异可以修复;
- ER 支持除了增量同步之外,还可以支持全量同步;
- 当目标端数据库发生异常并修复之后,ER会自动完成数据同步,无需人工干预;
- ER 支持除了标准数据类型之外,大对象类型也支持复制;
- ER 可以和GBase8s的数据库集群结合使用,数据库集群切换不影响ER同步;
- ER 支持对复制的事务进行优化合并、 压缩,最大化减少带宽的使用,适用于长距离的业务场景;
- ER支持灵活的体系结构,网络加密;
- ER 可以实现多读多写的数据库集群,集群能力线性提高。
ER支持的业务模型
- 数据分发模型
- 数据汇聚模型
- 全连接同步模型
- 森林树模型
- 部分同步模型
灵活的高可用集群
GBase 8s的高可用方案可以支持组合使用,如:利用SSC+HAC同城灾备技术构建同城双活高可用架构,利用SSC+HAC异地灾备技术构建两地三中心高可用架构。
适用场景 | SSC | 同城HAC | 远程HAC |
---|---|---|---|
网络连接 | 光纤连接 | 互联网或专线 | 光纤连接 |
节点间的距离 | 数米内,同一个机房 | 同城百公里内 | 异地千公里 |
对带宽的要求 | 高 | 高 | 低 |
最大备节点数 | 多个 | 1个 | 多个 |
存储设备 | 共享存储设备 | 独立存储设备 | 独立存储设备 |
承受服务器的软硬件故障 | 是 | 是 | 是 |
承受天灾 | 否 | 是 | 是 |
同城双活高可用
为了达到企业核心业务系统对数据库高可用要求,GBase 8s结合SSC集群和同城HAC集群,打造同城双活高可用解决方案。该方案的总体架构如下图所示:
本方案中,SSC集群采用一主、多备节点方式集群,HAC集群采用一主、一备节点方式,在同一机房内部署SSC集群,在百公里内的另一数据中心部署HAC集群,通过连接管理器实现故障切换。备节点为只读节点,通常用来完成数据查询、报表等功能,分担主机系统的压力。HAC方式通常用来提供高可用性及热备功能。
两地三中心高可用
为了满足金融电信核心业务对数据库99.999%高可用级别要求,GBase 8s利用其强大的集群功能,结合SSC集群及HAC集群打造两地三中心的高可用解决方案。下图是两地三中心总体架构示意图:
本方案中,同一机房内部署4节点的SSC集群,一主三辅。其中的主节点与同城另一数据中心部署的HAC备节点构成一主一备的同城HAC集群。SSC的主节点与远距离异地城市部署的RHAC从节点构成一主一从的RHAC集群。SSC节点对等,均支持读写,HAC的备节点提供只读功能。其部署架构如下图所示: