一、GaussDB的关键架构与组件
GaussDB的架构设计采用组件化原则,分为GaussDB Kernel内核和GaussDB Kernel OM两部分。内核部分面向云服务提供GaussDB产品,主要客户包含金融、政府和大企业客户。OM部分则主要承担安装、卸载、启动、停止数据库,备份恢复、升级、扩容数据库等运维功能。
GaussDB集中式主备集群的基本组件包括:
CM(Cluster Manager):
CM Agent:管理服务组件,负责CMS、DN进程的保活及启停,仲裁指标采集、仲裁命令执行等。
CM Server:管理服务组件,根据CM Agent上报的实例状态判定当前状态是否正常,是否需要修复,并下发指令给CM Agent执行。
OM Monitor:管理服务组件,主要负责OMM、etcd、cm_agent进程的保活及启停。
DN(Data Node):数据服务组件,负责存储业务数据、执行数据查询任务以及返回应用结果。DN主备节点之间采用Quorum复制或Paxos协议复制。
ETCD节点:管理服务组件,主要协助CMS选主、持久化集群仲裁信息、保存集群的拓扑信息等。
二、硬件高可用方案
GaussDB在硬件高可用方案上,主要通过区域(Region)和可用区(Available Zone, AZ)来描述数据中心的位置,实现数据中心的物理隔离和容灾能力。
1.Region:指物理上相对独立的数据中心。每个Region完全独立,这样可以实现最大限度的容错能力和稳定性。在GaussDB数据库中,资源创建成功后不能更换Region。
2.AZ:指同一区域内,电力和网络互相隔离的物理区域,比如同一个区域内的两个机房。一个AZ故障不会影响其他AZ。GaussDB数据库中在同一个Region内可以有多个AZ可用区,不同AZ之间物理隔离,但内网互通,既保障了可用区的独立性,又提供了低价、低时延的网络连接。
GaussDB的硬件高可用方案,主要有以下几种部署形态:
1.生产单中心1AZ 3副本部署:适用于不要求站点级容灾,但需要保证单中心故障高可用的场景。DN主备之间采用流复制进行数据同步,至少同步到一台备机,保证RPO(Recovery Point Objective)=0。
2.生产同城3AZ 4副本同城双活部署:由两个业务AZ和1个仲裁AZ组成,任何AZ故障都能保证RPO=0。AZ1和AZ2对等部署,AZ3作为第三方仲裁节点,不接入业务。
三、软件高可用方案
GaussDB的软件高可用方案,主要通过分布式一致性共识框架DCF(Distributed Consensus Framework)和双集群容灾方案来实现。
1.DCF(Distributed Consensus Framework)
DCF是自研的分布式一致性共识框架,基于Paxos协议开发,实现多数派节点自选主自仲裁、日志复制、一致性控制等高可用功能。DCF部署于GaussDB进程,以动态库形式提供给DN调用,实现DN节点间自选主自仲裁、XLOG日志复制、回放控制等。
DCF的主要功能模块包括:
接口:对外提供写入、查询、注册回调等接口。
选举:负责主节点的选举、心跳维持、状态通知。
复制:负责日志的复制、提交、达成一致控制。
元数据:负责管理集群配置信息。
存储:负责日志数据的缓存管理和持久化。
通信:提供节点间的数据通信功能,并支持压缩解压和SSL能力。
DCF通过异步流水线、数据合并与压缩、批量并行落盘等技术手段,提升整体性能。在选举流程上,DCF通过pre-candidate状态、term递增、lease时间等机制,防止网络断连导致节点频繁发起选主请求,保证选主可靠性。
2.双集群容灾方案
GaussDB的双集群容灾方案是一种新架构和部署方式的容灾技术。在已有的容灾方案中,多采用单集群多副本的模式进行跨AZ部署,无法做到故障隔离。而双集群容灾方案则通过在同城和异地分别部署一套单独的数据库集群,实现故障隔离和容灾能力。
同城双活部署:由两个业务AZ和一个仲裁AZ组成,两个业务AZ之间对等部署,任何一个机房都接入业务;仲裁AZ不接入业务;任何机房故障可保证RPO=0。
异地容灾部署:在异地Region支持跨Region的容灾能力,通过流式复制的方式,实现数据同步和容灾。
四、总结
GaussDB的硬件与软件高可用方案,通过区域和可用区的物理隔离、DCF分布式一致性共识框架、双集群容灾方案等技术手段,实现了高可用、高安全、高性能的数据库服务。这些方案不仅提高了数据库的容错能力和稳定性,还降低了运维成本,提升了用户体验。