|
Oh oh! My configuration was wrong. I was using the wrong devices. My configuration
(correct as show above) was incorrctly using /dev/pass1, instead of the real device
/dev/pass4. This can be seen here:
$ sudo camcontrol devlist
Password:
<QUANTUM DLT7000 1E48> at scbus0 target 5 lun 0 (sa0,pass0)
<DEC TL800 (C) DEC 0326> at scbus1 target 0 lun 0 (pass4,ch0)
<DEC TZ89 (C) DEC 1837> at scbus1 target 5 lun 0 (pass3,sa1)
<HL-DT-ST DVDRAM GSA-H10A JL02> at scbus2 target 0 lun 0 (cd0,pass1)
<USB 2.0 Storage Device 0100> at scbus5 target 0 lun 0 (da0,pass2)
ch0 is the line in question.
After correcting the entry in bacula-sd.conf and restarting bacula-sd, I tried again.
But, you should know, that this problem will come back to haunt me. I do know
that if the external tape drive is conntected at boot time, the tape changer
is /dev/pass1. If it connected after boot, it gets /dev/pass4. I want to
fix that. They need to be specific devices for this to work.
$ sudo /usr/local/etc/rc.d/bacula-sd restart
Stopping bacula_sd.
Waiting for PIDS: 46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621,
46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621,
46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621,
46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621,
46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621,
46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621, 46621.
Starting bacula_sd.
All this waiting is for the tape to rewind and unmount. After making the change, I tried again:
*label barcodes storage="DigitalTapeLibrary"
Connecting to Storage daemon DigitalTapeLibrary at bacula.unixathome.org:9103 ...
3306 Issuing autochanger "slots" command.
Device "DEC TL800" has 0 slots.
No slots in changer to scan.
Still no good. OK, it must be something else. I rechecked the configuration and found it
to be correct. The permissions on mtx-changer were correct:
$ ls -l /usr/local/sbin/mtx-changer
-rwxr-xr-- 1 root operator 5221 Oct 30 00:52 /usr/local/sbin/mtx-changer
Is Bacula in the operator group?
$ id bacula
uid=910(bacula) gid=910(bacula) groups=910(bacula),5(operator)
Yes, so Bacula can run mtx-changer. OK, what about the tape changer?
$ ls -l /dev/pass4
crw------- 1 root operator 0, 171 Jan 17 15:19 /dev/pass4
Hah! There's the issue. No operator permissions on that device. On FreeBSD, you can
set these permissions via configuration. I added the following line to /etc/devfs.conf:
perm pass4 0660
Then I restarted devfs, and rechecked the permissions:
$ /etc/rc.d/devfs restart
$ ls -l /dev/pass4
crw-rw---- 1 root operator 0, 171 Jan 17 15:19 /dev/pass4
Ahh good! Progress. Now, let us try the command correctly, using su to run the command
as the bacula user:
# su -m bacula -c '/usr/local/sbin/mtx-changer /dev/pass4 slots'
touch: /var/db/bacula/mtx.log: Permission denied
/usr/local/sbin/mtx-changer: cannot create /var/db/bacula/mtx.log: Permission de nied
/usr/local/sbin/mtx-changer: cannot create /var/db/bacula/mtx.log: Permission de nied
10
# ls -l /var/db/bacula/mtx.log
-rw-r--r-- 1 root bacula 2480 Jan 17 17:53 /var/db/bacula/mtx.log
Now we see the correct number of slots, and another permissions issue comes to light.
This one is easily fixed with:
# chmod g+w /var/db/bacula/mtx.log
# ls -l /var/db/bacula/mtx.log
-rw-rw-r-- 1 root bacula 2480 Jan 17 17:53 /var/db/bacula/mtx.log
# su -m bacula -c '/usr/local/sbin/mtx-changer /dev/pass4 slots'
10
Now, let's try bconsole again:
*label barcodes storage="DigitalTapeLibrary"
Connecting to Storage daemon DigitalTapeLibrary at bacula.unixathome.org:9103 ...
3306 Issuing autochanger "slots" command.
Device "DEC TL800" has 10 slots.
Connecting to Storage daemon DigitalTapeLibrary at bacula.unixathome.org:9103 ...
3306 Issuing autochanger "list" command.
The following Volumes will be labeled:
Slot Volume
==============
1 DGG472
2 DGG440
3 DGG443
4 DGG467
5 DGG469
6 DGG442
7 DGG457
8 DGG441
9 DGG471
10 DGG465
Do you want to label these Volumes? (yes|no):
Good. Very good. Let us proceed. My replies are in bold
Do you want to label these Volumes? (yes|no): yes
Defined Pools:
1: Default
2: FilePool
Select the Pool (1-2): 1
Media record for Slot 1 Volume "DGG472" already exists.
Connecting to Storage daemon DigitalTapeLibrary at bacula.unixathome.org:9103 ...
Sending label command for Volume "DGG440" Slot 2 ...
3301 Issuing autochanger "loaded? drive 0" command.
3302 Autochanger "loaded? drive 0", result: nothing loaded.
3304 Issuing autochanger "load slot 2, drive 0" command.
3305 Autochanger "load slot 2, drive 0", status is OK.
3000 OK label. VolBytes=64512 DVD=0 Volume="DGG440" Device="DEC TZ89" (/dev/nsa1)
Catalog record for Volume "DGG440", Slot 2 successfully created.
Media record for Slot 3 Volume "DGG443" already exists.
Sending label command for Volume "DGG467" Slot 4 ...
3307 Issuing autochanger "unload slot 2, drive 0" command.
3304 Issuing autochanger "load slot 4, drive 0" command.
3305 Autochanger "load slot 4, drive 0", status is OK.
3000 OK label. VolBytes=64512 DVD=0 Volume="DGG467" Device="DEC TZ89" (/dev/nsa1)
Catalog record for Volume "DGG467", Slot 4 successfully created.
Sending label command for Volume "DGG469" Slot 5 ...
3307 Issuing autochanger "unload slot 4, drive 0" command.
3304 Issuing autochanger "load slot 5, drive 0" command.
3305 Autochanger "load slot 5, drive 0", status is OK.
3000 OK label. VolBytes=64512 DVD=0 Volume="DGG469" Device="DEC TZ89" (/dev/nsa1)
Catalog record for Volume "DGG469", Slot 5 successfully created.
Sending label command for Volume "DGG442" 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.
3000 OK label. VolBytes=64512 DVD=0 Volume="DGG442" Device="DEC TZ89" (/dev/nsa1)
Catalog record for Volume "DGG442", Slot 6 successfully created.
Sending label command for Volume "DGG457" Slot 7 ...
3307 Issuing autochanger "unload slot 6, drive 0" command.
3304 Issuing autochanger "load slot 7, drive 0" command.
3305 Autochanger "load slot 7, drive 0", status is OK.
3000 OK label. VolBytes=64512 DVD=0 Volume="DGG457" Device="DEC TZ89" (/dev/nsa1)
Catalog record for Volume "DGG457", Slot 7 successfully created.
Sending label command for Volume "DGG441" Slot 8 ...
3307 Issuing autochanger "unload slot 7, drive 0" command.
3304 Issuing autochanger "load slot 8, drive 0" command.
3305 Autochanger "load slot 8, drive 0", status is OK.
3000 OK label. VolBytes=64512 DVD=0 Volume="DGG441" Device="DEC TZ89" (/dev/nsa1)
Catalog record for Volume "DGG441", Slot 8 successfully created.
Sending label command for Volume "DGG471" Slot 9 ...
3307 Issuing autochanger "unload slot 8, drive 0" command.
3304 Issuing autochanger "load slot 9, drive 0" command.
3305 Autochanger "load slot 9, drive 0", status is OK.
3000 OK label. VolBytes=64512 DVD=0 Volume="DGG471" Device="DEC TZ89" (/dev/nsa1)
Catalog record for Volume "DGG471", Slot 9 successfully created.
Media record for Slot 10 Volume "DGG465" already exists.
*
Oh. Well. That's a problem. All the volumes already have media records for them.
That is, the Catalog already contains a record with that label. OK, easily fixed.
Delete them.
|
|
I have ten Volumes to delete from my Catalog.
+---------+------------------+-----------+---------+----------------+----------+--------------+---------+------+-----------+-----------+---------------------+
| mediaid | volumename | volstatus | enabled | volbytes | volfiles | volretention | recycle | slot | inchanger | mediatype | lastwritten |
+---------+------------------+-----------+---------+----------------+----------+--------------+---------+------+-----------+-----------+---------------------+
| 248 | DGG472 | Used | 1 | 64,512 | 0 | 31,536,000 | 1 | 1 | 1 | DLT | |
| 249 | DGG443 | Used | 1 | 64,512 | 0 | 31,536,000 | 1 | 3 | 1 | DLT | |
| 250 | DGG465 | Used | 1 | 64,512 | 0 | 31,536,000 | 1 | 10 | 1 | DLT | |
| 251 | DGG440 | Append | 1 | 64,512 | 0 | 31,536,000 | 1 | 2 | 1 | DLT | |
| 252 | DGG467 | Append | 1 | 64,512 | 0 | 31,536,000 | 1 | 4 | 1 | DLT | |
| 253 | DGG469 | Append | 1 | 64,512 | 0 | 31,536,000 | 1 | 5 | 1 | DLT | |
| 254 | DGG442 | Append | 1 | 64,512 | 0 | 31,536,000 | 1 | 6 | 1 | DLT | |
| 255 | DGG457 | Append | 1 | 64,512 | 0 | 31,536,000 | 1 | 7 | 1 | DLT | |
| 256 | DGG441 | Append | 1 | 64,512 | 0 | 31,536,000 | 1 | 8 | 1 | DLT | |
| 257 | DGG471 | Append | 1 | 64,512 | 0 | 31,536,000 | 1 | 9 | 1 | DLT | |
+---------+------------------+-----------+---------+----------------+----------+--------------+---------+------+-----------+-----------+---------------------+
I can do one delete, manually, like this:
*delete volume="DGG472"
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
This command will delete volume DGG472
and all Jobs saved on that volume from the Catalog
Are you sure you want to delete Volume "DGG472"? (yes/no): yes
*
But you can reduce typing by altering the original command, by putting yes into the line.
*label barcodes
The defined Storage resources are:
1: File
2: FileRemote
3: FileRemoteTLS
4: DLT
5: DigitalTapeLibrary
6: DLTRemote
7: DLTRemoteTLS
Select Storage resource (1-7): 5
Connecting to Storage daemon DigitalTapeLibrary at bacula.unixathome.org:9103 .. .
3306 Issuing autochanger "slots" command.
Device "DEC TL800" has 10 slots.
Connecting to Storage daemon DigitalTapeLibrary at bacula.unixathome.org:9103 .. .
3306 Issuing autochanger "list" command.
The following Volumes will be labeled:
Slot Volume
==============
1 DGG472
2 DGG440
3 DGG443
4 DGG467
5 DGG469
6 DGG442
7 DGG457
8 DGG441
9 DGG471
10 DGG465
Do you want to label these Volumes? (yes|no): yes
Defined Pools:
1: Default
2: FilePool
Select the Pool (1-2): 1
Connecting to Storage daemon DigitalTapeLibrary at bacula.unixathome.org:9103 .. .
Sending label command for Volume "DGG472" Slot 1 ...
3301 Issuing autochanger "loaded? drive 0" command.
3302 Autochanger "loaded? drive 0", result: nothing loaded.
3304 Issuing autochanger "load slot 1, drive 0" command.
3305 Autochanger "load slot 1, drive 0", status is OK.
3000 OK label. VolBytes=64512 DVD=0 Volume="DGG472" Device="DEC TZ89" (/dev/nsa1 )
Catalog record for Volume "DGG472", Slot 1 successfully created.
Sending label command for Volume "DGG440" Slot 2 ...
3307 Issuing autochanger "unload slot 1, drive 0" command.
3304 Issuing autochanger "load slot 2, drive 0" command.
3305 Autochanger "load slot 2, drive 0", status is OK.
3920 Cannot label Volume because it is already labeled: "DGG440"
Label command failed for Volume DGG440.
Sending label command for Volume "DGG443" Slot 3 ...
3307 Issuing autochanger "unload slot 2, drive 0" command.
3304 Issuing autochanger "load slot 3, drive 0" command.
3305 Autochanger "load slot 3, drive 0", status is OK.
3000 OK label. VolBytes=64512 DVD=0 Volume="DGG443" Device="DEC TZ89" (/dev/nsa1)
Catalog record for Volume "DGG443", Slot 3 successfully created.
Sending label command for Volume "DGG467" Slot 4 ...
3307 Issuing autochanger "unload slot 3, drive 0" command.
3304 Issuing autochanger "load slot 4, drive 0" command.
3305 Autochanger "load slot 4, drive 0", status is OK.
3000 OK label. VolBytes=64512 DVD=0 Volume="DGG467" Device="DEC TZ89" (/dev/nsa1)
Catalog record for Volume "DGG467", Slot 4 successfully created.
Sending label command for Volume "DGG469" Slot 5 ...
3307 Issuing autochanger "unload slot 4, drive 0" command.
3304 Issuing autochanger "load slot 5, drive 0" command.
3305 Autochanger "load slot 5, drive 0", status is OK.
3000 OK label. VolBytes=64512 DVD=0 Volume="DGG469" Device="DEC TZ89" (/dev/nsa1)
Catalog record for Volume "DGG469", Slot 5 successfully created.
Sending label command for Volume "DGG442" 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.
3000 OK label. VolBytes=64512 DVD=0 Volume="DGG442" Device="DEC TZ89" (/dev/nsa1)
Catalog record for Volume "DGG442", Slot 6 successfully created.
Sending label command for Volume "DGG457" Slot 7 ...
3307 Issuing autochanger "unload slot 6, drive 0" command.
3304 Issuing autochanger "load slot 7, drive 0" command.
3305 Autochanger "load slot 7, drive 0", status is OK.
3000 OK label. VolBytes=64512 DVD=0 Volume="DGG457" Device="DEC TZ89" (/dev/nsa1)
Catalog record for Volume "DGG457", Slot 7 successfully created.
Sending label command for Volume "DGG441" Slot 8 ...
3307 Issuing autochanger "unload slot 7, drive 0" command.
3304 Issuing autochanger "load slot 8, drive 0" command.
3305 Autochanger "load slot 8, drive 0", status is OK.
3000 OK label. VolBytes=64512 DVD=0 Volume="DGG441" Device="DEC TZ89" (/dev/nsa1)
Catalog record for Volume "DGG441", Slot 8 successfully created.
Sending label command for Volume "DGG471" Slot 9 ...
3307 Issuing autochanger "unload slot 8, drive 0" command.
3304 Issuing autochanger "load slot 9, drive 0" command.
3305 Autochanger "load slot 9, drive 0", status is OK.
3000 OK label. VolBytes=64512 DVD=0 Volume="DGG471" Device="DEC TZ89" (/dev/nsa1)
Catalog record for Volume "DGG471", Slot 9 successfully created.
Sending label command for Volume "DGG465" Slot 10 ...
3307 Issuing autochanger "unload slot 9, drive 0" command.
3304 Issuing autochanger "load slot 10, drive 0" command.
3305 Autochanger "load slot 10, drive 0", status is OK.
3000 OK label. VolBytes=64512 DVD=0 Volume="DGG465" Device="DEC TZ89" (/dev/nsa1)
Catalog record for Volume "DGG465", Slot 10 successfully created.
*
Phew. That's the tapes labelled.
|