微信号:huangliang_storage

介绍:企业存储、服务器、灾备等领域技术分享,交流 @唐僧_huangliang (新浪微博 )

【转】详解两地三中心GDPS双活解决方案

2016-11-12 18:03 曾脉

编者注:GDPS双活是一个新生的且持续发展的解决方案,当前处于第二个阶段Active-Query。我理解其效果类似于Oracle Active DataGuard,还做不到不依赖存储层双写的强一致性完全双活。


最近“宇宙行”两地三中心同城切换公开观摩的消息看了吗?其技术就是这个——

 

两地三中心GDPS双活解决方案

 

A. 为什么采用两地三中心GDPS 双活解决方案?

首先澄清一个概念,如果我们仅仅是指两地三中心GDPS灾备解决方案的话,那么早在七、八年前国内很多大行就已经做到了这一点,具体的实现多是通过同城两个中心的GDPS PPRC解决方案联合异城两个中心的GDPS z/OS GlobalMirror或者GDPS Global Mirror解决方案。

我们这里提到的两地三中心GDPS双活解决方案是近三年来很火的一个主题,而且因为今年在某一大行的成功实施,使得这个主题无数次被提及。

那么为什么要采用两地三中心GDPS 双活解决方案呢?哪些场景下可以用到这个解决方案?

想来大家都应该看到过:银行营业网点或者银行官网上会发出因为某系统升级或者故障从凌晨几点到几点无法做交易的消息。事实上无论是计划内的应用,数据库,中间件,系统和硬件升级维护,或者计划外的系统综合休(SYSPLEX)级的故障,还是突如其来的火灾,地震,水灾,以及最要命的恐怖袭击,都有可能造成银行系统的不可用,进而造成业务的中断。各大行都迫切希望减少计划内和计划外停机的业务不可用时间,最好能够在面对各种极端情况时,依然能够保证业务的持续可用性,让用户感觉不到有任何故障存在,故两地三中心GDPS 双活业务持续可用解决方案应运而生。

该解决方案在不同城市的两个数据中心间沿用已经存在的GDPS z/OS Global Mirror灾备解决方案,其核心则在于同城两个数据中心间的GDPS双活方案,从而使得关键应用运行于同城的任一个数据中心,在这两个数据中心之间做到自如地站点级别切换,一个站点的应用故障不会影响到另外一个站点的应用操作。

GDPS双活的英文全称是Geographically Dispersed Parallel Sysplex Active-Active,即地理分散并行系统综合体双活解决方案. 该解决方案由两个分布于不同数据中心的并行系统综合体组成,这两个数据中心的功能分布是1:1模式,同时对外提供服务,数据中心间实现负载均衡,任何一个中心具备100%生产支持能力,具备无缝业务切换能力,减少应用停机时间,从而保证业务的持续可用性。

说到GDPS 双活解决方案的适用场景,我们需要明确GDPS双活解决方案是一个新生的且持续发展的解决方案,总共分成三个阶段,第一阶段为GDPS Active-Standby, 第二阶段为 GDPSActive-Query, 第三阶段为 GDPS Active-Active, 当前处于第二个阶段。

在当前GDPS Active-Query通常的配置中,两个Active 的站点A和B,站点A是生产站点,主要用于运行核心业务,包含OLTP(联机事务处理) 和批量作业,站点B则只用于运行只读的Query(查询),并且随时准备着运行OLTP和批量作业。

如果在站点B上监控到端到端的延时超过预定义的阈值,那么Query能够自动地Switch到站点A去做运行,当然这里我们可以在一分钟内通过SA REXX从监控表里抽几次样,如果几次都超过的话,再做切换,会更为合适。

对于站点A而言,如果行里要对站点A的生产系统进行升级和改造,以前在行里通常需要请求三到五个小时的停机时间窗口(遇到问题的话,可能会更久),在这个过程中,站点A是无法对外界提供服务的。

但是现在采用了GDPS 双活方案后,因为站点 B可以无缝接管站点A的业务,所以可以通过GDPS A-A作站点级切换,把OLTP Workload 定向到站点B,由B站点对外界提供业务,此时所有的OLTP和Query Workload都运行在了站点B,整个过程对于客户而言,都是透明的。

