Bacula-users

[Bacula-users] Synthetic Full backup or Consolidation

2008-05-17 08:45:16
Subject: [Bacula-users] Synthetic Full backup or Consolidation
From: Kern Sibbald <kern AT sibbald DOT com>
To: "bacula-users" <bacula-users AT lists.sourceforge DOT net>, "bacula-devel" <bacula-devel AT lists.sourceforge DOT net>
Date: Sat, 17 May 2008 08:40:24 -0400
Hello,

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

and

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,

Kern


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft 
Defy all challenges. Microsoft(R) Visual Studio 2008. 
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Bacula-users mailing list
Bacula-users AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users