Gbase 8a数据库集群支持主备模式的同城双活灾备方案,其原理为主集群承担应用,对数据进行批量 *** 作(包括数据加载和数据加工),在主集群加工完数据之后,每天特定时间点将数据增量同步到同城双活的备集群当中。数据的同步过程基于自主研发的Rsync数据同步工具实现。同城双活的主备两个数据库集群间以表为单元进行增量同步。
数据同步:
Rsync工具是集群间的数据同步工具,实现集群间点对点的数据同步,可保证每个表数据同步的原子性,即如果一个表在数据同步过程中出现故障,Rsync工具能够自动回滚,从而保障主备集群的数据一致性。
表的存储方式:把一张表的数据划分为多个DC块存储在不同的节点上
传输方式:基于表级的DC块拷贝。比对DC块的元数据识别发现变化的DC块并同步。同步时使用二进制方式,节约解压加载的时间。
Gbase 8a数据库集群中数据的存储方式是把一张表的数据划分为多个DC块存储在不同的节点上。故Rsync同步工具的数据传输方式是基于表级的DC块拷贝。数据同步前先比对目标表的DC块的元数据,识别发现变化的DC块并进行同步。数据同步时使用二进制方式,以节约解压加载的时间,从而提升同步效率。
Rsync数据同步工具实现了数据同步需要的最核心的功能点及异常处理,各功能点具有低耦合性,使应用程序能够灵活的调用接口,实现系统的同城灾备。
表1 Rsync数据同步工具功能表
功能大类
功能小类
备注
对等节点
二进制增/全量
表级传输
增量传输
识别表级的增量并传输对应的DC块
全量传输
增量删除
标记但不释放空间
并发支持
以表为单位进行并发控制
单表(并发数与节点数相关)
多表(并发数可设置)
异常处理
Retry机制
节点宕
服务宕
在数据同步后,Rsync集群间同步工具进行主备集群同步数据checksum的校验,保障了主备集群同步数据的正确性。
根据项目需求,本方案中,Gbase 8a的同城灾备RTO指标为0,即不丢失任何数据。RPO指标小于24小时。
方案原理:
主备集群位于同城的两个不同地点的机房(或同一个机房),二者之间通过光纤专线连接(或网线连接)。Rsync数据同步工具单独部署到一台服务器上。
Rsync工具在数据同步过程中主要包括两个阶段。第一阶段为主备集群间的DC包比对;第二阶段为数据传输阶段,数据传输阶段的耗时较少,根据以往项目的实测数据,对于约281GB裸数据的表,在1GB带宽条件下,压缩态数据传输时间小于2分钟。在DC包比对阶段的耗时主要和数据文件的个数相关,尤其是多个小文件的情况耗时较多,根据以往项目中的实测数据,对于3000张表,在1GB带宽条件下,数据同步耗时总共约1小时,包括DC包比对耗时和数据实际传输耗时。综合实测下,采用Rsync工具进行数据同步时,点对点的平均速度可达到50MB/s。
按照常规同城异地不同机房之间,通过10G的光纤专线直连的方式,带宽达到1GB/s的传输速度。按照保守估算实际传输速度为500MB/s,对于xxGB的每日增量数据的同步时间在分钟级。考虑到增量数据扫描,以及同步任务的启动调度等因素,预计每天数据同步时间小时级。
经上述数据分析可知,对于主备集群间的数据通路,采用10G的光纤专线即可满足数据同步的带宽需求。
备集群采用与主集群完全一样的拓扑架构,这样方便实现主备集群间点对点的数据同步,提升数据同步的效率和稳定性。考虑到大数据环境下数据同步占用带宽会大,同城的主集群和备集群间采用光纤专线方式连接。
数据同步的整个过程由ETL系统调度完成,具体步骤如下:
① 加载前数据处理完毕,通知ETL系统;
② ETL调度系统向主集群发起加工作业;
③ 将加工作业加入待处理作业队列;
④ 调用部署在加载机上的处理作业脚本;
⑤ 主集群开始数据加工工作;
⑥ 当加工工作完成之后,主集群向ETL调度系统返回处理结果状态;
⑦ 如果处理成功,ETL调度系统将作业完的标识加入到作业状态队列;
⑧ 在特定时间,ETL系统调动Rsync工具,将主集群中数据同步到备集群;
至此,一次完整的数据同步过程完成。
借助ETL调度系统,能够实现作业的原子性。例如,如果一次作业未完成,系统会尝试第二次相同的作业 *** 作,并且在开始第二次之前,ETL系统会通过回滚机制将此次失败的作业链数据全部恢复到作业开始之初的状态。
本方案根据大数据平台的业务特点采用异步方式进行数据同步。异步方式通过对数据同步和批量加工进行解耦来实现数据同步。该方式建立数据传输的管道机制,通过增加传输作业队列的方式,将数据同步 *** 作和主集群批量加工过程分开,主集群的批量完成时向一个任务队列中增加待同步任务,由专门的调度程序控制数据同步的状态及并发,从而降低数据同步 *** 作与主集群耦合度。
在实际部署中需要根据大数据平台的工作时间安排,制定一个时间点,由这一时间点开始当天的数据同步任务。
此外在主集群、备集群停机的情况下,采用集中同步的方式一次性将数据以二进制的方式完成同步。数据同步过程中可将IO资源充分使用,以较高性能完成数据同步。集中同步方式是一种特殊的异步同步形式,可应用于主备集群间的初次同步。
同城双活灾备方案在遇到主集群故障时需要执行切换工作。故障发生时间直接影响切换方式及切换时间。存在两种情况:
1.故障时间在当天同步过程之前
如果主集群的故障时间正好在当天主备集群数据同步时间点之前,那么主集群批量加工的数据将无法直接同步到备集群。这时需要把当日的新增原始数据传输到备中心,并导入到备集群。应用切换至备集群,并导入当天原始数据,重新进行批量加工作业,生成加工数据。批量加工作业执行完毕后,即可正常对外提供查询和分析服务。在主集群故障恢复之前,由备集群承担日常的批量加工和上层应用。主集群故障恢复后,再通过调用Rsync数据同步工具把备集群的增量数据同步到主集群,并把应用和批量加工作业切换回主集群。主备集群随后恢复到正常工作模式。
2.故障时间在当天同步过程之后
这种情况下,发生故障后,主集群与备集群的数据完全一致,因此直接将应用切换至备集群,即可完成故障切换。当主集群恢复后,同样通过调用Rsync数据同步工具把备集群的增量数据同步到主集群,并把应用和批量加工作业切换回主集群。主备集群随后恢复到正常工作模式。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)