暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB A 集群容灾概述

墨天轮 2019-10-12
1048

集群容灾概述

简介

GaussDB 200的高可用容灾目标是在任何故障场景,数据不丢失,业务不停机。为达到这样的目标,GaussDB 200设计了双集群容灾的方案:分别部署两套同构的集群,集群间通过容灾任务进行周期性的物理数据同步。其中主集群提供正常的业务,灾备集群(亦称“备集群”)在恢复期间不可用,非恢复期间提供只读服务。当主集群不可用时,灾备集群可以代替主集群正常提供业务,从而实现数据库的高可用。

容灾性能

对于典型HTAP的主、备集群部署场景(物理机、SAS盘、集群内万兆网卡、集群间千兆网卡),本特性满足的性能规格如下:

在1T/天的数据增速下,通过调整备份周期,对于主集群的增量数据,最小可达RPO 1小时,最小可达RTO 1小时。

RPO是指当主集群发生故障时,用户执行主、备集群切换之后,新主集群所包含的数据与原主集群故障时刻点的数据差距。RTO是指当主集群发生故障时,用户执行主、备集群切换命令所需的时间(切换执行完成之后,新主集群即可以提供读写服务)。

由于目前不支持自动切换,因此RTO的计算不包含主集群发生故障到用户调用切换命令之间的时间。

每个同步周期内,备集群提供只读服务的时长为:恢复周期 - 备集群恢复时间。在1T/天的数据增速下,当同步周期(备份和恢复周期)设置为1小时的场景下,每个增量同步周期内,备集群提供只读服务的平均时长不短于30分钟。

磁盘规格

集群备份文件的压缩率波动范围较大,通常在10%~95%之间,取决于行列存文件的比例。列存越多压缩率越低,通常保险起见按1:1的压缩率来计算。备集群需要预留的存储空间主要包括三部分:

  • 各个实例目录下,需要预留和主集群对应目录相同大小的空间,用于存放实例数据。
  • 从主集群发过来的备份集,都会存储在备集群对应节点的media-destination指定目录下。需要一个容量大的盘,来存放主集群上一个节点下所有实例(除备DN外)的备份文件。每个节点都得有这样一个大盘,存放一个全量备份集就得占用一个节点各实例所占空间之和的50%左右,也就是每个节点除数据盘外,需额外增加当前节点所有数据盘大小总和50%的大盘用于存储主集群备份过来的全量数据。
  • 从主集群发过来的增量备份集,会存储在备集群每个节点的配置参数media-destination指定目录下,每个节点的增量备份集,存储的是CN实例的全量数据 + 主DN实例的增量数据 + 其它实例少量数据。假设100个节点的集群,每天增量数据1TB,那么平均每个节点增量数据大小为10GB,按1:1压缩率,每个节点需要备份10GB的数据量。具体业务场景需根据业务的具体增量数据和集群规模依据上述的计算方式计算增量数据需额外增加的磁盘空间。
  • 双集群当前只支持存储到DISK(本地磁盘),存储备份集的路径由双集群配置文件中的“data.store.path”配置参数指定。用户选择该路径时,需要提前规划好该路径所在分区的剩余磁盘空间,保证后续每次生成的备份集都有足够空间存储。每次备份会在该路径下生成一个备份集,存放本节点各个数据实例的压缩文件(后缀为“.rch”)。以全量备份为例,假设压缩率为1:1,生成的备份集大小约等于该节点所有CN和主DN实例所占磁盘空间大小。
    说明:
    • 备DN的数据不会备份,其它实例数据较少可以忽略。 需要特别关注备集群的备份集存放分区,因为主集群每生成一个“*.rch”备份文件(最大4GB)就会剪切到备集群的备份集存放路径,因此备集群会存放生命周期管理中允许的多个备份集。
    • 主备集群切换后,原来的主集群成为备集群,那么它也需要足够大的空间存放备份集。
    • 对于集群迁移场景,会开启备集群的备份集分散存储,每个实例生成的备份文件会存储在各个实例自己的路径所在分区,所以还需考虑各实例是否有足够空间存放备份集,以及是否超过90%使用率而变为只读模式影响集群业务。
    • 如果本地没有一个足够大的分区来存放备份集,则建议考虑将备份集存储到远端NAS服务器,每个节点映射一个本地分区作为备份集存放路径。

