架构师技术联盟

分享项目实践,洞察前沿架构,聚焦云计算、微服务、大数据、超融合、软件定义、数据保护、人工智能、行业实践和解决方案。...

深入剖析PowerHA/SVC HyperSwap双数据中心存储方案

640?wx_fmt=png&wxfrom=5&wx_lazy=1


0?wx_fmt=gif&wxfrom=5&wx_lazy=1

      IBM PowerHA SystemMirror 7.1版本支持HyperSwap特性,配合DS8800或DS8870通过Metro Mirror复制可以实现Active-Active双活存储方案。HyperSwap 让PowerHA客户跨站点部署Power服务器和DS8870存储提供业务连续性。


      HyperSwap在2002年在IBM System z平台配合IBM Geographically Dispersed Parallel Sysplex/Peer to Peer Remote Copy(GDPS/PPRC) 一起使用。到目前为止HyperSwap和存储Metro Mirror技术都已相当成熟,Metro Mirror即Peer to Peer Remote Copy (PPRC)。


640?wx_fmt=png&wxfrom=5&wx_lazy=1


      PowerHA HyperSwap通过带SCSI命令在IBM Power服务器和DS8000存储之间通信。当存储、交换机或主机HBA卡发生故障时,Cluster Aware AIX (CAA)将检测到故障,并产生故障时间触发PowerHA发生SCSI命令到存储,进行主备切换或必要时处理。CAA也会触发AIX Path Control Module (PCM)切换路径到对端存储上。


      典型的PowerHA HyperSwap集群组网拓扑包含2个跨站点DS8800存储, 每个站点2台Power服务器与另一个站点2台服务器组成Stretched Cluster,站点内网络冗余,站点之间通过DWDM波分设备实现网络互联。


0?wx_fmt=png


      当主存储发生故障时,Power服务器将会检测事件并做出反应,执行 PPRC 故障转移,因此,应用程序的 I/O 活动被透明地重定向到另一站点存储系统,以便允许应用程序没有任何中断地继续运行。在HyperSwap切换过程中,会暂时冻结 I/O 活动,应用程序在此期间不会遇到故障,而是遇到非致命性的延迟。


0?wx_fmt=png


      PowerHA HyperSwap是一个AIX内核扩展仅支持IBM DS8800 设备,详细内容可参看“浅析PowerHA HyperSwap双活方案”文章。但到了SVC 7.5版本,SVC和V7000都可以支持HyperSwap技术了,中端存储的地位瞬间提升了一个档次,通过异构的各类中端存储,结合SVC HyperSwap,都可以实现跨中心的双活高可用了,那么究竟SVC HyperSwap是什么技术?


      Spectrum Virtualize/SVC HyperSwap技术可视为对SVC ESC架构的增强HyperSwap结合VDM也可实现4副本数据方案。其类似Power HyperSwap技术,通过Metro Mirror实现数据在两个IO Group之间的同步。但SVC HyperSwap支持如SVC、V7000、V5000、A9000和A9000R等更多平台,支持在不同产品之间(如A9000和A9000R),建立基于HyperSwap的双活方案。


0?wx_fmt=png


      从架构上来看,SVC HyperSwap采用了Hyperswap的拓扑架构,最少需要两个I/O Group,同一I/O Group需要两个节点,并在同一个站点,而且很惊喜的发现,每个站点均有vDisk,主机映射了四个SVC节点,存储路径更多了,冗余性更高了。SVC HyperSwap由下面多个技术组成。


  • Metro Mirror/Global Mirror:实现数据同步

  • Global Mirror with Change Volumes:数据增量同步时实现数据一致性

  • Non-Disruptive Volume Move:实现Volumes在IOG间的自动迁移

  • 外部虚拟化许可(3rd Site仲裁存储需要)

  • 无需特定的多路径软件支持,采用各个操作系统自带标准多路径,采用ALUA模式即可,相比PowerHA HyperSwap更加灵活。


640?wx_fmt=jpeg

      而SVC Stretched cluster采用的是Stretched的拓扑架构,一个站点一个SVC节点最大可达4个I/O Group,但是同一I/O Group的两个节点被分割到两个站点。两个站点的存储通过SVC虚拟化后只有一个vDisk,主机还只是映射两个SVC节点。


      再从性能上来看,SVC HyperSwap利用了更多的资源(包括SVC节点,网络路径和SAN交换机端口等),每个站点均含有完全独立的SVC读写缓存,一个站点失效,另一站点也能提供完全的性能,因为读写缓存在一站点失效后,不会被Disable两个站点的读写缓存是独立的两套,这点特别重要


      而相比之下,SVC Stretched cluster占用了相对较少资源,能提供更多的VDISK(同一SVC I/O Group vDisk也有上限),但是当一站点SVC节点失效后,另一站点的读写缓存会被Disable并进入写直通模式,性能相对来说会下降,在某些情况下,比如后端存储性能不够强,缓存不够大等。而且主机的存储访问路径会减少一半。


      另外一个主要不同点是,SVC HyperSwap有了Volume Groups(一致性组)这样概念,它能够将多个vDisk组合,共同保持高可用和数据的一致性,这对于需要映射多个vDisk的主机来说会有很大帮助,假设以下场景(主机映射多个vDisk)。

  • 1、站点A失效。

  • 2、应用仍然从站点B进行读写,只在站点B进行数据更新。

  • 3、站点A恢复。

  • 4、站点B的vDisk开始同步至站点A的vDisk


