Hello,
I am working with a Tandberg Storage Loader LTO2 with 8 Tapes.
Linux 2.6.13 (Suse 10)
Bacula 1.38.5
The loader had passed all tests with btape and work fine with mtx-changer.
All Jobs are running but if Bacula should change the tape the tape would
only be unmounted and Bacula is waiting until I load a new tape manually with
mtx. If I list the pools the in changer flag is on.
05-Apr 20:47 jano-backup1-dir: Start Backup JobId 8, Job=jano-notes1-diff.2006-04-05_20.00.02
05-Apr 20:45 jano-notes1-fd: DIR and FD clocks differ by -125 seconds, FD automatically adjusting.
05-Apr 20:48 jano-backup1-sd: 3301 Issuing autochanger "loaded drive 0" command.
05-Apr 20:48 jano-backup1-sd: 3302 Autochanger "loaded drive 0", result is Slot 5.
05-Apr 20:48 jano-backup1-sd: 3307 Issuing autochanger "unload slot 5, drive 0" command.
05-Apr 20:49 jano-backup1-sd: Please mount Volume "lto2_0001" on Storage Device "LTO-2_1" (/dev/st0) for Job jano-notes1-diff.2006-04-05_20.00.02
05-Apr 21:49 jano-backup1-sd: Please mount Volume "lto2_0001" on Storage Device "LTO-2_1" (/dev/st0) for Job jano-notes1-diff.2006-04-05_20.00.02
Also the "update slots scan" function doesnt work.
I got the following output at the console.
Below you can see the mtx-changer script and the bacula-sd.conf.
I hope anyone have some idea.
Connecting to Storage daemon LTO-2_1 at jano-backup1:9103 ...
3306 Issuing autochanger "slots" command.
Device "LTO-2_1" has 8 slots.
Connecting to Storage daemon LTO-2_1 at jano-backup1:9103 ...
3301 Issuing autochanger "loaded drive 0" command.
3302 Autochanger "loaded drive 0", result is Slot 1.
3307 Issuing autochanger "unload slot 1, drive 0" command.
3306 Issuing autochanger "list" command.
Connecting to Storage daemon LTO-2_1 at jano-backup1:9103 ...
3301 Issuing autochanger "loaded drive 0" command.
3302 Autochanger "loaded drive 0", result: nothing loaded.
No VolName for Slot=1 InChanger set to zero.
Connecting to Storage daemon LTO-2_1 at jano-backup1:9103 ...
3301 Issuing autochanger "loaded drive 0" command.
3302 Autochanger "loaded drive 0", result: nothing loaded.
No VolName for Slot=2 InChanger set to zero.
Connecting to Storage daemon LTO-2_1 at jano-backup1:9103 ...
3301 Issuing autochanger "loaded drive 0" command.
3302 Autochanger "loaded drive 0", result: nothing loaded.
No VolName for Slot=3 InChanger set to zero.
Connecting to Storage daemon LTO-2_1 at jano-backup1:9103 ...
3301 Issuing autochanger "loaded drive 0" command.
3302 Autochanger "loaded drive 0", result: nothing loaded.
No VolName for Slot=4 InChanger set to zero.
Connecting to Storage daemon LTO-2_1 at jano-backup1:9103 ...
3301 Issuing autochanger "loaded drive 0" command.
3302 Autochanger "loaded drive 0", result: nothing loaded.
No VolName for Slot=5 InChanger set to zero.
Connecting to Storage daemon LTO-2_1 at jano-backup1:9103 ...
3301 Issuing autochanger "loaded drive 0" command.
3302 Autochanger "loaded drive 0", result: nothing loaded.
No VolName for Slot=6 InChanger set to zero.
Connecting to Storage daemon LTO-2_1 at jano-backup1:9103 ...
3301 Issuing autochanger "loaded drive 0" command.
3302 Autochanger "loaded drive 0", result: nothing loaded.
No VolName for Slot=7 InChanger set to zero.
Connecting to Storage daemon LTO-2_1 at jano-backup1:9103 ...
3301 Issuing autochanger "loaded drive 0" command.
3302 Autochanger "loaded drive 0", result: nothing loaded.
No VolName for Slot=8 InChanger set to zero.
bacula-sd.conf
Device {
Name = "LTO-2_1"
Drive Index = 0
Media Type = LTO-2
Archive Device = /dev/st0
Changer Device = /dev/sg0
Changer Command = "/etc/bacula/mtx-changer %c %o %S %a %d"
AutomaticMount = yes; # when device opened, read it
AlwaysOpen = yes;
RandomAccess = no;
RemovableMedia = yes;
AutoChanger = yes
# Maximum Spool Size = 20000000000
# Spool Directory = /var/bacula/working/spool
}
mtx changer script
#!/bin/sh
#
# Bacula interface to mtx autoloader
#
# $Id: mtx-changer.in,v 1.21.2.4 2006/01/07 16:25:29 kerns Exp $
#
# If you set in your Device resource
#
# Changer Command = "path-to-this-script/mtx-changer" %c %o %S %a %d
# you will have the following input to this script:
#
# So Bacula will always call with all the following arguments, even though
# in come cases, not all are used.
#
# mtx-changer "changer-device" "command" "slot" "archive-device" "drive-index"
# $1 $2 $3 $4 $5
#
# for example:
#
# mtx-changer /dev/sg0 load 1 /dev/nst0 0 (on a Linux system)
#
# will request to load the first cartidge into drive 0, where
# the SCSI control channel is /dev/sg0, and the read/write device
# is /dev/nst0.
#
# If you need to an offline, refer to the drive as $4
# e.g. mt -f $4 offline
#
# Many changers need an offline after the unload. Also many
# changers need a sleep 60 after the mtx load.
#
# N.B. If you change the script, take care to return either
# the mtx exit code or a 0. If the script exits with a non-zero
# exit code, Bacula will assume the request failed.
#
MTX=/usr/sbin/mtx
#
# log whats done
#
# to turn on logging, uncomment the following line
#touch /var/bacula/working/mtx.log
debug() {
dbgfile="/var/bacula/working/mtx.log"
if test -e $dbgfile; then
echo "`date +\"%Y%m%d-%H:%M:%S\"` $*" >> $dbgfile
fi
}
#
# Create a temporary file
#
make_temp_file() {
TMPFILE=`mktemp -t mtx.XXXXXXXXXX`
if test x${TMPFILE} = x; then
TMPFILE="/var/bacula/working/mtx.$$"
if test -f ${TMPFILE}; then
echo "Temp file security problem on: ${TMPFILE}"
exit 1
fi
fi
}
#
# The purpose of this function to wait a maximum
# time for the drive. It will
# return as soon as the drive is ready, or after
# waiting a maximum of 300 seconds.
# Note, this is very system dependent, so if you are
# not running on Linux, you will probably need to
# re-write it, or at least change the grep target.
#
wait_for_drive() {
i=0
while [ $i -le 300 ]; do # Wait max 300 seconds
if mt -f $1 status | grep ONLINE >/dev/null 2>&1; then
break
fi
# debug "Device $1 - not ready, retrying..."
sleep 1
i=`expr $i + 1`
done
}
# check parameter count on commandline
#
check_parm_count() {
pCount=$1
pCountNeed=$2
if test $pCount -lt $pCountNeed; then
echo "usage: mtx-changer ctl-device command [slot archive-device drive-index]"
echo " Insufficient number of arguments arguments given."
if test $pCount -lt 2; then
echo " Mimimum usage is first two arguments ..."
else
echo " Command expected $pCountNeed arguments"
fi
exit 1
fi
}
# Check for special cases where only 2 arguments are needed,
# all others are a minimum of 5
#
case $2 in
list)
check_parm_count $# 2
;;
slots)
check_parm_count $# 2
;;
*)
check_parm_count $# 5
;;
esac
# Setup arguments
ctl=$1
cmd="$2"
slot=$3
device=$4
drive=$5
# debug "Parms: $ctl $cmd $slot $device $drive"
case $cmd in
unload)
# debug "Doing mtx -f $ctl unload $slot $drive"
#
# enable the following line if you need to eject the cartridge
# mt -f $device offline
# sleep 10
${MTX} -f $ctl unload $slot $drive
;;
load)
# debug "Doing mtx -f $ctl load $slot $drive"
${MTX} -f $ctl load $slot $drive
rtn=$?
#
# Increase the sleep time if you have a slow device
# or remove the sleep and add the following:
# wait_for_drive $device
sleep 15
exit $rtn
;;
list)
# debug "Doing mtx -f $ctl -- to list volumes"
make_temp_file
# Enable the following if you are using barcodes and need an inventory
# $(MTX) -f $ctl inventory
${MTX} -f $ctl status >${TMPFILE}
rtn=$?
cat ${TMPFILE} | grep " *Storage Element [0-9]*:.*Full" | awk "{print \$3 \$4}" | sed "s/Full *\(:VolumeTag=\)*//"
cat ${TMPFILE} | grep "^Data Transfer Element [0-9]*:Full (Storage Element [0-9]" | awk '{printf "%s:%s\n",$7,$10}'
rm -f ${TMPFILE} 2>&1 >/dev/null
#
# If you have a VXA PacketLoader and the above does not work, try
# turning it off and enabling the following line.
# ${MTX} -f $ctl status | grep " *Storage Element [0-9]*:.*Full" | sed "s/*Storage Element //" | sed "s/Full :VolumeTag=//"
exit $rtn
;;
loaded)
# debug "Doing mtx -f $ctl $drive -- to find what is loaded"
make_temp_file
${MTX} -f $ctl status >${TMPFILE}
rtn=$?
cat ${TMPFILE} | grep "^Data Transfer Element $drive:Full" | awk "{print \$7}"
cat ${TMPFILE} | grep "^Data Transfer Element $drive:Empty" | awk "{print 0}"
rm -f ${TMPFILE} 2>&1 >/dev/null
exit $rtn
;;
slots)
# debug "Doing mtx -f $ctl -- to get count of slots"
${MTX} -f $ctl status | grep " *Storage Changer" | awk "{print \$5}"
;;
esac
Gruß
Frank Stuber
IT Manager
Telefon: +49. 7825. 849-214
Telefax: +49. 7825. 849-48 214
Email: [EMAIL PROTECTED]
janoschka GmbH
Mattweg 1
D-77971 Kippenheim
http://www.janoschka.com
Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist nicht gestattet.
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden.=