IBM Support

Using DFSMSdss DEFRAG to layout allocated and free space on the volume

How To


Summary

Users need a procedure for examining the contents of the volume and where the allocated and free space is on the volume. Running DFSMSdss DEFRAG with TYPRUN=NORUN dumps the contents of the volume without performing the DEFRAG job on the volume.

Environment

Provided sample JCL can be used as an example for mapping the contents of the volume using DSS DEFRAG with TYPRUN=NORUN.
 
//NORUN EXEC PGM=ADRDSSU,PARM='TYPRUN=NORUN' 
//SYSPRINT DD SYSOUT=* 
//DISKIN DD DISP=OLD,UNIT=SYSDA,VOL=SER=volser 
//SYSIN DD * 
 DEFRAG DDNAME(DISKIN) - 
 DEBUG(TRACE) 
/*

Steps

Use the DFSMSdss DEFRAG job with TYPRUN=NORUN to map out allocated and free space. This job can also be used to find the location of the VTOC or VTOCIX and their size in tracks.

VTOC & VTOCIX Location in Volume:
ADR234I (001)-DFANL(01), SEQUENCE   C:H 1   -  C:H 2      EXTENT  DESCRIPTION                   
ADR235I (001)-DFANL(01), 00000001 00000000:0 00000000:0    0000  VOLUME LABEL                   
ADR235I (001)-DFANL(01), 00000002 00000000:1 00000078:0    0000  VOLUME TABLE OF CONTENTS       
ADR235I (001)-DFANL(01), 00000003 00000078:1 00000078:A    0001  SYS1.VVDS.COLORS99             
ADR235I (001)-DFANL(01), 00000004 00000078:B 00000078:B    0001  BLUE.ISP04716.BLUECLR.CNTL    
ADR235I (001)-DFANL(01), 00000005 00000078:C 00000078:C    0001  YELLOW.ISRFIND.INPUT           
ADR235I (001)-DFANL(01), 00000006 00000078:D 00000078:D    0001  GREEN.ISP05254.BLUECLR.CNTL  
ADR235I (001)-DFANL(01), 00000007 00000078:E 00000078:E    0001  ORANGE.NETRC                     
ADR235I (001)-DFANL(01), 00000008 00000079:0 000000B4:E    0001  SYS1.VTOCIX.COLORS99      
In the DSS DEFRAG job output, each ADR235I represents the Cylinder-Track Start and End for each data set on the volume.
 
For sequence 1, "C:H 1 - C:H 2" ("00000000:0 00000000:0) represents Cylinder 0, Track 0 for one track that is always the volume label.
For sequence 2, the VTOC is at Cylinder 0, Track 1 and ends at Cylinder 78, Track 0 for 1800 tracks.
See additional information for the calculation method used.
 
The output of the job also maps the free space and is indicated by the line with text "FREE SPACE".
0ADR235I (001)-DFANL(01), 00000004 000000AB:0 000000AB:0    0000  FREE SPACE.    
If the intention is to grow the VTOC or VTOCIX, we need to locate free space large enough to accommodate the new size.
If there is no free space after the VTOC, moving the data sets following the VTOC allows you to expand the VTOC. To determine the considerations for expanding either the VTOC and VTOCIX refer to the following guide: How do I increase the size of my VTOC and/or VTOCIX?
 

Additional Information

How to calculate the number of tracks occupied by a data set on a volume using DSS DEFRAG:

Sample DSS DEFRAG output:
ADR234I (001)-DFANL(01), SEQUENCE   C:H 1   -  C:H 2      EXTENT  DESCRIPTION
ADR235I (001)-DFANL(01), 00000001 00000000:0 00000000:0    0000  VOLUME LABEL
ADR235I (001)-DFANL(01), 00000002 00000000:1 00000078:0    0000  VOLUME TABLE OF CONTENTS
ADR235I (001)-DFANL(01), 00000003 00000078:1 00000078:A    0001  SYS1.VVDS.COLORS99
ADR235I (001)-DFANL(01), 00000004 00000078:B 00000078:B    0001  BLUE.ISP04716.BLUECLR.CNTL
ADR235I (001)-DFANL(01), 00000005 00000078:C 00000078:C    0001  YELLOW.ISRFIND.INPUT
ADR235I (001)-DFANL(01), 00000006 00000078:D 00000078:D    0001  GREEN.ISP05254.BLUECLR.CNTL
ADR235I (001)-DFANL(01), 00000007 00000078:E 00000078:E    0001  ORANGE.NETRC
ADR235I (001)-DFANL(01), 00000008 00000079:0 000000B4:E    0001  SYS1.VTOCIX.COLORS99
Note: Cylinders and Tracks are written in HEX in the output.
For the example volume, there is a total of 15 tracks per cylinder.
Visual Demonstration:
VisualExample1
This diagram represents a single cylinder with 15 tracks from x'0' - x'E' that is 15 tracks total.
Example 1:
ADR235I (001)-DFANL(01), 00000001 00000000:0 00000000:0    0000  VOLUME LABEL
Starts at Cylinder x'0' track x'0' and ends at Cylinder x'0' track x'0'. Subtracting the difference of tracks we get a total of (x'0' -x'0' + 1 = 1) 1 track.
Visual Example: 
Example1
Example 2:
ADR235I (001)-DFANL(01), 00000006 00000078:2 00000078:D    0001  GREEN.ISP05254.BLUECLR.CNTL
Starts at Cylinder x'78' track x'2' to Cylinder x'78' track x'D'. Subtracting the difference of tracks we get a total of (x'D'-x'2' + 1 = 12) 12 tracks.
Visual Example: 
Example2
Example 3:
ADR235I (001)-DFANL(01), 00000002 00000000:1 00000078:0    0000  VOLUME TABLE OF CONTENTS
Starts at Cylinder x'0' track x'1' to Cylinder x'78' track x'0' . When dealing with more than one cylinder, calculate the number of total tracks for the first cylinder first.
 
Visual Example: 
Example3
Subtracting the difference of tracks we get a total of (x'E'-x'1' + 1 = 14) 14 tracks.
Now we calculate the number of total tracks for the second cylinder.
Visual Example:
Example3-b
Subtracting the difference of tracks we get a total of (x'0'-x'0' + 1 = 1) 1 track.
Between Cylinders x'0' to Cylinder x'78', there are (x'78' - x'0' - 1 =  x'77') x'77' cylinders that are full.
Converting the number of cylinders for x'77' we have a total of 119 cylinders.
As noted, each Cylinder has 15 tracks that calculates to 119 x 15 = 1,785 tracks.

Lastly, we combine all the tracks from the first cylinder (x'0') to the last cylinder (x'77').
14 + 1785 + 1 = 1800 total tracks.

Example 4:
ADR235I (001)-DFANL(01), 00005728 00000CD4:2 00000CD9:B    0005  GREEN.EXAMPLE.FOUR
Starts at Cylinder x'CD4' track x'2' to Cylinder x'CD9' track x'B'. When dealing with more than one cylinder, calculate the number of total tracks for the first cylinder first.
Visual Example:
Example4-1
Subtracting the difference we get a total of x'E' - x'2' +1 = 13 tracks.
 
Now we calculate the number of total tracks for the second cylinder.
Example4-4

Subtracting the difference we get a total of x'B' -x'0' +1 = 12 tracks.
Between Cylinders x'CD4' to Cylinder x'CD9', there are (x'CD9' - x'CD4' - 1 =  x'4') x'4' cylinders that are full.
As noted, each cylinder has 15 tracks that calculate to 4 x 15 = 60 tracks.

Lastly, we combine all the tracks from the first cylinder (x'CD4') to the last cylinder (x'CD9').
13 + 12 + 60 = 85 total tracks.

Document Location

Worldwide

[{"Type":"MASTER","Line of Business":{"code":"LOB56","label":"Z HW"},"Business Unit":{"code":"BU070","label":"IBM Infrastructure"},"Product":{"code":"SWG90","label":"z\/OS"},"ARM Category":[{"code":"a8m0z0000000ALKAA2","label":"DFSMS-\u003EDSS-\u003EDEFRAG processing"}],"ARM Case Number":"","Platform":[{"code":"PF035","label":"z\/OS"}],"Version":"All Versions"}]

Document Information

Modified date:
08 November 2024

UID

ibm16999541