存储双活仲裁机制.pdf
文本预览下载声明
1.1.1.1 仲裁防脑裂
当提供双活LUN 的两套阵列之间的链路故障时,阵列已经无法实时镜像同
步,此时只能由其中一套阵列继续提供服务。为了保证数据一致性,HyperMetro
通过仲裁机制决定由哪套存储继续提供服务。
HyperMetro 支持按双活Pair 或双活一致性组为单位进行仲裁。当多个双活
Pair提供的业务相互依赖时,用户需要把这些双活Pair配置为一个双活一致性组。
仲裁完成后,一个双活一致性组只会在其中一套存储阵列继续提供服务。例如,
Oracle数据库的数据文件、日志文件可能分别存放在不同的LUN 上,访问Oracle
数据库的应用系统存放在另一些LUN 上,相互之间存在依赖关系。配置双活时,
建议数据LUN、日志LUN 和应用LUN 分别配置双活pair,并且加入同一个一
致性组。
HyperMetro 提供了两种仲裁模式:静态优先级模式和仲裁服务器模式。
配置双活Pair 前,需要配置双活域,双活域为逻辑概念,包括需要创建双
活关系的两套存储阵列和仲裁服务器。每个双活Pair 创建时均要选择双活域,
每个双活域只能同时应用一种仲裁模式。
仲裁服务器模式比静态优级模式具备更高的可靠性,可保证在各种单点故障
场景下,业务连续运行。因此,华为双活方案推荐采用仲裁服务器模式。
静态优先级模式
静态优先级模式主要应用在无第三方仲裁服务器的场景。用户可以按双活
Pair 或一致性组为单位,设置其中一端阵列为优先站点,另一端为非优先站点。
如图3-7所示,不需要额外部署仲裁服务器。
该模式下,阵列间心跳中断时,优先站点仲裁胜利。
1. 当发生阵列间链路故障,或者非优先站点故障时,优先站点上的LUN
继续提供服务,非优先站点的LUN 停止提供服务。
2. 当优先站点阵列故障时,非优先站点不能自动接管双活业务,双活业务
停止,需要人工强制启动非优先站点服务
有一种情况除外,当优先站点阵列主动下电维护时,非优先站点阵列立即接管所有双活业务,
业务不会中断。
该模式的缺点是:两阵列之间的心跳丢失时,可能是站点间链路丢失或其中
一个阵列故障,系统无法区分这两种情况。表3-2 为静态优先级模式下的仲裁策
略。
编号 示意图 仲裁结果
1 故障类型:链路故障
仲裁结果:H1继续运行业务,H2 停止业务
2 故障类型:非优先故障
仲裁结果:H1继续运行业务,H2 失效
3 故障类型:优先故障
仲裁结果:H1失效;H2 停止业务,需要人工启动
仲裁服务器模式
使用独立的物理服务器或者虚拟机作为仲裁设备,仲裁服务器建议部署在第
三方站点。这样可以避免单数据中心整体发生灾难时,仲裁设备也同时故障。
仲裁服务器模式下,当存储阵列间心跳中断时,两端阵列向仲裁服务器发起
仲裁请求,由仲裁服务器综合判断哪端获胜。仲裁获胜的一方继续提供服务,另
一方停止服务。
仲裁服务器模式下如果有优先获得仲裁的要求,也可以配置站点优先级。优
先阵列端具有仲裁获胜的优先权,心跳中断但其它正常时,优先阵列将获得仲裁
胜利。
仲裁过程如图3-9所示:
图1-1 仲裁机制
1. 数据中心之间的链路断开时,跨站点阵列集群分裂为两个小集群。
2. 小集群分别抢占仲裁,优先阵列将优先抢占仲裁,抢占成功的小集群“获
胜”,将继续对外提供服务,为应用提供存储访问空间;抢占失败的小
集群则停止对外服务。
3. 中间链路恢复时,两个子集群检测到中间链路恢复正常,经过握手通信
将两个小集群自动组成一个跨站点集群,双活关系恢复,以Active-Active
模式提供服务。
下表列出了仲裁服务器模式下,各种故障场景下双活业务表现。
编 示意图 仲裁结果
号
1 故障类型:仲裁失效
仲裁结果:H1、H2 继续运行业务
2
显示全部