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.=

Reply via email to