Yes and no.  (As I understand it) Each fd can stream one data set to one sd.  
But with Multiple Simultaneous Jobs one fd could be streaming different data 
sets to one or more sd(s).  And of course one sd can have multiple incoming 
jobs at once.

- Michel

From: Rob Gerber <r...@craeon.net>
Sent: Friday, August 8, 2025 12:24 PM
To: Dragan Milivojević <gali...@pkm-inc.com>
Cc: bacula-users <bacula-users@lists.sourceforge.net>
Subject: Re: [Bacula-users] VolumeLabel problems on a Pool that has two Virtual 
Autochangers

Oh wow, bacula can do that, stream output to two media devices at once?

Robert Gerber
402-237-8692
r...@craeon.net<mailto:r...@craeon.net>

On Fri, Aug 8, 2025, 2:17 PM Dragan Milivojević 
<gali...@pkm-inc.com<mailto:gali...@pkm-inc.com>> wrote:
As I understand it people use multiple autochangers so that you can read/write 
multiple
medias at the same time. VirtualFull would be a common use case.

On Fri, 8 Aug 2025 at 21:14, Rob Gerber 
<r...@craeon.net<mailto:r...@craeon.net>> wrote:
Why different autochangers? Are they gong to different storage devices?

Do you have multiple bacula SDs?

I have briefly read through, but if the problem is that you want to direct jobs 
to use specific autochangers, i think you must use a unique mediatype for each 
autochanger. Otherwise, it may choose an autochanger at random, and obviously 
volumes present under different autochangers probably won't be accessible to 
each other.

The second problem I see is that your pool specifies either autochanger as 
valid storage targets. So you provide your preferred storage target at runtime? 
Otherwise of course it's going to select one storage at random.

Hope this helps. If you can reply with your goals for this configuration and 
the details I requested we should be able to figure this out.
Robert Gerber
402-237-8692
r...@craeon.net<mailto:r...@craeon.net>

On Fri, Aug 8, 2025, 1:35 PM White, Daniel E. (GSFC-764.0)[AEGIS] via 
Bacula-users 
<bacula-users@lists.sourceforge.net<mailto:bacula-users@lists.sourceforge.net>> 
wrote:
I know WHAT is happening, just not WHY
I am hoping someone sees something obviously bogus in here.

Extract from bacula-dir.conf :

Autochanger {
  Name = "Disk01-Incremental-Autochanger"
  Address = "<SD Server Address>"
  Autochanger = "Disk01-Incremental-Autochanger"
  Device = "Disk01-Incremental-Autochanger"
  MaximumConcurrentJobs = 10
  MediaType = "DiskVolume"
  Password = <redacted>
  SdPort = 9103
}

Autochanger {
  Name = "Disk02-Incremental-Autochanger"
  Address = "<SD Server Address>"
  Autochanger = "Disk02-Incremental-Autochanger"
  Device = "Disk02-Incremental-Autochanger"
  MaximumConcurrentJobs = 10
  MediaType = "DiskVolume"
  Password = <redacted>
  SdPort = 9103
}

Pool {
  Name = "Incremental"
  ActionOnPurge = Truncate
  AutoPrune = yes
  LabelFormat = "IncVol-"
  MaximumVolumeBytes = 536870912000
  MaximumVolume = 20
  PoolType = "Backup"
  PurgeOldestVolume = yes
  Recycle = yes
  Storage = "Disk01-Incremental-Autochanger","Disk02-Incremental-Autochanger"
  StorageGroupPolicy = "FreeSpace"
  VolumeRetention = 2 weeks
}

Extract from bacula-sd.conf :

Autochanger {
  Name = "Disk01-Incremental-Autochanger"
  ChangerCommand = "/dev/null"
  ChangerDevice = "/dev/null"
  Device = 
"Disk01-Dev01-Incremental","Disk01-Dev02-Incremental","Disk01-Dev03-Incremental","Disk01-Dev04-Incremental","Disk01-Dev05-Incremental","Disk01-Dev06-Incremental","Disk01-Dev07-Incremental","Disk01-Dev08-Incremental","Disk01-Dev09-Incremental","Disk01-Dev10-Incremental"
}

Autochanger {
  Name = "Disk02-Incremental-Autochanger"
  ChangerCommand = "/dev/null"
  ChangerDevice = "/dev/null"
  Device = 
"Disk02-Dev01-Incremental","Disk02-Dev02-Incremental","Disk02-Dev03-Incremental","Disk02-Dev04-Incremental","Disk02-Dev05-Incremental","Disk02-Dev06-Incremental","Disk02-Dev07-Incremental","Disk02-Dev08-Incremental","Disk02-Dev09-Incremental","Disk02-Dev10-Incremental"
}

