【集群仲裁一致性】存储跨中心双活集群的仲裁如何和上层数据库集群的仲裁结果保持一致?

集群仲裁一致性问题:所谓的仲裁一致性问题,是指双中心之间的双活存储集群和数据库集群的仲裁结果是否能保证一致性。当不一致时,对业务系统将造成灾难性影响。显示全部

集群仲裁一致性问题:所谓的仲裁一致性问题,是指双中心之间的双活存储集群和数据库集群的仲裁结果是否能保证一致性。当不一致时,对业务系统将造成灾难性影响。

收起
参与30

查看其它 3 个回答jxnxsdengyu的回答

jxnxsdengyujxnxsdengyu课题专家组系统工程师江西农信

跨中心的集群仲裁也就是当两个数据中心间的所有链路都中断时,双活集群的仲裁机制,这里的双活集群可能不只是存储双活集群,也有可能包含了数据库的双活集群、并行文件系统的双活集群,甚至一些特殊应用的双活集群等。这多类双活集群在链路发生中断时,都将按照各自的集群的仲裁算法,投票选举出存活节点,倘若这多个集群的仲裁结果不是一致的,将可能会给业务系统带来灾难性的影响。这里拿存储和数据库双活举例:
存储双活集群的仲裁通常规则有两种:
1.偏好模式
偏好模式的意思就是说,按照系统或者用户的偏好,特定选择一个优先存活的站点,在发生链路中断(脑裂)时,这个站点继续存活,并拥有接管IO读写的优先权。比如说SVC的配置节点、VPLEX的分离规则或者SRDF/METRO的ACTIVE BIAS配置选项等。
2.第三仲裁站点仲裁模式
第三仲裁站点,顾名思义,也就是在除了两个双活的数据中心之外的另一个站点,来对这两个数据中心进行仲裁和选举,防范脑裂。
详细可见:脑裂风险防范
这两种模式通常都是配合起作用的,优先第二种模式。
数据库双活集群的仲裁规则有:
1.磁盘仲裁,拥有磁盘心跳的节点存活
2.节点数仲裁,站点节点数多的存活
3.磁盘和节点的共同仲裁,获得磁盘心跳,并且存活站点节点数+磁盘心跳数大于非存活站点节点数
4.IP地址最大或者最小者存活
5.实例号最小或者最大者存活
因数据库的不同,仲裁规则的算法也不同,但是大多数都会选择磁盘和节点的共同仲裁的方式作为优先的方式。
那么数据库双活和存储双活集群的仲裁一致性是如何做到的呢?
这里以EXTEND ORACLE RAC数据库跨中心双活集群和VPLEX METRO存储跨中心双活集群举例说明:
EXTEND Oracle RAC的部署重点介绍OracleClusterware仲裁文件和Witness第三个站点。也就是说,在采用VPLEX Metro的远距离群集中,Oracle RAC仍需使用Oracle Clusterware仲裁磁盘。但是,群集仲裁磁盘本身驻留在VPLEX虚拟卷上。这可以保证Oracle仲裁磁盘访问Oracle RAC的行为和 VPLEX Metro故障切换行为一致。借助VPLEX,仅VPLEX Witness部署在第三个站点
1.如果只有Oracle互连链路中断(不是真正的站点故障,且不影响 VPLEX 互连),则 Oracle Clusterware将根据多数节点及仲裁磁盘访问进行重新配置。
2.如果是VPLEX互连链路中断(或真正的站点故障),VPLEX将根据站点分离规则的首选项和Cluster Witness指导,立即允许IO在一个群集恢复。因此,仅当VPLEX恢复仲裁磁盘上的I/O时,这些 Oracle 群集节点才有权访问这些仲裁磁盘;而且Oracle Clusterware将相应地重新配置群集。尽管仍需要仲裁磁盘,但无需部署在独立的第3个站点中,因为VPLEX Witness可提供Split-Brain保护并保证Metro 和Oracle Clusterware的行为一致。此外,由于VPLEX Witness控制仲裁文件的访问,因此可跨独立Oracle RAC部署和相关上游用户应用程序保证一致的确定性行为。

银行 · 2017-09-26
浏览3201

回答者

jxnxsdengyu
系统工程师江西农信
擅长领域: 存储灾备双活

jxnxsdengyu 最近回答过的问题

回答状态

  • 发布时间:2017-09-26
  • 关注会员:5 人
  • 回答浏览:3201
  • X社区推广