High Availability for Library-Manager ?

obiwan2

ADSM.ORG Member
Joined
Dec 8, 2005
Messages
184
Reaction score
0
Points
0
Location
Cologne / Germany
Website
Visit site
Hi Guys,

we plan to migrate two TSM-Servers with Librarymanager-Function to a new server. This server is only intended to do Library-Management...not less, not more.
I have a redpaper how to do that.... that is not the question.

The question is: How can I build a hot-standby-cluster in RedHat-Linux with TSM as a Library-Manager installed ? In case of an outage of the first node, the system should switchover to the second node automatically and then work as the actual Library-Manager.

Does anyone have an idea, how to "solve that problem" ? I've never done such thing before.....

Many thanks in advance

Hubert
 
Hi,

Use Tivoli System Automation to cluster your TSM Servers. Also, check if your library supports 'reset drives'. If the library does not support 'reset drives', even with the cluster, TSM Server will fail0ver but will not be able to access the library. You then need to manually update the paths to the library/drives after the failover.

eibbob
 
Long time nothing heard from me....:)

As the first point of this project is solved there is another one to be cleared !

If the new library-manager is installed and configured in such way that he can see the TSM-servers itself and the libraries (2 virtual and 1 physical library).....what must be done at this new library-manager to "see and knowing all" about the checked-out tapes in the VAULT (external data-safe) ?

I can't imagine what to do with these tapes..... must I checkin (and checkout again) all VAULT-tapes using the new library-manager or is there another way to solve this ?

Thanks in advance !
 
You can only have one library manager per library. So you would use which ever TSM server is managing the library you want to check in/out tapes from.

You will need to specify the owner during the checkin. So that the library manager knows which client it belongs to.

So if the new library manager is now managing all your libraries, then your old library manager is no longer a library manager.
 
Hi marclant,

that's right...I know that ! In our project we have to migrate 2 old library-managers to one new library-manager and use ALL TSM-Servers as library-clients. So far, so good...

Within this process we are checking out (remove=no) all tapes separately (one owner after another) and checking them in at the new library-manager with owner=tsm01....tsm02....tsm03....tsmxx.
In this case we get all onsite tapes checked in and assigned to the dedicated TSM-Server.

But what happens with the tapes in our VAULT ???? These tapes are stored in a external Safe !!!
Do we have to check them in (and after that check them out) ? If yes, how ? What status/access etc. ?
That's the question...
 
Do we have to check them in (and after that check them out) ? If yes, how ? What status/access etc. ?
The short answer is, you don't need to do anything when them.

The long one, you would only check them in if you need them. For example:
  • If they are called back after offsite reclamation or expired DB backup, then you handle them the same as any offsite tapes returning to scratch.
  • If you need to restore a damaged volume or storage pool, then you would bring them back, check them in as private with the right owner.

The reason you don't need to check them in is that there is 2 tape inventories. In each TSM Server, there is the inventory of defined tapes (q vol), those are all the tapes that the TSM Server is aware of regardless of the physical location of the tape. So TSM knows which tapes belongs to which storage pool and what client data is on it.

Then the library manager on top of the above has the inventory of the tapes in the library (q libv). So, if a library client wants a tape, because it knows which tapes are his, and asks the library manager, but the tape is not in the library, then the library manager will issue a warning that the tape is not checked in, and prompt you to check it in.
 
Hi marclant,

may I desribe my idea tomorrow ? There are a lot of steps in the "to-do-list" and I'm not abolutely sure if they're right (and complete).....
 
Hi again,

here are the steps I planned for the migration of 2 old library-managers (TSM01 and TSM03) to ONE new library-manager:


Disable session client
backup db devcl=dcp1h type=full
TSM01>backup volhistory filename=/etc/tsm/volhist_tsm01.txt
TSM01>backup devconfig filename=/etc/tsm/deviceconfig_tsm01.txt
TSM03>backup db devcl=dcp2d type =full
TSM03>backup volhistory filename=/etc/tsm/volhist_tsm03.txt
TSM03>backup devconfig filename=/etc/tsm/deviceconfig_tsm03.txt

Creation of volume-listings from the old lib.-managers:
o Scratch-Tapes TSM01
select library-name,volume_name from libvolumes where status=‘Scratch‘ > scratchvol_tsm01.txt
o Scratch-Tapes TSM03
select library-name,volume_name from libvolumes where status=‘Scratch‘ > scratchvol_tsm03.txt
o Owner: TSM01
select library-name,volume_name from libvolumes where owner=‘TSM01‘ > owner_tsm01.txt
o Owner: TSM02
select library-name,volume_name from libvolumes where owner=‘TSM02‘ > owner_tsm02.txt
o Owner: TSM03
select library-name,volume_name from libvolumes where owner=‘TSM03‘ > owner_tsm03.txt
o Owner: TSM04
select library-name,volume_name from libvolumes where owner=‘TSM04‘ > owner_tsm04.txt
o complete Inventory HAUS
select library-name,volume_name from libvolumes > all_libvolumes_haus.txt

o complete Inventory DMZ

