Tuesday, May 31, 2011

Where, how and why are tapes still used for backup?

Not strictly a TSM only topic, but this fascinating thread has been raging on over at LinkedIn for the last few days and I thought it would be worth sharing here. The provocative question asked was:
"Is tape still used for backup? Why is tape still being used these days when disk and cloud are available?"

Cue an avalanche of fascinating pro- and anti-tape pitches and opinions. Wading through the comments may take a while (I pitched-in with a couple of comments too) but it's a useful read as, frankly, these are the questions that clients/customers/decision-makers - and indeed ourselves - should be asking to ensure that we continue to use the right technology for the right purpose.

Of course, TSM itself is well-positioned for in many ways given its long-running support of disk, both in random access and more recently in sequential file (virtual tapes!).

David Mc
London, UK

Thursday, May 26, 2011

Get Device Info From AIX

I needed to gather the serial numbers by device (rmt) in AIX for our VTL, and the grep command in AIX is not as functional as my Linux box at home, so the -A and -B options are not available. Those two flags allow you to grab X lines before and after the grep'ed expression which is really handy when running lscfg -vp. Here's a grep command to gather just the rmt(s) with their serial and WWN. If you need to change the number of lines just change the a (after) and b (before) value, and s is what is "grep'ed".

lscfg -vp | awk 'c-->0;$0~s{if(b)for(c=b+1;c>1;c--)print r[(NR-c+1)%b];print;c=a}b{r[NR%b]=$0}' b=1 a=5 s="rmt"

Wednesday, May 18, 2011

Getting TSM Script Info

So you want to query a script and see what it executes but don't like the standard Q SCRIPT results? Don't forget about the FORMAT= options available. Most people know FORMAT=DETAIL but with the Q SCRIPT command there are two additional formats. FORMAT=LINE and FORMAT=RAW. I like RAW but LINE is decent if you want to see the script by sequence.

UPDATE: As reader Erwann reminded me (I had long forgotten), there is also a F=MACRO option which will display the script in a form that can be run as a macro to define the script to another TSM server. If you issue Help Q SCRIPT it does not list the MACRO option, but it is valid and does work. So you could dump all your scripts to macro format and send it to an outfile. Then you could define them to an alternate TSM server (Q SCRIPT * OUTFILE=SCRIPTS.MAC F=Macro).


tsm: TSMLIBM>q script LIBR_INFO f=macro
DEFINE SCRIPT  LIBR_INFO DESC="Library path information"
UPDATE SCRIPT  LIBR_INFO "q libr $1"
UPDATE SCRIPT  LIBR_INFO "q libr $1 f=d"
UPDATE SCRIPT  LIBR_INFO "q path $1 srct=serv destt=libr f=d"
UPDATE SCRIPT  LIBR_INFO "q path * srct=serv destt=dr libr=$1 f=d"
UPDATE SCRIPT  LIBR_INFO "select library_name,library_type,library_serial from libraries where library_name ='$1'"
UPDATE SCRIPT  LIBR_INFO "select source_name,destination_name,library_name,device serial from paths where library_name='$1'"
UPDATE SCRIPT  LIBR_INFO "select drive_name,drive_serial,element,library_name from drives where library_name='$1'"


Here are the examples:

tsm: TSMLIBM>q script LIBR_INFO f=line   


Name           Line       Command                                                     
               Number     
----------     ------     ------------------------------------------------------------
LIBR_INFO      5          q libr $1                                                   
               10         q libr $1 f=d                                               
               15         q path $1 srct=serv destt=libr f=d                          
               20         q path * srct=serv destt=dr libr=$1 f=d                     
               25         select library_name,library_type,library_serial from        
                           libraries where library_name ='$1'                         
               30         select source_name,destination_name,library_name,device     
                           serial from paths where library_name='$1'                  
               35         select drive_name,drive_serial,element,library_name from    
                           drives where library_name='$1'             




tsm: TSMLIBM>q script LIBR_INFO f=raw
q libr $1
q libr $1 f=d
q path $1 srct=serv destt=libr f=d
q path * srct=serv destt=dr libr=$1 f=d
select library_name,library_type,library_serial from libraries where library_name ='$1'
select source_name,destination_name,library_name,device serial from paths where library_name='$1'
select drive_name,drive_serial,element,library_name from drives where library_name='$1'