TRIUMF Grid Software and Applications

SC Tape Setup Documentation

For the Service Challenges we are using an IBM 4560SLX tape library with two Quantum SDLT320 drives.  Additionally to increase our tape-writing capacity during the early phase of SC3 we temporarily used 2 of TRIUMF's Overland NEO Series tape libraries.

We have written a perl/mysql tape interface called smallhsm for the tape libraries.  The software conforms to the dCache interface, and is composed of these files:
  • smallhsm_libd
    • this is the library daemon that waits for TCP connection requests from smallhsm clients.  The daemon controls all tape libraries directly attached to the host.
    • it runs on port 2345, waiting for clients to connect and send a command-line style request to 'get' or 'put' a pnfsid file to/from the library.
    • syntax:
       ./smallhsm_libd
  • smallhsm_client
    • a prototype client that can make a request to the server daemon to handle a single pnfs file.
    • syntax to connect to smallhsm_libd server running remotely:
      ./smallhsm_client -server somehost.triumf.ca \
       put -si=size=BYTES\;group=triumf\;flag-c=2 \
       pnfsid  /data/filename
    • syntax to connect to smallhsm_libd server running on localhost:
      ./smallhsm_client put -si=size=BYTES\;group=triumf\;flag-c=2 \
       pnfsid  /data/filename
  • smallhsm_common.pm
    • a perl module common to all smallhsm files - smallhsm_libd, smallhsm_client and other smallhsm modules.
  • smallhsm_dv.pm
    • a perl module that handles all device operations; that is, tape drive and tape library.
    • this module includes the database module as well.
    • this module is included by the library server daemon.
  • smallhsm_db.pm
    • a perl module that handles all database transactions.
    • this module is included by the library server daemon and the device module (smallhsm_dv.pm).
'smallhsm' is currently installed in a non-privileged account.  It has the following directory structure:
  • bin/
    • smallhsm_libd, smallhsm_client, smallhsm_common.pm, smallhsm_db.pm, smallhsm_dv.pm
  • doc/
    • sqltabs.sql - mysql-compatible sql table definitions.
  • etc/
    • dbCredentials - login credentials and host info for smallhsm_db.pm
    • smallhsm.conf - configuration file for smallhsm_libd
  • var/
    • sql.log - a record of all mysql transactions.  It is in playback format, and thus could be replayed on a database to rebuild the database.