On Tuesday 24 March 2009 10:52:38 James Harper wrote:
> > > It uses the same algorithm as a restore.  The way it works now is it
> > > takes the most recent Full for the Job.
> >
> > Does Full == VirtualFull in this context?
> >
> > I always want my VirtualFull backups to use my 'Disk' pool as a
>
> source.
>
> > 'Disk' contains actual Full and Incremental backups. 'Tape' contains
>
> my
>
> > VirtualFull backups (because it is the Next Pool in 'Disk').
> >
> > I (wrongly, obviously) assumed that because 'Tape' didn't have a next
> > pool setting in it, it wouldn't be considered as a source for a
> > VirtualFull.
>
> Kern,
>
> Do you think that it is valid for a VirtualFull backup to use a prior
> VirtualFull backup as a source?
>
> I think that there is a bug where this is the case, and I don't know
> that it's valid anyway.
>
> I would like to make a change so that when looking for 'source' jobs for
> a VirtualFull, only jobs in a Pool that has a Next Pool the same as the
> current job pool should be considered.
>
> So to put it in the context of my previous example:
>
> 1. Full Backup (Pool = Disk, Next Pool = Tape)
> 2. Incremental Backup (Pool = Disk, Next Pool = Tape)
> 3. Incremental Backup (Pool = Disk, Next Pool = Tape)
> 4. VirtualFull Backup (Pool = Tape - because job pool = Disk and Disk
> Next Pool = Tape)
> 5. Incremental Backup (Pool = Disk, Next Pool = Tape)
> 6. VirtualFull Backup (***)
>
> For (6), only Jobs with media in the Disk pool are to be considered

I haven't been very happy with Virtual Full because it doesn't easily allow 
the user to do a Virtual Full and then automatically continue to do backups 
based on the Virtual Full.  This is because the Virtual Full goes into 
another Pool to avoid trying to read/write the same Volume.

Perhaps David Boyes could comment on this problem because he came up with the 
original idea of requiring a different pool for the Migration (I extended the 
idea to Virtual Full).  

In case it is not clear, the problem is identified above when the Virtual Full 
is complete, the output is written to a different Pool, and hence the next 
Incremental doesn't see the Virtual Full or gets totally confused about where 
Volumes are.

It seems to me that the proper solution to the problem is for the Virtual Full 
to be able to write into the same Pool that it is reading from, but it should 
ensure that the write Volume is different from the read Volume.  
Unfortunately, it is a bit late in the release to be changing things around.  
Previously reading and writing from the same Pool wasn't possible, but I 
believe that with the new volume manager code that I recently implemented, it 
should work.

This was somewhat a roundabout way of answering your question.  The more 
direct answer to your question is:  you suggestion has merit.  I can see how 
at least in the current situation you describe, which is already a Bacula 
abberation, it would improve the outcome.  The problem is that I need to 
think about this a lot more because it would change a rather fundamental way 
that Bacula currently works, and I am not sure what kinds of surprises it 
will give us.  When I don't fully understand what it will do (current 
situation) I find it is better to wait.    I think that my proposed solution 
above will resolve your problem by allowing you to keep the Virtual Full in 
the same Disk Pool, and then would allow you to continue doing Incremental 
backups -- this was my original idea in implementing Virtual Full -- for the 
moment, it is just not working correctly.   Hopefully my proposal would make 
your request almost moot.

Does that make sense to you?

Regards,

Kern

------------------------------------------------------------------------------
_______________________________________________
Bacula-devel mailing list
Bacula-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-devel

Reply via email to