I. TSM Interaction with EDT TSM requires of the library the ability to: mount a volume dismount a volume eject a volume to a export station query the status of a volume release a volume to a scratch tape pool TSM communicates to EDT by starting an elmdt child process, opens a pipe, and sends through a string containing a command, a library name, and additional fields in support of these commands. EDT, at its simpliest, translates the commands onto ACSLS and then translates the results back to TSM. In greater detail, TSM starts a elmdt process to complete a specified task or set of tasks, then severs connection with the elmdt process which in turn exits. The task or sets of tasks can be shown and thought of as process cycles: initialize initialize - mount - dismount initialize - release initialize - begin batch - query vol - query vol ... end batch initialize - begin batch - query vol - eject vol - que...end batch The singular initialize occurs when TSM initializes. A variety of processes require a volume mount including backup/restore, archive/retrieve, dbbackup, copy storage pool. Release occurs when there is no longer any valid data left on the volume and it can be returned to the scratch pool. Either an administrative discard data or reclamation process will result in a release operation. Also move drmedia from state vault will result in a release operation. The batched volume queries occur on query drmedia and query media. The batched volume queries occur on move drmedia and move media. Initialize is accompanied by a library name matching the external library definition within TSM. EDT must reply either: SUCCESS NOT_READY INTERNAL_ERROR Release is accompanied by a library name and a volume name. EDT must reply either: SUCCESS INTERNAL_ERROR VOLUME_UNKNOWN VOLUME_UNAVAILABLE TSM however, no matter the return will consider the volume released. Query vol is accompanied by a library name and a volume name. EDT must reply either: SUCCESS LIBRARY_ERROR INTERNAL_ERROR VOLUME_UNKNOW VOLUME_UNAVAILABLE CANCELLED TIMED_OUT If non success, EDT must state volume status as UNDEFINED. If success, EDT must state volume status as IN_LIBRARY or NOT_IN_LIBRARY. Eject vol is accompanied by a library name and a volume name. EDT must reply: SUCCESS LIBRARY_ERROR INTERNAL_ERROR VOLUME_UNKNOWN VOLUME_UNAVAILABLE CANCELLED TIMED_OUT INTERNAL_ERROR Dismount vol is accompanied by a library name and a volume name. EDT must reply: SUCCESS DRIVE_ERROR LIBRARY_ERROR INTERNAL_ERROR TSM however, no matter the return will consider the volume dismounted. Mount vol is accompanied by a library name, a volume name or SCRTCH, access mode readwrite or readonly, drivetype, and a mount wait time limit. EDT must reply: SUCCESS DRIVE_ERROR LIBRARY_ERROR INTERNAL_ERROR VOLUME_UNKNOWN VOLUME_UNAVAILABLE CANCELLED TIMED_OUT If success, EDT must also supply the device name through which TSM can direct data I/O, and in the case of a scratch mount request, supply the name of the volume mounted. TSM's reaction to a failed mount is varied, depending on what process is requesting the mount. However, there are several rules of thumb that can be followed. - If volume unavailable is returned TSM tends to mark the volume as unavailable. An administrator must update the volumes access to readwrite in order for the volume to be again available for mount. - If the returned error is drive error, TSM tends to retry upwards of 3 times to again request the mount of the volume. - Other failure returns tend to force the requesting process to cancel or retry at a later time. II. Mount Control Variables There are several control variables within TSM that control aspects of the EDT mount-dismount process cycle. Some are connected to the device class. mount wait: sets the amount of time EDT waits for an available drive or for a volume to be freed from a drive. This wait period is passed onto EDT as the timelimit parameter with the mount command. By default this period is 60 minutes. mount retention: determines the amount of time a volume remains idle in a drive. Once mount retention period expires, a dismount is issued to EDT. The default retention period is 60 minutes. mount limit: controls the number of concurrent mount requests. Mount limit must be set equal to or less than the physical number of drives defined in an EDT library description. This description bares the same libname as the TSM external library definition. One is connected to the storage pools associated with a device class. maxscratch: In order to activate the ability to request scratch volume mounts, this value must be set higher than the default of 0. Drive sharing guidelines: - Mount retention must be set low, 2 minutes or less. - Mount limit must be equal to or less than the physical number of drives that EDT is configured to use. - Adjusting mount wait time for Mount Traffic Control. see guide "EDT Functionality". III. TSM configuration for external library manager. NOTE: For LAN Free configuration, do not use this example. A configuration example for TSM is shown in the EDT Config guide. Its a fairly basic set up: - define an external library definition referenced by "libname". - define the library path to the EDT executable elmdt - define a device class, setting the drive type, associating it with the library, and setting mount control variables. - defining storage pools, associating it with the device class and setting max scratch limit. - creating and activating a management policy to backup and archive to the storage(s) pools. Two major differences you will note between the example and a typical TSM setup is that there is no need to define drives and no need to go through a lib inventory checkin. set servername ex: set servername SERV1 register node domain=standard ex: register node kazak admin domain=standard define library libtype=external ex: define library TSM1 libtype=external define path srctype=server desttype=library \ externalmanager= ex: define path SERV1 TSM1 srctype=server desttype=library \ externalmanager='/usr/lpp/GESedt-acsls/bin/elm' define devclass devtype= library= \ mountlimit= mountretention=