Device {
  Name = "Disk01-Dev01-Incremental"
  AlwaysOpen = yes
  ArchiveDevice = "/backups/Disk01/INCREMENTAL"
  AutomaticMount = yes
  DeviceType = File
  LabelMedia = yes
  MaximumConcurrentJobs = 5
  MediaType = "DiskVolume"
  RandomAccess = yes
  RemovableMedia = no
}
... repeat 39 for times changing Name and ArchiveDevice as needed

Finally, the bacula.log extract showing the error:


30-Jul 03:00 <Bacula Server>-dir JobId 36: Start Backup JobId 36, Job=<Bacula 
Server>.2025-07-30_03.00.00_32
30-Jul 03:00 <Bacula Server>-dir JobId 36: Connected to Storage 
"Disk02-Incremental-Autochanger" at <SD Server Address>:9103 with TLS
30-Jul 03:00 <Bacula Server>-dir JobId 36: Using Device 
"Disk02-Dev05-Incremental" to write.
...

30-Jul 03:00 <Bacula Server>-dir JobId 36: Storage 
"Disk02-Incremental-Autochanger" was selected out of group of 2 available 
storages. StorageGroupPolicy "FreeSpace" used
30-Jul 03:00 <Bacula Server>-dir JobId 36: Connected to Client "<Bacula 
Server>-fd" at <SD Server Address>:9102 with TLS
30-Jul 03:00 <Bacula Server>-fd JobId 36: Connected to Storage at <SD Server 
Address>:9103 with TLS
...
30-Jul 03:00 <Bacula Server>-dir JobId 36: Created new Volume="IncVol-0007", 
Pool="Incremental", MediaType="DiskVolume" in catalog.
30-Jul 03:00 <Bacula Server>-sd JobId 36: Labeled new Volume "IncVol-0007" on 
File device "Disk02-Dev05-Incremental" (/backups/Disk02/INCREMENTAL).
30-Jul 03:00 <Bacula Server>-sd JobId 36: Wrote label to prelabeled Volume 
"IncVol-0007" on File device "Disk02-Dev05-Incremental" 
(/backups/Disk02/INCREMENTAL)
  Termination:            Backup OK

Note that Disk02 is used
Volume "IncVol-0007" created here

Subsequent jobs run and append to Volume "IncVol-0007"

03-Aug 03:00 <Bacula Server>-dir JobId 48: Connected to Storage 
"Disk02-Incremental-Autochanger" at <SD Server Address>:9103 with TLS
03-Aug 03:00 <Bacula Server>-dir JobId 48: Using Device 
"Disk02-Dev08-Incremental" to write.
03-Aug 03:00 <Bacula Server>-dir JobId 48: Storage 
"Disk02-Incremental-Autochanger" was selected out of group of 2 available 
storages. StorageGroupPolicy "FreeSpace" used
...
03-Aug 03:00 <Bacula Server>-sd JobId 48: Volume "IncVol-0007" previously 
written, moving to end of data.

Now we get the error:

This time, the StorageGroupPolicy of "FreeSpace" picks Disk01 !

08-Aug 03:00 <Bacula Server>-dir JobId 65: Using Device 
"Disk01-Dev06-Incremental" to write.
08-Aug 03:00 <Bacula Server>-dir JobId 65: Storage 
"Disk01-Incremental-Autochanger" was selected out of group of 2 available 
storages. StorageGroupPolicy "FreeSpace" used
08-Aug 03:00 <Bacula Server>-sd JobId 65: Warning: mount.c:216 Open of File 
device "Disk01-Dev06-Incremental" (/backups/Disk01/INCREMENTAL) Volume 
"IncVol-0007" failed: ERR=Could not 
open(/backups/Disk01/INCREMENTAL/IncVol-0007,OPEN_READ_WRITE,0640): ERR=No such 
file or directory
08-Aug 03:00 <Bacula Server>-sd JobId 65: Marking Volume "IncVol-0007" in Error 
in Catalog.

=============================

The volume's path is /backups/Disk02/INCREMENTAL/IncVol-0007
but Bacula is looking to write to /backups/Disk01/INCREMENTAL/IncVol-0007

Here is the problem.

The same line
  StorageGroupPolicy = "FreeSpace"
is in each JobDefs resource in bacula-dir.conf

Does anyone see a stupid mistake made on my part ?

Does anyone see a way past this mess ?

Thanks in advance.


_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net<mailto:Bacula-users@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/bacula-users
_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net<mailto:Bacula-users@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/bacula-users
_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users

Reply via email to