[Bacula-users] Slow Spooling / Despooling
Am 11.05.23 um 08:06 schrieb Dr. Thorsten Brandau: It looks fitting to other services like Rsync. I am running on an external RAID6, so I assume the discs and caching is just low, as I have several file storages >80TB on that device. No SSD or so. Initially I tested the drive with about 400MB/s, so that fits around the maximum read speed of the discs coming from the raid. Are there any tweaking parameters I could try? Cheers TB Please try the bacula-sd parameters. This is from our Quantum Superloader 3 LTO-7 definitions. See if it makes any difference for you. Despooling sustained ~ 290MB/sec from an SSD Raid 1. bacula-sd.conf: Device { ... # 300 Mb/sec = eof filemark every two minutes, this is not max size of YOUR files... #8-) MaximumFileSize = 36G MaximumBlockSize = 1048576 ... } Another point would be spooling of file attributes to reduce intermittent access to you sql server. Regards ___ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users
Re: [Bacula-users] compression with lto?
On 5/17/23 14:14, Phil Stracchino wrote: On 5/17/23 12:52, Marco Gaiarin wrote: I've LTO tape that work in very dusty environment by at least 6 years. Istead of dust, i've found that setting properly spooling and buffers prevent the spinup/spindown effect, that effectively can be very stressful... Yes, I went to great lengths to try to keep mine streaming and avoid shoe-shining, but with only moderate success. I have had many fewer problems, as well as much better performance, since I abandoned tape and went to disk-to-disk-to-removable-disk (with both of the destination disk stages being RAID). Full backup cycles that used to take 18 hours and two or three media changes, with about a 10% failure rate due to media errors, now take 3 or 4 hours with no media changes and nearly 100% success. However, we are getting further and further off the subject of compression. That approach actually affects both tape and disk. Software compression happens on the client, so performance greatly depends on the type of clients being backed up. For example, there may be NAS boxes with low power processors, Software compression will definitely slow the backup of such clients. ___ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users
Re: [Bacula-users] Slow Spooling / Despooling
Udo Kaune schrieb am 18.05.23 um 12:38: Am 11.05.23 um 08:06 schrieb Dr. Thorsten Brandau: It looks fitting to other services like Rsync. I am running on an external RAID6, so I assume the discs and caching is just low, as I have several file storages >80TB on that device. No SSD or so. Initially I tested the drive with about 400MB/s, so that fits around the maximum read speed of the discs coming from the raid. Are there any tweaking parameters I could try? Cheers TB Please try the bacula-sd parameters. This is from our Quantum Superloader 3 LTO-7 definitions. See if it makes any difference for you. Despooling sustained ~ 290MB/sec from an SSD Raid 1. bacula-sd.conf: Device { ... # 300 Mb/sec = eof filemark every two minutes, this is not max size of YOUR files... #8-) MaximumFileSize = 36G MaximumBlockSize = 1048576 ... } Another point would be spooling of file attributes to reduce intermittent access to you sql server. Regards Hi okay, I will try that. I had set no BlockSize but my Filesize to 3TB to avoid permanen spooling and despooling. Let's see if that changes anything. BR T ___ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users
Re: [Bacula-users] compression with lto?
Josh Fisher via Bacula-users schrieb am 18.05.23 um 14:48: On 5/17/23 14:14, Phil Stracchino wrote: On 5/17/23 12:52, Marco Gaiarin wrote: I've LTO tape that work in very dusty environment by at least 6 years. Istead of dust, i've found that setting properly spooling and buffers prevent the spinup/spindown effect, that effectively can be very stressful... Yes, I went to great lengths to try to keep mine streaming and avoid shoe-shining, but with only moderate success. I have had many fewer problems, as well as much better performance, since I abandoned tape and went to disk-to-disk-to-removable-disk (with both of the destination disk stages being RAID). Full backup cycles that used to take 18 hours and two or three media changes, with about a 10% failure rate due to media errors, now take 3 or 4 hours with no media changes and nearly 100% success. However, we are getting further and further off the subject of compression. That approach actually affects both tape and disk. Software compression happens on the client, so performance greatly depends on the type of clients being backed up. For example, there may be NAS boxes with low power processors, Software compression will definitely slow the backup of such clients. Well, I do not see a big effect here. But I am running of a 64 CPU server with a bit of Ram ;-) At last I do not need to care about performance lost if it s running at night or weekends. ___ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users
[Bacula-users] Copy job clarification requested
I have not used a copy job before so I thought I would try one. I used Baculum v11 to set one up that copies a job from a local USB drive to a NAS. The setup was straightforward. I created a new pool to receive the copy, defined the source and destination job, pool and SD/storage. This worked just fine creating the new volumes on the destination storage. The thing I'm not clear about is whether a copy job copies only the pool specified as the source, in my case a full, or whether all of full/diff/incr pools for the job are copied. My suspicion is that only the full is copied and I would need additional jobs for the diff/incr. Given that there is a 1:1 correspondence between a job definition and its pools, Bacula should be able to deduce one from the other but it seems to be required to specify both. Could anyone help me understand this? Chris Wilkinson ___ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users
Re: [Bacula-users] Slow Spooling / Despooling
On 5/18/23 04:38, Udo Kaune wrote: [...snip...] Another point would be spooling of file attributes to reduce intermittent access to you sql server. Hello Udo, Just a quick FYI for everyone: When Data Spooling is enabled, Attribute Spooling is automatically forced on. Best regards, Bill -- Bill Arlofski w...@protonmail.com signature.asc Description: OpenPGP digital signature ___ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users
Re: [Bacula-users] Copy job clarification requested
On 5/18/23 08:07, Chris Wilkinson wrote: I have not used a copy job before so I thought I would try one. I used Baculum v11 to set one up that copies a job from a local USB drive to a NAS. The setup was straightforward. I created a new pool to receive the copy, defined the source and destination job, pool and SD/storage. This worked just fine creating the new volumes on the destination storage. The thing I'm not clear about is whether a copy job copies only the pool specified as the source, in my case a full, or whether all of full/diff/incr pools for the job are copied. My suspicion is that only the full is copied and I would need additional jobs for the diff/incr. Given that there is a 1:1 correspondence between a job definition and its pools, Bacula should be able to deduce one from the other but it seems to be required to specify both. Could anyone help me understand this? Chris Wilkinson Hello Chris, A Copy job will copy what you tell it to. :) What I mean is there are several ways to tell a Copy job what jobs to copy. The simplest being the `SelectionType = PoolUncopiedJobs` Using this option, Bacula will only look to the Pool specified in the Copy job itself for jobids which have not yet been copied and it will spawn n-1 new iterations of itself - each one to copy one job - and it will take the last jobid found and copy it itself. At the beginning of the Copy job, Bacula will list the jobids it has identified to be copied. When setting up Copy jobs for the first time on an existing pool with a lot of jobs existing it is a good idea to set the `MaximumSpawnedJobs = 1` while testing to make sure things look/work OK so you are not spawning hundreds or thousands of Copy jobs which may not work or need to be canceled. :) Then, once things are OK, that number can be raised or the setting can be removed entirely. You can also just specify a specific jobid to be copied on the comm and line: * run job=CopyJobNAme jobid=12345 And this one jobid would be copied - regardless of the `Pool =` setting the the Copy job. You can use `SelectionType = SQLQuery` and then the `SelectionPattern =` can be used to specify *any* jobs you want to be copied, also overriding the pool set in the Copy job itself. If you have Full, Inc, and Diff pools, you might have three copy jobs, one for each pool, or you could simply call the Copy job three times and override the `pool=xxx` on the command line or in a Schedule. Something I have helped customers with is to set up a Copy job to be run immediately after the backup job itself has completed. In this use case, you just call a small script in a RunScript {} section in your job: Job { ...All normal job stuff goes here... RunScript { RunsOnCLient = no RunsWhen = after Command = "path/to/triggerCopyJobsScript.sh %i '%n' %l" } } ...and that script simply starts the copy job wit h the jobid= option: 8< #!/bin/bash # # $1 = jobid, $2 = Job name, $3 = Level # if [ "$3" = "Full" ]; then echo "Jobid $3 (${2}) is a Full job, triggering a copy of it..." echo "run yes job=CopyJobName jobid=$1" | bconsole else echo "This is not a Full level job, not copying it..." fi 8< I pass the level and jobname so, as in the case of this customer, they wanted to only copy full jobs, so we just check the level and decide to trigger the copy job or not. Note: Using this method, the Priority of your Copy job needs to be the same as the Backup job otherwise you will enter a deadlock where the Backup job never finishes because it is waiting on the Copy to finish, but the Copy will never start because it is waiting on the Backup job to finish. :) (Sure, allowing "mixed priority" can be done, but that just adds more confusion, problems etc.) Hope some of this helps! Best regards, Bill -- Bill Arlofski waa@proto nmail.com signature.asc Description: OpenPGP digital signature ___ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users
Re: [Bacula-users] Copy job clarification requested
Thank you Bill, a comprehensive reply as always 🙏. I'll need to study this some more. -Chris- On Thu, 18 May 2023, 16:45 Bill Arlofski via Bacula-users, < bacula-users@lists.sourceforge.net> wrote: > On 5/18/23 08:07, Chris Wilkinson wrote: > > I have not used a copy job before so I thought I would try one. I used > Baculum v11 to set one up that copies a job from a > > local USB drive to a NAS. The setup was straightforward. I created a new > pool to receive the copy, defined the source and > > destination job, pool and SD/storage. This worked just fine creating the > new volumes on the destination storage. > > > > The thing I'm not clear about is whether a copy job copies only the pool > specified as the source, in my case a full, or > > whether all of full/diff/incr pools for the job are copied. > > > > My suspicion is that only the full is copied and I would need additional > jobs for the diff/incr. > > > > Given that there is a 1:1 correspondence between a job definition and > its pools, Bacula should be able to deduce one from the > > other but it seems to be required to specify both. > > > > Could anyone help me understand this? > > > > Chris Wilkinson > > Hello Chris, > > A Copy job will copy > what you tell it to. :) > > What I mean is there are several ways to tell a Copy job what jobs to > copy. The simplest being the `SelectionType = > PoolUncopiedJobs` > > Using this option, Bacula will only look to the Pool specified in the Copy > job itself for jobids which have not yet been > copied and it will spawn n-1 new iterations of itself - each one to copy > one job - and it will take the last jobid found and > copy it itself. > > At the beginning of the Copy job, Bacula will list the jobids it has > identified to be copied. > > When setting up Copy jobs for the first time on an existing pool with a > lot of jobs existing it is a good idea to set the > `MaximumSpawnedJobs = 1` while testing to make sure things look/work OK so > you are not spawning hundreds or thousands of Copy > jobs which may not work or need to be canceled. :) > > Then, once things are OK, that number can be raised or the setting can be > removed entirely. > > You can also just specify a specific jobid to be copied on the comm > and line: > > * run job=CopyJobNAme jobid=12345 > > And this one jobid would be copied - regardless of the `Pool =` setting > the the Copy job. > > You can use `SelectionType = SQLQuery` and then the `SelectionPattern =` > can be used to specify *any* jobs you want to be > copied, also overriding the pool set in the Copy job itself. > > If you have Full, Inc, and Diff pools, you might have three copy jobs, one > for each pool, or you could simply call the Copy > job three times and override the `pool=xxx` on the command line or in a > Schedule. > > Something I have helped customers with is to set up a Copy job to be run > immediately after the backup job itself has > completed. In this use case, you just call a small script in a RunScript > {} section in your job: > > > Job { > ...All normal job stuff goes here... > >RunScript { > RunsOnCLient = no > RunsWhen = after > Command = "path/to/triggerCopyJobsScript.sh %i '%n' %l" >} > } > > ...and that script simply starts the copy job wit > h the jobid= option: > > 8< > #!/bin/bash > # > # $1 = jobid, $2 = Job name, $3 = Level > # > if [ "$3" = "Full" ]; then >echo "Jobid $3 (${2}) is a Full job, triggering a copy of it..." >echo "run yes job=CopyJobName jobid=$1" | bconsole > else >echo "This is not a Full level job, not copying it..." > fi > 8< > > I pass the level and jobname so, as in the case of this customer, they > wanted to only copy full jobs, so we just check the > level and decide to trigger the copy job or not. > > Note: Using this method, the Priority of your Copy job needs to be the > same as the Backup job otherwise you will enter a > deadlock where the Backup job never finishes because it is waiting on the > Copy to finish, but the Copy will never start > because it is waiting on the Backup job to finish. :) (Sure, allowing > "mixed priority" can be done, but that just adds > more confusion, problems etc.) > > > Hope some of this helps! > > > Best regards, > Bill > > -- > Bill Arlofski > waa@proto > nmail.com > > ___ > 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
Re: [Bacula-users] Copy job clarification requested
I'm not sure I'm getting the motivation for using a copy job in preference to a duplicate job to a second SD. This would also create a second backup. The only reason I can think of is that a duplicate job might be different if the files changed in between. That shouldn't be an issue. I read that a copy job cannot be used for a restore but if the source backup job becomes unavailable then the copy will be automatically promoted to a regular backup which can be used for a restore. I can see that if a job or its pools are deleted or pruned out in the database that would work, but under a failure scenario, e.g. a storage fails, then it seems unlikely Bacula could be smart enough to do this. Am I being paranoid!? Chris On Thu, 18 May 2023, 4:45 pm Bill Arlofski via Bacula-users, < bacula-users@lists.sourceforge.net> wrote: > On 5/18/23 08:07, Chris Wilkinson wrote: > > I have not used a copy job before so I thought I would try one. I used > Baculum v11 to set one up that copies a job from a > > local USB drive to a NAS. The setup was straightforward. I created a new > pool to receive the copy, defined the source and > > destination job, pool and SD/storage. This worked just fine creating the > new volumes on the destination storage. > > > > The thing I'm not clear about is whether a copy job copies only the pool > specified as the source, in my case a full, or > > whether all of full/diff/incr pools for the job are copied. > > > > My suspicion is that only the full is copied and I would need additional > jobs for the diff/incr. > > > > Given that there is a 1:1 correspondence between a job definition and > its pools, Bacula should be able to deduce one from the > > other but it seems to be required to specify both. > > > > Could anyone help me understand this? > > > > Chris Wilkinson > > Hello Chris, > > A Copy job will copy > what you tell it to. :) > > What I mean is there are several ways to tell a Copy job what jobs to > copy. The simplest being the `SelectionType = > PoolUncopiedJobs` > > Using this option, Bacula will only look to the Pool specified in the Copy > job itself for jobids which have not yet been > copied and it will spawn n-1 new iterations of itself - each one to copy > one job - and it will take the last jobid found and > copy it itself. > > At the beginning of the Copy job, Bacula will list the jobids it has > identified to be copied. > > When setting up Copy jobs for the first time on an existing pool with a > lot of jobs existing it is a good idea to set the > `MaximumSpawnedJobs = 1` while testing to make sure things look/work OK so > you are not spawning hundreds or thousands of Copy > jobs which may not work or need to be canceled. :) > > Then, once things are OK, that number can be raised or the setting can be > removed entirely. > > You can also just specify a specific jobid to be copied on the comm > and line: > > * run job=CopyJobNAme jobid=12345 > > And this one jobid would be copied - regardless of the `Pool =` setting > the the Copy job. > > You can use `SelectionType = SQLQuery` and then the `SelectionPattern =` > can be used to specify *any* jobs you want to be > copied, also overriding the pool set in the Copy job itself. > > If you have Full, Inc, and Diff pools, you might have three copy jobs, one > for each pool, or you could simply call the Copy > job three times and override the `pool=xxx` on the command line or in a > Schedule. > > Something I have helped customers with is to set up a Copy job to be run > immediately after the backup job itself has > completed. In this use case, you just call a small script in a RunScript > {} section in your job: > > > Job { > ...All normal job stuff goes here... > >RunScript { > RunsOnCLient = no > RunsWhen = after > Command = "path/to/triggerCopyJobsScript.sh %i '%n' %l" >} > } > > ...and that script simply starts the copy job wit > h the jobid= option: > > 8< > #!/bin/bash > # > # $1 = jobid, $2 = Job name, $3 = Level > # > if [ "$3" = "Full" ]; then >echo "Jobid $3 (${2}) is a Full job, triggering a copy of it..." >echo "run yes job=CopyJobName jobid=$1" | bconsole > else >echo "This is not a Full level job, not copying it..." > fi > 8< > > I pass the level and jobname so, as in the case of this customer, they > wanted to only copy full jobs, so we just check the > level and decide to trigger the copy job or not. > > Note: Using this method, the Priority of your Copy job needs to be the > same as the Backup job otherwise you will enter a > deadlock where the Backup job never finishes because it is waiting on the > Copy to finish, but the Copy will never start > because it is waiting on the Backup job to finish. :) (Sure, allowing > "mixed priority" can be done, but that just adds > more confusion, problems etc.) > > > Hope some of this helps! > > > Best regards, > Bill > > -- > Bill Arlofski > waa@proto > nmail.com > >
Re: [Bacula-users] Copy job clarification requested
On 5/18/23 18:37, Chris Wilkinson wrote: I'm not sure I'm getting the motivation for using a copy job in preference to a duplicate job to a second SD. This would also create a second backup. The only reason I can think of is that a duplicate job might be different if the files changed in between. That shouldn't be an issue. I read that a copy job cannot be used for a restore Not true. Just select that job to restore from. -- Phil Stracchino Babylon Communications ph...@caerllewys.net p...@co.ordinate.org Landline: +1.603.293.8485 Mobile: +1.603.998.6958 ___ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users