Since zOS V2R1, HSM announced Common Queue function to improve data throughput capability. Including:
- Common Recall Queue - CRQ
- Common Dump Queue - CDQ
- Common Recover Queue – CVQ
This blog will introduce Common Recall Queue (CRQ) briefly.
In zOS V2R1, DFSMSHSM starts to support Common Recall Queue (CRQ) in sysplex scope. CRQ will balance the recall requests from all HSM hosts, optimize the recall order and tape-mount order. The Queue is implemented by the List structure in Coupling facility (CF).
CRQ deployment:
1. Update CRFM policy for CRQ.
Please note:
a. The List name must to follow 'SYSARC_'basename'_RCL'. basename must be as the same as in SETSYS COMMONQUEUE(RECALL(CONNECT(basename))). And basename must be 5 characters.
b. The minimize CFLEVEL should be 8. If need to enable duplexed function, the minimal CFLEVEL has to be 12.
c. To access the same catalog and DASDs, and share the RACF configuration, all HSM hosts in a SMSplex should share/own one CRQ. Sysprog must ensure all connected HSM host could recall all managed data.
d. One CRQ can only be used by one HSMplex, it can be share with other HSMplex.
Determining the CRQ structure size. The CRQ needs to be sized such that it can contain the maximum number of the concurrent recalls that may occur. Due to the dynamic nature of recall activity, there is no exact way to determine what the maximum number of concurrent recall requests may be. You could use the following initial value:
INITSIZE 5120KB SIZE 10240KB
These definition is large enough to manage up to 3900 concurrent recall requests with growth up to 8400 concurrent recalls.These values should be large enough for most environments. The following table shows the maxmum number of recalls that my be contained in structures of various sizes. No structure of less than 2560KB should be used.
Please note: The above numbers are based on 33% recall requests requiring a unique ML2 tape. If fewer tapes are needed, then the structure will be able to contain more recall requests that is indicated.
2. Connecting to CRQ list structure
After activating the new CFRM policy, you could connect your HSM to CRQ now. The HMS cmd is:
SETSYS COMMONQUEUE(RECALL(CONNECT(basename)))
This command could be issued in your ARCCMDxx, so that HSM could connect to CRQ while it’s starting. You could also issue this command after HMS startup, then after HSM connect to CRQ, it will moves any requests on its local to the CRQ.
After connecting to CRQ successfully, you can see log in HSM like:
HSM host DFHSMA connected to structure SYSARC_X4CQ1_RCL.
Selecting recall requests from CRQ.
In HSMplex, HSM hosts select the highest priority request that they are capable of processing. And hosts select requests that are on the host’s local queue before requests on the CRQ that are of the same or lower priority.
When a host selects a request that requires a single ML2 tape, that host processes all single tape requests on the CRQ from that tape. After processing each request from the tape, the processing host select the next highest priority request that requires that tape. Requests with the same priority are processed in first-in-first-out order.
If recall requests are unexpectedly not being selected for processing, issue the QUERY ACTIVE command and examine message ARC1541I.
Another cause for certain recall requests not to be selected is that they require an unavailable ML2 tape. If the ML2 tape does not become available within 30 minutes, these requests will time out.
Disconnecting from a CRQ
If you want to disconnect the host from a CRQ, you could issue:
SETSYS COMMONQUEUE(RECALL(DISCONNECT))
So that HSM host will:
- Directing all new recall requests to its local queue instead of the CRQ
- Moving all of its requests currently on the CRQ to its local queue
- Completing any remote requests that it had previously selected
- No longer selecting requests from the CRQ
You must wait for the disconnection to complete before attempting to connect to another CRQ. A message indicates when the disconnection is complete.
Deleting a CRQ
If you need to delete the CRQ structure, perform the following steps:
1. Verify that the CRQ is empty by using the following command:
QUERY COMMONQUEUE(RECALL)
2. Disconnect all DFSMShsm hosts from the CRQ structure by using the following command:
SETSYS COMMONQUEUE(RECALL(DISC))
3. Verify that all DFSMShsm hosts have disconnected by using the following command:
D XCF,STR,STRNAME=SYSARC_basename_RCL
4. Delete the CRQ structure by using the following command:
SETXCF FORCE,STRUCTURE,STRNAME=SYSARC_basename_RCL
Altering the CRQ List size
DFSMShsm monitors how full a list structure has become. When the structure becomes 95% full, DFSMShsm no longer places recall requests onto the CRQ, but routes all new requests to the local queues. Routing recall requests to the CRQ resumes once the structure drops below 85% full. The structure is not allowed to become 100% full so that requests that are in-process can be moved between lists within the structure without failure. When the structure reaches maximum capacity, the storage administrator can increase the size by altering the structure to a larger size or by rebuilding it.
To Alter the CRQ list size, you could issue mvs command:
SETXCF START,ALTER
Altering is a nondisruptive method for changing the size of the list structure. Alter processing can increase the size of the structure up to the maximum size specified in the CFRM policy. The SETXCF START,ALTER command can also decrease the size of a structure to the specified MINSIZE or default to the value specified in the CFRM policy.
To rebuild the CRQ list size
DFSMShsm supports the system-managed duplexing rebuild function. DFSMShsm does not support user-managed rebuilds.
Note: The coupling facility auto rebuild function does not support the use of REBUILDPERCENT. If the system rebuild function is not available because the structure was not allocated on a coupling facility that supports it, and a user needs to increase the maximum size of the structure or remedy a number of lost connections, then the user has to reallocate the structure.
Perform the following steps to reallocate the structure:
1. Disconnect all the hosts from the structure using the command:
SETSYS COMMONQUEUE(RECALL(DISCONNECT))
2. Deallocate the structure using the command:
SETXCF FORCE
3. Reallocate the structure using the command:
SETSYS COMMONQUEUE(RECALL(CONNECT(basename )))
Note: If the intent of the rebuild is to increase the maximum structure size, you must update the CFRM policy before you perform the above steps.
If you want to read a Chinese version of this blog, here is the link:
Referrence:
- SC23-6869 z/OS V2R3 DFSMSHSM Implementation and Customization Guide
- SC23-6871 z/OS V2R3 DFSMSHSM Storage Administration