取消
搜索历史
热搜词
原创
活动
创新2.0
I T
产业
当前位置:首页 >互联网•IT > 存储 > 存储系统 > 正文
EMC VMAX3 SRDF/METRO双活特性原理及仲裁机制介绍
来源:高端存储知识  :西瓜哥 2015-06-15 10:47:40
我们要了解SRDF METRO,首先要了解一下SRDF。EMC的SRDF远程复制功能,历史悠久,应用广泛。其最大的特点就是R1设备可以正常读写,但R2设备是只读的,也就是不能写。只有当R1故障或者管理员切换,R2才有可能被主机写入。

\

上周有两天没有写文章,心中十分愧疚。这不,这个周末北京的天气不错,没有外出,研究了半天EMC高端存储的双活特性,一块来分享给大家。

大家知道,EMC在EMC WORLD 2015上宣布VMAX3将在今年Q3支持SRDF/METRO双活特性。那么这个特性的实现原理是怎样的,如何防止“脑裂”呢?

首先,我们要了解SRDF/METRO,首先要了解一下SRDF。EMC的SRDF远程复制功能,历史悠久,应用广泛。其最大的特点就是R1设备可以正常读写,但R2设备是只读的,也就是不能写。只有当R1故障或者管理员切换,R2才有可能被主机写入。

\

但如果是SRDF/METRO,R2设备会使用和R1的联邦特性(包括geometry即几何特征(如track大小),设备的WWN等等)。这样,对于Host来说,R1和R2看起来是一样的设备。主机可以同时读写R1和R2,就像访问同一个LUN一样。

这种双活的存储有两种应用环境。

一种是非集群方式,即主机同时可以看到两个存储,通过多路径软件来决定访问R1还是R2。一般情况都是采用距离优先的原则,优先访问最近的存储。

\

另一种主流场景就是和各种集群软件配合,如微软MSCS,VMWARE HA,ORACLE RAC等等,实现双活的数据中心。这种情况下,主机可以只看到本地存储,如果它出现故障,可以由另外一端的主机和存储接管。当然,主机如果能够同时看到两边的存储更好。

\

由于SRDF/METRO要实现active/active的功能,因此,需要VMAX3自己来协调写冲突。而原来SRDF就没有写冲突的问题,因为只有R1可以写。但EMC是如何实现,是采用分布式锁(如针对track加锁),还是其他机制,就不得而知。

据EMC的资料,其SRDF/METRO的第一个版本暂时不支持两地三中心的组网。下图是SRDF/METRO的设备对的状态转换图。首先,加入SRDF的设备必须是标准设备,创建设备对后,系统会进行同步,同步完成后,才能转变为SRDF/METRO Active-Active的状态。

\

大家可能记得,VMAX3最大的改进就是采用SLO的配置方式。还好,SRDF/METRO可以和FAST完美配合,也就是说在双活的情况下,FAST其实是把R1和R2的访问量都合并在一起,确保两边都符合系统配置的SLO服务等级目标。

了解完SRDF/METRO的原理,下面我们重点来分析一下SRDF/METRO是如何在故障发生时防止脑裂的问题。

EMC有两个选项来防止脑裂。一个叫bias(偏好)机制,一个叫witness/quorum(见证/仲裁)机制。

BIAS机制比较简单,华为的HyperMetro把这种机制叫优先级机制。也就是事先确定好如果系统故障由那个阵列来接管业务。

VMAX3在刚开始创建SRDF/METRO组的时候,这个时候R1是bias设备,当系统进入ACTIVE-ACTIVE状态后,用户可以修改bias设备。如果SRDF链路出现故障,bias设备将接管业务,no-bias设备将停止提供服务。系统进入Paritioned或者Suspended状态。

如果是非集群方式,主机多路径软件将切换到bias设备,系统可以继续运行。

\

如果是集群方式,只有bias站点的主机可以访问,另外一个站点的主机停止访问。由集群软件来处理客户端的切换,系统可以继续提供服务。

\

bias机制太简单,可能造成存活的站点和bias存储不一致的情况,这样系统的业务连续性无法得到保障。这个道理很简单,比如你把R1设为bias,但R1站点出了问题,R2由于不是bias设备而不能接管业务,造成业务中断。

