jxnxsdengyu
作者jxnxsdengyu2017-02-15 17:54
系统工程师, 江西农信

双活数据中心建设系列之---基于SVC的三种主流双活数据中心架构深入探讨PART1

字数 3819阅读 2151评论 0赞 3

前言

作为业务系统的最后一道防线,IT数据灾备中心必须在极端状况下确保重要业务系统稳定运行。灾备方案的出现给业务系统提供了完备的数据级保护,然而,传统的灾备方案中存在着资源利用率低、可用性差、出现故障时停机时间长、数据恢复慢、风险高等问题。数据是否安全、业务是否连续运行无中断成为用户衡量一个灾备方案的关键。作为灾备方案中的高级别的双活数据中心解决方案成为应对传统灾备难题的一把利剑。
传统的数据中心环境下,灾备生产中心长年处于休眠状态,并不参与前端应用的数据读写工作。如果数据中心环境良好,没有突发性灾难的发生,灾备中心资源就一直处于闲置状态,造成用户投资浪费。而在双活解决方案中,分布于不同数据中心的存储系统均处于工作状态。两套存储系统承载相同的前端业务,且互为热备,同时承担生产和灾备服务。这样不仅解决了资源长期闲置浪费的大问题,还能使数据中心的服务能力得到双倍提升。
在这样的背景下,传统的数据灾备中心越来越不能满足客户的要求,用户希望在成本可控的同时,建立一高可靠性、高可用性、高可切换性的双活数据中心。
IBM SVC在双活数据中心建设的虚拟化存储解决方案中,有三种主流的双活基础架构可以满足我们搭建新形势下高要求的双活数据中心,值得我们深入探讨,分别为:SVC Stretch Cluster、SVC HyperSwap和SVC Local VDM+SVC PPRC。这三种架构方案针对不同的企业需求均能发挥最大的效用,本期专题讨论会就是要把这三种架构方案聊透彻,讲明白,让企业在选择时有所依据,有的放矢,并充分挖掘自身企业的思维方式,选择最适合自身企业发展的双数据中心虚拟化存储解决方案。讨论会将重点讨论以下要点:
1.深入剖析三种SVC双活数据中心虚拟化存储解决方案的架构与特性。
a.SVC Local Cluster、SVC Stretch Cluster和Enhanced Stretched Cluster之间的演化与特性。
b.SVC Stretch Cluster与SVC HyperSwap两种ACTIVE-ACTIVE双活方式。
c.SVC Local VDM+SVC PPRC作为ACTIVE-STANDBY的双活方式的立足之地。
2.SVC Stretch Cluster、SVC HyperSwap和SVC Local VDM+SVC PPRC三种方案详尽对比与总结。
3.基于存储架构层的双中心Active-Active模式真的就是适合自身企业?
4.虚拟化云时代,民主还是集权?

深入剖析三种SVC双数据中心虚拟化存储解决方案的特性

SVC Stretch Cluster

SVC Stretch Cluster也就是SVC拉伸式集群架构,就是把同一SVC集群中的SVC节点分散在不同的两个数据中心,它们之间通过光纤链路连接,并且需要第三地的仲裁设备。为了帮助大家深入理解SVC Stretch Cluster,先来理解下SVC Local Cluster:
一套SVC集群最少包含2个节点,最大8个节点,两两节点组成一个I/O group,因此一套SVC集群最大可以包含4个I/O group,如下图所示:

每一个存储LUN都分配给一个I/O group,你也可以手动转换存储LUN的I/O group,比如说LUN1属于I/O group0,当I/O group完全不可用时,需要手动转换至I/O group1,因为每一个I/O group均由两个SVC节点组成,所以每个存储LUN均分配给一个优先的节点和一个非优先节点,如下图所示:

不同的存储LUN的优先节点可以不一样,这是SVC集群系统自动负载和分配的,同一SVC I/O group节点均衡负载着存储LUN,对于读I/O请求来说,来自于优先的SVC节点,而写I/O请求在同一I/O group的两个节点间同步,一次SVC I/O写请求,分解为以下5个步骤:
1.主机发送写I/O请求至SVC I/O group
2.优先的SVC节点A写入I/O至缓存,并发送I/O至同一I/O group的另一SVC节点B
3.节点B将写入I/O至缓存后,并回响应至节点A
4.节点A收到节点B的回响应后,向主机回响应
5.节点A将缓存写I/O写入LUN当中
写I/O流转图如图所示:

