Transparent cloud tiering was introduced at the end of 2016 and since then IBM has been delivering enhancements around usability, improved performance, and new use cases. This year, DFSMSdss adds support to natively dump and restore count key data (CKD) volumes to and from the cloud, or a TS7700 object store, using the DUMP and RESTORE FULL commands. This includes support for z/OS and zLinux volumes. Along with the full volume support, DFSMSdss provides a new CLOUDUTILS utility to manage those dumps as well as improvements to the management of the cloud credentials with a new CDACREDSTORE keyword.
With the full volume support, you can store your z/OS system images in the cloud and use them when rolling out operating system maintenance across your data center floor. Another use case incorporates the support into your logical corruption protection procedures that use FlashCopy or Safeguarded Copy. For example, you may FlashCopy a set of volumes periodically, and keep one or two of those copies online. If you want to keep more than one or two versions, then as you create new FlashCopies, dump the older ones off to the cloud. Similarly, if want to keep older Safeguarded copies offline, you first recover them to a recovery system and then dump them to the cloud. And since DFSMSdss is using transparent cloud tiering, the data movement is offloaded to the DS8000 eliminating virtually all of the CPU cost.
DFSMSdss provides the ability to manage the dumps it creates to the cloud using a new CLOUDUTILS command. Using CLOUDUTILS you can list and delete individual dumps or entire containers with one command. As we see in figure 1, combining the dump and restore full support with the new CLOUDUTILS command allows you to implement a process of creating new dumps while expiring off old ones all in one job.
Figure 1. Skeleton JCL used to create a dump to the cloud and expire off an old version
//DNIGHTLY JOB...
//DUMP EXEC PGM=ADRDSSU
//PRODVOL DD UNIT=SYSDA,DISP=SHR,VOL=SER=&PRDVOL
//FLCVOL DD UNIT=SYSDA,DISP=SHR,VOL=SER=&FLCTGT
//SYSPRINT DD SYSOUT=A
//SYSIN DD *
COPY FULL INDDNAME(PRD001) OUTDDNAME(FLCVOL) -
ADMIN ALLDATA(*) ALLEXCP -
FCNOCOPY FCTOPPRCP(PresMirReq) DUMPCONDITIONING
IF LASTCC = 0 THEN
DUMP FULL INDDNAME(FLCVOL) FCWITHDRAW -
ADMIN ALLDATA ALLEXCP(*) -
CDACREDS CLOUD( &CLOUD ) CONTAINER( &CONTNER ) -
OBJECTPREFIX( ‘&JOBNAME/&PRDVOL/D&STODAY' )
IF LASTCC = 0 THEN
CLOUDUTILS DELETE -
CDACREDS CLOUD( &CLOUD ) CONTAINER( &CONTNER ) -
OBJECTPREFIX( ‘&JOBNAME/&PRDVOL/D&SEXPIRE' )
/*
Notice the command examples in figure 1 do not use the CLOUDCREDENTIALS keyword and there is no password specified in the JCL. The CDACREDSTORE keyword removes the requirement that the cloud credentials be supplied in the JCL. The new CDACRESTORE keyword allows you to securely store an encrypted version of the password as part of the setup for TCT and DFSMSdss will use those credentials at runtime. Using symbols in the skeleton JCL allows us to use a single container to dump multiple CKD volumes, and keep multiple versions of each volume we dump. Picking an object prefix to support those two things is important, and in this example we use an object prefix with the date to accomplish it. A date is preferred over a version number because we are able to see when the dump was created by just looking at the object prefix name. Below is the REXX we use to generate the JCL using the provided skeletons as input.
Figure 2. REXX used to generate the dump and expire JCL
/* REXX */
/**************************************************************************/
/* https://www.rexxla.org/rexxlang/mfc/datec.html */
/* */
/* Also, credit to expat from */
/* http://ibmmainframes.com/about66336.html */
/**************************************************************************/
numVersions = 7
cloud = TS7700CLOUD
contner = DSSDUMPS
prdvol = VOL001
flctgt = FLC001
/* get today's date in 'Base' date format, e.g. '729584' */
today = Date('Base')
/* calculate date that we want to expire; returns '729577' */
expire = today - numVersions
stoday = Date('Standard', today, 'Base')
sexpire= Date('Standard', expire, 'Base')
"free fi(ispfile)"
"del '"uid".ispfile'"
"alloc fi(ispfile) da('"uid".ispfile') new tracks space(5 5)
recfm(f b) lrecl(80)"
/* EDIT The tailored file and submit manually */
address ispexec "ftopen"
address ispexec "ftincl nightly"
address ispexec "ftclose"
address ispexec "edit dataset('"uid".ispfile')"
EXIT
PTFs for APAR OA57562 were released in the third quarter of 2020 and available on z/OS V2R3 and above. OA57562 provides transparent cloud tiering support for DUMP and RESTORE FULL, the new CLOUDUTILS command as well as the new CDACREDSTORE keyword. More information can be found at the following links.
Transparent Cloud Tiering Redbook
DFSMS Transparent Cloud Tiering
TS7700 R5.0 Announcement for DS8000 Object Store