Decreasing the size of a compatibility mode aggregate
You can decrease the size of a zFS aggregate using the pax command. Figure 1 shows a sample job.
Figure 1. Sample job to decrease
the size of an aggregate
//SUIMGVMB JOB ,'SHRINK AGGR WITH PAX',
// CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)
//* Make sure you have no line numbers in this JCL
//DEFINE EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=H
//SYSIN DD *
DEFINE CLUSTER (NAME(PLEX.NEW.AGGR002.LDS0002) -
LINEAR CYL(25 5) SHAREOPTIONS(3) -
VOLUMES(CFC000 CFC001))
/*
//FORMAT EXEC PGM=IOEAGFMT,REGION=0M,
//* On the next line, aggregate and compat must be lower case
// PARM=('-aggregate PLEX.NEW.AGGR002.LDS0002 -compat')
//SYSPRINT DD SYSOUT=H
//*******************************************************************
//** **
//** note - use a + sign at the end of each line to indicate there**
//** is another line to be processed. **
//** use a ; at the end of each COMMAND **
//** **
//** a single command can span multiple lines if each line **
//** ends in a +. when you have reached the end of the **
//** command, terminate the command with a ; **
//** **
//*******************************************************************
//PAX1 EXEC PGM=IKJEFT01,REGION=0M
//SYSTSPRT DD SYSOUT=*
//SYSEXEC DD DSN=SYS1.SBPXEXEC,DISP=SHR
//SYSTSIN DD *
OSHELL /usr/sbin/mount -t ZFS -f PLEX.OLD.AGGR002.LDS0002 +
/service2 ; +
/usr/sbin/mount -t ZFS -f PLEX.NEW.AGGR002.LDS0002 /service3 ; +
cd /service2 ; +
pax -rwvCMX -p eW . /service3 ;
//* The result of these next two steps should show that
//* the new file system is smaller
//AGGRINF1 EXEC PGM=IOEZADM,REGION=0M,
// PARM=('aggrinfo PLEX.OLD.AGGR002.LDS0002 -long')
//SYSPRINT DD SYSOUT=*
//STDOUT DD SYSOUT=*
//STDERR DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//CEEDUMP DD SYSOUT=*
/*
//AGGRINF2 EXEC PGM=IOEZADM,REGION=0M,
// PARM=('aggrinfo PLEX.NEW.AGGR002.LDS0002 -long')
//SYSPRINT DD SYSOUT=*
//STDOUT DD SYSOUT=*
//STDERR DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//CEEDUMP DD SYSOUT=*
/*
This approach uses the pax command to copy the individual files and directories into an already formatted and empty zFS file system. Both file systems must be mounted. pax uses the z/OS® UNIX file and directory APIs to read and write each individual file and directory of the hierarchy of the file system. (It does not copy lower mounted file systems because of the -X and -M options.)
After you successfully copy the data, when you are comfortable with the new, smaller aggregate, you can delete the old aggregate.