select library-name,volume_name from libvolumes > all_libvolumes_dmz.txt
o complete Inventory DRM-Tapes (Safe)
select volume_name from volumes where access=‘OFFSITE‘ > offsitevolumes.txt


o
checking-out of all tapes with the old Lib.-Managers; Tapes remain in the library


TSM01>checkout libvol plib1h vollist=file:/etc/tsm/ all_libvolumes_haus.txt remove=no checkl=no
TSM03>checkout libvol plib1d vollist=file:/etc/tsm/ all_libvolumes_dmz.txt remove=no checkl=no TSM01 and TSM03: q libvol (List must be empty !)

o Deleting paths at the old Library-Managers

o TSM01>delete path tsm01 vd1h01 (vd1h02, vd1h03,….vd1h48) srct=server destt=drive libr=vlib1h
o TSM01>delete path tsm02 vd1h01 (vd1h02, vd1h03,….vd1h48) srct=server destt=drive libr=vlib1h
o TSM01>delete path tsm01 i6h01l6 (i6h02l6…. i6h10l6) srct=server destt=drive libr=plib1h
o TSM01>delete path tsm02 i6h01l6 (i6h02l6…. i6h10l6) srct=server destt=drive libr=plib1h

o TSM03>delete path tsm03 vd01 (vd02, vd03,….vd20) srct=server destt=drive libr=vlib2d
o TSM03>delete path tsm04 vd01 (vd02, vd03,….vd20) srct=server destt=drive libr= vlib2d
o TSM03>delete path tsm03 vdav01 (vdav02….vdav08) srct=server destt=drive libr=vlib2avd
o TSM03>delete path tsm04 vdav01 (vdav02….vdav08) srct=server destt=drive libr=vlib2avd
o TSM03>delete path tsm03 i6d01l6 (i6d02l6….i6d06l6) srct=server destt=drive libr=plib2d
o TSM03>delete path tsm04 i6d01l6 (i6d02l6….i6d06l6) srct=server destt=drive libr=plib2d

o deleting drives
o TSM01>delete drive plib1h i6h01l6 (i6h02l6… i6h10l6)
o TSM01>delete drive vlib1h vd1h01 (vd1h02… vd1h48)

o TSM03> delete drive plib2d i6d01l6 (i6d02l6… i6d10l6)
o TSM03>delete drive vlib2d vd01 (vd02… vd20)
o TSM03>delete drive vlib2avd vdav01 (vdav02…vdav08)

o deleting library definitions on all TSM-servers
o TSM01>delete library plib1h
o TSM01>delete library vlib1h

o TSM02> delete library plib1h

o TSM03>delete library plib2d
o TSM03>delete library vlib2avd
o TSM03>delete library vlib2d

o TSM04> delete library plib2d

-------------------------------------------------------------
Beginning work with the new library-manager:

TSMLM1: define library PLIB1 libt=scsi shared=yes
TSMLM1: define library VLIB1H libt=scsi shared=yes
TSMLM1: define library VLIB2AVD libt=scsi shared=yes
TSMLM1: define library VLIB2D libt=scsi shared=yes

TSM01:
define library PLIB1 libt=shared prim=TSMLM1
define library VLIB1H libt=shared prim=TSMLM1

TSM02: define library PLIB1 libt=shared prim=TSMLM1
update library VLIB1H prim=TSMLM1

TSM03:
define library PLIB1 libt=shared prim=TSMLM1
define library VLIB2AVD libt=shared prim=TSMLM1
define library VLIB2D libt=shared prim=TSMLM1

TSM04:define library PLIB1 libt=shared prim=TSMLM1
update library VLIB2AVD prim=TSMLM1
update library VLIB2D prim=TSMLM1

TSM05:
define library PLIB1 libt=shared prim=TSMLM1
define library VLIB1H libt=shared prim=TSMLM1

TSM06:
define library PLIB1 libt=shared prim=TSMLM1
define library VLIB1H libt=shared prim=TSMLM1

TSMLM1:
define path TSMLM1 PLIB1 srct=server destt=library autodetect=yes dev=/dev/library/SAN1-PLIB1
TSMLM1:
define path TSMLM1 VLIB1H srct=server destt=library autodetect=yes dev=/dev/library/SAN1-VLIB1H
TSMLM1:
define path TSMLM1 VLIB2AVD srct=server destt=library autodetect=yes dev=/dev/library/SAN1-VLIB2AVD
TSMLM1:
define path TSMLM1 VLIB2D srct=server destt=library autodetect=yes dev=/dev/library/SAN1-VLIB2D


TSMLM1:
define path TSM01 PLIB1 srct=server destt=library autodetect=yes dev=/dev/library/SAN1-PLIB1
TSMLM1:
define path TSM01 VLIB1H srct=server destt=library autodetect=yes dev=/dev/library/SAN1-VLIB1H

TSMLM1:
define path TSM02 PLIB1 srct=server destt=library autodetect=yes dev=/dev/library/SAN1-PLIB1
TSMLM1:
define path TSM02 VLIB1H srct=server destt=library autodetect=yes dev=/dev/library/SAN1-VLIB1H

