> -----Original Message-----
> From: Christian Sabelmann [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, January 29, 2008 8:59 AM
> To: Bob Duman; bacula-users@lists.sourceforge.net
> Subject: Re: [Bacula-users] Multiple TapeDrives but No Autochanger
>
> Hi,
> thanks for the help, I tried the modified script, and now can switch
> between slot1 and slot2 to select tapedrive1 or tapedrive2.
>
> But this has a new disadvantage.  With this configuration I am not able
> to use the two drives simultaneously to run parallel Jobs for example.
> My Idea of an autochanger was such, that the user would not have to
> tell
> Bacula which drive it has to use for every Job, but instead a single
> drive for every Job which in fact is some king of autochanger or
> virtual
> autochanger that manage the tapedrives automatically.
>
> This autochanger has to able to use 2 drives at the same time. Am I
> using a wrong concept about an Autochanger, or does it really use only
> a
> single drive at the same time?
>
> ...
> A better example of what I was trying to do with Bacula:
>
> 1. Bacula is aware that it has two tapedrives wich can be used at the
> same time.
> 2. Every Job uses the same Device definition (virtual changer or
> something like it)
> 3. If I start for example 5 Jobs at the same time, then Bacula starts
> with the first two Jobs using for each one different drives
>   at the same time.  As soon as one Job is done, then the next Job can
> start on the drive which is now free, and so on.
> 4. For every Job it does not matter which Drive or which Volume is
> using, The volume will anyway be found in the catalog for later
> Restore.  For a Job is only the Pool important.
>
> Is this possible with the Virtual Autochanger concept?? is there
> another
> way to do it? or changing something in the scripts?
>
> Your configuration said something about 2 Slots and an Autochanger with
> 1 Drive,  I think I would need an Autochanger with two drives.
>
>
>
> Bob Duman wrote:
> >> -----Original Message-----
> >> From: [EMAIL PROTECTED] [mailto:bacula-
> users-
> >> [EMAIL PROTECTED] On Behalf Of Arno Lehmann
> >> Sent: Saturday, January 26, 2008 4:13 PM
> >> To: bacula-users@lists.sourceforge.net
> >> Subject: Re: [Bacula-users] Multiple TapeDrives but No Autochanger
> >>
> >> Hi,
> >>
> >> 25.01.2008 15:05, Christian Sabelmann wrote:
> >>
> >>> Hello, I try to get Bacula to work with 2 Tapedrives concurrently.
> >>> The goal is to use a pseudo changer or vitual autochanger, because
> a
> >>>
> >> I
> >>
> >>> want every Job to use this device and also the same Pool.
> >>> This pseudo changer should be capable of choosing one free drive to
> >>> write, and if a volume is requested by bacula, then
> >>> it should not be important if the volume is inserted in the first
> or
> >>>
> >> the
> >>
> >>> second tape drive, unless the drive is already writing for another
> >>>
> >> Job.
> >>
> >>> I been looking old mails and found that there are other people
> having
> >>> the same problem. There is a script written by "Mario Wolff
> >>> " which can be found in the mail archive.  28/JAN/2005.
> >>>
> >> Good. I was about to point you to it :-)
> >>
> >>
> >>> I tried this out but it did not work because the pseudo changer
> using
> >>> /dev/null as Changer is not recognized by Bacula
> >>> (VER. 2.2.6)
> >>>
> >>> Have anyone tried out some script like this to manage this problem?
> >>>
> >> did
> >>
> >>> it work? or do you have some Ideas how to make it work?
> >>>
> >> Disclaimer: I have never personally used that approach...
> >>
> >> But I'm pretty sure that with some changes in Bacula since 2005, the
> >> script would need some work done. Mainly because Baculas way to
> select
> >> drives has been refined a lot, though this shouldn't matter in a
> >> situation where there exists only one device known to it.
> >>
> >> Regarding your current problem, I'd try using any /dev/sgX (linux
> >> terminology) device as the cahnger device in the configuration
> (though
> >> I don't see why /dev/null wouldn't work). You're not actually using
> >> this device, so no harm will be done.
> >>
> >> Currently, as I hevent't looked at Marios script in ages, I would
> >> suggest you read it carefully to understand how it's doing its work,
> >> and where things might fail. As stated above, I would expect some
> >> modifications to be required.
> >>
> >> Hope this helps,
> >>
> >> Arno
> >>
> >>
> >>>
> >> --
> >> Arno Lehmann
> >> IT-Service Lehmann
> >> www.its-lehmann.de
> >>
> >> --------------------------------------------------------------------
> ---
> >> --
> >> This SF.net email is sponsored by: Microsoft
> >> Defy all challenges. Microsoft(R) Visual Studio 2008.
> >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> >> _______________________________________________
> >> Bacula-users mailing list
> >> Bacula-users@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/bacula-users
> >>
> >
> > I was looking for a solution to this problem about 6 months ago and
> was able to find a successful solution using the Mario Wolff script
> with some modifications.  The original script by Mario is included in
> the source in the file examples/autochangers/multiple-drive-
> changer.txt.
> >
> > Mario's script needed some modification to work properly for me (I
> assume it is differences between Bacula 1.x and Bacula 2.x).  These
> modifications allow Bacula to think it is dealing with a 2 slot
> autochanger with 1 drive which allows my backup jobs to span multiple
> tapes without having an actual autochanger.  The "slots" are actually
> the tape drives and the script uses a soft link called /dev/tape to
> point at the physical drive that it wants to use.  In my setup, I am
> keeping the "slot inventory" in files inside /etc/bacula/tapelabel/
> called SLOT01 and SLOT02.
> >
> > Below are my Bacula conf files and a copy of my modified script (most
> of the script is written by Mario Wolff, just some minor changes mainly
> with the exit codes).  Let me know if you have any questions.  I have
> been using this successfully for about 4 months and it works great.
> >
> > Bacula-sd.conf:
> > Device {
> >   Name = Multitape-drive
> >   Media Type = LTO2
> >   Archive Device = /dev/tape
> >   AutomaticMount = yes;
> >   AlwaysOpen = yes;
> >   RemovableMedia = yes;
> >   RandomAccess = no;
> >   Autochanger = yes
> > }
> >
> > Autochanger {
> >   Name = Multitape-changer
> >   Device = Multitape-drive
> >   Changer Command = "/etc/bacula/scripts/multitape-changer %c %o %S
> %a %d"
> >   Changer Device = /dev/null
> > }
> >
> > Bacula-dir.conf:
> > Storage {
> >   Name = LTO2-1
> >   Address = backup01                # N.B. Use a fully qualified name
> here
> >   SDPort = 9103
> >   Password = "*"
> >   Device = Multitape-changer
> >   Autochanger = yes
> >   Media Type = LTO2
> > }
> >
> > Script multitape-changer:
> > #!/bin/bash
> > #
> > # Bacula interface to use multiple drives as one tape-changer
> > # Arguments are copied from the mtx-script! Simply exchange
> > # the scriptname from demo-config
> > #
> > #  If you set in your Device resource
> > #
> > #  Changer Command = "path-to-this-script/multitape-changer %c %o %S
> %a %d"
> > #    you will have the following input to this script:
> > #
> > #  multitape-changer "changer-device" "command" "slot" "archive-
> device" "drive-index"
> > #                  $1              $2       $3        $4
> $5
> > #
> > #  for example:
> > #
> > #  multitape-changer /dev/sg0 load 1 /dev/nst0 0 (on a Linux system)
> > #
> > # Setup arguments
> > cmd="$2"
> > slot=$3
> > DEVICE=${4:-/dev/tape}
> >
> > LABELDIR=/etc/bacula/tapelabel # where to find labelfiles
> > NULLDEVICE=/dev/null           # if unmount link to this
> > SLOT01=/dev/nst0               # first slot
> > SLOT02=/dev/nst1               # second slot
> >                                # simply append more
> >
> > #get device for a given slotnumber
> > getdevice(){
> >   myslot=${1:-1}
> >   if [ ${#myslot} -gt 2 ];then exit 1;fi
> >   if [ ${#myslot} -eq 2 ];then
> >     eval echo \$SLOT$myslot
> >     return
> >   else
> >     eval echo \$SLOT0$myslot
> >     return
> >   fi
> > }
> >
> > #get name of labelfile for a given slot
> > getname(){
> >   myslot=${1:-1}
> >   if [ ${#myslot} -gt 2 ];then exit 2;fi
> >   if [ ${#myslot} -eq 2 ];then
> >     echo SLOT$myslot
> >     return
> >   else
> >     echo SLOT0$myslot
> >     return
> >   fi
> > }
> >
> > #how many tapes/slots to manage
> > getslots(){
> >   count=1
> >   while [ "$( getdevice $count )" ];do
> >     count=$[ $count + 1 ]
> >   done
> >   echo $[ $count - 1 ]
> >   return
> > }
> >
> > #get slot for a given device-file
> > getslot(){
> >   device=${1:-$NULLDEVICE}
> >   if [ "$device" = "$NULLDEVICE" ];then
> >     echo -en "0\n"
> >     return
> >   else
> >     count=1
> >     slotdev=$( getdevice $count )
> >     while [ "$slotdev" ]; do
> >       if [ "$slotdev" = "$device" ];then
> >         echo -en "$count\n"
> >         return
> >       fi
> >       count=$[ $count + 1 ]
> >       slotdev=$( getdevice $count )
> >     done
> > #    exit 3
> >   fi
> > }
> >
> > if test $# -lt 2 ; then
> >   echo "usage: multitape-changer ctl-device command slot archive-
> device drive"
> >   echo "  Insufficient number of arguments arguments given."
> >   echo "  Mimimum usage is first two arguments ..."
> >   exit 4
> > fi
> >
> > #
> > # Check for special cases where only 2 arguments are needed,
> > #  all others are a minimum of 3
> > case $cmd in
> >    loaded)
> >      ;;
> >    unload)
> >      ;;
> >    list)
> >      ;;
> >    slots)
> >      ;;
> >    *)
> >      if test $# -lt 3; then
> >         echo "usage: multitape-changer ctl-device command slot
> archive-device drive"
> >         echo "  Insufficient number of arguments arguments given."
> >         echo "  Mimimum usage is first three arguments ..."
> >         exit 5
> >      fi
> >      ;;
> > esac
> >
> >
> > case $cmd in
> >    unload)
> >       if [ -e $DEVICE ];then
> >         rm $DEVICE && ln -s $NULLDEVICE $DEVICE || exit 0
> >       else
> >         ln -s $NULLDEVICE $DEVICE || exit 0
> >       fi
> >       ;;
> >
> >    load)
> >       CURDEV=$( getdevice $slot )
> >       if [ -e $DEVICE ];then
> >         rm $DEVICE && ln -s $CURDEV $DEVICE || exit 0
> >       else
> >         ln -s $CURDEV $DEVICE || exit 0
> >       fi
> >       ;;
> >
> >    list)
> >       slots=$( getslots )
> >       for slot in $( seq 1 $slots );do
> >         labelfile=$LABELDIR/$( getname $slot )
> >         if [ -f "$labelfile" ];then
> >           echo "$slot:$( head -n 1 $labelfile)"
> >         else
> >           echo "$slot:"
> >         fi
> >       done
> >       exit 0
> >       ;;
> >
> >    loaded)
> >       if [ -e $DEVICE ];then
> >         line=$( ls -la $DEVICE )
> >       fi
> >       line=${line:-$NULLDEVICE}
> >       getslot ${line##* }
> >       sleep 1
> >       exit 0
> >       ;;
> >
> >    slots)
> >       getslots
> >       exit 0
> >       ;;
> > esac
> >
> > Bob Duman
> > Senior Systems Engineer
> > Cleantech Group LLC
> > http://www.cleantech.com
> >
> >
> >
> > ---------------------------------------------------------------------
> ----
> > This SF.net email is sponsored by: Microsoft
> > Defy all challenges. Microsoft(R) Visual Studio 2008.
> > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> > _______________________________________________
> > Bacula-users mailing list
> > Bacula-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/bacula-users
> >
>
>
> --
> Christian Sabelmann
> Hardwareentwickler
> Tel.: 040/398053-20
> Fax: 040/398053-29
> e-Mail: [EMAIL PROTECTED]
>
> portrix.net GmbH
> Stresemannstr. 375
> 22761 Hamburg
> Germany
> HRB 79850 (Amtsgericht Hamburg)
> Geschäftsführer: Knud Alex Müller, Henning Voss, Niclas Schroeder
>
> http://www.portrix.net
>
>

This solution does only allow one drive at a time to be used.  It turns 
multiple individual drives into a virtual autochanger with what would appear to 
be one drive.  I would think this could be modified to allow access to all 
drives, but I have not attempted that.

Thanks,
Bob Duman
Senior Systems Engineer
Cleantech Group LLC
2250 Genoa Business Park Dr
Suite 130
Brighton, MI 48114
(810) 224-4310 x7310
http://www.cleantech.com


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users

Reply via email to