Re: Magstar 3570
2001-07-27 09:22:29
I wrote this little script to do exactly what you want. I have to admit that
performance does not increase linearly with the number of streams.
Anyway, this script will run N archives concurrently. It finds all the files in
a subdirectory, and sorts them by size. It then makes N archive scripts and
runs them all together.
Change $MC (management class), and $NUM_STREAMS (this can be number of tapes
drive +1).
miles
#!/usr/bin/ksh
#
# Name: Fast Archive 2
#
# Purpose:
#
# Author: Miles Purdy
#
# Date:
#
# Required Parameters:
# -------------------------------------------------------------------------
#
# Optional Parameters:
# -------------------------------------------------------------------------
#
# Change History:
#
# Date Name Comments
# _________________________________________________________________________
#
# set umask to prevent others from reading tmp files
umask 077
DIRECTORY=$1
RETCODE=0
MC=1day
NUM_STREAMS=7
echo $0 started at $(date).
WORK_DIR=${WORK_DIR:=/tmp}
SCR_DIR=$UNIX_SYSTEM_DIRECTORY/bin
if [[ `hostname` != 'unxr' ]]
then
echo "This scripts should be run from unxr."
exit
fi
COUNT=1
/usr/bin/find $DIRECTORY -fstype jfs -type f -xdev -ls | sort -bnr +6.0 -7.0 \
| sed "s/^.* \//\//" | while read LINE
| sed "s/^.* \//\//" | while read LINE
do
if [[ ! -s /tmp/file_list.$$.$COUNT ]]
then
echo "#!/usr/bin/ksh" > /tmp/file_list.$$.$COUNT
echo "" >> /tmp/file_list.$$.$COUNT
chmod +x /tmp/file_list.$$.$COUNT
fi
echo "$DSM_DIR/dsmc archive -archmc=$MC $LINE" >>/tmp/file_list.$$.$COUNT
let "COUNT = COUNT + 1"
if [[ $COUNT -eq $NUM_STREAMS ]]
then
COUNT=1
fi
done
COUNT=1
while [[ $COUNT -lt $NUM_STREAMS ]]
do
/tmp/file_list.$$.$COUNT 1>/tmp/$$.$COUNT 2>&1 &
let "COUNT = COUNT + 1"
done
wait
COUNT=1
while [[ $COUNT -lt $NUM_STREAMS ]]
do
cat /tmp/$$.$COUNT
let "COUNT = COUNT + 1"
done
echo "==================================================================="
COUNT=1
while [[ $COUNT -lt $NUM_STREAMS ]]
do
echo "Stream $COUNT:"
cat /tmp/$$.$COUNT | grep -i "Total number of bytes transferred"
cat /tmp/$$.$COUNT | grep -i "Elapsed processing time"
cat /tmp/$$.$COUNT | grep -i "Aggregate data transfer rate"
echo "-------------------------------------------------------------------"
let "COUNT = COUNT + 1"
let "COUNT = COUNT + 1"
done
# exit
echo $0 ended at $(date).
exit $RETCODE
-------------------------------------------------------------------------------------------
----------------
Miles Purdy
Miles Purdy
System Manager
Farm Income Programs Directorate
Winnipeg, MB, CA
purdym AT fipd.gc DOT ca
ph: (204) 984-1602 fax: (204) 983-7557
-------------------------------------------------------------------------------------------
----------------
>>> Bill.Wheeler AT LA-Z-BOY DOT COM 26-Jul-01 2:12:29 PM >>>
>>> Bill.Wheeler AT LA-Z-BOY DOT COM 26-Jul-01 2:12:29 PM >>>
Hello *SMers,
Here is a situation that we are trying to look at to hopefully cut
down our archive time. I was wondering if any of you have an idea if it
would be possible.
Currently we are running TSM 4.1.2.0 on an AIX 4.3.3.0
We run a nightly archive of 70 GB that is taking just over 8 hours
uncompressed. In our Magstar 3570 we have two different tape drives. My
question follows: Is it possible to be running two different archives at
the same time to cut down the processing time? If it is possible how would
you go at it? I know I see allot of *SMers talking about backup clients at
the same time, but the information we back up comes off of one RS/6000 AIX
server. Is it possible to be running two sessions off the same machine at
the same time?
Any help would be grateful.
Thanks in Advance,
Bill Wheeler
AIX Administrator
La-Z-Boy Incorporated
bill.wheeler AT la-z-boy DOT com <mailto:bill.wheeler AT la-z-boy DOT com>
|
|
|