Following the hint on:
https://gitlab.bacula.org/bacula-community-edition/bacula-community/-/issues/2683
i (re)post here, seeking feedback.
Situation: bacula 9.4 (debian buster), using RDX cassette/disks for backup,
using the wonderful 'vchanger' virtual autochanger script.
Following the vchanger doc:
https://vchanger.sourceforge.io/
https://sourceforge.net/projects/vchanger/files/vchangerHowto.html/download
it is needed to create a virtual changer device for every 'media' in the
'media pool'; so my SD configuration is:
Autochanger {
Name = RDXAutochanger
Description = "RDX Virtual Autochanger on ODPVE2"
Device = RDXStorage0
Device = RDXStorage1
Device = RDXStorage2
Changer Command = "/usr/bin/vchanger %c %o %S %a %d"
Changer Device = "/etc/vchanger/ODPVE2RDX.conf"
}
Device {
Name = RDXStorage0
Description = "RDX 0 File Storage on ODPVE2"
Drive Index = 0
Device Type = File
Media Type = RDX
RemovableMedia = no
RandomAccess = yes
Maximum Concurrent Jobs = 1
Archive Device = "/var/spool/vchanger/ODPVE2RDX/0"
}
Device {
Name = RDXStorage1
Description = "RDX 1 File Storage on ODPVE2"
Drive Index = 1
Device Type = File
Media Type = RDX
RemovableMedia = no
RandomAccess = yes
Maximum Concurrent Jobs = 1
Archive Device = "/var/spool/vchanger/ODPVE2RDX/1"
}
Device {
Name = RDXStorage2
Description = "RDX 2 File Storage on ODPVE2"
Drive Index = 2
Device Type = File
Media Type = RDX
RemovableMedia = no
RandomAccess = yes
Maximum Concurrent Jobs = 1
Archive Device = "/var/spool/vchanger/ODPVE2RDX/2"
}
every 'media' in 'media pool' have some volumes in the pool, more or less
like inserting in an (real) autochanger a set of tapes.
So when i insert a cartdrige, i get:
root@odpve2:~# bconsole
Connecting to Director bacula.lnf.it:9101
1000 OK: 103 lnfbacula-dir Version: 9.4.2 (04 February 2019)
Enter a period to cancel a command.
*list media pool=VEN-OD-ODPVE2RDXPool
Automatically selected Catalog: BaculaLNF
Using Catalog "BaculaLNF"
+---------+---------------------+-----------+---------+-----------------+----------+--------------+---------+------+-----------+-----------+---------+----------+---------------------+-----------+
| mediaid | volumename | volstatus | enabled | volbytes |
volfiles | volretention | recycle | slot | inchanger | mediatype | voltype |
volparts | lastwritten | expiresin |
+---------+---------------------+-----------+---------+-----------------+----------+--------------+---------+------+-----------+-----------+---------+----------+---------------------+-----------+
| 25 | ODPVE2RDX_0000_0000 | Used | 1 | 15,258,511,119 |
3 | 1,728,000 | 1 | 0 | 0 | RDX | 1 |
0 | 2024-03-04 23:09:08 | 798,842 |
| 26 | ODPVE2RDX_0000_0001 | Used | 1 | 17,769,884,030 |
4 | 1,728,000 | 1 | 0 | 0 | RDX | 1 |
0 | 2024-03-06 23:11:49 | 971,803 |
| 27 | ODPVE2RDX_0000_0002 | Used | 1 | 65,296,705,760 |
15 | 1,728,000 | 1 | 0 | 0 | RDX | 1 |
0 | 2024-03-03 02:09:00 | 636,834 |
| 28 | ODPVE2RDX_0000_0003 | Used | 1 | 14,995,402,621 |
3 | 1,728,000 | 1 | 0 | 0 | RDX | 1 |
0 | 2024-03-02 23:09:13 | 626,047 |
| 29 | ODPVE2RDX_0000_0004 | Used | 1 | 16,099,504,717 |
3 | 1,728,000 | 1 | 0 | 0 | RDX | 1 |
0 | 2024-03-05 23:12:59 | 885,473 |
| 30 | ODPVE2RDX_0000_0005 | Used | 1 | 15,067,862,578 |
3 | 1,728,000 | 1 | 0 | 0 | RDX | 1 |
0 | 2024-03-03 23:11:20 | 712,574 |
| 31 | ODPVE2RDX_0000_0006 | Used | 1 | 15,359,960,121 |
3 | 1,728,000 | 1 | 0 | 0 | RDX | 1 |
0 | 2024-03-08 09:55:38 | 1,096,832 |
| 32 | ODPVE2RDX_0000_0007 | Used | 1 | 259,203,030,230 |
60 | 1,728,000 | 1 | 0 | 0 | RDX | 1 |
0 | 2024-03-01 23:35:29 | 541,223 |
| 55 | ODPVE2RDX_0001_0000 | Used | 1 | 16,354,496,268 |
3 | 1,728,000 | 1 | 0 | 0 | RDX | 1 |
0 | 2024-03-12 23:10:10 | 1,486,504 |
| 56 | ODPVE2RDX_0001_0001 | Used | 1 | 15,253,608,839 |
3 | 1,728,000 | 1 | 0 | 0 | RDX | 1 |
0 | 2024-03-10 23:11:32 | 1,317,386 |
| 57 | ODPVE2RDX_0001_0002 | Used | 1 | 65,139,795,652 |
15 | 1,728,000 | 1 | 0 | 0 | RDX | 1 |
0 | 2024-03-10 02:09:59 | 1,241,693 |
| 58 | ODPVE2RDX_0001_0003 | Used | 1 | 16,239,231,609 |
3 | 1,728,000 | 1 | 0 | 0 | RDX | 1 |
0 | 2024-03-11 23:10:35 | 1,400,129 |
| 59 | ODPVE2RDX_0001_0004 | Used | 1 | 15,986,423,895 |
3 | 1,728,000 | 1 | 0 | 0 | RDX | 1 |
0 | 2024-03-14 23:13:56 | 1,659,530 |
| 60 | ODPVE2RDX_0001_0005 | Used | 1 | 16,833,801,705 |
3 | 1,728,000 | 1 | 0 | 0 | RDX | 1 |
0 | 2024-03-13 23:10:37 | 1,572,931 |
| 61 | ODPVE2RDX_0001_0006 | Used | 1 | 261,299,430,776 |
60 | 1,728,000 | 1 | 0 | 0 | RDX | 1 |
0 | 2024-03-08 23:34:25 | 1,145,959 |
| 62 | ODPVE2RDX_0001_0007 | Used | 1 | 15,131,374,566 |
3 | 1,728,000 | 1 | 0 | 0 | RDX | 1 |
0 | 2024-03-09 23:08:44 | 1,230,818 |
| 155 | ODPVE2RDX_0002_0000 | Used | 1 | 14,852,213,967 |
3 | 1,728,000 | 1 | 1 | 1 | RDX | 1 |
0 | 2024-02-24 23:08:03 | 21,177 |
| 156 | ODPVE2RDX_0002_0001 | Used | 1 | 64,919,242,574 |
15 | 1,728,000 | 1 | 2 | 1 | RDX | 1 |
0 | 2024-02-25 02:08:49 | 32,023 |
| 157 | ODPVE2RDX_0002_0002 | Used | 1 | 16,368,880,451 |
3 | 1,728,000 | 1 | 3 | 1 | RDX | 1 |
0 | 2024-02-28 23:08:56 | 366,830 |
| 158 | ODPVE2RDX_0002_0003 | Used | 1 | 15,087,137,850 |
3 | 1,728,000 | 1 | 4 | 1 | RDX | 1 |
0 | 2024-02-26 23:10:05 | 194,099 |
| 159 | ODPVE2RDX_0002_0004 | Used | 1 | 15,186,796,386 |
3 | 1,728,000 | 1 | 5 | 1 | RDX | 1 |
0 | 2024-02-29 23:12:01 | 453,415 |
| 160 | ODPVE2RDX_0002_0005 | Used | 1 | 15,193,122,988 |
3 | 1,728,000 | 1 | 6 | 1 | RDX | 1 |
0 | 2024-02-25 23:10:58 | 107,752 |
| 161 | ODPVE2RDX_0002_0006 | Used | 1 | 258,282,781,991 |
60 | 1,728,000 | 1 | 7 | 1 | RDX | 1 |
0 | 2024-02-23 23:36:59 | 0 |
| 162 | ODPVE2RDX_0002_0007 | Used | 1 | 15,144,882,105 |
3 | 1,728,000 | 1 | 8 | 1 | RDX | 1 |
0 | 2024-02-27 23:09:10 | 280,444 |
+---------+---------------------+-----------+---------+-----------------+----------+--------------+---------+------+-----------+-----------+---------+----------+---------------------+-----------+
note the 'inchanger' and 'slot' property.
In this way, alla works as expected BUT if ALL volumes in a 'media' are
unavailable (typically because of some incorrect cycling of 'media'; we
cannot kill every collegues that insert the wrong cartdrige, because will
run quickly out of collegues ;-) bacula try to mount 'available' volumes
even on non-mounted 'media', eg, for volumes without the inchanger=1 property.
Some logs:
07-Mar 23:00 lnfbacula-dir JobId 18015: There are no more Jobs associated with
Volume "ODPVE2RDX_0000_0006". Marking it purged.
07-Mar 23:00 lnfbacula-dir JobId 18015: All records pruned from Volume
"ODPVE2RDX_0000_0006"; marking it "Purged"
07-Mar 23:00 lnfbacula-dir JobId 18015: Recycled volume "ODPVE2RDX_0000_0006"
07-Mar 23:00 lnfbacula-dir JobId 18015: Using Device "RDXStorage1" to write.
07-Mar 23:03 odpve2-sd JobId 18015: Warning: mount.c:215 Open of File device
"RDXStorage1" (/var/spool/vchanger/ODPVE2RDX/1) Volume "ODPVE2RDX_0000_0006"
failed: ERR=file_dev.c:190 Could not
open(/var/spool/vchanger/ODPVE2RDX/1,OPEN_READ_WRITE,0640): ERR=No such file or
directory
07-Mar 23:03 odpve2-sd JobId 18015: Marking Volume "ODPVE2RDX_0000_0006" in
Error in Catalog.
so, bacula find a volume in pool that can purge, purge it, and try to mount
it even if it is not 'inchanger', cannot access it, and put the volume in
'Error' state.
I've solve this for now with a simple script that lookup for volumes that
are in Error state with expiresin=0, and (if the related 'media' is mounted)
i reenable purging it.
But is strange...
--
Complimenti a Focus. Una rivista da comprizzare e letturizzare, per
intelligentizzarci, culturizzarci e conoscizzare l'italiano.
(Biggo)
_______________________________________________
Bacula-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bacula-users