TSMLM1:
define path TSM03 PLIB1 srct=server destt=library autodetect=yes dev=/dev/library/SAN1-PLIB1
TSMLM1:
define path TSM03 VLIB2AVD srct=server destt=library autodetect=yes dev=/dev/library/SAN1-VLIB2AVD
TSMLM1:
define path TSM03 VLIB2D srct=server destt=library autodetect=yes dev=/dev/library/SAN1-VLIB2D

TSMLM1:
define path TSM04 PLIB1 srct=server destt=library autodetect=yes dev=/dev/library/SAN1-PLIB1
TSMLM1:
define path TSM04 VLIB2AVD srct=server destt=library autodetect=yes dev=/dev/library/SAN1-VLIB2AVD
TSMLM1:
define path TSM04 VLIB2D srct=server destt=library autodetect=yes dev=/dev/library/SAN1-VLIB2D

TSMLM1:
define path TSM05 PLIB1 srct=server destt=library autodetect=yes dev=/dev/library/SAN1-PLIB1
TSMLM1:
define path TSM05 VLIB1H srct=server destt=library autodetect=yes dev=/dev/library/SAN1-VLIB1H

TSMLM1:
define path TSM06 PLIB1 srct=server destt=library autodetect=yes dev=/dev/library/SAN1-PLIB1
TSMLM1:
define path TSM06 VLIB1H srct=server destt=library autodetect=yes dev=/dev/library/SAN1-VLIB1


PLIB1:
TSMLM1: define drive PLIB1 PD01L6 (PD02L6…PD17L6) serial=autodetect online=yes element=autodetect cleanfreq=none
VLIB1H:
TSMLM1: define drive VLIB1H VDR01 (VDR02…VDR48) serial=autodetect online=yes element=autodetect cleanfreq=none
VLIB2D:
TSMLM1: define drive VLIB2D VDB01 (VDB02…VDB20) serial=autodetect online=yes element=autodetect cleanfreq=none
VLIB2AVD:
TSMLM1: define drive VLIB2AVD VDBAV01 (VDBAV02…VDBAV08) serial=autodetect online=yes element=autodetect cleanfreq=none


TSMLM1: define devclass DCP1H libr=PLIB1 devtype=lto format=ultrium6c mountr=2 mountw=45
TSMLM1: define devclass DCV2H libr=VLIB1H devtype=lto format=ultrium6c mountr=2 mountw=45
TSMLM1: define devclass DCP2D libr=PLIB1 devtype=lto format=ultrium6c mountr=2 mountw=45
TSMLM1: define devclass DCV2AVD libr=VLIB2AVD devtype=lto format=ultrium6c mountr=2 mountw=45
TSMLM1: define devclass DCV2D libr=VLIB2D devtype=lto format=ultrium6c mountr=2 mountw=45

Updating the device-classes at the TSM-Servers TSM01-TSM04
Update devclass DCP1H destination=PLIB1
Update devclass DCP2D destination=PLIB1


TSM01-06>set serverpasswort xxxxxxxxxx
TSM01-06>set servername TSM01 (TSM02/TSM03/TSM04/TSM05/TSM06)
TSM01-06>set serverhladdress 172.xx.x.xx (x.xx/x.xx/x.xx/x.xx/x.xx)
TSM01-06> set serverlladdress 1500 (for all servers)
TSM01-06>define server TSMLM1 serverpassword=xxxxxxxxxx hladdress=x.x.x.x lladdress=xxxx crossdefine=yes


TSMLM1>checkin libvol plib1 vollist=file:\etc\tsm\scratchvol_tsm01.txt status=scratch checkl=barcode search=yes
TSMLM1>checkin libvol plib1 vollist=file:\etc\tsm\scratchvol_tsm03.txt status=scratch checkl=barcode search=yes

TSMLM1>checkin libvol plib1 vollist=file:\etc\tsm\owner_tsm01.txt owner=tsm01 status=private checkl=barcode search=yes
TSMLM1>checkin libvol plib1 vollist=file:\etc\tsm\owner_tsm02.txt owner=tsm02 status=private checkl=barcode search=yes
TSMLM1>checkin libvol plib1 vollist=file:\etc\tsm\owner_tsm03.txt owner=tsm03 status=private checkl=barcode search=yes
TSMLM1>checkin libvol plib1 vollist=file:\etc\tsm\owner_tsm04.txt owner=tsm04 status=private checkl=barcode search=yes

Check with „q libvol plib1“

Check of Volume history of the old library-managers
TSM01>q volhist type=remote
TSM03>q volhist type=remote

** Handling of volumes with type=remote**

tsm01>audit libr plib1 checklabel=barcode refresh=yes
tsm02>audit libr plib1 checklabel=barcode refresh=yes
tsm03>audit libr plib1 checklabel=barcode refresh=yes
tsm04>audit libr plib1 checklabel=barcode refresh=yes

TSM01-TSM06>enable session client

---------------------------------------------
Puuuhhh....what a list of to-do's !!!
 
Back
Top