Section 325.4 FDRMOVE FASTMOVE Function with Examples
FASTMOVE Function of FDRMOVE
The FASTMOVE function of FDRMOVE uses instant replication functions (FlashCopy, SNAP, and EMCSNAP) to quickly move data sets that can tolerate only very brief outages, even when the source and target DASD are in different DASD subsystems.
Data sets can be selected from the catalog, with a control statement such as:
Usually this is used to select the data sets belonging to a single application. Or you can select all data sets on an input volume with a control statement such as:
For data sets that are active for a long time, such as database, CICS or 24x7 applications, it is necessary to schedule a time to close and deallocate the files or shutdown the application for a brief time, while FASTMOVE uses FlashCopy, SNAP, or EMCSNAP to quickly move the data sets to the new volumes. This is known as “bouncing” the application. FASTMOVE can move large amounts of data very quickly (typically up to 1TB per minute) so the “bounce” time is very small.
Moved data sets are allocated and cataloged on the output volume, and scratched from the input volume. FDRMOVE holds an exclusive SYSDSN enqueue on each data set while it is actually moving it, so each is not available while it is being moved, but is immediately available as soon as it is moved.
To use FASTMOVE:
- You must provide a set of unused offline DASD devices in the new subsystem (where the target DASD reside). These are known as “transit station DASD volumes.” The transit station DASD volumes can be the same size as the source DASD (or larger), but you must usually provide a number of transit stations equal to the number of source DASD volumes containing data sets belonging to the application (see Transit Stations for notes on this).
- If you have multiple LPARs (and almost everyone does), you must start FDRPAS MONITOR tasks on all LPARs (it's not necessary on the one FASTMOVE is running on) before submitting the FASTMOVE. These MONITOR tasks must monitor the offline transit station DASD volumes. See MONITOR SWAP Statement, MONITOR SWAP MOUNT Statement, and MONITOR SWAP Examples for details on setting up the MONITOR tasks. Note that a MONITOR task can participate in regular FDRPAS swaps as well as FASTMOVE; simply specify all the swap target addresses and transit station addresses.
- Start the FASTMOVE job, using a simple PGM=FDRMOVE step invoking the FASTMOVE function and specifying the data sets or volumes to be moved.
- FASTMOVE identifies the volumes containing the input data sets and submit a special FDRPAS job to move the input volumes to the transit stations. If FASTMOVE finds that a data set is already on a volume in the NVOL= list, it is not moved.
- Once the FDRPAS job starts, FASTMOVE signals the FDRPAS jobs to swap the online source volumes to one of the transit station DASD volumes.
- Once a volume reaches a transit station, inactive data sets are immediately moved. Data sets that are active (SYSDSN enqueue) are queued and re-tested at frequent intervals. As soon as those data sets are no longer active, they are moved. Because the transit station devices are in the same DASD subsystem as the target DASD volumes, instant replication (FlashCopy, SNAP, or EMCSNAP) is used to quickly move the data sets.
- When all source DASD volumes are in the transit station and data sets are still in use, the application that is using them can be bounced. The console STATUS command or the ISPF interface can be used to check volume status and identify the data sets FASTMOVE still needs (see FDRMOVE Console Commands and ISPF Interface).
- When the selected data sets become inactive (dequeued), FASTMOVE uses instant replication technology to rapidly move them to the pool of target DASD volumes. An exclusive SYSDSN enqueue is held while the data set is being moved, which may allow the application to be immediately restarted (it waits for FDRMOVE to dequeue the data set). Data sets that are still active are remembered, and are checked at intervals; as soon as they become inactive they are moved.
- Once FASTMOVE has moved all data sets selected on the source volumes (or it is instructed to stop), it again signals FDRPAS to swap the source volumes back to the original source DASD volumes. Since there are usually no or far fewer data sets left on the DASD, this swap is very fast.
- If you must terminate FDRMOVE before it completes all data sets, you have the option of leaving the volumes in the transit stations (F job TRANSITRETURN=NO). When you restart FDRMOVE it recognizes that they are already in the new subsystem. As long as FASTMOVE runs on the same LPAR and an IPL has not occurred, it recognizes that the DASD volumes are transit stations; otherwise, it does not move the volumes back to their original DASD volumes.
Normal I/O is used if the total tracks to be moved from one input volume are 15 or less.
A given FASTMOVE job should only move data sets to a single target DASD subsystem, although the input data sets may be on multiple subsystems. If you need to move to multiple subsystems, reserve transit stations in each subsystem and run multiple FASTMOVE jobs. You may also be able to improve performance (more volumes processed concurrently) by running multiple FASTMOVE jobs selecting different subsets of the data to be moved, they can use the same target volumes and transit stations if you like.
FASTMOVE Examples
Here are a number of examples of the FDRMOVE FASTMOVE function. All the examples in this section are found in the JCL library installed with FDRMOVE. The member names are PA32504x.
Move Cataloged Data Sets Example
This is an example of a FASTMOVE that selects data sets from the system catalogs. The input volumes are moved to the transit station units, in the same control unit as the output volumes, so that fast replication (such as FlashCopy and EMCSNAP) can be used. Inactive data sets are moved once a DASD volume is in a transit station. For active data sets, FASTMOVE waits for the data set to become inactive (such as shutting down its application) and quickly and automatically moves the data set so that the application can be restarted in only a few minutes.
In this example, FASTMOVE selects certain cataloged data sets starting with ABC and XYZ with PAYROLL anywhere else in the name.
The output volumes, OUT001 to OUT009, are in the target subsystem. As described in Output Volume Selection for FDRMOVE, FDRMOVE rotates the output volumes, so that the data sets from different input volumes go to different output volumes.
//FDRMOVE EXEC PGM=FDRMOVE,REGION=0M,TIME=1440//STEPLIB DD DISP=SHR,DSN=fdrpas.loadlib//SYSPRINT DD SYSOUT=*//FDRSUMM DD SYSOUT=*//SYSUDUMP DD SYSOUT=*//SYSIN DD * FASTMOVE TYPE=DSF SELECT CATDSN=ABC.**,NVOL=OUT00* SELECT CATDSN=XYZ.**PAYROLL**,NVOL=OUT00*/*//PASJOB DD DATA,DLM=$$//TRANSIT1 JOB (accounting info),FDRMOVE,CLASS=c,
// MSGCLASS=m <-- add any other required JOB parameters
//PASTRANS EXEC PGM=FDRPAS,REGION=0M//STEPLIB DD DISP=SHR,DSN=fdrpas.loadlib//SYSPRINT DD SYSOUT=*//FDRSUMM DD SYSOUT=*//SYSUDUMP DD SYSOUT=*//SYSIN DD * SWAP TYPE=TRANSIT MOUNT VOL=&&&&&&,SWAPUNIT=32*$$
If FASTMOVE finds that one or more source volumes must be moved to a transit station in the target control unit, it submits the FDRPAS job pointed to by the PASJOB DD statement. In this example, it is an in-stream job but it could also point to a member of a PDS/PDSE. DATA with DLM= allows the transit job JCL and control statements to be an input data set to FASTMOVE.
The FDRPAS transit station job is called TRANSIT1 in this example. If you submit multiple FASTMOVE jobs, each transit station job must have a unique job name. The MOUNT statement is internally replicated for each volume that may need to be moved to a transit station, substituting the actual volume serial for &&&&&&. In this example, the transit stations are all offline DASD devices in the range of 3200 to 32FF.
Normal FDRPAS “MONITOR TYPE=SWAP” jobs must already be running on the other systems in the complex, specifying the same transit station DASD volumes (SWAPUNIT=). See FDRMOVE Target Volume Initialization for details.
Consolidate Storage Group Example
This is an example of a FASTMOVE to consolidate the input volumes in an SMS storage group to output volumes in a different storage group. SMS Automatic Class Selection (ACS) routines must be updated to select the new storage group for new allocations.
FDRMOVE terminates automatically if all selected data sets have been moved. DISABLENEW=YES sets all input volumes to DISNEW status so that new allocations go to the output control unit.
//FDRMOVE EXEC PGM=FDRMOVE,REGION=0M,TIME=1440//STEPLIB DD DISP=SHR,DSN=fdrpas.loadlib//SYSPRINT DD SYSOUT=*//FDRSUMM DD SYSOUT=*//SYSUDUMP DD SYSOUT=*//SYSIN DD * FASTMOVE TYPE=DSF,DISABLENEW=YES SELECT ALLDSN,STORGRP=CICSAPPL,NEWSTORGRP=CICSNEW/*//PASJOB DD DISP=SHR,DSN=SYSPROG.CNTL(PASJOB)
Move Entire Volumes Example
This is an example of a FASTMOVE that selects all data sets on specific input volumes. Otherwise, it is similar to the previous example. The PASJOB DD statement points to a PDS member, which must contain the FDRPAS job stream. DISABLENEW=YES sets the input volumes to DISNEW (SMS) or PRIVATE (non SMS-managed) so that the volumes are no longer used for new data sets; remove it if you do not plan to remove the input subsystem.
//FDRMOVE EXEC PGM=FDRMOVE,REGION=0M,TIME=1440//STEPLIB DD DISP=SHR,DSN=fdrpas.loadlib//SYSPRINT DD SYSOUT=*//FDRSUMM DD SYSOUT=*//SYSUDUMP DD SYSOUT=*//SYSIN DD * FASTMOVE TYPE=DSF,DISABLENEW=YES SELECT ALLDSN,VOL=IN0001,NVOL=OUT00* SELECT ALLDSN,VOL=IN0002,NVOL=OUT00* SELECT ALLDSN,VOL=IN0003,NVOL=OUT00* SELECT ALLDSN,VOL=IN0004,NVOL=OUT00* SELECT ALLDSN,VOL=IN0005,NVOL=OUT00* SELECT ALLDSN,VOL=PROD0*,NVOL=PRODN*/*//PASJOB DD DISP=SHR,DSN=SYSPROG.CNTL(PASJOB)
SIMMOVE
SIMMOVE simulates a FASTMOVE step. It identifies all of the selected input data sets and the volumes they reside on. If the optional PASJOB DD statement is present, it submits the FDRPAS TYPE=TRANSIT job to be sure that it begins executing, and then immediately stops it.
If used with the optional VTOCEMPTY=CHECK operand, it verifies that all selected data sets are in fact moved. For SELECT ALLDSN, it verifies that the input volumes are empty except for the VTOC, VTOCIX, and VVDS.
This example validates a complete FASTMOVE step, from the previous example.
//FDRMOVE EXEC PGM=FDRMOVE,REGION=0M,TIME=1440//STEPLIB DD DISP=SHR,DSN=fdrpas.loadlib//SYSPRINT DD SYSOUT=*//FDRSUMM DD SYSOUT=*//SYSUDUMP DD SYSOUT=*//SYSIN DD * SIMMOVE TYPE=DSF,DISABLENEW=YES SELECT ALLDSN,VOL=IN0001,NVOL=OUT00* SELECT ALLDSN,VOL=IN0002,NVOL=OUT00* SELECT ALLDSN,VOL=IN0003,NVOL=OUT00* SELECT ALLDSN,VOL=IN0004,NVOL=OUT00* SELECT ALLDSN,VOL=IN0005,NVOL=OUT00* SELECT ALLDSN,VOL=PROD0*,NVOL=PRODN*/*//PASJOB DD DISP=SHR,DSN=SYSPROG.CNTL(PASJOB)
This example with VTOCEMPTY=CHECK verifies that the input volumes have no data sets remaining. If you intend to move all data off the old DASD subsystem, this helps you to know when you are ready to disconnect the subsystem.
//FDRMOVE EXEC PGM=FDRMOVE,REGION=0M,TIME=1440//STEPLIB DD DISP=SHR,DSN=fdrpas.loadlib//SYSPRINT DD SYSOUT=*//FDRSUMM DD SYSOUT=*//SYSUDUMP DD SYSOUT=*//SYSIN DD * SIMMOVE TYPE=DSF,VTOCEMPTY=CHECK SELECT ALLDSN,VOL=IN0001 SELECT ALLDSN,VOL=IN0002 SELECT ALLDSN,VOL=IN0003 SELECT ALLDSN,VOL=IN0004 SELECT ALLDSN,VOL=IN0005 SELECT ALLDSN,VOL=PROD0*/*
Sample FASTMOVE Output
The messages from a FASTMOVE job are similar to those shown for MOVE. See FDRMOVE MOVE Function with Examples, except that you see messages relating to transit stations, such as:
FDR182 FDR REQUESTS THAT VOL=IN0001 MOVE TO THE TRANSIT STATION EMC00547 |
FDR183 FDR SUBMITTED FDRPAS TRANSIT JOBNAME=MOVE013B |
In addition, the FDR311 message includes the word INSTANT to indicate that fast replication technology, like FlashCopy and EMCSNAP, has been used. For data sets 15 tracks or less, normal I/O is used and INSTANT does not appear.
FDR314 FDR SCRATCHED DSN=DB2.MOVE001.PS.VSY3009.A0002 AND UNCATALOGED FROM VOL=IN0001 |
FDR311 FDR MOVED DSN=DB2.MOVE001.PS.VSY3009.A0002 ALLOCATED CATALOGED INSTANT |
FDR311 ON VOLSER=OUT001 UNIT=3390 (IN0001) |
Sample SIMMOVE Output
The messages from a SIMMOVE job show you all of the selected data sets (and their current enqueue status), all of the input volumes, and transit station information.
A SIMMOVE with VTOCEMPTY=CHECK verifies that all data sets have been moved. Here is an example with SELECT ALLDSN, so that it verifies the input volumes are empty. If any volume still contained data sets, it would list the data sets.
FDR303 CARD IMAGE -- SIMMOVE TYPE=DSF,VTOCEMPTY=CHECK |
FDR333 CARD IMAGE -- EXCLUDE DSN=SYS1.VTOCIX.** UNMOVABLE TABLE |
FDR333 CARD IMAGE -- EXCLUDE DSN=SYS1.VVDS.** UNMOVABLE TABLE |
FDR303 CARD IMAGE -- S ALLDSN,VOL=IN0001 |
FDR303 CARD IMAGE -- S ALLDSN,VOL=IN0002 |
FDR303 CARD IMAGE -- S ALLDSN,VOL=IN0003 |
FDR303 CARD IMAGE -- S ALLDSN,VOL=IN0004 |
FDR184 VTOC IS EMPTY ON ALL VOLUMES |
FDR999 FDR SUCCESSFULLY COMPLETED |