Bacula-users

Re: [Bacula-users] SD not using more than 1 drive in autochanger

2008-11-03 17:25:50
Subject: Re: [Bacula-users] SD not using more than 1 drive in autochanger
From: "Jeff Falgout" <jtfalgout AT gmail DOT com>
To: bacula-users AT lists.sourceforge DOT net
Date: Mon, 3 Nov 2008 16:23:10 -0600
On Sat, Oct 18, 2008 at 4:29 PM, Jeff Falgout <jtfalgout AT gmail DOT com> 
wrote:
> Greetings -
>
> I believe this is a config error as I've seen other posts related to
> older versions stating this has been fixed, but I can't figure it out.
> . . .
>
> When I try to do something with the autochanger, such as label
> barcodes or run a backup, I can only send it to the first drive
> configured.
>
> Bacula 2.4.3
>
> On SLES 10 SP2
>
> Autochanger is a SpectraLogic T200 with 60 slots and 4 IBM Ultrium4
> LTO4 drives (one drive is down with hardware issues) over iSCSI:
>
>
> # lsscsi
> [1:0:0:0]    cd/dvd  HL-DT-ST DVDRAM GSA-T20N  WY02  /dev/sr0
> [2:0:0:0]    disk    ServeRA  Drive 1          V1.0  /dev/sda
> [2:1:0:0]    disk    IBM-ESXS ST9146802SS      B526  -
> [2:1:1:0]    disk    IBM-ESXS ST9146802SS      B526  -
> [2:1:2:0]    disk    IBM-ESXS MBB2147RC        SB01  -
> [2:1:3:0]    disk    IBM-ESXS MBB2147RC        SB01  -
> [2:1:4:0]    disk    IBM-ESXS MBB2147RC        SB01  -
> [2:1:5:0]    disk    IBM-ESXS MBB2147RC        SB01  -
> [2:1:6:0]    disk    IBM-ESXS ST9146802SS      B526  -
> [2:1:7:0]    disk    IBM-ESXS ST9146802SS      B526  -
> [2:3:0:0]    enclosu IBM-ESXS VSC7160          1.07  -
> [9:0:0:0]    mediumx SPECTRA  PYTHON           2000  -
> [9:0:0:1]    tape    IBM      ULTRIUM-TD4      79M1  /dev/st0
> [10:0:0:0]   tape    IBM      ULTRIUM-TD4      79M1  /dev/st1
> [10:0:0:1]   tape    IBM      ULTRIUM-TD4      79M1  /dev/st2
>
>
> # hwinfo --tape
> 46: SCSI 900.1: 10601 Tape
>  [Created at scsi.1363]
>  Unique ID: Er1e.p2Xign9C+82
>  SysFS ID: /class/scsi_tape/st0
>  SysFS BusID: 9:0:0:1
>  SysFS Device Link: /devices/platform/host9/session3/target9:0:0/9:0:0:1
>  Hardware Class: unknown
>  Model: "IBM ULTRIUM-TD4"
>  Vendor: "IBM"
>  Device: "ULTRIUM-TD4"
>  Revision: "79M1"
>  Driver: "st"
>  Device File: /dev/st0 (/dev/sg12)
>  Device Files: /dev/st0, /dev/tape/by-id/scsi-1IBM_ULTRIUM-TD4_101100319A-nst
>  Device Number: char 9:0 (char 21:12)
>  Config Status: cfg=new, avail=yes, need=no, active=unknown
>
> 47: SCSI a00.0: 10601 Tape
>  [Created at scsi.1363]
>  Unique ID: h0Ii.p2Xign9C+82
>  SysFS ID: /class/scsi_tape/st1
>  SysFS BusID: 10:0:0:0
>  SysFS Device Link: /devices/platform/host10/session4/target10:0:0/10:0:0:0
>  Hardware Class: unknown
>  Model: "IBM ULTRIUM-TD4"
>  Vendor: "IBM"
>  Device: "ULTRIUM-TD4"
>  Revision: "79M1"
>  Driver: "st"
>  Device File: /dev/st1 (/dev/sg13)
>  Device Files: /dev/st1, /dev/tape/by-id/scsi-1IBM_ULTRIUM-TD4_102100319A-nst
>  Device Number: char 9:1 (char 21:13)
>  Config Status: cfg=new, avail=yes, need=no, active=unknown
>
> 48: SCSI a00.1: 10601 Tape
>  [Created at scsi.1363]
>  Unique ID: 8CYm.p2Xign9C+82
>  SysFS ID: /class/scsi_tape/st2
>  SysFS BusID: 10:0:0:1
>  SysFS Device Link: /devices/platform/host10/session4/target10:0:0/10:0:0:1
>  Hardware Class: unknown
>  Model: "IBM ULTRIUM-TD4"
>  Vendor: "IBM"
>  Device: "ULTRIUM-TD4"
>  Revision: "79M1"
>  Driver: "st"
>  Device File: /dev/st2 (/dev/sg14)
>  Device Files: /dev/st2, /dev/tape/by-id/scsi-1IBM_ULTRIUM-TD4_102200319A-nst
>  Device Number: char 9:2 (char 21:14)
>  Config Status: cfg=new, avail=yes, need=no, active=unknown
>
> # hwlist --scsi
> (snipped for autochanger only)
> 50: SCSI 900.0: 10680 Storage Device
>  [Created at scsi.1502]
>  Unique ID: AsDq.xWiib17Szt4
>  SysFS ID: /class/scsi_generic/sg11
>  SysFS BusID: 9:0:0:0
>  Hardware Class: unknown
>  Model: "SPECTRA PYTHON"
>  Vendor: "SPECTRA"
>  Device: "PYTHON"
>  Revision: "2000"
>  Device File: /dev/sg11
>  Device Files: /dev/sg11, /dev/tape/by-id/scsi-1SPECTRA_PYTHON_901F00319A
>  Device Number: char 21:11
>  Config Status: cfg=new, avail=yes, need=no, active=unknown
>
>
>
>
> bacula-sd.conf snippet:
>
> Autochanger {
>  Name = T200-1
>  Device = T200-1-Drive-0
> #  Device = T200-1-Drive-1
>  Device = T200-1-Drive-2
>  Device = T200-1-Drive-3
>  Changer Command = "/etc/bacula/mtx-changer %c %o %S %a %d"
>  Changer Device = /dev/sg11
> }
>
>
>
> Device {
>  Name = T200-1-Drive-0                      #
>  Drive Index = 0
>  Media Type = LTO-4
>  Archive Device = /dev/nst0
>  #Minimum Block Size = 32768
>  Maximum Block Size = 4096
>  #Maximum Block Size = 32768
>  AutomaticMount = yes               # when device opened, read it
>  AlwaysOpen = yes
>  RemovableMedia = yes
>  RandomAccess = no
>  AutoChanger = yes
>  Autoselect = yes
>  Maximum Changer Wait = 300
>  Alert Command = "sh -c 'smartctl -H -l error %c'"
> }
>
> #Device {
> #  Name = T200-1-Drive-1                      #
> #  Drive Index = 1
> #  Media Type = LTO-4
> #  Archive Device = /dev/nst2
> #  #Minimum Block Size = 32768
> #  Maximum Block Size = 4096
> #  #Maximum Block Size = 32768
> #  AutomaticMount = yes               # when device opened, read it
> #  AlwaysOpen = yes
> #  RemovableMedia = yes
> #  RandomAccess = no
> #  AutoChanger = yes
> #  Autoselect = yes
> #  Maximum Changer Wait = 300
> ##  If you have smartctl, enable this, it has more info than tapeinfo
> #  Alert Command = "sh -c 'smartctl -H -l error %c'"
> #}
>
> Device {
>  Name = T200-1-Drive-2                      #
>  Drive Index = 2
>  Media Type = LTO-4
>  Archive Device = /dev/nst1
>  #Minimum Block Size = 32768
>  Maximum Block Size = 4096
>  #Maximum Block Size = 32768
>  AutomaticMount = yes               # when device opened, read it
>  AlwaysOpen = yes
>  RemovableMedia = yes
>  RandomAccess = no
>  AutoChanger = yes
>  Autoselect = yes
>  Maximum Changer Wait = 300
> #  If you have smartctl, enable this, it has more info than tapeinfo
>  Alert Command = "sh -c 'smartctl -H -l error %c'"
> }
>
> Device {
>  Name = T200-1-Drive-3                      #
>  Drive Index = 3
>  Media Type = LTO-4
>  Archive Device = /dev/nst2
>  #Minimum Block Size = 32768
>  Maximum Block Size = 4096
>  #Maximum Block Size = 32768
>  AutomaticMount = yes               # when device opened, read it
>  AlwaysOpen = yes
>  RemovableMedia = yes
>  RandomAccess = no
>  AutoChanger = yes
>  Autoselect = yes
>  #Maximum Changer Wait = 300
> #  If you have smartctl, enable this, it has more info than tapeinfo
>  Alert Command = "sh -c 'smartctl -H -l error %c'"
> }
>
>
> Snippet from bacula-dir.conf
>
> Storage {
>  Name = T200-1
> # Do not use "localhost" here
>  Address = cbi-lip6.site.com               # N.B. Use a fully
> qualified name here
>  SDPort = 9103
>  Password = "asdfasdfasdfsdfasdfasdfdsf"
>  Device = T200-1-Drive-0
>  #Device = T200-1-Drive-1
>  Device = T200-1-Drive-2
>  Device = T200-1-Drive-3
>  Media Type = LTO-4
>  Autochanger = yes
> }
>
>
> Here's what happens when I label barcodes:
>
> *label barcodes slots=2-5
> The defined Storage resources are:
>     1: File
>     2: T200-1
> Select Storage resource (1-2): 2
> Enter autochanger drive[0]: 1
> Connecting to Storage daemon T200-1 at cbi-lip6.site.com:9103 ...
> 3306 Issuing autochanger "slots" command.
> Device "T200-1-Drive-0" has 60 slots.
> Connecting to Storage daemon T200-1 at cbi-lip6.site.com:9103 ...
> 3306 Issuing autochanger "list" command.
> The following Volumes will be labeled:
> Slot  Volume
> ==============
>   2  041771L4
>   3  041770L4
>   4  041773L4
>   5  041774L4
> Do you want to label these Volumes? (yes|no):
>
>
> I entered Drive 1 for the autochanger drive and it picks Drive 0. No
> matter what drive I select, same thing.
>
>
> Same thing for mount:
>
> *mount
> The defined Storage resources are:
>     1: File
>     2: T200-1
> Select Storage resource (1-2): 2
> Enter autochanger drive[0]: 3
> Enter autochanger slot: 6
> 3307 Issuing autochanger "unload slot 5, drive 0" command.
> 3304 Issuing autochanger "load slot 6, drive 0" command.
> 3305 Autochanger "load slot 6, drive 0", status is OK.
> 3001 Mounted Volume: 041775L4
> 3001 Device "T200-1-Drive-0" (/dev/nst0) is already mounted with
> Volume "041775L4"
>
>
> *status
> <snipped>
>
> Device status:
> Autochanger "T200-1" with devices:
>   "T200-1-Drive-0" (/dev/nst0)
>   "T200-1-Drive-2" (/dev/nst1)
>   "T200-1-Drive-3" (/dev/nst2)
> Device "T200-1-Drive-0" (/dev/nst0) is mounted with:
>    Volume:      041775L4
>    Pool:        Default
>    Media type:  LTO-4
>    Slot 6 is loaded in drive 0.
>    Total Bytes Read=1,024 Blocks Read=1 Bytes/block=1,024
>    Positioned at File=0 Block=0
> Device "T200-1-Drive-2" (/dev/nst1) is not open.
>    Drive 2 status unknown.
> Device "T200-1-Drive-3" (/dev/nst2) is not open.
>    Drive 3 status unknown.
> ====
>
> </snipped>
>
>
> Now, after I unload the drive:
>
> *status
> <snipped>
>
> Device status:
> Autochanger "T200-1" with devices:
>   "T200-1-Drive-0" (/dev/nst0)
>   "T200-1-Drive-2" (/dev/nst1)
>   "T200-1-Drive-3" (/dev/nst2)
> Device "T200-1-Drive-0" (/dev/nst0) is not open.
>    Device is BLOCKED. User unmounted.
>    Drive 0 status unknown.
> Device "T200-1-Drive-2" (/dev/nst1) is not open.
>    Drive 2 status unknown.
> Device "T200-1-Drive-3" (/dev/nst2) is not open.
>    Drive 3 status unknown.
> ====
>
> </snipped>
>
> I believe the "status unknown" for each of the remaining drives is a
> clue. Possible bug?
>


