SSMS-managed Data Set Operations


Data set operations

Data set operations in the FDR system include DSF dumps and restores, FDRCOPY copies and moves, ABR incremental backups, ABR archive backups, FDRAPPL application backups, ABR incremental and archive data set restores, and FDRAPPL data set restores.

For all data set dumps, SMS class information from VVRs and NVRs is recorded in control records at the beginning of the backup data set (along with DSCBs and other VVDS information), and ABR operations can optionally use SMS management class attributes for data set selection (see SMS-ABR-Support).

However, data set restores (including the output side of FDRCOPY operations) are significantly changed on a system with SMS active.

On all systems, SMS or not, an output volume is chosen. Complete rules for each type of restore are documented in:

In general, the target volume may be the volume to which the data set is currently cataloged, the original volume from which it was dumped, a volume specified by a DD statement or a volume identified by an NVOL= parameter on the SELECT statement (or by the ABR RESTORE ALLOCATION LIST). If the data set is found in the VTOC of the target volume, the restore/copy/move is done to that preallocated data set and SMS is not involved.

However, if the data set is not found in that volume’s VTOC, and SMS is active on the system, SMS is invoked to decide how and where the data set is allocated.

SMS class assignment

First, the SMS storage class ACS routine is invoked to determine if the data set is SMS-managed. A storage class name is passed to the ACS routine:

  • If you specify the STORCLAS= operand, that value is passed.
  • If you specify the NULLSTORCLAS operand, a null (blank) class name is passed.
  • If the data set being restored or copied/moved was SMS-managed, and neither operand is given, the original storage class of the data set is passed.
  • If the original data set was not SMS-managed, a null (blank) class name is passed.

The storage class ACS routine may honor the class passed in, or may choose to override it with a different class or a null (blank) class name.

If a null storage class name is returned, the data set is non SMS-managed, and FDR attempts to allocate it on the target volume previously selected. If that target volume is SMS-managed, but no storage class was assigned, the allocation fails. If the data set is a type that can exist only on SMS-managed volumes, the allocation also fails.

If a storage class was assigned, the data set is allocated as SMS-managed and it usually goes to a volume other than the chosen target volume. The SMS management class ACS routine is invoked next. A management class name is passed in to the ACS routine:

  • If you specify the MGMTCLAS= operand, that value is passed.
  • If you specify the NULLMGMTCLAS operand, a null (blank) class name is passed.
  • If the data set being restored or copied/moved was SMS-managed, and neither operand was given, the original management class of the data set is passed.
  • If the original data set was not SMS-managed, a null (blank) class name is passed.

The management class ACS routine may honor the class passed in, or may choose to override it with a different class or a null (blank) class name (which implies that a SMS default management class is used).

The SMS data class ACS routine is not invoked. Data classes are used only during the allocation of totally new data sets. For data sets being restored or copied/moved, all of the data set characteristics implied by its data class have already been determined. However, the data class is retained in the catalog and VVR/NVR for documentation purposes. The data class of a SMS-managed data set created by FDR  can be specified by the DATACLAS= or NULLDATACLAS operands, otherwise the original data class is used during the allocation if the input data set was SMS-managed.

An authorized storage administrator can bypass the invocation of the class ACS routines by specifying the BYPASSACS operand, in order to control directly the classes assigned. In this case, the SMS classes assigned are those specified by the STORCLAS=, MGMTCLAS=, and/or DATACLAS= operands, or the original classes associated with the data set if not overridden. A storage class must be assigned if the data set is to be SMS-managed.

Conversion to and from SMS

The description above is complex, so you may be unsure what you have to do to convert a data set from non SMS-managed to SMS-managed, and back again. Actually, it is easy:

  • The simplest way to convert a data set to SMS is to update your Storage Class ACS routine so that the data set is assigned a storage class. Then simply move the data sets with FDRCOPY, or dump them with FDRDSF, delete the non SMS-managed version, and restore them with FDRDSF. Since the output data sets have a storage class, they are allocated as SMS-managed, and SMS chooses an output volume as described below.
  • To convert them back to non SMS-managed, update the Storage Class ACS routine again so that they are assigned a null storage class, then move or dump/restore them again specifying the NVOL= operand to specify on which non-SMS volumes they are placed.
  • If you do not update the ACS routine, then add the STORCLAS= operand on the SELECT statement in a RESTORE or MOVE step. As long as the Storage Class ACS routine does not change it back to a null class, it is allocated as SMS-managed. You may also want to specify the MGMTCLAS= operand.
  • If you add the NULLSTORCLAS operand to the SELECT statement, then the data set is restored as non SMS-managed as long as the Storage Class ACS routine does not assign a storage class. Be sure to specify NVOL=.
  • If your ACS routine does not let you do what you want, you can bypass it with the BYPASSACS operand on the RESTORE or MOVE statement (if you are authorized to use it).

SMS-managed volume assignment

If a storage class is assigned to a data set that must be allocated, the SMS storage group ACS routine is invoked next, to determine on which SMS storage groups this data set is to be allocated, using the SMS storage class as input. SMS builds a list of SMS-managed DASD volumes in the selected storage groups and attempts allocation on each volume in that list until it is successful (or fails on each).

For data sets that have special hardware requirements, such as EF (Extended Format) data sets, FDR instructs SMS to consider only such volumes.

An authorized storage administrator can bypass the invocation of the storage group ACS routine by specifying the BYPASSSMS operand, in order to directly control the volume where the data set is placed. FDR attempts to allocate the data set directly on the output volume it has chosen (or the user has specified). If the output volume is SMS-managed, a storage class must be assigned to the data set.

Once SMS allocates the data set, its contents are restored, along with appropriate DSCB and VVR/NVR data (see Special Considerations for details). However, the SMS classes in the data set on DASD are not disturbed (either the classes assigned in the steps just described, or the classes associated with a preallocated SMS-managed data set). If a SMS-managed data set is being restored to a non-SMS volume, there are, of course, no classes associated with it.

Guaranteed space storage class

An SMS storage class assigned to a data set may have an attribute of “guaranteed space”, which has two functions:

1.It allows you to specify the volume serials of the SMS-managed volumes where the data set is to be placed.

2.Even if specific volume serials are not specified, for multi-volume data sets it preallocates the primary space on EVERY volume chosen by SMS.

However, when FDR  allocates an SMS-managed data set, it usually passes a specific volume serial, the serial of the target output volume chosen by FDR (as described earlier in this section). If the data set has a guaranteed space storage class, SMS tries to honor the volume chosen by FDR, rather than choosing a volume by SMS rules. The storage group ACS routine is still invoked, but if the volume chosen by FDR is not in one of the assigned storage groups, or if the allocation fails on that volume, SMS is not able to allocate the data set.

Therefore, even if the guaranteed space data set was originally allocated on non-specific SMS-managed volumes, FDR always tries to allocate it to a specific volume. At best this circumvents SMS management of data set placement, and at worst, the data set cannot be restored.

The circumvention is to specify NVOL=volser on the SELECT statement, where “volser” is a volume serial that does not exist on your system (for example, NVOL=DUMMY). In this case, FDR does NOT pass a volume serial number to SMS, and SMS is free to choose an output volume. For an ABR restore, there must not be an ALLOCATE statement that applies to the data set. However, if the storage class ACS routine returns a null class, making this a non SMS-managed data set, the allocation fails since FDR has no target volume on which to allocate the non SMS-managed data set.

Because of the confusion this can cause, we recommend that use of guaranteed space storage classes be limited to data sets that truly need them.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*

BMC AMI Storage FDR 6.1