- 基础知识--双集群中的一些术语
在两个单集群之上搭建了容灾关系之后,两个单集群就成了双集群。负责对外提供读写业务的集群称为主集群(生产集群),对外只提供读业务的称为备集群(灾备集群)。在主集群中,首节点称为主节点(数据节点),其他节点称为备节点。在备集群中,首节点称为首备节点,其他节点称为备节点。
在双集群上的一些操作,两个单集群经过容灾搭建成为双集群,如图1中(a) -> (b)所示;在经过集群间的主备倒换之后主降备备升主,如图1中(b) -> (c)所示;双集群拆分之后会分裂为两个单集群,如图1中(b) -> (d)所示;若主集群宕机或者被战争摧毁,经过备集群升主,双集群分裂,此时由新主对外提供服务,如图1中(b) -> (e)所示。
在资源池化场景下,双集群可分为两种类型,dorado存储复制双集群和网络复制双集群。双集群的搭建有两种方式,手工搭建和gs_ddr工具自动化搭建,下面简单介绍下这两种搭建方式。
图1 gs_ddr双集群全流程示意图
- 双集群搭建
(1)手工搭建(以存储双集群为例)
搭建好两个单集群环境之后,主备集群上的操作如下:
主集群:cm_ctl stop--停止,配置容灾参数,cm_ctl start--拉起;
备集群:cm_ctl stop--停止,配置DN、DSS参数,之后拉起首备节点的dssserver做全量build,配置CM参数,而后在dorado控制平台device manager上将同步复制盘由分裂设置为同步,最后cm_ctl start拉起备集群。
(2)设置容灾参数
- 设置DN参数(postgresql.conf和pg_hba.conf)
- 设置DSS参数(dss_inst.ini)
- 设置CM参数(server.conf和agent.conf)
- gs_ddr工具自动化搭建
在(要成为)主集群上执行:
gs_ddr -t start -m primary -X /path/of/xml
在(要成为)备集群上执行:
gs_ddr -t start -m disaster_standby -X /path/of/xml
期间会有交互式的提醒,在手动输入“yes”之前,先去device manager平台,做如下操作:->【数据保护】->【远程复制pair】,找到自己的pair,点击,->【操作】->【启用从资源保护】->【同步】,待同步完成之后,在回到环境输入两次“yes”,等待搭建完成即可。
- gs_ddr工具代码概览
该工具有一个基类base,从base派生出5个派生类(start,stop,query,switchover和failover),每个派生类中都有一个run()函数,该函数负责实现各个模块的功能。
图2 gs_ddr类图
图3,全局映射,是一个键值对,通过使用HANDLER_MAPPING[key] = value的形式,将各个模块运行的模式统一起来,要使用不同功能时,只需要传入不同的key即可。
图3 全局映射
图4 main函数,脚本入口
在main()函数中,创建DoradoDisasterRecoveryBase类的对象base,使用全局映射调用对应类的构造函数,生成对应派生类的对象handler,然后handler调用派生类的run()函数完成对应功能。