0?wx_fmt=png


      如果主机的多个vDisk没有配置Volume Groups,主机将很大可能无法通过站点2的数据恢复业务,因为站点2的多个vDisk可能正在被同步,尚未同步完成,它们的数据并不在同一时间点,挂在起来无法使用,那么这样的话只能寄希望于站点1。


      但是如果主机的多个vDisk配置成Volume Groups,主机是能通过站点2的数据进行恢复的,虽然数据尚未同步完成,但多个VDISK间的数据一致性是可以保证的,仍然属于可用状态,只不过数据不完全而已。


      但与SVC Stretched cluster类似的是,SVC HyperSwap中的主机、SVC节点和存储均被赋予了站点属性,同时也需要配备第三站点作为防范脑裂的仲裁站点。可以看见,一个Hyperswap卷是由以下几个部分组成。

  • 1、4个vDisk(可以是Thick/Thin/Compressed或加密的)

  • 2、1个Active Active的Remote Copy Relationship(系统自己控制)

  • 3、4个FlashCopy Maps(用于Chage Volumes)(系统自己控制)

  • 4、额外的Access IO Group(方便IO Group Failover)


      基于该Hyperswap卷技术,实现了两个站点vDisk的Active Active。站点1的Master vDisk写入变化时,被写入站点1的Change Volume中(基于Flash Copy,变化数据写入快照目标卷,原卷数据不变),站点2的Aux Disk写入变化时,同样被写入站点2的Change Volume中。


      一段时间后,系统自动停止vDisk与Change Volume间的快照关系,Change Volume将回写变化数据至vDisk,VDISK将通过SVC PPRC同步变化数据至另一站点的vDisk中,之后,站点vDisk又将重新与Change Volume建立快照关系,根据这一原理不断往返变化数据,保持4份Copy数据的同步的关系,当然这些都是SVC Hyperswap系统自动完成的,用户无需干预。


640?wx_fmt=jpeg


      另外在Hyperswap的卷复制Active Active关系中,我们可以看到依然存在Master或者AUX的标签,对于主机来说,两个站点的其中一个I/O Group的vDisk是作为Primary提供读写,所有读写请求必须经过该I/O Group,然而Hyperswap会自动决定是本站点的I/O Group的vDisk作为Primary,还是主要承担I/O流量的I/O Group的vDisk作为Primary


      在首次创建Hyperswap卷和初始化后,被标签为MastervDisk作为Primary,但是如果连续10分钟以上主要I/O流量是被AUX的vDisk承担,那么系统将会转换这种Master和AUX的关系,从这点上也可以看出与SVC Stretched cluster的不同,虽然SVC节点一样被赋予站点属性,但SVC Hyperswap在另一站点仍然活动时,不局限于只从本地站点读写,它会考量最优存储访问I/O流量,从而保持整个过程中主机存储读写性能


      另外需要注意的是主要的I/O流量是指扇区的数量而不是I/O数量,并且需要连续10分钟75%以上,这样可以避免频繁的主从切换。上面讲了这么多,那么SVC Hyperswap的读写I/O又是如何流转的呢?读I/O见下图。


640?wx_fmt=jpeg


      可以看到,每个站点第一次HyperSwp初始化后,先各自从各自站点的SVC节点读操作,绿色线为读操作I/O流转。写I/O见下图。

640?wx_fmt=jpeg


      从上面可以看到,图中显示了站点1的主机一次写I/O全过程,来看看每一步的处理流程。

  • 1、主机向本站点1的其中一个SVC节点发送写I/O请求。

  • 2、该SVC节点2将写I/O写入缓存,并回复主机响应。

  • 3、该SVC节点2将写I/O写入节点1缓存,并同时发送写I/O至站点2的节点3和节点4。

  • 4、SVC节点1、3、4回复节点2的响应。

  • 5、两个站点的SVC节点分别将缓存写入各自站点的存储当中。


      前面文章讨论了SVC Stretched Cluster双活方案,在文章最后,一起来简单总结下SVC HyperSwap有哪些区别和优势


      ESC(Enhanced stretched cluster)模式下的IO Group并不是真正的冗余模式。比如有2个IO Group,业务都在IO Group1上,当IO Group的两个节点都宕机的话前端业务也就中断了,业务并不会自动切换到IO Group2上。而HyperSwap虽然本地的SVC和IO Group跟远端站点相对独立,但存在容灾冗余关系,有更好的可靠性。

      事实上Enhanced StretchCluster与SVC HyperSwap的最大特性就具备SVC节点“站点化”,主机节点“站点化”,存储节点“站点化”,这两种模式都是同一站点的主机读写同一站点的SVC的节点,SVC节点读写同一站点的存储节点。所以这两种Active active存储双活方案都采用就近读写,然而SVC HyperSwap不仅仅是就近读写,它还根据站点流量,自动反转站点读写关系来优化IO效率

      HyperSwap支持把多个vDisk配置成了Volume Groups(一致性组)的形式,保证两个站点的多个vDisk同时写的数据一致性,从存储视角来说,站点内多vDisk数据一致性的。



温馨提示:
请搜索“ICT_Architect”“扫一扫”下面二维码关注公众号,获取更多精彩内容。

640?wx_fmt=png

听说点赞和分享的朋友都已走上人生巅峰

0?wx_fmt=gif

阅读更多
版权声明:更多内容,请关注【架构师技术联盟】公众号 https://blog.csdn.net/BtB5e6Nsu1g511Eg5XEg/article/details/78129921
想对作者说点什么? 我来说一句

IBM DS8000 PowerHA HyperSwap双活方案

2018年05月03日 47KB 下载

IBM 小机 HA配置详细每一步

2018年05月08日 0B 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