约束限制

双集群容灾的约束限制见表1。

表1 双集群容灾约束限制

序号

约束内容

1

主、备集群必须是完全同构的。要求如下:

  • 主、备集群中的节点按照安装配置文件中的节点顺序一一对应;
  • 主、备集群对应节点上的同一类实例的总个数相同,实例目录相同。即主、备集群中部署的主、备CMS,主、备GTM,CN以及DN实例的位置要对应相同,对应实例部署的个数要相同。

2

对于备集群,在恢复期间,不能提供任何服务;在非恢复期间,提供只读服务。

3

主集群状态处于非“Normal”状态时,数据同步暂停。

4

主、备集群的磁盘容量足够执行备份和恢复。

5

存储备份文件的磁盘和集群的数据磁盘需要分开。

6

容灾运行过程中不支持扩容和大版本升级,容灾过程中主集群扩容或升级场景详见 主集群升级或扩容。

7

当主集群处于非“balance”状态时,在双集群同步周期到来时,首先会自动尝试将主集群调整为“balance”状态。在状态切换过程中,如果主集群没有开启CN retry功能或应用层不具有查询重试功能,那么查询可能会出现错误,返回报错信息。更多详细信息请参考SQL语句出错自动重试。

8

如果主集群中增加/删除某个CN,则备集群需要按照主集群同样的操作步骤去增删相对应的CN,双集群才能正常同步备份恢复。

9

容灾集群暂不支持温备操作。

同构集群安装指导

为了保证新安装的备集群与主集群同构,需要将主集群的主机名称列表进行升序排序,在备集群以主集群安装某个实例的同样位置安装该实例。如按照主机名排序后主集群的第6个主机安装了主CMS,那么必须在排序后的备集群的第6个主机上也安装主CMS。