为了解决这个问题,必须采用第三方站点见证/仲裁的方式。目前,SRDF/METRO支持采用额外的一台VMAX3做仲裁。

\

如果仲裁设备是VMAX,也是可以的。EMC只能支持VMAX或者VMAX3做仲裁,因为SRDF/METRO仲裁设备和R1/R2通讯采用的也是SRDF链接,仲裁的VMAX/VMAX3设备上需要安装相应的ePack软件。

\

采用第三站点仲裁的方式,SRDF/METRO的切换机制是怎样的呢?我们分15种情况来讨论一下。下面S1表示R1设备所在的站点,S2代表R2设备所在的站点,Q代表仲裁站点。

1、如果Q故障,则S1和S2业务继续,这个时候系统切换为bias模式,而且S1和S2都发生call home行为,通知服务中心发生的故障。这个处理好像比HDS VSP G1000要好一些,HDS VSP G1000仲裁站点故障,需要停止双活,由S1接管业务。可能是HDS没有实现bias机制,必须采用仲裁的方式。应该不是技术问题,可能从可靠性考虑,HDS采用这样的处理机制。

2、如果是S2出现问题,S1接管业务,S2进入失败状态。

\

3、如果是S1故障,S2接管业务,S1进入失败状态。

4、如果S1和S2的链路故障,S1接管业务,S2进入suspend状态,等链路故障恢复,双活功能也可也自动恢复。

\

5、如果S1和S2到仲裁站点的链路都出现故障,这个故障处理和仲裁站点故障是一致的。

6、如果复制链路和仲裁站点都出现故障,则S1和S2都处于挂起suspend状态,业务中断,call home报告故障。

\

7、如果是复制链路和S2到仲裁站点链路出现故障,S1接管业务,S2挂起,并且call home。

8、如果是复制链路和S1到仲裁站点链路出现故障,则是S1挂起,S2接管业务,并且call home。

\

9、如果只有S2到仲裁站点链路出现故障,双活业务不影响。S1变为bias,S2会call home。

10、如果是S1到Q的链路故障,处理方式和第9类似。

\

11、如果S1故障,而S2到Q的链路也故障,那么S1失败,S2挂起,业务中断,call home。

12、如果S2故障,并且S1到Q的链路也故障,这处理机制和11类似。

\

13、如果S1和Q都发生故障,这个时候S1失败,S2挂起,业务还是中断。因为S2不知道是否应该接管业务,因为它无法和另外两个站点通讯了。

14、如果S2和Q故障,处理方式和13类似。

\

15、如果三个站点之间的链路全部中断,这S1和S2都会挂起,业务中断。

\

这15种情形,其实可以归纳为一句话:只要三个站点有两个站点可以通讯,则业务不受影响,否则业务中断。

大家可以看到,EMC的故障处理机制还是比较完善的。但由于SRDF/METRO是一个新功能,从相关资料看,其在Q3发布的第一个版本还是有比较多的使用限制,如:

1、不支持两地三中心的组网;

2、不支持在线设备扩展(应该指R1/R2 device);

3、可能不支持FAST.X(FTS),也就是不支持挂第三方阵列;

4、不支持VAAI;

5、不支持SCSI-2集群,SCSI-3集群如果支持也是受限场景支持。

......

再加上SRDF/METRO采用SRDF机制来做仲裁,因此仲裁设备只能是VMAX高端阵列,成本比较高。

综上所述,SRDF/METRO拉平了和HDS VSP G1000 GAD的差距,但初始版本还不太成熟,有比较多的使用限制。虽然华为高端存储的HyperMetro双活也没有上市,但据说其可以支持两地三中心的组网,支持采用低端存储做仲裁,支持第三方阵列,从功能上感觉要比SRDF/METRO甚至GAD要多些。

总之,双活功能以后可能成为高端存储的关键功能之一了。

编辑:张路麒
关键字:     特性  原理  机制 
活动 直播间  | CIO智行社

分享到微信 ×

打开微信,点击底部的“发现”,
使用“扫一扫”即可将网页分享至朋友圈。