> 
> Disclaimer: I am a user, not an official developer.
> 
> I've been thinking along the same lines, but have not come up with a
solution
> I like.
> 
> I have thought about this one, but the problem is the
> differentials/incrementals will still be based on it. Which causes
problems if
> say you only want to keep those jobs for 3 weeks, but the on site
backups can
> be kept for much longer.

I only use Incrementals so it isn't a problem, but yes, for
Differentials it would be a problem.

> 
> This is just a symptom though of the bigger issue where Bacula is not
designed
> at the moment with the concept of offsite backups in mind. Hacks
accomplish
> it, but it requires a good bit of workaround (duplicate jobs,
duplicate
> filesets, etc)
> 
> The best I have come up with is an option to have the name of a job be
changed
> upon completion via scripting or similar, and ensure that all tree
logic
> restricts by job name (Most of it does, but there are a few places you
have to
> tweak in code to accomplish this).
> 
> I am in the process of implementing the above, but not there yet,
mostly
> because I am stalled waiting for SAN access so that I may do full
backups to
> disk instead of the juggle imposed due to the requirement of different
pools /
> storage devices (yet not supporting separate SD's).
> 
> Let me know if you want to collaborate on patches. =)
> 

I think bacula needs the concept of a 'source pool' for a job. You'd
need to be able to list multiple pools for it to be useful though. One
idea I had was to be able to tag pools with one or more arbitrary tags.
Some examples of a tag might be 'Onsite', 'Offsite', 'Archive', 'Tape',
and 'Disk'. You'd then be able to specify a list of pools and/or tags
for a Job (and override in the schedule). Eg:


Pool {
  # local disk pool for Full backups
  Name = Full-Disk
  Source Tags = Disk | Onsite
  ...
}

Pool {
  # local disk pool for Incremental backups
  Name = Incremental-Disk
  Source Tags = Disk | Onsite
  ...
}

Pool {
  # local disk pool for Differential backups
  Name = Differential-Disk
  Source Tags = Disk | Onsite
  ...
}

Pool {
  # USB Removable disk - stored offsite when not in use
  Name = Disk-Offsite
  Source Tags = Disk | Offsite
}

Pool {
  # LTO Tape - stored offsite when not in use
  Name = Tape-Offsite
  Source Tags = Tape | Offsite
  ...
}
  
Job {
 ...
 Source = Onsite
 ...
 Schedule = MySchedule
}

Schedule {
  Name = "MySchedule"
  Run = Level=Incremental Sources=Onsite sun-sat at 12:00
  Run = Level=Incremental Sources=Onsite sun-sat at 15:00
  Run = Level=Differential Sources=Onsite sun-fri at 21:00
  Run = Level=Full Sources=Onsite sat at 21:00
  Run = Level=VirtualFull Sources=Onsite Pool=Tape-Offsite mon-fri at
21:01
}

So only Pools tagged with Onsite would be selected as the base job for
the Incrementals and Differentials. Sources= would maybe allow you to
specify both Source Tags and Pool resources.

This could be further extended to doing restores too. You can already
specify a Pool I think, but being able to specify a Tag would limit the
source media to only (say) Onsite pools.

Next Pool would go away, maybe.

Obviously the user is quite free to engineer an unworkable configuration
(eg Level=VirtualFull Source=Onsite Pool=Full-Disk) which could cause
bacula to try and read and write from different media on the same
storage device and deadlock, but I don't think that alone is reason to
shoot down this idea (I'm sure there will be plenty of those :)

Comments?

James


------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get
_______________________________________________
Bacula-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bacula-devel

Reply via email to