Page tree
Skip to end of metadata
Go to start of metadata

Article State


Article Number



Disk Library, Disk Library for mainframe, Virtuent





How can I allocate scratch tapes more equitably across all eligible file systems?
How can I reduce an imbalance of scratch tape allocations?

Scratch tapes being allocated to a small subset of eligible file systems.


DLm Release 4.5.0P1 has a bug  that caused  the DLm0047E and also caused the  DLm0503E and the DLm0515W continuous  messages.


There is a parameter setting that helps control where scratch tapes are allocated.  This parameter is PENALTYUP.  The following describes how to use PENALTYUP to resolve an imbalance of scratch allocations:

The following guidelines should be used:

  1. Never decrease the PENALTYUP value below 6
  2. Never increase the PENALTYUP value above the number of mounted filesystems or 100, whichever is less. This essentially produces a "round robin" selection and does not give any advantage based on available free space.
  3. A good range is (50% * number of filesystems) for 2 VTE systems up to (75% * number of filesystems) for 4 or more VTEs. This is just a guide based on field activity.

One shortcoming of PENALTYUP is that it applies to all tapelibs.  For which tapelib should it be optimized?

  1. Optimize for the tapelib with the largest number of VOLSER ranges.  In this case, tapelibs with fewer ranges may end up being processed mostly round robin unless the free space is really skewed.
  2. Optimize for the tapelib with the highest performance requirement.  This often is the same as the one with the most ranges, since it is likely to be the primary production library.
  3. Use some compromise: not as optimal for any, but if the numbers are not too far apart there will be some benefit for all.  Of course, if one tapelib has 100 file systems and another has 10, a choice has to be made as to which one needs optimization the most.

As with many parameters, the PENALTYUP value may be set in two ways:

  1. There is a command in the virtual tape console (the DO NOT CLOSE window for V1.x, the VT Console for V2.x).  Type set PENALTYUP=n (where n is the selected penalty) to effect the change immediately but not permanently.  Note that this changes the current value and displays the previous value.  So it can also be used to find/confirm the value: set it to the expected number; if the value is different, immediately set it back to the previous value.  It is a good idea to do this while scratch tapes are not being allocated.
  2. Add/modify the VTE xmap file (e.g., /etc/bti/xmap0).  Add PENALTYUP   n to the parameters, a good idea is to add this after any other values not in the GUI (such as HOSTCOMMAND and RUNCOMMAND), and just before the device settings.  If PENALTYUP is already there then just change it to the desired value.  The value set via this method is permanent but only takes effect after the next application restart.
  3. To both make the change immediately and permanently, modify the xmap file AND issue the set command.
  4. Note that the change should be made to all VTEs.

To see the current penalty settings, the following undocumented command can be used: query tapelibs.  This command displays data on every VOLSER range for every tapelib.  For this discussion, the significant information it provides is each filesystemâ„¢s current penalty value & when it was last picked.  Remember, the penalty starts at zero when the application starts, and goes up and down as scratch tapes are provided.

It might be good to experiment with the settings.  Issue the set PENALTYUP command on all VTEs, and let it run for some time, issuing query tapelib from time to time to see the current penalty and when it was selected.  Issue query space to see that status.  If it is not selecting a number of ranges with free space around the recover amount (with available scratch space to be recovered) then PENALTYUP may not be high enough.  But note that it will take some time (figure up to 100 mounts on each VTE in the tapelib in question) to adjust for previous settings; check the distribution after it has run a while after that adjustment.

Once a good value is selected, leave that setting and also update it in the xmap files.



NotesFor a more comprehensive discussion of this parameter, including all the information above,see the "Understanding DLm Penaltyup" explanation on the EMC customer forums.