At Infocrossing we have a tape operations group and they handle the physical opening of the cap and insert returned tapes and removing tapes for offsite. Because of this I didn't realize (until I had to handle the checkout myself) that TSM is checking out my tapes by filling the cap and pausing, waiting for the operations people to take the tapes out, then resuming the eject. OK, normal process except I have two 40 tape cap doors. When an eject has more than 40 tapes I figured that TSM would use the next cap door when I leave a specific cap identifier out of the checkout command, but it does not use the alternate cap. Both caps are set to a priority higher than zero so I find it frustrating TSM only uses one cap door. ACSLS itself allows you to use 0,0,* and it will checkout to all available caps above priority zero, but TSM does not accept the *. So what am I missing here? Is it possible with TSM to use both cap doors and not have the checkout pause for the one cap to be emptied? I didn't see anything suggesting REMOVE=BULK is any different from REMOVE=YES. I searched Google but didn't fine what I was looking for, and didn't find anything on ADSM.org so any ideas? Here's an example of my command:
CHECKOUT LIBVOLUME LIBRARY1 REMOVE=YES VOLLIST=FILE:/tsm/logs/chkout.list
Whether I specify a cap door or not it only uses one of the two.
Showing posts with label ACSLS. Show all posts
Showing posts with label ACSLS. Show all posts
Friday, June 12, 2009
Wednesday, April 22, 2009
ACSLS Checkout Script Update
I Modified the ACSLS checkout script due to an Admin with BYU pointing out it doesn't work when the library clients reside on seperate servers. It was changed due to how TSM processes the CMDFILE= option in my MOVE DRM macro, plus if your TSM server names vary the while loop is not as easy to setup. So here is the new script and macro. I switched it to use an array for the servernames for easier processing when names don't follow a similar convention. Also you might need to modify the grep if your volumes don't start with L0 thru 4. If your volser is a different range just modify the grep so it will work for you.
<---------------------MOVE DRM MACRO------------------------>
move drm * so=dbb wherestate=mo tostate=vault remove=no WAIT=YES
move drm * so=dbb wherestate=vaultr tostate=onsiter
<------------------------Cut Below-------------------------->
#!/bin/ksh
cd /usr/tivoli/tsm/client/ba/bin
ADSMID=`cat /usr/local/scripts/ADSMID`
ADSMPASS=`cat /usr/local/scripts/ADSMPASS`
OFFSITE=/usr/tivoli/tsm/client/ba/bin/OFFSITE/offsite.txt
DRVOLS=/usr/tivoli/tsm/client/ba/bin/OFFSITE/Vol_List
RETRIEVE=/usr/tivoli/tsm/client/ba/bin/OFFSITE/retrieve.txt
set -A SERV TSM-1 TSM-2 TSM-3 TSM-4
cp $OFFSITE "$OFFSITE.BAK"
mv /usr/tivoli/tsm/client/ba/bin/OFFSITE/Vol_List /usr/tivoli/tsm/client/ba/bin/OFFSITE/Vol_List.bak
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 " The following tapes will checkout from the library\n\n" >> $OFFSITE
printf " and should 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
i=0
while [ $i -lt 4 ]
do
dsmadmc -id=$ADSMID -password=$ADSMPASS -servername=${SERV[$i]} -dataonly=yes "select volume_name from drmedia where state='MOUNTABLE' and volume_name not in (select volume_name from drives where volume_name is not NULL) " grep L[0-4] >> $DRVOLS
dsmadmc -id=$ADSMID -password=$ADSMPASS -servername=${SERV[$i]} -dataonly=yes "select volume_name from drmedia where state='VAULTRETRIEVE' " grep L[0-4] >> $RETRIEVE
dsmadmc -id=$ADSMID -password=$ADSMPASS -servername=${SERV[$i]} 'macro /usr/tivoli/tsm/client/ba/bin/move_drmedia.mac'
sleep 120
i=$(( $i + 1 ))
done
dsmadmc -id=$ADSMID -password=$ADSMPASS -servername= CHECKIN LIBVOL search=yes stat=private checklabel=barcode vollist=FILE:$DRVOLS
sleep 180
dsmadmc -id=$ADSMID -password=$ADSMPASS -servername= CHECKOUT LIBVOL checkl=no remove=bulk vollist=FILE:$DRVOLS
cat $DRVOLS sort >> $OFFSITE
mail -s "Daily Tape Rotation - Tapes to be sent to Iron Mountain" tape_rpt < $OFFSITE mail -s "Daily Tape Return" tape_rpt < $RETRIEVE
<---------------------MOVE DRM MACRO------------------------>
move drm * so=dbb wherestate=mo tostate=vault remove=no WAIT=YES
move drm * so=dbb wherestate=vaultr tostate=onsiter
<------------------------Cut Below-------------------------->
#!/bin/ksh
cd /usr/tivoli/tsm/client/ba/bin
ADSMID=`cat /usr/local/scripts/ADSMID`
ADSMPASS=`cat /usr/local/scripts/ADSMPASS`
OFFSITE=/usr/tivoli/tsm/client/ba/bin/OFFSITE/offsite.txt
DRVOLS=/usr/tivoli/tsm/client/ba/bin/OFFSITE/Vol_List
RETRIEVE=/usr/tivoli/tsm/client/ba/bin/OFFSITE/retrieve.txt
set -A SERV TSM-1 TSM-2 TSM-3 TSM-4
cp $OFFSITE "$OFFSITE.BAK"
mv /usr/tivoli/tsm/client/ba/bin/OFFSITE/Vol_List /usr/tivoli/tsm/client/ba/bin/OFFSITE/Vol_List.bak
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 " The following tapes will checkout from the library\n\n" >> $OFFSITE
printf " and should 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
i=0
while [ $i -lt 4 ]
do
dsmadmc -id=$ADSMID -password=$ADSMPASS -servername=${SERV[$i]} -dataonly=yes "select volume_name from drmedia where state='MOUNTABLE' and volume_name not in (select volume_name from drives where volume_name is not NULL) " grep L[0-4] >> $DRVOLS
dsmadmc -id=$ADSMID -password=$ADSMPASS -servername=${SERV[$i]} -dataonly=yes "select volume_name from drmedia where state='VAULTRETRIEVE' " grep L[0-4] >> $RETRIEVE
dsmadmc -id=$ADSMID -password=$ADSMPASS -servername=${SERV[$i]} 'macro /usr/tivoli/tsm/client/ba/bin/move_drmedia.mac'
sleep 120
i=$(( $i + 1 ))
done
dsmadmc -id=$ADSMID -password=$ADSMPASS -servername=
sleep 180
dsmadmc -id=$ADSMID -password=$ADSMPASS -servername=
cat $DRVOLS sort >> $OFFSITE
mail -s "Daily Tape Rotation - Tapes to be sent to Iron Mountain" tape_rpt < $OFFSITE mail -s "Daily Tape Return" tape_rpt < $RETRIEVE
Thursday, May 15, 2008
Issue With NAS Path
I'm hoping someone else has seen this weird behavior with NAS paths and can shed some light on the issue. What I am currently experiencing is constant errors issuing to the actlog of my library controller instance caused by a failed mount/dismount for an NDMP backup. The TSM instance has been rebooted and the path put offline but I am still getting these errors:
05/15/2008 14:51:18 ANR9999D pvrremot.c(488): ThreadId <32> The PVR remote
descriptor is NULL.(SESSION: 24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> issued message 9999 from: (SESSION:
24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> 0x0000000100025bf4 outDiagf
(SESSION: 24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> 0x00000001004cd380
PvrRemoteOpenDrive (SESSION: 24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> 0x000000010025193c
PvrOpenTapeDrive@AF144_48 (SESSION: 24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> 0x0000000100245a0c
PvrOpenTapeDrive (SESSION: 24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> 0x0000000100245930 PvrOpenDrive
(SESSION: 24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> 0x00000001002a0150 MgrGetIdleVol
(SESSION: 24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> 0x00000001002a0e78 PerformDismount
(SESSION: 24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> 0x00000001002a0850
PerformDismountNow (SESSION: 24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> 0x00000001002a0d24 DismountThread
(SESSION: 24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> 0x000000010000fe5c StartThread
(SESSION: 24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> 0x090000000040f448 _pthread_body
(SESSION: 24492)
The problem is that support wants me to reboot my Powderhorn, which is just not feasible. ACSLS is not showing anything in the drive and that the drive is available so I don't see how it's a library/ACSLS issue.
05/15/2008 14:51:18 ANR9999D pvrremot.c(488): ThreadId <32> The PVR remote
descriptor is NULL.(SESSION: 24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> issued message 9999 from: (SESSION:
24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> 0x0000000100025bf4 outDiagf
(SESSION: 24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> 0x00000001004cd380
PvrRemoteOpenDrive (SESSION: 24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> 0x000000010025193c
PvrOpenTapeDrive@AF144_48 (SESSION: 24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> 0x0000000100245a0c
PvrOpenTapeDrive (SESSION: 24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> 0x0000000100245930 PvrOpenDrive
(SESSION: 24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> 0x00000001002a0150 MgrGetIdleVol
(SESSION: 24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> 0x00000001002a0e78 PerformDismount
(SESSION: 24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> 0x00000001002a0850
PerformDismountNow (SESSION: 24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> 0x00000001002a0d24 DismountThread
(SESSION: 24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> 0x000000010000fe5c StartThread
(SESSION: 24492)
05/15/2008 14:51:18 ANR9999D ThreadId <32> 0x090000000040f448 _pthread_body
(SESSION: 24492)
The problem is that support wants me to reboot my Powderhorn, which is just not feasible. ACSLS is not showing anything in the drive and that the drive is available so I don't see how it's a library/ACSLS issue.
Thursday, February 7, 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.
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
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.
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 5, 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.
Saturday, October 27, 2007
ACSLS Shared Library DRM Checkout
I was recently asked by a reader if I would show them how I do the checkout of my DRM tapes in an shared ACSLS library. If you are not aware, ACSLS does not really support true DRM checkout within a shared library environment. Unfortunately, what occurs when you run the checkout is that ACSLS tries to check the tapes out one at a time; prompting for a request response before checking out the next tape. I found this out when we implemented our STK L5510 library and the checkout process was broken. So I went searching for some kind of answer to the situation and found APAR IC45537 which states the problem has been known since March of 2005. IBM has not resolved the issue within TSM but has relied on a local fix to resolve this issue. So I decided to post the script I created here to help those people out who have an ACSLS library and are looking to share it between multiple TSM instances and don't want to have to deal with Gresham's software.
Here is a basic rundown of what the script does.
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
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.
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
Saturday, December 30, 2006
ACSLS Not Really Ready For Library Sharing!
So we have a large ACSLS library at one of our data centers and we decided to use library sharing with 5.3. Tivoli stated that in 5.3 ACSLS is now supported in a library sharing environment. So we setup library sharing and proceeded to also setup DRM to handle our offsite tape rotation. Now I have used IBM equipment almost exclusively when I was with IBM so this ACSLS stuff is new to me, so when MOVE DRMEDIA did not seem to be working I immediately thought it was an ACSLS issue. The problem was that when we ran a MOVE DRMEDIA the library would only checkout one tape at a time. We have two 40 tape I/O doors so why it would only check out one tape at a time was puzzling(it would wait until the tape was removed from the I/O door before checking out the next tape). So I called Sun/STK and was told it was a software issue. So when I called Tivoli it took days before someone found the issue was in fact TSM. The APAR is IC45537 which states that TSM library clients do not currently support the concurrent checkout of multiple volumes. There was a local work around which entailed using MOVE DRMEDIA REMOVE=NO from the library client, checking them back in on the library controller, and then checking them out on the library controller. It's a mess of a script but it works. This APAR was released in April of 2005 yet I am still having to use a local work around. It just drives me nuts! Especially because the problem was not one that even Tivoli support easily found. Let's hope there is an actual fix in 5.4 but I'm not betting on it.
Tuesday, December 19, 2006
MOVE DRMEDIA from shared ACSLS library
OK, so I my work has an ACSLS library shared by 7 instances of TSM and my move drmedia commands fail. I have tried it with and without the cap= option and also have used remove=bulk and remove=yes. The volumes fail to checkout and the ACSLS documentation I have found so far does not cover shared ACSLS checkout. Any help is appreciated.
Tuesday, August 22, 2006
Any Advice On ACSLS?
So I have a new job with a new company doing TSM work and they have a STK library using ACSLS. Since I have never used ACSLS and am not sure why it doesn’t have a web interface I am looking for pointers from you all as to tips, tricks, or things I should now when using it. One question I have is why did they make a management tool that has to run on a totally separate piece of hardware? STK has stuck with ACSLS for a long time so I am assuming it must be somewhat worthwhile. Is it?
Subscribe to:
Posts (Atom)