I've been working on this for a bit now and have made no progress. I'm
thinking this may be a bug. I loaded a drive (Not drive 0) through the
library interface and bacula shows the drive mounted (I'm stuck
waiting for a valid tape):

====

Device status:
Autochanger "T200-1" with devices:
   "Drive 1" (/dev/nst0)
   "Drive 2" (/dev/nst1)
Device "Drive 1" (/dev/nst0) is not open.
    Device is BLOCKED waiting to create a volume for:
       Pool:        Default
       Media type:  LTO-4
    Slot 5 is loaded in drive 0.
Device "Drive 2" (/dev/nst1) is mounted with:
    Volume:      041772L4
    Pool:        *unknown*
    Media type:  LTO-4
    Slot 2 is loaded in drive 1.
    Total Bytes Read=0 Blocks Read=0 Bytes/block=0
    Positioned at File=0 Block=0
====

Used Volume status:
041772L4 on device "Drive 2" (/dev/nst1)
    Reader=0 writers=0 devres=0 volinuse=0
====

====

But a mount command ignores the input for which drive:

====
*mount
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
The defined Storage resources are:
     1: File
     2: T200-1
Select Storage resource (1-2): 2
Enter autochanger drive[0]: 1
Enter autochanger slot: 10
3001 OK mount. Device="Drive 1" (/dev/nst0)
<----------------------------  Drive 1 is index 0 - not what I
entered.

In fact, if I enter a totally invalid drive name, it still goes to drive 0:

*mount
The defined Storage resources are:
     1: File
     2: T200-1
Select Storage resource (1-2): 2
Enter autochanger drive[0]: fred
Enter autochanger slot: 10
3001 OK mount. Device="Drive 1" (/dev/nst0)  <------------------ Still
drive index 0.

Has anyone else seen this?

I've even reconfigured the storage daemon to only use 2 drive and
eliminate a possible hardware incompatibility.

Jeff

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Bacula-users mailing list
Bacula-users AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users

<Prev in Thread] Current Thread [Next in Thread>