HyperSwap.docx
《HyperSwap.docx》由会员分享,可在线阅读,更多相关《HyperSwap.docx(13页珍藏版)》请在冰豆网上搜索。
![HyperSwap.docx](https://file1.bdocx.com/fileroot1/2022-12/7/30be0e33-5361-4f12-a7b1-29caaf1aa503/30be0e33-5361-4f12-a7b1-29caaf1aa5031.gif)
HyperSwap
HyperSwap对跨Sysplex的共享数据的影响
1.测试场景
1.1测试环境
硬件:
1台z990主机/2台DS8000/FICON连接
软件:
NetViewv5.1/SAv2.2/GDPSPPRCv3.2
1.2系统结构
PLEXP1
-包含BP0M/BP0D/BP0J系统,其中BP0M是GDPS/PPRC的K系统
-使用两台DS8000作为存储设备
-系统看到的地址在主盘是8800-8F20
-系统看到的地址在从盘是9800-9F1F,主盘到从盘形成PPRCDuplex关系
CSCPLEXT
-包含T101/T102系统
-使用的存储设备包括ESS800和PLEXP1共用主盘的DS8000
-系统看到ESS800上的盘地址范围是B000-B15F
-系统看到DS8000上的盘地址范围是8800-8F20,即PLEXP1系统的主盘
PLEXP1和CSCPLEXT这两个不同的Sysplex,具备跨Sysplex的数据共享能力.
1.3GEOPARM
*
GEOPLEXLINKS
*
SITE1='8008,9098,Y,NF,02320032,03020102'
SITE1='8009,9099,Y,NF,02320032,03020102'
SITE1='800A,909A,Y,NF,02320032,03020102'
SITE1='800B,909B,Y,NF,02320032,03020102'
SITE1='800C,909C,Y,NF,02320032,03020102'
SITE1='800D,909D,Y,NF,02320032,03020102'
SITE1='800E,909E,Y,NF,02320032,03020102'
SITE1='800F,909F,Y,NF,02320032,03020102'
SITE2='9098,8008,Y,NF,00320232,01020302'
SITE2='9099,8009,Y,NF,00320232,01020302'
SITE2='909A,800A,Y,NF,00320232,01020302'
SITE2='909B,800B,Y,NF,00320232,01020302'
SITE2='909C,800C,Y,NF,00320232,01020302'
SITE2='909D,800D,Y,NF,00320232,01020302'
SITE2='909E,800E,Y,NF,00320232,01020302'
SITE2='909F,800F,Y,NF,00320232,01020302'
*
GEOPLEXMIRROR
*
PPRCSSID='8008,9098'
PPRC='8800,9800,24'
PPRC='881B,981B,3'
PPRC='881F,981E,2'
*
PPRCSSID='8009,9099'
PPRC='8900,9900,24'
PPRC='891B,991B,3'
PPRC='891F,991E,2'
*
PPRCSSID='800A,909A'
PPRC='8A00,9A00,24'
PPRC='8A1B,9A1B,3'
PPRC='8A1F,9A1E,2'
*
PPRCSSID='800B,909B'
PPRC='8B00,9B00,24'
PPRC='8B1B,9B1B,3'
PPRC='8B1F,9B1E,2'
*
PPRCSSID='800C,909C'
PPRC='8C00,9C00,23'
PPRC='8C1B,9C1B,3'
PPRC='8C1F,9C1E,2'
*
PPRCSSID='800D,909D'
PPRC='8D00,9D00,23'
PPRC='8D1B,9D1B,3'
PPRC='8D1F,9D1E,2'
*
PPRCSSID='800E,909E'
PPRC='8E00,9E00,23'
PPRC='8E1B,9E1B,3'
PPRC='8E1F,9E1E,2'
*
PPRCSSID='800F,909F'
PPRC='8F00,9F00,23'
PPRC='8F1B,9F1B,3'
PPRC='8F1F,9F1E,2'
*
GEOPLEXNONSHARE
*
NONSHARE='881A'
NONSHARE='891A'
NONSHARE='8A1A'
NONSHARE='8B1A'
NONSHARE='8C1A'
NONSHARE='8D1A'
NONSHARE='8E1A'
NONSHARE='8F1A'
*
NONSHARE='981A'
NONSHARE='991A'
NONSHARE='9A1A'
NONSHARE='9B1A'
NONSHARE='9C1A'
NONSHARE='9D1A'
NONSHARE='9E1A'
NONSHARE='9F1A'
1.4测试程序
1.4.1生成测试数据
PLEXP1系统运行如下Rexx产生用于测试数据的跨Sysplex共享数据:
BJSP02.REXX.EXEC(@2RWRTDS)
/************REXX***********/
TraceError
"profilenoprefix"
default_values:
loops=100000
do_arglst:
ARGarglst
PARSEVARarglstlps.
IFlps<>''THENDO
loops=lps
END
do_write:
count=0
DOi=1TOloops
count=count+1
hour=TIME('L')
PUSH'R.'count'RT.'hour
"execio1diskwindd1"
count=count+1
hour=TIME('L')
PUSH'R.'count'RT.'hour
"execio1diskwindd2"
END
"execio1diskwindd1(finis"
"execio1diskwindd2(finis"
"freef(indd1)"
"freef(indd2)"
通过以下JCL提交Rexx来生成测试数据:
BJSP02.REXX.EXEC(@2JWRTDS)
//@2JWRTDSJOBCLASS=D,MSGCLASS=X,TIME=1440,
//MSGLEVEL=(1,1),NOTIFY=&SYSUID,REGION=0M
//STEP1EXECPGM=IKJEFT01
//INDD1DDDISP=(NEW,KEEP),DSN=DAST.ICBC.TEST.DATA1,UNIT=3390,
//VOL=SER=DAST01,SPACE=(CYL,(100,200),RLSE)
//INDD2DDDISP=(NEW,KEEP),DSN=DAST.ICBC.TEST.DATA2,UNIT=3390,
//VOL=SER=DAST02,SPACE=(CYL,(100,200),RLSE)
//SYSTSPRTDDSYSOUT=*
//SYSEXECDDDISP=SHR,DSN=BJSP02.REXX.EXEC
//SYSTSINDD*
ALTLIBACTIVATESYSTEM(EXEC)
@2RWRTDS99999
/*
产生的测试数据如下所示:
DAST.ICBC.TEST.DATA1
R.1RT.11:
00:
59.161993
R.3RT.11:
00:
59.172814
R.5RT.11:
00:
59.172889
……
DAST.ICBC.TEST.DATA2
R.2RT.11:
00:
59.167667
R.4RT.11:
00:
59.172852
R.6RT.11:
00:
59.172922
……
1.4.2跨Sysplex读取数据
在CSCPLEXT系统上调用如下Rexx读取在PLEXP1系统上生成的共享数据,并保存在CSCPLEXT所有的ESS800的卷上.
TSCLJ.REXX.EXEC(@3RRDDS5)
/***************REXX******************/
/*IBMInternaluse*/
/*Author:
liujtss@*/
/*Readdatafromdifferentsysplex*/
/***************************************/
TraceError
"profilenoprefix"
doi=1to15000
"execio1diskrindd1"i"(finis"
hour=TIME('L')
say"CurrentTime:
"hour";Currentline:
"i
PULLline
line=STRIP(line,'T')
PUSHline">>>W."i"WT."hour
"execio1diskwoutdd1(finis"
end
"freef(indd1outdd1)"
TSCLJ.REXX.EXEC(@3RRDDS6)
/***************REXX******************/
/*IBMInternaluse*/
/*Author:
liujtss@*/
/*Readdatafromdifferentsysplex*/
/***************************************/
TraceError
"profilenoprefix"
doi=1to15000
"execio1diskrindd2"i"(finis"
hour=TIME('L')
say"CurrentTime:
"hour";Currentline:
"i
PULLline
line=STRIP(line,'T')
PUSHline">>>W."i"WT."hour
"execio1diskwoutdd2(finis"
end
"freef(indd2outdd2)"
通过以下JCL调用Rexx程序:
TSCLJ.REXX.EXEC(@3JRDDS5)
//@3JRDDS5JOBCLASS=A,MSGCLASS=X,TIME=1440,
//MSGLEVEL=(1,1),NOTIFY=&SYSUID,REGION=0M
//STEP1EXECPGM=IKJEFT01
//INDD1DDDISP=(SHR,KEEP),DSN=DAST.ICBC.TEST.DATA1,UNIT=3390,
//VOL=SER=DAST01
//OUTDD1DDDISP=(MOD,KEEP),DSN=TSCLJ.ICBC.TEST.DATA1,
//SPACE=(CYL,(100,200),RLSE)
//SYSTSPRTDDSYSOUT=*
//SYSEXECDDDISP=SHR,DSN=TSCLJ.REXX.EXEC
//SYSTSINDD*
ALTLIBACTIVATESYSTEM(EXEC)
@3RRDDS5
TSCLJ.REXX.EXEC(@3JRDDS6)
//@3JRDDS6JOBCLASS=A,MSGCLASS=X,TIME=1440,
//MSGLEVEL=(1,1),NOTIFY=&SYSUID,REGION=0M
//STEP1EXECPGM=IKJEFT01
//INDD2DDDISP=(SHR,KEEP),DSN=DAST.ICBC.TEST.DATA2,UNIT=3390,
//VOL=SER=DAST02
//OUTDD2DDDISP=(MOD,KEEP),DSN=TSCLJ.ICBC.TEST.DATA2,
//SPACE=(CYL,(100,200),RLSE)
//SYSTSPRTDDSYSOUT=*
//SYSEXECDDDISP=SHR,DSN=TSCLJ.REXX.EXEC
//SYSTSINDD*
ALTLIBACTIVATESYSTEM(EXEC)
@3RRDDS6
/*
2.测试流程和结果分析
(1)在BP0D系统上提交作业BJSP02.REXX.EXEC(@2JWRTDS)产生测试数据
(2)在T101系统提交作业,读取共享数据:
TSCLJ.REXX.EXEC(@3JRDDS5)
TSCLJ.REXX.EXEC(@3JRDDS6)
(3)执行GDPS脚本DASD1_MAINT,进行HyperSwap操作.
SDFLOG
17:
03:
04SYSPLEX='CDSSITE2'STARTED
17:
03:
05SYSPLEX='CDSSITE2'ENDEDRC=0
17:
03:
05DASD='SWITCHHYPERSWAPSUSPEND'STARTED
17:
03:
08HYPERSWAPRESUMECOMPLETE
17:
03:
36DASD='SWITCHHYPERSWAPSUSPEND'ENDEDRC=0
17:
03:
36IPLTYPE='BP0DMODE=SITE2'STARTED
17:
03:
36IPLTYPE='BP0DMODE=SITE2'ENDEDRC=0
17:
03:
36IPLTYPE='BP0HMODE=SITE2'STARTED
17:
03:
36IPLTYPE='BP0HMODE=SITE2'ENDEDRC=0
17:
03:
36IPLTYPE='BP0JMODE=SITE2'STARTED
17:
03:
36IPLTYPE='BP0JMODE=SITE2'ENDEDRC=0
17:
03:
36DASD1_MAINTPLANNED/STANDARDACTIONENDED
NetViewLog
17:
03:
05M===>GEO554IHYPERSWAPPHASE3-QUIESCEDISKI/O
17:
03:
06CVPCEACTBBATCH1CGROUP800808909808FREEZE
17:
03:
06CVPCEACTBBATCH2CGROUP800909909909FREEZE
17:
03:
06CVPCEACTBBATCH3CGROUP800A0A909A0AFREEZE
17:
03:
06CVPCEACTBBATCH4CGROUP800B0B909B0BFREEZE
17:
03:
06CVPCEACTBBATCH5CGROUP800C0C909C0CFREEZE
17:
03:
06CVPCEACTBBATCH6CGROUP800D0D909D0DFREEZE
17:
03:
06CVPCEACTBBATCH7CGROUP800E0E909E0EFREEZE
17:
03:
06CVPCEACTBBATCH8CGROUP800F0F909F0FFREEZE
……
17:
03:
08M===>GEO555IHYPERSWAPPHASE3-QUIESCECOMPLETE
(4)在跨Sysplex共享磁盘Freeze的时候,读取共享数据出现停顿
从SDSF输出里看到,程序在停顿2分钟后继续运行:
StopPosition
CurrentTime:
17:
03:
06.150518;Currentline:
3820
RestartPosition
CurrentTime:
17:
05:
06.275556;Currentline:
3821
Duration
2分钟
(5)执行脚本RESYNC#,完成场地2磁盘到场地1磁盘的PPRC再同步
SDFLOG:
17:
12:
21DASD='STARTSECONDARYNOFLASH'STARTED
17:
13:
48MIRRORINGSTATUSISNOWOK
17:
13:
49DASD='STARTSECONDARYNOFLASH'ENDEDRC=0
17:
13:
49RESYNC#PLANNED/STANDARDACTIONENDED
(6)程序执行完毕,观察程序结果
切换时刻快照
TSCLJ.ICBC.TEST.DATA1片断:
R.7633RT.11:
00:
59.446607>>>W.3817WT.17:
03:
06.055992
R.7635RT.11:
00:
59.446677>>>W.3818WT.17:
03:
06.086105
R.7637RT.11:
00:
59.446746>>>W.3819WT.17:
03:
06.118951
R.7639RT.11:
00:
59.446816>>>W.3820WT.17:
03:
06.150518
R.7641RT.11:
00:
59.446885>>>W.3821WT.17:
05:
06.275556
R.7643RT.11:
00:
59.446954>>>W.3822WT.17:
05:
06.307117
R.7645RT.11:
00:
59.447025>>>W.3823WT.17:
05:
06.340359
R.7647RT.11:
00:
59.447094>>>W.3824WT.17:
05:
06.373582
TSCLJ.ICBC.TEST.DATA2片断:
R.7624RT.11:
00:
59.446294>>>W.3812WT.17:
03:
06.045963
R.7626RT.11:
00:
59.446364>>>W.3813WT.17:
03:
06.076458
R.7628RT.11:
00:
59.446433>>>W.3814WT.17:
03:
06.105915
R.7630RT.11:
00:
59.446503>>>W.3815WT.17:
03:
06.134876
R.7632RT.11:
00:
59.446572>>>W.3816WT.17:
05:
06.228132
R.7634RT.11:
00:
59.446642>>>W.3817WT.17:
05:
06.289309
R.7636RT.11:
00:
59.446711>>>W.3818WT.17:
05:
06.324148
R.7638RT.11:
00:
59.446780>>>W.3819WT.17:
05:
06.361119
R.7640RT.11:
00:
59.446850>>>W.3820WT.17:
05:
06.402875
Resync开始时刻快照(SDSF作业输出)
CurrentTime:
17:
12:
42.175123;Currentline:
13520
CurrentTime:
17:
12:
42.269679;Currentline:
13521
CurrentTime:
17:
12:
42.385770;Currentline:
13522
CurrentTime:
17:
12:
42.475666;Currentline:
13523
IRX0562EAbnormalcompletionoftheGETDataManagementmacro.
IRX0565E@3JRDDS6,STEP1,8916,D,INDD2,GET,COMMANDREJECT,000005BA000000,QSAM.
IRX0250ESystemabendcode001,reasoncode00000003.
IRX0255EAbendinhostcommandexeciooraddressenvironmentroutineTSO.
IRX0670EEXECIOerrorwhiletryingtoGETorPUTarecord.
4*-*"execio1diskrindd2"i"(finis"
+++RC(20)+++
对比NetViewLog,发现程序出现SystemAbend的时刻正是Resync开始的时候
17:
12:
42EIEA494I981C,BPNV00,PPRCPAIRPENDING,SSID=9098,CCA=1C
17:
12:
42EIEA494I9A1E,DBLG03,PPRCPAIRPENDING,SSID=909A,CCA=1E
17:
12:
42EIEA494I981D,BPCIC1,PPRCPAIRPENDING,SSID=9098,CCA=1D
17:
12:
42EIEA494I9A1F,BPWK03,PPRCPAIRPENDING,SSID=909A,CCA=1F
17:
12:
42EIEA494I981E,DBLG01,PPRCPAIRPENDING,SSID=9098,CCA=1E
17:
12:
42M===>VPCEHSCS:
FAILBACKSUCCESSFULINBP0MAT17:
12:
42
17:
12:
42EIEA494I981F,BPWK01,PPRCPAIRPENDING,SSID=9098,CCA=1F
17:
12:
43M===>VPCEHSCS:
DISABLESUCCESSFULINBP0MAT17:
12:
43
17:
12:
43-CNM493IGEOMSGGP:
00799000:
VPCEMSGK29C00
17:
12:
43EIEA494I9C00,BPSA09,PPRCPAIRFULLDUPLEX,SSID=909C,CCA=00
17:
12:
43-CNM493IGEOMSGGP:
00799000:
VPCEMSGK29E01
17:
12:
43EIEA494I9E01,BPPM05,PPRCPAIRFULLDUPLEX,SSID=909E,CCA=01
17:
12:
43-CNM493IGEOMS