[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bacula-devel] Synthetic Full backup or Consolidation


I am considering putting a first cut of job consolidation into the next 
version of Bacula -- see item #3 on the y, Projects list "Merge multiple 
backups (Synthetic Backup or Consolidation)"

I'm considering the possibility of implementing it as a sort of sub-option of 
Migration and Copy jobs.  The advantage is that virtually all the necessary 
code exists, and by using Migration and Copy, the Consolidate can either be 
a "move" or a "copy" operation. 

Currently, unless I am forgetting something, the "Level" field of the 
Migration and Copy is ignored.  I'm considering to take it over and add two 
new level options:

1. Level = Consolidate

2. Level = Optimized Consolidate

When either of these two levels are specified, Bacula would require a

Selection Type = Job


Selection Pattern = xxx

where xxx in the selection pattern *must* resolve to a single job name.

Bacula would then search for the prior Full backup and all backups after that 
and consolidate them together producing an new Full job, the old jobs would 
be pruned if you were running a Migration and left untouched if you are 
running a Copy (note copy is implement in development branch).

Finally the difference between a Consolidate and an Optimized Consolidate is 
that a Consolidate simply copies (or moves) all files previously backed up.  
This means that all the files in the Differential and Incremental jobs are 
will have a prior version most likely in the full, so the restore will be 
less than optimal.

With the Optimized Consolidate, Bacula will read in all the meta data from the 
catalog, and ensure that only the most current version of any file is 
written.  This requires a lot of memory (it needs to invoke the restore tree 
memory code) and takes some time, but it does produce optimized results.

The other way of doing this is to define a new Type called Consolidate (or 
Optimized Consolidate) and write new code.  

The advantage that I see of doing it as a migrate or copy job is that later we 
may extend the code to permit additional features.  For example, I could 
imagine that one might want to consolidate only part of the jobs (say all the 
incremental jobs, ...).

I would appreciate comments on this.

Best regards,


This SF.net email is sponsored by: Microsoft 
Defy all challenges. Microsoft(R) Visual Studio 2008. 
Bacula-devel mailing list

This mailing list archive is a service of Copilotco.