Hi Rob, I understood well since our first exchange that the MaximumVolumes at 1 was a heresy. I also understood well that to best manage several volumes, it remained important to separate Full, Diff and Inc in different pools. So, we are returning substantially to what I already have. On the other hand, sincerely, I do not see what it would bring me in terms of occupied space to group the Full of my FDs in a single pool instead of having a pool per FD, the same for Diff and Inc.
What I know is that 2 Full Volumes + 3 (or 4) Diff Volumes + 2 Volume of 6 days of Inc, for the 2 FDs that I save on this SD (the 4 other FDs are saved on another SD), it will be very tight with the space that I have. And I cannot unfortunately increase the space because it is a hosted server whose increase in space is too expensive. I would have preferred to avoid getting into something more complicated by forcing the expiration of volumes by admin job or something else. I need to find a concrete solution to save my 30 days of 2 FDs on this SD. I must also admit that I don't know what to put optimally in: File Retention = ?? days Job Retention = ?? days for clients. In any case, thank you for all the efforts you make to help me. Even if I'm not sure I understand everything. I'm still thinking about all this and if anyone else wants to shed some light, don't hesitate. Regarding ZSTD, I confirm that it is already installed, called by many packages. I configured bacula to use it. Le mercredi 08 janvier 2025 à 17:27 -0600, Rob Gerber a écrit : > Replies below. :) > Regards, > Robert Gerber > 402-237-8692 > r...@craeon.net > > > On Wed, Jan 8, 2025 at 4:03 PM Christophe PEREZ via Bacula-users > <bacula-users@lists.sourceforge.net> wrote: > > Le mercredi 08 janvier 2025 à 14:46 -0600, Rob Gerber a écrit : > > > Christophe, > > > > Hi Rob, > > > > > > Not 2nd AND 5th, but 2nd TO 5th. > > > > That makes more sense. I understand now. > > > > > > > MaximumVolumes="2" can only work if you have only 1 FD. Really, > > > for > > > this to work the right way you must have MaximumVolumes=X where X > > > = > > > (total FD x 2). > > > > And save all FD in the same pool ? > > > > I would want to put Full backups in the Full pool, Diff in the diff > pool, etc. Different pool for different backup type and different > retention, but not different pools for different FD unless you have a > very good reason to do it. So, per storage medium, you will have 3 > total pools, Full, Diff, Inc. You do not want to mix media types in a > pool, so if you were backing up to cloud, to another SD, or to tape > you would want a Full, Diff, and Inc pool for each storage medium or > device. In my 15.0.2 device, I have local backup pools Synology- > Local-Full, Synology-Local-Diff, and Synology-Local-Inc, and pools > B2-Full, B2-Diff, B2-Inc for copying jobs from the local pools to the > Backblaze B2 cloud service. > > It seems to me that this will not gain me any space. > > > > > > I am trying to say that for you to use the MaximumVolumes=X idea > with MaximumVolumeJobs=1, X must be >= the number of volumes you > expect to use within your retention period. Let us say you have 6 FD, > MaximumVolumes=6, MaximumVolumeJobs=1, VolumeRetention=40days, and > you do 1 full backup each month. In month 1 there is no problem - > bacula does its backups and creates 6 volumes. In month 2, Bacula > cannot make any volumes available without deleting the volumes from > last month BEFORE you have done any new backups! In my understanding > bacula would not violate the retention period, so it would be unable > to make the new backups. So in this example you would want at least > MaximumVolumes=12 with MaximumVolumeJobs=1. You don't want to run out > of volumes before your retention period expires. > > There are other ways to limit bacula's space usage. I'll talk about > them. > > > > So, with Maximum Volume Jobs = 0, the volume size will continue to > > grow? > > > > I don't know what would happen if we set MaximumVolumeJobs=0 , but if > we comment it out or remove it, yes, the volume will grow forever > unless restrained in some other way. > Bacula gives us many ways to restrain volume growth. We can set > MaximumVolumeUseDuration, MaximumVolumeJobs, MaximumVolumeBytes, > etc. > See the manual for some more discussion of each. > https://www.bacula.org/15.0.x-manuals/en/main/Configuring_Director.html#SECTION00231600000000000000000 > > So I have to find something else... > > I thought I had made my life easier like that. > > > > I think MaximumVolumeJobs is good for your situation. Maybe > MaximumVolumes is difficult if not set correctly. If you experience > unexpected blockages where a job cannot run because the pool does not > have any more volumes, then you can experiment with removing > MaximumVolumes and instead relying on the VolumeRetention period to > remove volumes. > > As a warning if relying on VolumeRetention alone, it is possible that > bacula will not remove a volume if it does not have to, even if > expired. Bacula's goal is to keep your volumes available as long as > possible, just in case you need them. If that becomes a problem, I > believe you can Schedule a job of Type=Admin and tell it to truncate > expired volumes. I have not set up such a job, so I am not certain > how it is done. > > I think MaximumVolumes could work for you, as long as it is set to be > >= the number of volumes you will need during your retention period. > > Here is the bacula manual entry all about automatic volume recycling. > It is very useful. > https://www.bacula.org/15.0.x-manuals/en/main/Automatic_Volume_Recycling.html > > One extract from that link above that explains what bacula will do if > not restrained in some way: > " A key point mentioned above, that can be a source of frustration, > is that Bacula will only recycle purged Volumes if there is no other > appendable Volume available, otherwise, it will always write to an > appendable Volume before recycling even if there are Volumes marked > as Purged. This preserves your data as long as possible. So, if you > wish to “force” Bacula to use a purged Volume, you must first ensure > that no other Volume in the Pool is marked Append. If necessary, you > can manually set a volume to Full. The reason for this is that Bacula > wants to preserve the data on your old Volumes (even though purged > from the catalog) as long as absolutely possible before overwriting > it. There are also a number of directives such as Volume Use Duration > that will automatically mark a volume as Used and thus no longer > appendable." > > This behavior is why we must restrain bacula. Your suggestion of > MaximumVolumeJobs=1 and > MaximumVolumes=$expectedNumberOfVolumesNeededDuringRetentionPeriod > accomplishes this, with the warning that you will not be able to make > new backups if you run out of volumes because you added more FDs but > did not increase MaximumVolumes, or something like that. > > I have set a very short retention period on my test system, with a > job scheduled once an hour. I'll examine the behavior I see and > report back. > > > I have bacula 15.0.2. > > What linux tool does this ZSTD compression format depend on? > > > > I don't know what tool it uses. I am also running bacula 15.0.2, on > Rocky Linux 9. For me, the ZSTD feature just worked. I think bacula > made sure the correct libraries are present. > > -- Christophe PEREZ _______________________________________________ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users