有人会说了,第5步最后才将缓存数据写入LUN当中,那么当还没有写LUN时,SVC节点突然断电了怎么办?这种情况SVC也是考虑了,每个SVC节点均配备了UPS电源,可以维持供电,可以保证缓存数据正常写入LUN当中。
基于以上这种机制,同一I/O group的两个SVC节点是实时同步的,当I/O group中的主节点故障时,另一SVC节点将接管,并进入写直通模式,并禁止写缓存,也就是说只有1、5、4三个步骤。
以上是SVC的I/O group在一个数据中心的情况,而SVC Stretch Cluster则是将一套SVC集群下的同一I/O group的两个节点拉开,分别放在两个数据中心,之前连接SVC的一套存储,拉开后各放置一套存储,通过SVC做vdisk镜像同步。说白了还是同一套SVC集群,同一个I/O group,SVC Local VDM(vdisk mirror)拉开成SVC Stretch VDM,映射给主机的volume还是同一个,这样一来就不难理解了。SVC、存储、主机及第三站点光纤连线下图所示:

对于SVC Stretch Cluster来说,为了防范脑裂,仲裁站点是必需的。首先是configuration node,配置节点,是配置SVC集群后,系统自动产生的保存着所有系统配置行为的节点,不能人工更改配置节点,当配置节点失效后,系统会自动选择新的配置节点,配置节点十分重要,它对SVC节点仲裁胜利起着决定性作用,仲裁胜利的排序规则如下:
1.配置节点
2.距离仲裁站点近的节点
3.距离仲裁站点远的节点
下图为SVC Stretch Cluster两个站点的仲裁配置示意图:

当两站点间光纤链路中断,第三站点仲裁节点活动时,脑裂发生,将通过投票仲裁选举获胜的站点,按照上述的仲裁胜利规则,configuration node位于节点2,选举站点2优先赢得仲裁,通过站点2恢复业务的正常存储访问。

当第三站点仲裁节点不活动时,不影响主机的正常存储访问,但是此时,两站点间光纤链路也中断了,发生脑裂,这时因为节点2为configuration node,它所拥有候选的Quorum将变为active Quorum,该Quorum选举站点2为仲裁胜利站点,通过站点2恢复业务的正常存储访问。

另外,SVC版本到了7.2时,又出了一个新功能, 叫做Enhanced Stretched Cluster,这又是什么呢?增强版拉伸集群增强点在哪?之前的Stretched Cluster看似实现了双活,实则只为数据级双活(SVC VDM),主机访问SVC实则只访问了一个I/O group优先节点,另一非优先节点则只是完成了写缓存同步的任务而已,无论是local cluster还是Stretched cluster,实际的读写卷操作并未通过非优先节点进行,通俗的说就是主备模式(ACTIVE-PASSIVE),由于优先节点是 SVC系统自动分配的,可能会出现一种情况是,主机在站点A,但是存储卷的优先节点却在站点B,主拷贝的存储却在站点A,主机一直访问了站点B的SVC节点,再访问站点A的存储,这样的存储路径完全不是最优的,对主机I/O性能造成影响,但是这些在Enhanced Stretched Cluster中均得到改善,实现了SVC双节点双站点读写双活,在该版本,元素均赋予site属性,如SVC节点、主机、存储等,不同站点的主机对各自站点的SVC节点和存储进行读写操作,对同一volume来说,站点A的主机访问站点A的SVC节点,站点A的存储,站点B的主机访问站点B的SVC节点,站点B的存储,存储访问路径最优,两个站点的SVC节点、主机、存储都同时活动,实现应用级双活(ACTIVE-ACTIVE),在site模式中,SVC优先节点概念不起作用了,配置了site模式的主机,优先访问活动的同site的SVC节点和同site的存储。如下图所示为读写模式下的Enhanced Stretched Cluster 流转图:
绿色的箭头为优先的读I/O流转,红色箭头为站点2的存储失效后的读I/O流转。

绿色的箭头为优先的写I/O流转,红色箭头为站点1/2的存储失效后的写I/O流转。

需要注意是,在写操作时,两个站点的SVC节点的缓存是保持同步的,但是不同于SVC LOCAL CLUSTER,整个写操作的过程中,SVC节点的写操作响应在写入缓存后就发生了,而不需要等待另一SVC节点写缓存完成并回复响应,这样一来,优化了整个写性能,具体过程如下:
1.主机向SVC写I/O请求。
2.同站点的SVC节点将写I/O写入缓存,并向主机回复响应,同时将写I/O同步至另一站点的SVC节点。
3.另一站点的SVC节点将写I/O写入缓存,并回复响应。
两个站点的SVC节点陆续将缓存写入各自站点的存储当中。

PART2可点击链接
PART3可点击链接
PART4可点击链接
PART5可点击链接

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

3

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广