ADSM-L

Re: Splitting a 3494 Across two (or more) ADSM servers...

1998-09-11 16:20:34
Subject: Re: Splitting a 3494 Across two (or more) ADSM servers...
From: Dwight Cook <decook AT AMOCO DOT COM>
Date: Fri, 11 Sep 1998 15:20:34 -0500
     Actually we don't have any of our 3494's with only a single host
     attached.  4 - 3494's have 2 different/unique AIX ADSM servers
     attached and the other 2 - 3494's have 3 different/unique AIX ADSM
     servers attached.

     Currently each adsm environment has its own dedicated tape drives but
     I hope to (before long) start playing around with drive sharing.

     Just make sure, when you share an atl,
     DEFINE DIFFERENT SCRATCH & PRIVATE categories to the differnet servers
     DO-NOT bulk format tapes with the search=yes (this is mainly CYA)
     Write a little shell script to... Oh GOD I am WAY, WAY too nice...
     Well hope you didn't expect comments...
     Just fill in the blanks to meet your environment specifics...
     Make a temporary  directory in which to run this script, what it will
     do is gather all tape information from both servers listed and create
     the following files/reports/information

     dsmsrv3/home/dsmadmin/temp > ls
     adsmlibvol     alladsmvol     librinv        dsmsrv4.qvol
     adsmtpevol     availtpe       dsmsrv3.qvol
     dsmsrv3/home/dsmadmin/temp >

     You only get one guess as to what is in each file!

     NOTE: I have a generic adsm admin id across all my adsm servers that
     has zero authority, I make the id & password available to all users so
     they have a way to get on the servers and perform queries... I use
     that same id in the script below...

#!/bin/ksh
ADSMSERV1=___________           (first adsm server name used in -serv=)
ADSMSERV2=___________           (second adsm server name used in -serv=)
LIBRARY1=___________            (first library name as found by q libr)
LIBRARY2=___________            (second library name as found by q libr)
DEVC1=___________               (first 3590 tape device class)
DEVC2=___________               (second 3590 tape device class)
ADSMID1=___________             (an adsm admin id on 1st server)
ADSMID2=___________             (an adsm admin id on 2nd server)
ADSMPASS1=___________           (the password for 1st admin id)
ADSMPASS2=___________           (the password for 2nd admin id)
LMCP=$(lsdev -Cc tape | grep ^lmcp | cut -c1-5)
mtlib -l/dev/$LMCP -qI | cut -c1-6 > librinv
dsmadmc -serv=$ADSMSERV1 -id=$ADSMID1 -pass=$ADSMPASS1 q libvol </dev/null |
grep ^$LIBRARY1 | cut -c18-23 > templibvol
dsmadmc -serv=$ADSMSERV1 -id=$ADSMID1 -pass=$ADSMPASS1 q vol devc=$DEVC1
</dev/null | egrep '(Filling|Full)' | cut -c1-6 > temptpevol
dsmadmc -serv=$ADSMSERV2 -id=$ADSMID2 -pass=$ADSMPASS2 q libvol </dev/null |
grep ^$LIBRARY2 | cut -c18-23 >> templibvol
dsmadmc -serv=$ADSMSERV2 -id=$ADSMID2 -pass=$ADSMPASS2 q vol devc=$DEVC2
</dev/null | egrep '(Filling|Full)' | cut -c1-6 >> temptpevol
sort -u templibvol > adsmlibvol
sort -u temptpevol > adsmtpevol
rm templibvol
rm temptpevol
echo $(date) > $ADSMSERV1.qvol
echo $(date) > $ADSMSERV2.qvol
echo TAPEVOL THAT IS NOT A LIBVOL >> $ADSMSERV1.qvol
echo TAPEVOL THAT IS NOT A LIBVOL >> $ADSMSERV2.qvol
for VOLSER in $(comm -23 adsmtpevol adsmlibvol) ; do
   dsmadmc -serv=$ADSMSERV1 -id=$ADSMID1 -pass=$ADSMPASS1  q vol $VOLSER f=d
</dev/null | egrep -v '(^ADSTAR|^Command|^\(C|^ANS510)' >> $ADSMSERV1.qvol
   dsmadmc -serv=$ADSMSERV2 -id=$ADSMID2 -pass=$ADSMPASS2  q vol $VOLSER f=d
</dev/null | egrep -v '(^ADSTAR|^Command|^\(C|^ANS510)' >> $ADSMSERV2.qvol
done
echo TAPEVOL THAT IS NOT IN 3494 INVENTORY >> $ADSMSERV1.qvol
echo TAPEVOL THAT IS NOT IN 3494 INVENTORY >> $ADSMSERV2.qvol
for VOLSER in $(comm -23 adsmtpevol librinv) ; do
   dsmadmc -serv=$ADSMSERV1 -id=$ADSMID1 -pass=$ADSMPASS1  q vol $VOLSER f=d
</dev/null | egrep -v '(^ADSTAR|^Command|^\(C|^ANS510)' >> $ADSMSERV1.qvol
   dsmadmc -serv=$ADSMSERV2 -id=$ADSMID2 -pass=$ADSMPASS2  q vol $VOLSER f=d
</dev/null | egrep -v '(^ADSTAR|^Command|^\(C|^ANS510)' >> $ADSMSERV2.qvol
done
echo LIBVOL THAT IS NOT IN 3494 INVENTORY >> $ADSMSERV1.qvol
echo LIBVOL THAT IS NOT IN 3494 INVENTORY >> $ADSMSERV2.qvol
for VOLSER in $(comm -23 adsmlibvol librinv) ; do
   dsmadmc -serv=$ADSMSERV1 -id=$ADSMID1 -pass=$ADSMPASS1  q vol $VOLSER f=d
</dev/null | egrep -v '(^ADSTAR|^Command|^\(C|^ANS510)' >> $ADSMSERV1.qvol
   dsmadmc -serv=$ADSMSERV2 -id=$ADSMID2 -pass=$ADSMPASS2  q vol $VOLSER f=d
</dev/null | egrep -v '(^ADSTAR|^Command|^\(C|^ANS510)' >> $ADSMSERV2.qvol
done
sort -u adsmlibvol adsmtpevol > alladsmvol
echo $(date) > availtpe
for VOLSER in $(comm -23 librinv alladsmvol) ; do
   echo $VOLSER >> availtpe
done
exit

hope this help a few folks out there...
and I also hope you can figure out where lines wrap and where they don't ;-)

later,
      Dwight

______________________________ Reply Separator _________________________________
Subject: Splitting a 3494 Across two (or more) ADSM servers...
Author:  heimdall (heimdall AT MAIL DOT ORG) at unix,mime
Date:    9/11/98 9:51 AM


        I was curious to know if anyone had any experience with (and maybe even
written the proceedures for) splitting a 3494 across two (or more) ADSM
servers.  Current we are using an SP/2 High node (R40 4 way) for our ADSM
server and have outgrown it by a fair margin.  To resolve this, we are
looking at implementing a second High node that we have in the frame as an
additional ADSM server so that we can load balance our current load and
allow for further expansion at a later date.  We have a 4 frame 3494 with
an L-12, two D-14s, and a D-10.  We will soon be adding another D-14.

I know that we're going to have to change how we checkin recovered DR
volumes (we are using DRM).  Currently we use the search option.  Are there
any other gotcha or recommendations that you can make regarding a split
3494?  Any help would be greatly appreciated.


--------------------
Daniel Whicker
Daniel Whicker
Technical Analyst -- Sprint Paranet
dewhicke AT sprintparanet DOT com