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