订阅软件研发RSS CSDN首页> 软件研发

GBase 8t企业级高可用技术及实践

发表于2015-12-01 13:48| 次阅读| 来源南大通用GBase 8t技术总监| 0 条评论| 作者孙国荣

摘要:GBase 8t是南大通用提供的一款基于IBM Informix 12.1源码构建的一款国产、自主、安全可控的高端事务型数据库产品,本文结合实际案例,对GBase 8t的两地三中心高可用方案进行简述。

数据库技术经历了40的发展历史,数据库产品随需求不断的演进。从关系型数据模型的提出到关系型数据库的一统天下,从OLTP到OLAP,从SMP到MPP,还是SQL到NoSQL,NewSQL。都是为了更好的存储和处理数据,满足业务系统对数据的需求。其中对数据库系统的高可用需求一直追求 99.99….% 后面的位数。

当前信息化系统的高可用性已经成为系统建设的重要环节,而数据库又是核心中的核心,系统提供7X24小时不间断服务,不仅要能经受数据库本身的异常宕机故障、服务器断电、网络中断、磁盘损坏等极端场景,同时还需要应对不可抗逆的自然灾难,如:火灾、恐怖活动、地震、海啸。最近几年提出并开始建设两地三中心的建设方案来应对各类故障和灾难。

GBase 8t提供完整的数据库级高可用解决方案,提供秒级故障自动切换功能,使核心系统的可靠性达到了99.9999%。GBase 8t是南大通用提供的一款基于IBM Informix 12.1源码构建的一款国产、自主、安全可控的高端事务型数据库产品,面向金融、电信、保险、医疗、电力、交通、零售、医疗等重点行业的核心业务系统。本文如下内容结合实际案例,对GBase 8t的两地三中心高可用方案进行简述。

大型企业高可用案例分析

首先,通过一个大型企业的真实高可用案例来阐述数据库高可用建设方案,为了阐述方便这里将该大型企业简称为:ABC公司。项目背景,ABC公司进行了100多个系统的物理集中,将分散在各分公司的服务器物理集中到南方数据中心。同时提出了高可用建设目标:高可用解决方案、异地容灾方案和负载分担。如下为高可用容灾系统总体方案。


ABC公司高可用异地容灾方案总体架构图

南方数据中心,同机房采用HDR方案,实现双机实时同步,主服务(Primary)承载所有交易业务,将原来系统中的大量大型的统计报表类读业务运行在HDR服务器。实现了读写分离业务负载分担的同时,HDR提供了秒级故障切换高可用方案。为了解决单个机房的风险,建设异地容灾方案,每个分公司将数据实时异步同步到各分公司,采用RSS异地实时容灾方案,最长距离超高3500公里,同时在RSS服务节点对外提供客户详单查询服务。真正实现了两地容灾高可用方案,同时真正实现了“多活”的负载分担业务架构。

ABC公司的高可用方案的价值分析:

  • 高可用,故障秒级切换,应用透明连接
  • 超远距离,3500公里超远距离异地容灾方案
  • 负载分担,“多活”节点,HDR,RSS节点提供报表、详单查询服务,实现负载分担
  • 低成本,无需采购产品、低带宽、易维护

GBase 8t高可用方案介绍

如下我们来详细了解一下GBase 8t完整的高可用方案,如下图所示,GBase 8t高可用方案主要包含三个方案:SDS—共享存储数据库集群、HDR—双机实时数据同步热备份方案和RSS—远程异地容灾方案。同时,提供应用透明的连接管理器组件。


GBase 8t高可用方案一览

GBase 8t的3个高可用方案可以单独部署,也可以任意组合实现不同级别的容灾方案,如:SDS+HDR,HDR+RSS,SDS+HDR+RSS。

如下表格列出了GBase 8t 集群高可用方案适用业务场景。

HDR

RSS

SDS

网络连接

光纤连接

互联网或专线

光纤连接

距离

百公里内

数千公里

同一个机房

带宽

辅节点数目

1个

多个

多个

存储设备

独立存储设备

独立存储设备

共享存储设备

承受服务器

的软硬件故障

承受天灾

透明、灵活的连接管理器,基于服务层协议(SLA)的连接管理,提供应用透明服务,对发生故障时的节点切换顺序进行管理,管理负载均衡,CM监测集群里各节点的心跳。


灵活、透明连接管理器

提供透明的连接管理,如下示例阐述java程序如何通过连接管理器实现集群的透明连接管理。DML可更新业务连接到OLTP服务,read-only应用连接到REPORT服务。当集群发生故障,进行故障切换后,应用程序将自动连接到新的服务器。


如下我们再来一一了解GBase 8t的三个高可用方案的概况和基本实现原理。

HDR 双机实时数据同步热备份方案,实例级别的数据复制,基于逻辑日志的复制技术。通过网络持续将数据实时复制到备节点,备机可读写,可实现读写分离。HDR主备服务器平台一直,数据库版本一直,数据库相关配置相同。用于同机房、同城双机房之间数据库的实时同步。


HDR概况架构图