然后对站点A进行升级,可以是升级应用程序,硬件,DB2z版本,甚至z/OS, 到升级完成后,在B站点停OLTP Workload,反向同步站点B改变的数据到站点A, 再把OLTP Workload回切到站点A。

整个过程中,站点切换耗时大概2分钟左右,回切基本上是相近时间,在站点B停OLTP Workload并反向同步数据耗时大概是10分钟,加到一起整个升级过程把对外界不能提供业务的时间控制在了十分钟的级别,与原有的三至五个小时相比有了巨大的改进。


B. GDPS双活解决方案的技术组成


 G 1 -- GDPS 双活解决方案架构 

GDPS双活解决方案在数据复制上与传统的GDPS解决方案(GDPS PPRC, GDPS z/GM, GDPS GM)有着本质的区别,就在于它不依赖于基于硬件的数据复制,而是基于软件QREP的异步复制技术,在源站点QREP Capture到DB2改变的数据,通过MQ传输到目标站点,再由QREP Apply在目标站点Replay Transactions。

GDPS双活解决方案的自动化控制至少体现在Workload级别,GDPS A-Q Workload由Software, Data,和Network Connectivity组成,分成Update Workload和Query Workload两种类别,这里Query Workload必须关联到Update Workload。

在SA的Policy中,我们会定义相应的Workload以包含CICS TOR, QCAP, QAPP, DB2和CGs。


G2 -- Update Workload & QueryWorkload

  1. WKL_CICS_P1_Q     里包含所有Query的 CICS TORs

  2. 因为要满足传输的性能需要,故引入QREP MCG. 这里MCG全称为Multiple Consistency Group,其名字与Workload名字相对应, 针对每个DB2 Data Sharing Group在SA Policy中定义Workload,在QREP控制表中定义MCG. 如对私业务DB2 DSG的Workload名为WKL_CICS_P1,它在SA Policy中的定义包含所有对私业务的CICS TORs, DB2     Members, LPAR, SYSPLEX, QCAP地址空间, QAPP地址空间和CGs. 一个CG(Consistency Group)对应于在同一个RECVQ复制的所有DB2表的集合.  

下面讲一下QREP技术,一言以概之,即Log-Capture/Transaction-Replay. 


G3--QREP 技术

首先在源端对应于QREP Capture,它会通过DB2 IFI接口,从DB2 Recovery Log捕获改变的数据,并Publish到MQ的SENDQ中,通过MQ把数据无损失地传输到目标端,在目标端QREP APPLY负责从MQ RECVQ中读取数据,并重建SQL,然后把它们Apply到目标端的DB2中Replay Transactions。

之前有提到QREP端到端的延时,这里给一个图以示其组成.为了保证QREP的高性能,在过去的日子里一直致力于提升QREP的吞吐能力,减少CAPTURE_LATENCY, 减少QLATENCY,减少APPLY_LATENCY,从而减少整体的端到端延时,以满足客户OLTP 5S以内,批量30S以内的性能要求。


G4--QREP端到端的延时组成

下面介绍一下IBM Multi-site Workload Lifeline for z/OS, 在GDPS双活解决方案中,Lifeline提供智能路由建议到外部Load Balancers,以选择相应的LPAR去运行Workload。Lifeline由Controllers上的Advisor和Workload所在LPAR上的Agent组成。下面是一个很经典的结构图。


G5--Multi-site Workload Lifeline结构

1. Advisor与Agent 之间的通信

Agent注册并连接到Advisor,Advisor发送其想要Agent监控的所有成员消息,Agent定期发送系统健康状态到Advisor,为了响应DEACTIVATE命令,Advisor发送Server Application清单至Agents,让其重置这些Server Application的连接。

2.  Advisor与LoadBalancer(负载均衡器)之间的通信

外部Load Balancer建立与PrimaryLifeline Advisor的连接,并且通过SASP(Server/Application StateProtocol) API从Advisor获得路由建议,这里Advisor仅仅提供建议,不负责实际传输或路由工作.Load Balancer多由Vendor公司提供,如F5, Citrix和Cisco。

3.  Advisor与Advisor之间的通信