根据以上约束条件,可以通过以下步骤确定备集群的安装拓扑:

  • 获取主集群主机列表。

    omm用户登录主集群任一安装了MPPDB服务的节点,执行如下命令:

    cd ${BIGDATA_HOME}/FusionInsight_MPPDB_6.5.1/*_*_MPPDBServer/etc

    cat mppdb-install-config.xml

    <CLUSTER> <PARAM name="clusterName" value="FI-MPPDB"/> <PARAM name="nodeNames" value="vm4,vm5,vm6"/> <PARAM name="clusterRings" value="vm4,vm5,vm6"/> <PARAM name="gaussdbAppPath" value="/opt/huawei/Bigdata/mppdb/core"/> <PARAM name="gaussdbLogPath" value="/var/log/Bigdata/mpp"/> <PARAM name="tmpMppdbPath" value="/opt/huawei/Bigdata/mppdb/mppdb_tmp"/> <PARAM name="gaussdbToolPath" value="/opt/huawei/Bigdata/mppdb/wisequery"/> </CLUSTER>

    查看如上面所示的“nodeNames”“value”所对应的值“vm4,vm5,vm6”,即为主集群主机列表。vm4处于主机列表的第1个位置,vm5处于第2个位置,vm6处于第3个位置。

  • 查看主集群的实例部署情况。

    执行以下命令查看主备CMS、GTM以及CN节点:

    source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile

    cm_ctl query -Cvd

    [ CMServer State ] node instance state ------------------------------------------------------------- 2 vm5 2 /opt/huawei/Bigdata/mppdb/cm/cm_server Standby 3 vm6 1 /opt/huawei/Bigdata/mppdb/cm/cm_server Primary [ Cluster State ] cluster_state : Normal redistributing : No balanced : No [ Coordinator State ] node instance state ----------------------------------------------------------- 1 vm4 5001 /srv/BigData/mppdb/data1/coordinator Normal 2 vm5 5002 /srv/BigData/mppdb/data1/coordinator Normal 3 vm6 5003 /srv/BigData/mppdb/data1/coordinator Normal [ Central Coordinator State ] node instance state ----------------------------------------------------------- 1 vm5 5001 /srv/BigData/mppdb/data1/coordinator Normal [ GTM State ] node instance state sync_state ------------------------------------------------------------------------------------ 2 vm6 1001 /opt/huawei/Bigdata/mppdb/gtm P Primary Connection ok Sync 3 vm5 1002 /opt/huawei/Bigdata/mppdb/gtm S Standby Connection ok Sync
  • 将备集群的主机名列表进行字典序排序,如备集群主机列表为“hostStb2,hostStb3,hostStb1”,则排序后为“hostStb1,hostStb2,hostStb3”。hostStb1处于主机列表的第1个位置,hostStb2处于第2个位置,hostStb3处于第3个位置。
    说明:

    比较两个主机名的顺序是通过比较主机名中的每个对应位置的字母或数字的大小。字母的大小顺序按照ASCII中的顺序比较,如a<b<c。对于数字,直接比较数字大小,如1<2<3。数字小于字母。例如:

    • 假设两个主机的主机名分别为hosta1,hostb1 。通过比较,两个主机名的前4个字母相同,第5个字母在ASCII码中a<b,则 hosta1<hostb1 。 两个主机名排序的结果为hosta1,hostb1。
    • 假设两个主机的主机名为hostc10,hostc2。通过比较,两个主机名的前5个字母相同,第6个为数字,1<2,所以hostc10<hostc2。两个主机名排序后结果为hostc10,hostc2。
  • 根据2中查看的主集群中各实例部署位置,确定备集群需要在哪些节点部署CMS、GTM以及CN实例。
  • 查看主集群的每个节点的Datanode实例部署个数以及实例数据目录。登录FusionInsight Manager,选择“集群 > 待操作的集群名称 > 服务 > MPPDB > 配置”,查看“mppdb.dn.dataNum”“mppdb.dn.slicefileDir”的值。
  • 安装备集群。根据4~5的分析结果配置备集群的主备CMS、主备GTM所在的主机位置、CN所在的主机位置,配置Datanode的数目以及Datanode的数据目录。

页面总览

登录FusionInsight Manager以后,在“集群”下拉列表中单击需要操作的集群名称,选择“服务 > MPPDB > 容灾 ”,进入“容灾”页面,容灾页面包含容灾相关的基本信息、功能按钮以及容灾配置区域。

图1 容灾页面

容灾基本信息中包含集群的角色(主集群或备集群)、配置状态、容灾的启停状态。

表2 容灾基本信息

基本信息

状态

说明

集群角色

未知/主集群/备集群

由于是双集群容灾,集群有主备之分,标示当前集群集群的角色。

配置状态

已配置/未配置

初始状态下,配置状态为未配置,填写完容灾配置并点击保存配置,保存成功之后配置状态显示已配置。

运行状态

未启动/已启动

表示服务的运行状态。

在“基本信息”区域的右侧,可以查看容灾监控相关信息。

表3 容灾监控信息

监控信息

说明

容灾任务类型

启动容灾后,有“周期性备份”和“周期性恢复”两种任务类型。

任务所在集群

“周期性备份”任务在主集群上执行,“周期性恢复”任务在备集群上执行。

容灾进度

显示当前备份恢复任务同步数据的时间点。

任务状态

显示当前周期内备份恢复任务的执行状态,包括“成功”、“失败”、“正在备份”或“正在恢复”。

任务进度

显示当前周期内备份恢复任务的执行进度。

操作

点击查看周期性备份恢复任务的执行历史。

备集群在恢复任务执行期间将处于不可用状态,此时界面将出现服务不可用的告警,恢复任务结束之后告警自动消失。当发现备集群出现服务不可用告警时,可以查看容灾页面的恢复任务进度条判断是否正处于恢复任务执行期间,如果是则属于正常现象,否则可能是集群出现故障,需要根据告警帮助进行故障排查。


查看更多:华为GaussDB 200 集群容灾管理
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论