Tuesday, February 19, 2008

ACSLS Label Problem

For the first time in many many months our ACSLS library has experienced some problems and one that is perplexing is a LABEL LIBVOLUME issue. When a LABEL LIBVOL is run it is coming back with a SUCCESSFUL result code but the tape does not get checked into the library. I do have CHECKIN=SCRATCH in the command, but that part of the proceedure is failing due to the library stating it is unable to open the drive on eject (the tape does eject, however). So the tape does get labeled but not checked in. When I run a CHECKIN LIBVOL command the tapes are then found and listed as in the LIBVOL inventory. Anyone every seen this? I am having the tape drive looked at, but TSM returning the process as SUCCESSFUL is disconcerting. This is definitely a TSM flaw that I plan to address with support.

Thursday, February 14, 2008

Migrating To A Library Controller Instance

For those of you who use a shared library environment, but do not have a dedicated TSM library controller instance, now is the time to make the change. I know many of you figured it was to hard or risky to try but that is no longer the case. IBM has just release a Redpaper that will help you move your library controller to a dedicated instance. The new Redpaper is called:

IBM Tivoli Storage Manager: How to Migrate the Library Manager Function

I made the switch years ago and it was the best thing I ever did. Have to control the library with a production instance was a headache. If the servers came down the time it would take to come back up due to log cleanup made it frustrating and problematic for other instances that could come up more quickly. Now with a dedicated library controller instance I don't have to worry about production servers waiting for the library to come back up since the library controller is small and fast when restarting. Check out the paper it even provides scripts to help ease some of the headache involved.

Thursday, February 07, 2008

REPOST: ACSLS Shared Library Checkout Script

For those with a shared ACSLS TSM library looking for a checkout script, I thought I would repost this so it would be easier to find.

Here is a basic rundown of what the script does.


  • On each library client DRM checks the tapes out with a REMOVE=NO option and creates a file with a list of the tapes.
  • On the library manager the tapes are checked back into the library.
  • The Library manager then checks every library clients DRM tapes out.
I know it sounds complex but it's not. It also is not perfect so you will need to keep on top of it, but don't worry it is not so bad that it's a headache. Some explaination is required also; In my environment I have 7 TSM instances and the firsts is just a library controller. This is why the following script starts at TSMSERV2 and stops the loop after TSMSERV7. Also note that the pipe sysmbol will not show up for some reason so you need to add it before the grep statements. Before you use the script you will also notice that it uses a TSM macro. Create the file by putting the following command into a macro called move_drmedia.mac.

move drm * so=dbb wherestate=mo tostate=vault remove=no CMD=&VOL CMDFILE=/usr/tivoli/tsm/client/ba/bin/Vol_List APPEND=YES WAIT=YES
move drm * so=dbb wherestate=vaultr tostate=onsiter


=-=-=-=-= Below Starts Checkout Script =-=-=-=-=

#!/bin/ksh

cd /usr/tivoli/tsm/client/ba/bin

OFFSITE=/usr/tivoli/tsm/client/ba/bin/OFFSITE/offsite.txt
RETRIEVE=/usr/tivoli/tsm/client/ba/bin/OFFSITE/retrieve.txt
ADSMID=`cat /usr/local/scripts/ADSMID`
ADSMPASS=`cat /usr/local/scripts/ADSMPASS`
I=2

cp $OFFSITE "$OFFSITE.BAK"
cp $RETRIEVE "$RETRIEVE.BAK"
cp /usr/tivoli/tsm/client/ba/bin/Vol_List /usr/tivoli/tsm/client/ba/bin/Vol_List.bak

cat /dev/null > /usr/tivoli/tsm/client/ba/bin/Vol_List

printf "Use this list to determine tapes that are to go offsite report any discrepancies to the Recovery Services Team.\n\n" > $OFFSITE
printf " \n\n" >> $OFFSITE
printf "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n" >> $OFFSITE
printf " Tapes to be sent offsite\n\n" >> $OFFSITE
printf " Current as of: `date`\n\n" >> $OFFSITE
printf "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n" >> $OFFSITE

printf "Use this list to determine tapes that are to come back onsite from Iron Mountain for reuse. Report any discrepancies to the Recovery Service Team.\n\n" > $RETRIEVE
printf " \n\n" >> $RETRIEVE
printf "********************************************************\n\n" >> $RETRIEVE
printf " Tapes to be brought back onsite from Iron Mountain\n" >> $RETRIEVE
printf " and placed back into TSM library for scratch.\n\n" >> $RETRIEVE
printf " Current as of: `date`\n\n" >> $RETRIEVE
printf "********************************************************\n\n" >> $RETRIEVE

while [ $I -lt 8 ]
do
S=TSMSERV-$I

dsmadmc -id=$ADSMID -password=$ADSMPASS -servername=$S -dataonly=yes "select volume_name from drmedia where state='MOUNTABLE' " grep L[0-3] >> $OFFSITE

dsmadmc -id=$ADSMID -password=$ADSMPASS -servername=$S -dataonly=yes "select volume_name from drmedia where state='VAULTRETRIEVE' " grep L[0-3] >> $RETRIEVE

dsmadmc -id=$ADSMID -password=$ADSMPASS -servername=$S 'macro move_drmedia.mac'

sleep 120

I=$(( $I + 1 ))
done

dsmadmc -id=$ADSMID -password=$ADSMPASS -servername=TSMSERV-1 'CHECKIN LIBVOL TSMLIB search=yes stat=private checklabel=no vollist=FILE:/usr/tivoli/tsm/client/ba/bin/Vol_List'

sleep 180

dsmadmc -id=$ADSMID -password=$ADSMPASS -servername=TSMSERV-1 'CHECKOUT LIBVOL TSMLIB vollist=FILE:/usr/tivoli/tsm/client/ba/bin/Vol_List'

mail -s "TDC Daily Tape Checkout" $HN tape_rpt < $OFFSITE

mail -s "TDC Daily Tape Return" $HN tape_rpt < $RETRIEVE

Tuesday, February 05, 2008

ACSLS Revisited

I have now been using an ACSLS enabled SUN/STK Powderhorn library with 30 LTO-3 drives for 18 months now and I have done a complete turn-around on my attitude towards the product. Although ACSLS is not as easy to initially work with as a web based interface, once you get the hang of the product it acutally is quite easy to work with. I have had one issue where we had to restart the ACSLS server, but other than that this library and ACSLS have been a lot less of an issue than any of the 3584's I worked with at IBM (don't worry I still love the 3584's). This library, although old, is very robust and has been a solid performer. So I must openly state I am not an ACSLS hater as I once was, and I would like to see some web implimentation, but overall it's turned out to be a solid product to work with.