Secondary Advisor连接到Primary Advisor, Primary Advisor发送它的配置信息和Workload状态信息到Secondary Advisor,当前的Primary Advisor终止,或者所在系统故障时,Secondary Advisor能接管Primary Advisor的角色.这里需要保证两个Advisor的配置是相同的。

4. Advisor与SupportElement(SE)之间的通信

Advisor使用BCPii地址空间作为与SEs之间通信的桥梁,获得LPARs的状态信息

5. Advisor与NetworkManagement Application之间的通信

Advisor创建AF_UNIX套接字,通过Network Management Interface(NMI),接收来自网络管理程序的连接,为Server Applications提供Workload状态信息,站点信息,连接的Load Balancer, Agents和Secondary Advisor信息,以及路由建议。

下面我们将介绍GDPS 双活站点切换中的关键步骤,皆由GDPSA-A代码完成。


1. 站点包含个Workloads,故在触发站点切换时,触发多个Workloads的切


PTKA     14165 08:53:23.93    GEO1551I ROUTING SWITCH FOR WORKLOAD WKL_NOVA_P2 INITIATE                   

                            GEO1703I GDPS/A-A ROUTING SWITCH PR 393                                                                 

. A PLANNED WORKLOAD SWITCH HAS BEEN INITIATED FOR                                                      

. WORKLOAD WKL_NOVA_P2                                                                                  

. TO SITE PLEXPT3                                                                                        

. STOP ANY LONG RUNNING PROCESSES.                                                                      

. ACTIVE SITE: PLEXPT1                                                                                   

. ALTERNATE SITE: PLEXPT3                                                                               

. REPLY 'OK' TO CONTINUE SWITCH.                                                                        

.       'NOK' TO ABORT SWITCH.                                                                          

.       'REPEAT' TO REISSUE THE PROMPT.                                                                 

PTKA     14165 08:53:25.18    013 GEO1642A PLEXPT1 SWITCH WORKLOAD WKL_NOVA_P2 REPLY                                                                  OK,NOK OR REPEAT

PTKA     14165 08:53:32.40    R 013,OK                    

                                                        IEE600I REPLY TO 013 IS;OK  

 

2. 开始Workload切换,并对站点A Quiesce Workload,以阻止新的连接


PTKA     14165 08:53:23.93    GEO1551I ROUTING SWITCH FOR WORKLOAD WKL_NOVA_P2 INITIATE                   

PTKA     14165 08:53:32.40    GEO1548I ROUTING SWITCH FOR WKL_NOVA_P2 PROCEEDING                  

PTKA     14165 08:53:32.42    GEO1551I ROUTING SWITCH FOR WORKLOAD WKL_NOVA_P2 INITIATE   

PTKA     14165 08:53:34.07        GEO1548I ROUTING SWITCH FOR WKL_NOVA_P2 PROCEEDING

PTKA     14165 08:53:35.63   GEO1552I ROUTING SWITCH WKL_NOVA_P2 DB2  PREPARE OK

PTKA     14165 08:53:35.64    F AQSADV,QUIESCE,WORKLOAD=WKL_NOVA_P2

PTKA     14165 08:53:35.71        AQS0155I WORKLOAD WKL_NOVA_P2 QUIESCED

PTKA     14165 08:53:38.65    GEO1560I ROUTING QUIESCED FOR WORKLOAD WKL_NOVA_P2  in PLEXPT1

         


3. Deactivate当前的Workload,并对站点A上的DB2 表空间加Softfence保护,以使站点A只有QREP才能去Update表,确保其它的应用都无法更改表的数据。

PTKA    14165 08:53:46.03   GEO1539I WORKLOAD WKL_NOVA_P2 DB2 COMPONENT LIST 1 CREATED                

PTKA    14165 08:53:46.05   GEO1565I ROUTING SWITCH WORKLOAD WKL_NOVA_P2 DB2 COMPONENT 

                                                  LIST2 CREATED  

PTKA    14165 08:53:46.05   GEO1567I ROUTING SWITCH WORKLOAD WKL_NOVA_P2 DB2 IN WAIT FOR

                                                    QUEUED  TRANSACTIONS               

