User Tools

Site Tools


tsm:tsm_libmanager

TSM Library Manager

What is a Library Manager:
It's a TSM server that manage concurrent access on a library. It manage dynamically drives and scratch tape for all TSM servers. Instead of having a static partitioning into a library, each TSM has his own K7 private and scratch, and his own drives, Library Manager allow to share all the drives for all TSM server.

Reference: redp0024 - TSM SAN Tape Library Sharing.pdf (http://www.redbooks.ibm.com)

There are wrong information into this redbook, don't create drives on the client library manager, but define the paths to drives into the library manager for the client.

Note: In this section when we talk about TSM client, this means TSM server who act as Library Manager Client.

TSM Library Manager

Tasks

  • Serialize the requests to access the drives
  • Control the ownership of the volumes
  • Tracking the volumes and slot information

Operations

  • Library initialization
  • Volume mount/dismount
  • Checkin/checkout
  • Library audit
TSM server which act as client from library manager

Operations

  • Send the request to mount/dismount volume
  • Request and release the ownership of volumes
  • Library initialization with the library manager
  • Library audit (synchronization with library manager audit)

Initial Setup

Configuring server to server connection

If you have multiples TSM Library client, do it on each server, and register them on the TSM Library Manager
Use the TCPADMINPORT or SSLADMINPORT (then add ssl=yes) if configured On the TSM server Library Client,

Set servername tsm1
Set crossdefine on
Set serverhladdress 10.10.10.9
Set serverlladdress 1600
Set serverpassword ?**?

On the Libray Manager,

Set servername tsmlib
Set crossdefine on
Set serverhladdress 10.10.10.10
Set serverlladdress 1850
Set serverpassword ?**?
define server TSM1 serverpassword=?***? Hladdress=10.10.10.9 lladdress=1600 crossdefine=yes

If SSL

define server TSM1 serverpassword=?***? Hladdress=10.10.10.9 lladdress=1600 crossdefine=yes ssl=yes

Libray definition

Use the same library name on the Manager and all his clients (it's required).

On the Library Manager is the only server who has a physical access to the Library control, the Library Manager client will have only an access to the drives.

define library lib3500 libt=scsi shared=yes
define path tsmlib lib3500 srct=server destt=libr  device=/dev/smc0

On the Library Manager Client:

Define library lib3500 libtype=shared prim=tsmlib 
Define devclass lto_class devt=lto libr=lib3500 worm=no mountret=1 mountlimit=drives format=drive mountwait=30

On the Library Manager:

Define drive lib3500 drv_lto1 
Define drive lib3500 drv_lto2
Define path tsmlib drv_lto1 srct=server destt=drive libr=lib3500  device=/dev/rmt0
Define path tsmlib drv_lto2 srct=server destt=drive libr=lib3500  device=/dev/rmt1
Define path tsm1 drv_lto1 srct=server destt=drive libr=lib3500  device=/dev/rmt0
Define path tsm1 drv_lto2 srct=server destt=drive libr=lib3500  device=/dev/rmt1

Device Class definition

In order to use the library on the manager, you have to create the same device class on all servers (same devc_name, and same lib_name), it's required.

On the Library Manager Server:

Define devclass lto_class devt=lto libr=lib3500 worm=no mountret=1 mountlimit=drives format=drive mountwait=30

On the Library Manager Client:

Define devclass lto_class devt=lto libr=lib3500 worm=no mountret=1 mountlimit=drives format=drive mountwait=30

Migrating from a partitioned library to a dynamic library managed by TSM Library Manager

On the TSM servers that will become client for the Library Manager

  • List all K7 on you TSM servers that need to migrate to Libray Manager:
    select volume_name from libvolumes where status !=’Scratch’ and library_name=’LIB3500’ > /tmp/vollist_tsm1.txt
    select volume_name from libvolumes where status =’Scratch’ and library_name=’LIB3500’ > /tmp/scratchlist_tsm1.txt
  • Remove K7 from libvol inventory on the TSM client (don't remove it physically, else you will need 3 days to do this)
  Checkout libvolume lib3500 volrange=LTOO001,LTOO999 remove=no checkl=no 
  • Do it on all TSM servers
  • Delete the library and his paths on the TSM client, and also drives
  Delete path tsm1 lib3500 scrt=server destt=libr
  Delete path tsm1 drv_lto1 srct=server destt=drive libr=lib3500 
  Delete path tsm1 drv_lto2 srct=server destt=drive libr=lib3500 
  Delete drive lib3500 drv_lto1
  Delete drive lib3500 drv_lto2
  Delete library lib3500
  • Now break the Library configuration to have only 1 full library (no more partitions)
  • Recreate the library to connect to the library Manager and the the drives and their paths:
  Define library lib3500 libtype=shared prim=tsmlib 

  Define drive lib3500 drv_lto1 
  Define drive lib3500 drv_lto2 
  Define path tsm1 drv_lto1 srct=server destt=drive libr=lib3500  device=/dev/rmt0
  Define path tsm1 drv_lto2 srct=server destt=drive libr=lib3500  device=/dev/rmt1

On the TSM Library Manager:

  • Checkin all data tapes, and assign the to a TSM client Library Manager (parameter owner):
checkin libvol lib3500 vollist=file:/tmp/vollist.txt checkl=barcode stat=priv owner=TSM1 search=yes
  • Do the same for all data tapes from all TSM clients
  • Now into the library all unassign tapes are scratch, checkin as scratch:
 Checkin libvol lib3500 search=yes status=scratch 
tsm: TSMLIBM>select * from libvolumes

LIBRARY_NAME         VOLUME_NAME          STATUS             OWNER                LAST_USE     HOME_ELEMENT   CLEANINGS_LEFT   DEVTYPE   MEDIATYPE
------------------   ------------------   ----------------   ------------------   ----------   ------------   --------------   -------   ----------------
LIB3584              IL0011L2             Private            TSM3                 Data                 1116                0   LTO       LTO-2
LIB3584              IL0031L2             Private            TSM3                 Data                 1084                0   LTO       LTO-2
LIB3584              IL0032L2             Private            TSM2                 Data                 1097                0   LTO       LTO-2
LIB3584              IL0036L2             Private            TSM2                 Data                 1085                0   LTO       LTO-2
LIB3584              IL0037L2             Scratch                                                      1044                0   LTO       LTO-2
LIB3584              IL0038L2             Private            TSM2                 Data                 1041                0   LTO       LTO-2
LIB3584              IL0040L2             Private            TSM1                 Data                 1110                0   LTO       LTO-2
LIB3584              IL0041L2             Private            TSM3                 Data                 1063                0   LTO       LTO-2
LIB3584              IL0042L2             Scratch                                                      1054                0   LTO       LTO-2

On the TSM client library:

  • Execute an audit library to discover all volumes:
tsm: TSM1> audit library lib3500 checkl=barcode 

Now you don't see any more tapes with “q libv” command on the client, use “q vol”.

Known problem when renaming a TSM library client

Volume owner not changed after rename of TSM servername on library client

Technote (FAQ)

Question

After renaming a Tivoli Storage Manager server (with set servername) acting as a library client, its volumes in the volumehistory of the library manager are still showing up as owned by the “old” servername. Cause

After renaming a Tivoli Storage Manager server acting as a library client (with set servername), its volumes in the volumehistory of the library manager are still showing up as owned by the “old” servername.

The following error occurred during delete volume (after pending time): ANR9999D smlshare.c(4714): ThreadId<14> Invalid owner(<old servername>) attempting to delete volume <volume name>.

An update “update libvol <library name> <volume name> owner=<renamed servername>” on the library manager returned with error: ANR8969E The owner of volume <volume name> can not be updated to owner <renamed servername>.

Answer

Use the following steps to set the correct owner of the volumes:

1. On library client: set servername <new servername>

2. If any library manager, delete paths to drives for the old library client

3. On library manager: delete old server definition of library client

4. On library manager: define new server of library client

5. On library manager: define paths to drives for new server of library client

6. On library manager: identify the volumes from volume history of library manager associated with the library client. e.g. select volume_name,location from volhistory where location='<old servername>'

7. On library manager: delete volhist against all volumes returned in previous step. delete volhist todate=today type=remote volume=<volume name> force=yes
Note:
Here, this is dangerous to remove a “remote” type of entry from the volume history. If a “remote” entry is not present for the volume in the volume history, then the Tivoli Storage manager server can no longer validate if the volume actually belongs to a library client on a CHECKIN LIBV command. This can present a problem if the customer subsequently does a checkout of the volume and then checks the volume back in without specifying the OWNER=<library client> parameter. See DCF 1170083
http://www-1.ibm.com/support/docview.wss?uid=swg21170083

8. On library manager: update libvolume with owner of the library manager: update libv <library name> <volume name> status=private owner=<library client name>

9. On library client: audit library to resync the inventories of library manager and library client. audit library <library name>

10. If the volume should go back to scratch status, run on library manager update libv <library name> <volume name> status=scratch

tsm/tsm_libmanager.txt · Last modified: 2021/01/01 21:25 (external edit)