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

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

说到HyperSwap技术,在没有SVC存储虚拟化方案之前,HyperSwap技术主要用于IBM高端DS8000系列存储当中,达到应用和存储的高可用和双活需求,但是当时DS8000系列存储成本高昂,适用于核心类或者关键类应用的跨站点双活需求,不利于整体性的双活数据中心规划和建设,更别谈异构存储的跨中心双活建设了。但到了SVC 7.5版本,SVC和V7000都可以支持HyperSwap技术了,中端存储的地位瞬间提升了一个档次,异构的各类中端存储,结合SVC HyperSwap,都可以实现跨中心的双活高可用了,那么究竟SVC HyperSwap是什么技术?先来看看下面这张官方架构图:

SVC HyperSwap_2.JPEG


从图中可以看到的是,先从架构上:

SVC HyperSwap采用了hyperswap的拓扑架构,最少需要两个I/O Group,同一I/O Group需要两个节点,并在同一个站点,而且很惊喜的发现,每个站点均有VDISK,主机映射了四个SVC节点,存储路径更多了,冗余性更高了。

而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.站点2失效。

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

3.站点2恢复。

4.站点1的VDISK开始同步至站点2的VDISK

5.站点1在VDISK同步时突然失效。

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

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

与SVC Stretched cluster类似的是,SVC HyperSwap中的主机、SVC节点和存储均被赋予了站点属性,同时也需要配备第三站点作为防范脑裂的仲裁站点。

接着看下面这张图:

svc hyperswap_3.JPEG


可以看见,一个hyperswap卷是由以下几个部分组成:

1.4个VDISK(可以是THICK/THIN/COMPRESSED,也可以被加密)

2.1个ACTIVE-ACTIVE的REMOTE COPY RELATIONSHIP(系统自己控制)

3.4个FLASH COPY MAPS(FOR CHANGE VOLUMES)(系统自己控制)

4.额外的ACCESS IOGROUP(方便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(REMOTE COPY)同步变化数据至另一站点的VDISK中,之后,站点VDISK又将重新与Change Volume建立快照关系,与根据这一原理,不断往返变化数据,保持四份COPY数据的同步的关系,当然这些都是SVC hyperswap系统自动完成的,用户无需干预。

另外,在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卷和初始化后,被标签为MASTER的VDISK作为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见下图:

svc hyperswap_4.JPEG


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

写I/O见下图:

svc hyperswap_5.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的响应。

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

银行 · 2017-02-16
浏览4623

回答者

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

jxnxsdengyu 最近回答过的问题

回答状态

  • 发布时间:2017-02-16
  • 关注会员:2 人
  • 回答浏览:4623
  • X社区推广