Config guide for 7.3 for EDT-ACSLS. I. Supported OS levels: AIX 5.2.0.2 & higher Maintenance package 2 Solaris 2.7 & higher HP-UX 11.11 & higher Required patch: PHSS_30049 LINUX Red Hat Advanced Server, Enterprise Server 3.0 SuSE Enterprise Server 8 WIN 2000, 2003 II. Installation (EDT version level represented by XXXX) Note: If reinstall, same or newer version, there is no need to first deinstall, simply install over the existing version. AIX: installp -FXacd ./GESedt-acsls.XXXX.aix.inst-image all Solaris: pkgadd -a none -d ./GESedt-acsls.XXXX.sol.inst-image GESedtac HP-UX: swinstall -s /tmp/GESedt-acsls.XXXX.hpux.depot edt-acsls Linux: rpm -vv --force -i GESedt-acsls.XXXX.rhlinux.rpm rpm -vv --force -i GESedt-acsls.XXXX.suselinux.rpm Win 2000, 2003: Click on image to execute install wizard. You have a choice to change the default install directory and whether to install, remove, or modify the installation. - Installation directory is: Solaris /opt/GESedt-acsls AIX /usr/lpp/GESedt-acsls HP-UX /opt/GESedt-acsls LINUX /opt/GESedt-acsls WIN [C-Z]:\Program Files\GES\EDT-ACSLS - Two subdirectories, util, bin. - Directory util features utilities that carry out the same function as ACSLS cmd_proc. Syntax for each utility is shown by typing in utility name and hitting enter. - Directory bin contains the external library executable elmdt, and assorted supporting executables. III. EDT Configuration File - In the bin directory, move elm.conf.smp to elm.conf In Windows, copy sample_elmconf.txt to elmconf.txt - This file, contains an example of configuration contained in a "library description", that is a set of configuration parms enclosed at the top by the stanza LIBRARY and at the bottom by the key phrase END. - The utility elm_testlibdesc is used to confirm that the format of a library description is correct and can validate the license key found within a library description. syntax: elm_testlibdesc -l libname - We have a configuration GUI that allows the user to avoid having to do configuration directly in elm.conf, EDT Control Center. IV. Library Control Path Verification Note: For more information on the SSI API detailing optional behavior and multiple SSI APIs, refer to EDT SSIAPI. Unix: - Within the rc.edt file, find the line: MEDIA_MNGR_HOST="hostname" - Replace "hostname" with the hostname or IP address of the ACSLS server you wish to use. Note that you are safer using the IP address, as using a hostname means that a DNS server or hosts table will be called to resolve the hostname. If you use hostname, from the command, line run "ping hostname" (replacing hostname with actual hostname of machine you are trying to contact, the ACSLS server in this case). If ping is successful, you should have no problem with using the hostname in the rc.edt script. Otherwise, use the IP address. - Save and close the rc.edt file. - Start the api rc.edt api You will see the response: Check mini_el and ssi ... starting mini_el. Sending output to nohup.out starting ssi daemon... CSI_HOSTNAME: delta Socket address: 40004 CSI_RETRY_TRIES: 2 CSI_RETRY_TIMEOUT: 4 CSI_TCP_RPCSERVICE: TRUE CSI_UDP_RPCSERVICE: FALSE SSI_HOSTNAME: not used SSI_INET_PORT: not used CSI_HOSTPORT: not used SIGHUP received Parent Process ID is: 19368 SIGHUP received Parent Process #19368 EXITING NORMALLY ssi for host delta on socket 40004 started. - Do the command ps -ef | grep SSI Expectation: You should see an ssi process and a mini_el process, but no t_parent process. - Look in /tmp for the file event.log. This is the log file for the SSI API. Open the file and you will see two time stamped messages indicating: Initiation Started and Initiation Completed. Windows: - Use the SSI API configuration utility, edtcu to configure the SSI API and start the appropriate daemons, ssi, mini_el, and if necessary portmapper. - Prove connection to the library, by doing querying the server. acsls_qserver -r -v - Expect to see confirmation of the connection to the library. Query Server: Free Cells 349 State STATE_RUN AUDIT current 0 AUDIT pending 0 MOUNT current 0 MOUNT pending 0 DISMOUNT current 0 DISMOUNT pending 0 ENTER current 0 ENTER pending 0 EJECT current 0 EJECT pending 0 Server Query SUCCESS: connection to media manager confirmed. V. Map Library DriveIDs to System Device Files EDT requires that you configure a device map, to do so you run the following utility: Use elm_match_device, to obtain a match between the ACSLS driveIDs and the corresponding device handles configured on your system. *NOTE: Make sure the communication path to ACSLS has been established as the utility queries ACSLS. *NOTE: Try to run the utility when there is little or no traffic on the drives. The utility does seek to access tape devices using the no rewind, no repos on close device extension, but caution always needs to be taken on a drive that is occupied and being held in a specific tape position, ready for next access. Syntax: elm_match_device -d driver [-f device#] [-g end device#] [-o num_opens] [-i timeout] [-n] [-Z] [-v] driver: all,tsm,atape,ibmtape,system device#: device file devno combine -f and -g to start at device# and end at 2nd device# -o num_opens: opens to perform on a device(default 1). -i timeout: in secs, device ready timeout (default 120 secs). -n: suppress headers. -Z: show all. Drive vendor and productID -v: verbose. Diag and Msgs printed to stderr. By default elm_match_device seeks to match all tape device handles configured on the host. EDT restricts itself to accessing the no rewind on close and no reposition on close device extension for each of the available major device nos. For example under OS AIX: elm_match_device -d all -Z device vendor product serial number drive match /dev/rmt0 IBM ULTRIUM-TD1 6811061457 0,0,0,0 /dev/mt0 error 19 /dev/mt1 STK 9840 331000022842 0,0,0,1 /dev/mt2 STK T9940A 456000003296 0,0,0,6 /dev/mt3 STK 9840 331000051873 0,0,0,4 /dev/mt4 STK T9940A 456000003723 0,0,0,5 Notice how the error is reported if contact with the drive can not be made. Through options, you can adjust drive parameters for open timeout and number of open attempts. You can restrict the search based on the type of driver under which a devices are configured, you can restrict to a range of device numbers or a specific device number, and you can combine the driver restriction with the range or specific device number search. *NOTE* If elm_match_device ever gums up on an open, then you are hitting severely stale device handles. The SAN was reconfigured. Get rod of the stale handles, or restrict match device using driver type and/or device number range. VI. Confirm Data I/O integrity Elm_label imitates the autolabel function of EDT. But in the configuration it accomplishes two tasks: - It truly confirms the driveID to device file match in that if you are using a volume that has an accurate internal label, you match what the media manager mounts on the drive with what is being read via the device. - If the SAN is not configured correctly, you may have been able to open the device but can do no device I/0. In this case, 99% of the time rebooting the SAN gateway takes care of the problem. - Syntax elm_label -d driveID -f device -n vol [-i timeout] [-X] [-v] driveID: media manager drive identifier example - 0,0,2,0 device: in form AIX /dev/rmt# or /dev/mt# Solaris /dev/rmt/#cb, /dev/rmt/#mt, /dev/rmt/#st HP-UX /dev/rmt/#m or /dev/rmt/tsmmt# Windows \\.\Tape# or \\.\mtx.y.z.n Tape# or mtx.y.z.n Linux /dev/tsmscsi/mt# or /dev/IBMtape# vol: 6 to 7 char barcode label Optional: -i timeout: in secs, device ready timeout (default 120). -v: verbose. Diag and Msgs printed to stderr. -X: extended label, VOL1,HDR1,HDR2,FM vs default VOL1,FM Needed to work around prob with dev class DLT, ECART. - Example: elm_label -d 0,0,0,1 -f /dev/mt1 -n ISV009 -i 60 -v 2>>diag.log [1]: ISV009 Mount...Success Label...Success Unload...Success Dismount...Success Place a tail on the diag log and see the details of the drive opening and confirming the label. VII. Basic EDT-ACSLS Configuration: The sample elm.conf shows basic configuration for the ACSLS library. The file contains one or more library descriptions, each starting with the entry LIBRARY and ending with the entry END. LIBRARY - The libname must be twenty or less characters and can not contain the character "." - It must match (case sensative) the external libname configured to TSM. Look the end section for basic TSM configuration and examples. Example: LIBRARY TSM1 LIBTYPE ACSLS This entry must follow immediately after the LIBRARY entry. LICENSE TEMP The license line can appear anywhere within a library description, or can be placed at the top of the file, outside of the library descriptions. Temporary keys are supplied by Gresham Enterprise Storage. Example: LICENSE TEMP 1234567890 LICENSE PERM A permanent license depends on the machine serial number, and on the LIBTYPE. To obtain a permanent key for a machine, run the utility, elm_find_machineID (there are no command line options), with this number and the libtype, GES support can generate a permanent key. Example: LICENSE PERM 1087654231 POOL In order to access scratch volumes, EDT requires a scratch pool identifier as defined to ACSLS. Example: POOL 100 In a mixed media environment, where you would have separate library descriptions, it is suggested that a scratch pool be defined in ACSLS for each media type present in the library. In EDT, name the pool that will contain volumes that are compatible with the drives that you list in the library description. In an environment with multiple TSM Servers you may wish to have separate pool(s) for each server. You can however, stay with a basic set of pools each representing a media type, and have all servers drawing scratch from that pool. CLIENTID When EDT gains access to a drive it is locked via the ACSLS drive lock mechanism. EDT takes advantage of the ability to uniquely name the userid associated with the drive lock. If querying ACSLS for drive locks, a drive in use by EDT has the form: clientname.libname.PID The client name by default is the machine hostname. The libname matches library description libname. The PID matches the process id of the elmdt process controlling the mount request. You may wish to override the hostname due to length. The overall userid for drive locks must be no greater than 64 characters, and hostnames by definition can be upwards of 256 characters. DRIVE ACS_ Drive entries contain both a device file and a library drive identifier preceded by the prefix "ACS_". - The device file must be matched to the physical drive. Use the drive map you created with elm_match_device utility. Example: DRIVE /dev/mt0 ACS_0,0,0,1 DRIVE /dev/mt1 ACS_0,0,0,3 - Create a DRIVE entry for each drive to which you need access. It is possible to have more than one adaptor connected to the drives via the SAN, making for high availability data I/0 path. For example, a drive is made accessible through two device handles and is configured in EDT as separate entries. Example: DRIVE /dev/mt0 ACS_0,0,0,1 DRIVE /dev/mt7 ACS_0,0,0,1 - If configuring for multiple drive types, keep drives of like type configured in one library description. This is in keeping with TSM grouping of like drives being controlled by a device class of a specific drive type, and that particular device class being associated with a singular library definition. VIII. Options. - SSI API Overrides For the following options, refer to EDT SSIAPI. ACSLS SSI_HOSTNAME SSITIMEOUT - Communications Try and Retry DONT_ESTABLISH_COMM Ahead of each task asked by TSM to be accomplished, mount, dismount, eject volume, query volume status, and release volume to scratch, EDT establishes contact with ACSLS using a query server request. If a communications failure is detected, EDT retries the query up till a user set timeout period. The timeout is associated with the mountwait period defined to the TSM device class. Refer to the TSM config example for more detail. This entry turns off the query server and retry mechanism. COMM_CHECK_TIMEOUT