View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000585 | bareos-core | director | public | 2015-12-15 11:00 | 2023-07-04 10:41 |
Reporter | urusha | Assigned To | bruno-at-bareos | ||
Priority | normal | Severity | feature | Reproducibility | always |
Status | closed | Resolution | won't fix | ||
Platform | Linux | OS | Ubuntu | OS Version | 14.04 |
Product Version | 15.2.2 | ||||
Summary | 0000585: pool auto prune keep last jobs | ||||
Description | I have the next director configuration: Client { Name = client1 Address = client1 Password = "..." File Retention = 5 years Job Retention = 5 years } Pool { Name = Full-1m-sd2 Label Format = "Full-1m-sd2-" Volume Retention = 9 weeks Pool Type = Backup Recycle = no AutoPrune = yes Action On Purge = Truncate Maximum Volume Jobs = 1 } Pool { Name = Diff-1m-sd2 Label Format = "Diff-1m-sd2-" Volume Retention = 1 month 1 week Pool Type = Backup Recycle = no AutoPrune = yes Action On Purge = Truncate Maximum Volume Jobs = 1 } Pool { Name = Incr-1w-sd2 Label Format = "Incr-1w-sd2-" Volume Retention = 2 weeks Pool Type = Backup Recycle = no AutoPrune = yes Action On Purge = Truncate Maximum Volume Jobs = 1 } JobDefs { Name = "DefaultJob-sd2" Type = Backup Schedule = "Daily-2105" Storage = sd2 Priority = 10 Write Bootstrap = "/var/lib/bareos/%c.bsr" Pool = Full-1m-sd2 Full Backup Pool = Full-1m-sd2 Differential Backup Pool = Diff-1m-sd2 Incremental Backup Pool = Incr-1w-sd2 Accurate = yes Max Full Interval = 5 weeks Reschedule On Error = yes Reschedule Interval = 1 hour Reschedule Times = 1 Allow Duplicate Jobs = no Cancel Lower Level Duplicates = yes Cancel Queued Duplicates = yes } And the job, running every month, using these client, pools, jobdefs and file-based SD. So, every job has it's own volume that is purged if it's older than 9 weeks. Every job level uses its own pool. The reason why I use this scheme is that I have not much disk space but require full backups per month for the last months, diff. backups per week for the last month and incr. backups per day for the last week. So, all incr. backups are purged after 2 weeks, and don't waste much space. The problem is that an old volumes are purged at the start of the job - before the new volume is labeled. So, if all new jobs are failing for 9 weeks, on the next run ALL volumes with successful jobs will be purged, so there will be no full backup for the job at all. To exclude such situation, I'm suggesting to implement a pool option like "auto prune keep last = N" (default N=0). This option modifies volume auto pruning algorithm: 1. create the 'classic' list of volumes for auto-pruning (Media.MediaId). 2. create the list of jobs from these volumes (Job.JobId,Job.Name). 3. for every job (Job.Name) from the list(2) determine N most recent successful full-level backups (from current pool), determine volumes used by this backups and skip these volumes from the 'classic' list(1). 4. run auto-pruning for resulting list of volumes. With this algorithm all volumes used by N recent runs of every job name from this pool will not be purged. They could only be purged after client's job/file retention period expires. This algorithm could be helpful with some other scheme, the main idea is keeping the last consistent full backup for the job. Also, the logic could be extended to keep last N backups for every level, this would be useful when a single pool for all job levels is used: auto prune keep last full = N auto prune keep last diff = M auto prune keep last incr = K Hope this will be implemented someday. | ||||
Tags | auto prune, pool | ||||
"And the job, running every month" should be "And the job, running every day" Schedule { Name = "Daily-2105" Run = Level=Full 1st sat at 21:05 Run = Level=Differential 2nd-5th sat at 21:05 Run = Level=Incremental sun-fri at 21:05 } |
|
Nothing will happen without community contribution | |
Date Modified | Username | Field | Change |
---|---|---|---|
2015-12-15 11:00 | urusha | New Issue | |
2015-12-15 11:09 | urusha | Tag Attached: auto prune | |
2015-12-15 11:09 | urusha | Tag Attached: pool | |
2015-12-15 11:10 | urusha | Note Added: 0002037 | |
2015-12-15 11:11 | urusha | Note Edited: 0002037 | |
2016-01-11 14:54 | pstorz | Status | new => acknowledged |
2023-07-04 10:41 | bruno-at-bareos | Assigned To | => bruno-at-bareos |
2023-07-04 10:41 | bruno-at-bareos | Status | acknowledged => closed |
2023-07-04 10:41 | bruno-at-bareos | Resolution | open => won't fix |
2023-07-04 10:41 | bruno-at-bareos | Note Added: 0005116 |