HDR支持一主一备,通过网络传输逻辑日志实现数据的同步。HDR支持同步模式和异步模式,同步模式下保障事务级别的同步。异步模式下实现checkpoint的同步。当主机发生故障,可自动切换到备机。


HDR数据同步内部过程原理图

逻辑日志传输过程如下:

  1. 客户端执行SQL,将由sqlexec线程执行
  2. 主服务器将产生逻辑日志存放逻辑日志缓冲区à同时复制到HDR缓冲区 ,sqlexec线程通知drpsend线程
  3. 主实例的逻辑日志缓冲区 à磁盘
  4. drpsend线程发送HDR日志缓存
  5. drrecv线程接收日志信息并存放到接收日志缓存
  6. apply线程重新播放日志,实现数据内存同步,并产生日志存放在逻辑日志缓存
  7. 备实例将逻辑日志记录应用到磁盘 (logrecvr)
  8. drprping 和drsecping线程发送接收消息以监控两个实例之间的连接,保障HDR主备通信及数据同步进程。

SDS基于共享存储数据库集群,是一个共享存储设备体系架构的集群数据库,即多个服务器基于共享存储实现多节点集群方案。集群多个节点通过网络通信,通过逻辑日志编号LSN信息通知各个节点进行逻辑日志的读取实现数据的实时复制。SDS节点之间使用异步通信模式,保障主机性能不受影响,同时通过LSN的发送、应答来判断节点延迟情况,并通过内部控制实现微秒级数据延迟保障,如果出现节点落后主节点的LSN,节点将被从集群中移除。通过SDS可以实现:高可用性,当某一节点故障时,其他节点将自动、快速接管,实现系统的高可用性。高可扩展性,企业依照数据增长增加节点提高数据库处理能力,目前的架构实现,可实现读业务线性扩展能力。同时SDS具备如下特性,部署安装简单、SDS无需特殊硬件支持。

如下图为SDS共享磁盘集群架构示意图。


SDS共享磁盘集群架构示意图

SDS通过网络进行通信,可以部署心跳专用网络,同时提供在网络不可用情况下,启用共享磁盘通信,有效避免“脑裂”。

与HDR不同的是SDS主备机传输逻辑日志编号LSN,而不是逻辑日志本身内容。备机根据LSN读取共享磁盘上的逻辑日志内容再复制,实现数据的同步。通过LSN提高了通信效率。


SDS数据同步内部过程原理图

如上图所示,SDS内部实现数据节点间同步过程,详细描述如下:

  1. 客户端执行SQL,将由sqlexec线程执行
  2. 生成逻辑日志,逻辑记录包含日志信息编号Log Sequence Number (LSN) 
  3. LIO线程将逻辑日志写入共享磁盘中 ,同时,SDS_send线程将LSN发送到 secondary servers
  4. SDS_NETWORK线程接收LSN
  5. 接收到LSN后,将发送确认信息ACK回主服务器
  6. 通知SDS_LOGREADER线程
  7. SDS_LOGREADER线程通过LSN读取逻辑日志
  8. Recovry线程播放逻辑日志,实现数据同步。

主备机之间实时检测心跳信息。SMX通信机制,心跳检测周期6秒进行一次状态确认。主备机之间通过对比发送的LSN和返回的LSN的延迟性来控制数据的同步机制,数据同步理论控制在1秒以内。

RSS,远程异地容灾方案,RSS即在HDR的实现基础上,改进的异步通信模式,实现超远距离的容灾方案。与HDR不同的是可以支持一主多备模式,但是RSS不能切换为Primary模式运行,只能切换为Standard模式运行。


通过RSS,可以实现多个热备份,灵活扩展多个RSS节点,HDR 的延伸和增强,特别在低速网络环境下的可用性保障。多个备机,可以提供查询服务,实现负载分担。


RSS内部通信原理

如上图所示,主服务器发送逻辑日志至备用服务器时,使用log cache及log cache临时文件保存不能及时发送的逻辑日志信息,可在网络异常情况下,保障数据有效同步,允许有几个小时的延迟同步。正常情况下,备机数据延迟在1秒内。

GBase 8t 两地三中心方案总结

采用GBase 8t的高可用方案SDS + HDR +RSS可以建设两地三中心高可用方案,如下图所示。北中心部署在北京,分成东城机房、西城机房。同机房采用SDS共享存储集群,同城采用HDR实现同城灾备。异地通过RSS建立南中心和西北中心,实现数据的实时同步。总体方案可以到达如下建设目标:

  • 数据实时热备份、无数据丢失
  • 故障秒级快速自动切换
  • 应用透明连接
  • 多活节点,读写分离、负载均衡
  • 搭建快速、管理简单
  • 低成本、无需特殊硬件
  • 提供7*24小时业务保障,高可用到99.9999%
  • 应对不可抗逆灾害


GBase 8t同城异地两地三中心方案示意图


相比存储容灾方案,在RTO和RPO都有较大的优势。如下表格。实际业务系统中,可以按实际业务需求和硬件环境,组合数据库容灾和存储容灾方案,综合二者的优势,应对更复杂的故障场景。

更多精彩内容,请关注新浪微博:@CSDN、图文直播专题:2015中国软件开发者大会

0
0