I had exactly that problem with S3/Backblaze. I would sometimes get a "no tomes available" error message. I run a script after to upload the part files for all volumes all over again. The driver seems smart enough to not upload part files that are already there.
-Chris- On Fri, 21 Feb 2025, 02:21 Rob Gerber, <r...@craeon.net> wrote: > Hello, > Bacula 15.0.2 running on Rocky linux 9.4. I'm setting up a system that I > will eventually deploy for a customer. This system is currently in the > testing phase and nothing on it matters - yet. > > I have a set of jobs and resources that write to local file volumes. After > the local backup jobs are finished, lower priority copy jobs run with > 'pooluncopiedjobs' to copy the local jobs to backblaze b2 s3 compatible > storage. It mostly seems to work. The trouble is that I'm occasionally > seeing errors like this: > > 20-Feb 15:56 td-bacula-sd JobId 47: Error: B2-TGU-Inc-0019/part.4 > state=error retry=1/10 size=5.368 GB duration=1435s msg= S3_put_object > ServiceUnavailable ERR=Service temporarily unavailable, please try again. > CURL Effective URL: > https://Craeon-TGU-Inc.s3.us-east-005.backblazeb2.com/B2-TGU-Inc-0019/part.4 > CURL Effective URL: > https://Craeon-TGU-Inc.s3.us-east-005.backblazeb2.com/B2-TGU-Inc-0019/part.4 > > Some parts are failing to upload. I verified with ls that the parts in > question still remain on disk (I have set cloud cache to truncate on > upload, so only part1 and parts that haven't uploaded should remain). > > In bconsole I ran 'cloud allpools upload' and that seemed to work, albeit > slowly. It's still in process now with the few remaining part files that > didn't upload. Upload speeds seem much slower than when the job was > uploading part files. Maybe some sort of bandwidth limitation is in effect > if the upload command was ran from within bconsole? During the actual copy > job, uploads observed at my pfsense router were in the 400-800mbps range. > Now that the copy jobs have finished and only the bconsole 'cloud allpools > upload' command is running, sustained upload is in the 5-10mbps range, and > I still have a couple 5 gb part files left. I know this system and my > internet connection can do better, so why is the upload ran from the > console going so slowly? > > I have continuous pings to 8.8.8.8 and the backblaze node that is taking > these uploads, and the ping tests haven't missed a single packet during the > upload period. > > What can I do to improve reliability here? I was considering setting up an > admin job to periodically run 'cloud allpools upload'. > > How does one set up an admin job? I've searched the manual and read the > examples, but I'm fuzzy on how it would actually work. I envisioned just > setting the admin job's payload to be a bconsole command, but the examples > in the manual didn't seem to be exactly that. Maybe I'm just confused. > > The bigger problem seems to be that I don't know how to monitor whether a > part subsequently uploaded successfully. I am working on deploying Bill A's > job report script, and that's likely going to be my monitoring solution. > Maybe a bad exit status for an admin job tasked with uploading any leftover > part files could send up a flag that something is wrong and a part file > hasn't been uploaded? > > I'm using the s3 driver instead of the amazon driver. I read that the new > amazon driver is much better than the s3 driver, but in my testing the > amazon driver didn't seem to want to connect to a non-aws server. > > I welcome any advice or assistance. > > dir config: > Job { > Name = "Backup-akita-job" > Level = "Incremental" > Client = "akita-fd" > Fileset = "Windows-All-Drives-fs" > Storage = "Synology-Local" > Pool = "Synology-Local-Inc" > JobDefs = "Synology-Local" > } > Job { > Name = "Copy-Control-job" > Type = Copy > Level = Full > Client = td-bacula-fd > Schedule = "Copy-End-Of-Day" > FileSet = "None" > Messages = Standard > Pool = None > Storage = "Synology-Local" > Maximum Concurrent Jobs = 4 > Selection Type = PoolUncopiedJobs > Priority = 20 > JobDefs = "Synology-Local" > } > Schedule { > Name = "Biannual-Cycle" > Run = Level="Full" jan,jul 1st sun at 23:05 > Run = Level="Differential" feb,mar,apr,may,jun,aug,sep,oct,nov,dec 1st sun > at 23:05 > Run = Level="Incremental" sun,mon,tue,wed,thu,fri,sat at 23:05 > } > Schedule { > Name = "Copy-End-Of-Day" > Run = Pool="Synology-Local-Full" at 23:50 > Run = Pool="Synology-Local-Diff" at 23:51 > Run = Pool="Synology-Local-Inc" at 23:52 > } > Storage { > Name = "B2-TGU-Full" > Description = "B2-TGU-Full" > SdPort = 9103 > Address = "td-bacula" > Password = "7D9QQiqfzdG3vkjZ4RclYVtWdfKDTfUrruHi2ULTcx9B" > Device = "B2-TGU-Full" > MediaType = "B2-TGU-Full" > Autochanger = "B2-TGU-Full" > MaximumConcurrentJobs = 50 > } > Pool { # cloud full pool > Name = "B2-TGU-Full" > Description = "B2-TGU-Full" > PoolType = "Backup" > LabelFormat = "B2-TGU-Full-" > LabelType = "Bacula" > MaximumVolumeJobs = 1 > FileRetention = 18months > JobRetention = 18months > VolumeRetention = 18months > Storage = "B2-TGU-Full" > CacheRetention = 1minute > ActionOnPurge=Truncate > } > FileSet { > Name = "Windows-All-Drives-fs" > Include { > Options { > Exclude = "yes" > IgnoreCase= "yes" > # wilddir = "*:/Windows" > wildfile = "*:/pagefile.sys" > wildfile = "*:/hiberfil.sys" > wildfile = "*:/swapfile.sys" > # wild = "*:/$Recycle.Bin" > # wild = "*:/$recycler" > # wild = "*:/Program Files (x86)" > # wild = "*:/Program Files" > # wild = "*:/recycler/" > # wild = "*:/users/all users/microsoft help/" > # wild = "*:/users/all users/microsoft/" > # wild = "*:/i386/" > # wild = "*:/msocache/" > } > Options { > #compression=GZIP > #compression=LZO > compression=ZSTD > IgnoreCase= "yes" > Signature = "SHA512" > OneFS = "no" > DriveType = fixed, removable > verify = pins3 > } > File = / > } > } > JobDefs { > Name = "Synology-Local" > Type = "Backup" > Level = "Incremental" > Messages = "Standard" > AllowDuplicateJobs = no # We don't want duplicate jobs. What action is > taken is determined by the variables below. > # See flowchart Figure 23.2 in Bacula 15.x Main manual, probably page 245 > in the PDF. > CancelLowerLevelDuplicates = yes # If a lower level job (example: inc) is > running or queued and a higher level job (Example: diff or full) is added to > the queue, then the lower level job will be cancelled. > CancelQueuedDuplicates = yes # This will cancel any queued duplicate jobs. > Pool = "Synology-Local-Inc" > FullBackupPool = "Synology-Local-Full" > IncrementalBackupPool = "Synology-Local-Inc" > DifferentialBackupPool = "Synology-Local-Diff" > Client = "td-bacula-fd" > Fileset = "Windows-All-Drives-fs" > Schedule = "Biannual-Cycle" > WriteBootstrap = "/mnt/synology/bacula/BSR/%n.bsr" > MaxFullInterval = 180days > MaxDiffInterval = 90days > SpoolAttributes = yes > Priority = 10 > ReRunFailedLevels = yes # (if previous full or diff failed, current job > will be upgraded to match failed job's level). a failed job is defined as one > that has not terminated normally, which includes any running job of the same > name. Cannot allow duplicate queued jobs. > RescheduleOnError = no > Accurate = yes > } > > sd config: > Device { > Name = "B2-TGU-Full-001" # there are 5 more like this one > Description = "B2-TGU-Full" > MediaType = "B2-TGU-Full" > DeviceType = "Cloud" > ArchiveDevice = "/mnt/synology/bacula/B2-TGU-Full" > RemovableMedia = no > RandomAccess = yes > AutomaticMount = yes > LabelMedia = yes > Autochanger = yes > ReadOnly = no > MaximumFileSize = 5368709120 > MaximumConcurrentJobs = 1 > DriveIndex = 0 > MaximumPartSize = 5368709120 > Cloud = "B2-TGU-Full" > } > Autochanger { > Name = "B2-TGU-Full" > Device = "B2-TGU-Full-001" > Device = "B2-TGU-Full-002" > Device = "B2-TGU-Full-003" > Device = "B2-TGU-Full-004" > Device = "B2-TGU-Full-005" > Device = "B2-TGU-Full-006" > ChangerDevice = "/dev/null" > ChangerCommand = "/dev/null" > } > Cloud { > Name = "B2-TGU-Full" > Driver = "S3" > HostName = "s3.us-east-005.backblazeb2.com" > BucketName = "Craeon-TGU-Full" > AccessKey = "REDACTED" > SecretKey = "REDACTED" > Protocol = "HTTPS" > UriStyle = "VirtualHost" > TruncateCache = "AfterUpload" > Upload = "EachPart" > } > > Regards, > Robert Gerber > 402-237-8692 > r...@craeon.net > _______________________________________________ > Bacula-users mailing list > 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