2 故障类型:一套阵列与仲裁之间链路故障仲裁结果:H1、H2继续运行业务 3 故障类型:一套阵列失效 仲裁结果:H1失效,H2继续运行业务 4 5 6 故障类型:阵列间链路中断仲裁结果:H2失效,H1继续运行业务 故障类型:一套阵列与仲裁同时失效仲裁结果:H1失效,H2停止业务 故障类型:一套阵列与对端、仲裁的链路同时中断仲裁结果:H1停止业务,H2继续运行业务 7 故障类型:一套阵列失效,且对端与仲裁链路中断仲裁结果:H1失效,H2停止业务 8 故障类型:仲裁失效,且阵列间链路中断仲裁结果:H1与H2均停止业务 9 故障类型:仲裁失效,且其与一套阵列链路中断仲裁结果:H1、H2继续运行业务 说明
H1和H2表示组成双活HyperMetro LUN的两个阵列,C表示对应的仲裁服务器 强制启动
某些特定的多重故障情况下,仲裁机制优先保证数据的一致性,可能会将存活的双活成员LUN都停止主机访问。例如静态优先级模式下优先站点故障等场景,存活的双活成员LUN会被停止主机访问,用户或售后工程师可根据故障情况选择人工强制启动业务,快速恢复业务。
强制启动后,被强制启动端会升级为双活数据同步源端,强制启动端的双活成员LUN 具有最新数据。链路恢复后,系统主动停止对端双活成员LUN主机访问。发起数据同步时,将以强制启动端的双活成员LUN数据覆盖对端。该过程中只会同步增量差异数据。 注意
[键入文字]
执行强制启动前,需要充分考虑双主风险,应在执行前确认两个数据中心的LUN状态和业务状态,确保对端存储已经停止工作。
3.1.2.5高可靠链路设计
HyperMetro阵列间组网支持FC或IP网络,可以根据用户的实际网络条件配置网络。支持使用阵列直连、通过FC光纤交换机连接、通过IP交换机连接等。为了提供更好的双活性能,推荐采用FC组网。
以‘跨数据中心2节点+2节点双活组网’为例,建议每个控制器节点都与对端阵列建立2条阵列间镜像链路,并对两条链路的交换机进行隔离,获得最高的链路可靠性。 图3-11以跨数据中心4控双活组网示例
上图中,为保证双活性能,HyperMetro对站点间双活链路的网络要求如下:
? 误码率<10-12e。 ? 时延RTT<2ms。 ? 无抖动,无丢包。
? 链路带宽>业务峰值带宽,最低要求2Gbps。
除了高可靠的组网和链路质量要求外,双活阵列间镜像链路还应用了传输带宽自适应特性,该技术通过一系列自动检测机制,根据链路质量,动态调整各链路传输占比,减少数据重传率。例如当前控制器与对端阵列控制器存在两条镜像链路A和B,当系统检测到链路A因为误码等原因存在较大的传输时延时,会根据算法将链路A的流控带宽下降20%,将更多的带宽压力导向链路B,降低链路A的带宽压力,从而获得更稳定的传输时延。当链路A的传输时延较小时,系统又会根据算法将链路A的流控带宽上调20%,从而恢复带宽吞吐量。
[键入文字]
3.1.2.6分布式锁技术
分布式互斥能力是实现AA双活的关键能力之一,双活分布式锁模块利用Paxos和 CHT (Consistent Hash Table) —致性算法,提供了分布式对象锁和分布式范围锁,从而满足AA双活的分布式互斥诉求。通过锁预取技术,可有效减少跨站点的数据传输量和通信交互次数,从而提升I/O读写性能。
在AP双活架构中,由于主机无法通过从端直接访问双活LUN,从端主机写数据时,必须将完整的写数据发送到主控端,再通过镜像链路把I/O从主控端同步到备控设备上,这样数据存在多次跨数据中心传输,严重影响写性能,如图3-12所示。 图3-12 AP双活的数据访问
HyperMetro以主机I/O粒度,对主机I/O访问的LBA区间加分布式范围锁进行并发互斥,从而达到双向实时同步的目的,该方案可省去不必要的阵列间数据传输带宽,并有效的减少数据传输次数。HyperMetro双活数据访问如图3-13所示。 图3-13应用分布式锁的双活数据访问
[键入文字]
HyperMetro分布式锁技术使用了智能的锁预取和缓存策略,在写权限本地无缓存的情况下,会通过较小的控制报文,向锁权限缓存节点申请写权限,并多预取部分区间的写权限缓存到本地。后续的连续写I/O可快速在本地命中写权限,不需要再跨站点申请写权限。分布式锁实现原理如图3-14所示。 图3-14分布式锁预取
[键入文字]
3.1.3高性能技术
为了保证两个数据中心存储的数据实时一致,写操作都需要等待两端存储写成功之后再返回主机“写成功”双活i/o性能因为实时双写导致一定的时延增加,华为 HyperMetro设
[键入文字]