PTKA    14165 08:53:47.57  GEO1569I ROUTING SWITCH WORKLOAD WKL_NOVA_P2 DB2 THREADS

                                                   ARE PURGED

PTKA    14165 08:53:47.58   F AQSADV,DEACTIVATE,WORKLOAD=WKL_NOVA_P2                                                                           

PTKA    14165 08:53:48.34   AQS0155I WORKLOAD WKL_NOVA_P2 DEACTIVATED                                                     

PTKA    14165 08:53:50.61  GEO1537I GDPS/A-A ROUTING SWITCH - PREPARE FENCE OPERATIONS

                                                  FOR WKL_NOVA_P2 IN  PLEXPT1   

PTKA    14165 08:53:58.22  GEO1533I ROUTING SWITCH WORKLOAD WKL_NOVA_P2 DB2 SETFENCE

                                                   RREPL SUCCESFULLY EXECUTED IN PLEXPT1


4.对QREP 发送STOPQ命令,关闭站点B的Softfence保护, Activate 站点B的Workloads.之后将由B站点开始提供外界服务。

PTKA    14165 08:54:40.03  GEO1582I ROUTING SWITCH WORKLOAD WKL_NOVA_P2 DB2         

                           REPLICATION SUCCESFULLY  STOPPED

PTKA    14165 08:54:40.05  GEO1537I GDPS/A-A ROUTING SWITCH - PREPARE FENCE OPERATIONS

                                         FOR WKL_NOVA_P2 IN PLEXPT3  

PTKA    14165 08:54:43.18 GEO1533I ROUTING SWITCH WORKLOAD WKL_NOVA_P2 DB2 SETFENCE                                  RW SUCCESFULLY EXECUTED IN PLEXPT3  

PTKA    14165 08:54:43.20  F AQSADV,ACTIVATE,WORKLOAD=WKL_NOVA_P2,SITE=PLEXPT                                                                                  

PTKA    14165 08:54:43.29  AQS0153I WORKLOAD WKL_NOVA_P2 ACTIVATED ON SITE PLEXPT3                          

PTKA    14165 08:54:46.28  GEO1589I ROUTING SWITCH COMPLETED FOR WORKLOAD

                                                   WKL_NOVA_P2 FROM PLEXPT1  TO SITE PLEXPT3


5. 统计站点切换时间

对于Workload WKL_NOVA_P2,在这次切换中了1:21:22,同时有其它的Workloads也并行做着切换.整体的站点切换时间在2分钟内完成,满足银行的切换时间需求。


PTKA    14165 08:53:23.93  GEO1551I ROUTING SWITCH FOR WORKLOAD WKL_NOVA_P2 INITIATE 

……

PTKA    14165 08:54:46.28  GEO1589I ROUTING SWITCH COMPLETED FOR WORKLOAD                                                               WKL_NOVA_P2 FROM PLEXPT1  TO SITE PLEXPT3

 

作者:曾脉

邮箱:zengmai@cn.ibm.com

内容声明:文中专业名词因翻译原因,表述中难免存在差异。如有疑惑,请以英文为准。同时数据来源于实验室环境,仅供参考。

 

来源:https://www.ibm.com/developerworks/community/blogs/IBMzOS/entry/20150101?lang=ru_ru


:本文只代表作者个人观点,与任何组织机构无关,如有错误和不足之处欢迎在留言中批评指正。进一步交流技术可以加我的QQ/微信:490834312。如果您想在这个公众号上分享自己的技术干货,也欢迎联系我:)


感谢您的阅读和支持!《企业存储技术》微信公众号:huangliang_storage


长按二维码可直接识别关注

历史文章汇总(传送门):http://chuansong.me/account/huangliang_storage

点击下方“阅读原文”,查看更多历史文章
↓↓↓
 
企业存储技术 更多文章 互联网场景下的MySQL应用实践 干货分享:高速闪存存储系统设计(by 吴忠杰) 一台服务器称霸SPC-1性价比:存储基准测试该怎么玩? GlusterFS分布式文件系统(by刘爱贵,附pdf下载) 《企业存储技术》2015精华回顾
猜您喜欢 Android Vsync 原理 ❲知多少❳对 POSIX 标准的一点认识 投票 深度学习 【干货】程序员应该知道的计算机网络知识