I think I just stumbled on to something.
I was under the (false) assumption that the VirtualFull would just look at
previous backup jobs and consolidate them.
But instead of using 'FileSet = "None"', I tried 'FileSet = "LinuxSet"' and it
started working.
So I guess that means I need to create a VirtualFull job for each separate
client and their appropriate FileSet as well then?
Will this also be the case for the Copy jobs for the Offsite tapes? (I guess
so...)
Finally, I suspect that I may need to move the VirtualFull jobs from the
FullPool back into the Default Pool.
So that the next set of incremental backups will work from them.
Is that the case?
Or will Bacula be aware that there are full backups in a separate pool and
reference them accordingly?
If I do have to move them, a better solution may be to have the Default Pool
have "Next Pool" pointing to itself.
But then, would I be able to override the "Next Pool" directive somehow for the
Copy job?
Since I'd want off-site tapes to be written to their own tapes separate from
the other on-site backups.
Regards,
----------
Jim Barber
DDI Health
Jim Barber wrote:
Hi.
I have just started using Bacula for the first time.
I am using version 3.0.2 as packaged for Debian testing.
vc-dir Version: 3.0.2 (18 July 2009) i486-pc-linux-gnu debian squeeze/sid
The director and storage daemon are installed on to the same host with a Dell
TL2000 tape library attached.
This tape library has one autochanger servicing two drives.
I am backing up a mix of Linux and Windows clients, that after doing a full
backup of each, fills a little over 5 LTO-3 tapes.
I only have about 50 GB of free disk space, so I can't use a backup to disk and
then to tape strategy, so I am using disk as spool.
I've assigned 20 GB spool space to each drive in the tape library.
The plan I am hoping to achieve is as follows:
1. Incremental backups of all clients nightly, Monday to Friday.
2. Produce a VirtualFull backup after the incremental backup on Friday to
consolidate the week's incremental backups into a full backup.
3. Copy the newly created full backup to another set of tapes that can be taken
off-site.
My reasoning is that the clients will only ever need to do one full backup
(which takes over a day for all of them to complete).
From then on, they will only need to do incremental backups which regularly
get consolidated on the backup server into full backups.
This should keep backup times short at all times and minimise the amount of
data crossing the network.
I have separate pools defined for each of these steps all referring the to same
tape library.
I also have a scratch pool where I've placed all of my tapes so that the above
pools can pick from it as required.
So far step 1 is working out fine, but I'm having issues with step 2.
I haven't tried step 3 yet since it depends on a working step 2.
I've run incremental jobs a number of times and now want to create the
VirtualFull backup.
If I start the VirtualFull job manually it shows:
*run
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
A job name must be specified.
The defined Job resources are:
1: BackupBuildatron
2: BackupDavros
3: BackupDc1
4: BackupDc2
5: BackupFreddy
6: BackupMail
7: BackupSpirateam
8: BackupShadow
9: BackupVc
10: BackupWiki
11: BackupWikiHcn
12: FullBackup
13: CatalogBackup
14: OffsiteBackup
15: RestoreFiles
Select Job resource (1-15): 12
Run Backup job
JobName: FullBackup
Level: VirtualFull
Client: vc-fd
FileSet: None
Pool: Default (From Job resource)
Storage: TL2000 (From Storage from Pool's NextPool resource)
When: 2009-11-03 09:40:01
Priority: 11
OK to run? (yes/mod/no): yes
Job queued. JobId=67
The job immediately terminates and the messages are as follows:
03-Nov 09:40 vc-dir JobId 67: Start Virtual Backup JobId 67,
Job=FullBackup.2009-11-03_09.40.04_02
03-Nov 09:40 vc-dir JobId 67: Fatal error: No previous Jobs found.
03-Nov 09:40 vc-dir JobId 67: Error: Bacula vc-dir 3.0.2 (18Jul09):
01-Jan-1970 08:00:00
Build OS: i486-pc-linux-gnu debian squeeze/sid
JobId: 67
Job: FullBackup.2009-11-03_09.40.04_02
Backup Level: Virtual Full
Client: "vc-fd" 3.0.2 (18Jul09)
i486-pc-linux-gnu,debian,squeeze/sid
FileSet: "None" 2009-11-02 20:50:14
Pool: "FullPool" (From Job Pool's NextPool resource)
Catalog: "MyCatalog" (From Client resource)
Storage: "TL2000" (From Storage from Pool's NextPool
resource)
Scheduled time: 03-Nov-2009 09:40:01
Start time: 01-Jan-1970 08:00:00
End time: 01-Jan-1970 08:00:00
Elapsed time: 0 secs
Priority: 11
SD Files Written: 0
SD Bytes Written: 0 (0 B)
Rate: 0.0 KB/s
Volume name(s):
Volume Session Id: 0
Volume Session Time: 0
Last Volume Bytes: 0 (0 B)
SD Errors: 0
SD termination status:
Termination: *** Backup Error ***
The definitions in my /etc/bacula/bacula-sd.conf file follows.
Passwords are blanked out.
Storage {
Name = vc-sd
SDPort = 9103
WorkingDirectory = "/var/lib/bacula"
Pid Directory = "/var/run/bacula"
Maximum Concurrent Jobs = 20
}
Director {
Name = vc-dir
Password = ""
}
Director {
Name = vc-mon
Password = ""
Monitor = yes
}
Autochanger {
Name = TL2000
Device = Drive-0
Device = Drive-1
Changer Command = "/etc/bacula/scripts/mtx-changer %c %o %S %a %d"
Changer Device = /dev/sg5
}
Device {
Name = Drive-0
Drive Index = 0
Media Type = LTO
Archive Device = /dev/nst0
RemovableMedia = yes;
RandomAccess = no;
Maximum File Size = 4GB
AutoChanger = yes
Maximum Job Spool Size = 20g
Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
}
Device {
Name = Drive-1
Drive Index = 1
Media Type = LTO
Archive Device = /dev/nst1
RemovableMedia = yes;
RandomAccess = no;
Maximum File Size = 4GB
AutoChanger = yes
Maximum Job Spool Size = 20g
Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
}
Messages {
Name = Standard
director = vc-dir = all
}
The definitions in my /etc/bacula/bacula-dir.conf file follows.
Passwords are blanked out.
Clients and their backups jobs are left out except for the local host
(vc.ddihealth.com).
Only FileSets pertaining to the local host are shown.
Catalog, Console, and Messages entries are also left out as they are
unimportant (and unchanged from defaults).
I've left a comment where ever I've removed something.
Director{
Name = vc-dir
DIRport = 9101
QueryFile = "/etc/bacula/scripts/query.sql"
WorkingDirectory = "/var/lib/bacula"
PidDirectory = "/var/run/bacula"
Maximum Concurrent Jobs = 2
Password = ""
Messages = Daemon
}
JobDefs{
Name = "DefaultJob"
Type = Backup
Level = Incremental
Client = vc-fd
FileSet = "LinuxSet"
Schedule = "DailyBackupSchedule"
Messages = Standard
Pool = Default
Priority = 10
# Bootstrap file will be named after the job.
Write Bootstrap = "/var/lib/bacula/%n.bsr"
Spool Data = yes
# I may need to enable the following, based on I'll never get real full
backups, so might miss moved files without it.
# Accurate = yes
}
Job{
Name = "BackupVc"
JobDefs = "DefaultJob"
Client = vc-fd
}
### Jobs for other Linux and Windows clients removed...
# Consolidate incremental backups into a full backup.
Job{
Name = "FullBackup"
Type = Backup
Level = VirtualFull
Client = vc-fd
FileSet = "None"
Schedule = "FullBackupSchedule"
Messages = Standard
# The pool to consolidate from.
# The pool's 'Next Pool' directive defines where the VirtualFull backup
gets created.
Pool = Default
Accurate = yes
# Run after all client incremental backups are done.
Priority = 11
}
# Backup the catalog database.
Job{
Name = "CatalogBackup"
JobDefs = "DefaultJob"
Level = Full
FileSet = "Catalog"
Schedule = "CatalogBackupSchedule"
Pool = FullPool
RunBeforeJob = "/etc/bacula/scripts/make_catalog_backup bacula bacula"
RunAfterJob = "/etc/bacula/scripts/delete_catalog_backup"
# Run after client incremental backups and virtual full backups (if
run) are complete.
Priority = 12
}
# Copy the full backups over to tapes for off-site storage.
Job{
Name = "OffsiteBackup"
Type = Copy
Level = Full
Client = vc-fd
FileSet = "None"
Schedule = "OffsiteBackupSchedule"
Messages = Standard
# The pool to copy from (which has Next Pool defined for where to copy
to).
Pool = FullPool
Selection Type = PoolUncopiedJobs
Allow Duplicate Jobs = yes
Allow Higher Duplicates = no
# Run after the catalog backup has been done.
Priority = 13
}
# Incremental backups on the week days.
Schedule{
Name = "DailyBackupSchedule"
Run = mon-fri at 22:05
}
# This schedule is to consolidate the incremental backups into a full
backup.
Schedule{
Name = "FullBackupSchedule"
Run = fri at 22:10
}
# Backup the catalog.
Schedule{
Name = "CatalogBackupSchedule"
Run = mon-fri at 22:15
}
# This schedule is to create off-site tapes.
Schedule{
Name = "OffsiteBackupSchedule"
Run = fri at 22:20
}
Client{
Name = vc-fd
Address = localhost
Catalog = MyCatalog
Password = ""
File Retention = 3 months
Job Retention = 3 months
}
### Other client definitions for Linux and Windows clients removed...
Storage{
Name = TL2000
Address = vc.ddihealth.com
Password = ""
Device = TL2000
Media Type = LTO
Autochanger = yes
# Allow two jobs to this tape library so that we can utilise both
drives.
Maximum Concurrent Jobs = 2
}
FileSet{
Name = "LinuxSet"
Include {
@/etc/bacula/fileset-linux-exclude.conf
File = /
}
Exclude {
File = /dev
File = /lib/init/rw
File = /proc
File = /sys
File = /var/lib/bacula
File = /.journal
File = /.fsck
}
}
### Windows FileSets removed.
# Fake FileSet definition for jobs that don't use the FileSet field, but
still need it declared.
FileSet{
Name = "None"
Include {
Options {
signature = MD5
}
}
}
### Catalog and Messages definitions removed...
# Incremental backups go here.
Pool{
Name = Default
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Volume Retention = 13 days
Cleaning Prefix = "CLN"
Maximum Volumes = 22
Storage = TL2000
Scratch Pool = Scratch
Recycle Pool = Scratch
# The location where the virtual full backups will go.
Next Pool = FullPool
}
# VirtualFull and Catalog backups go here.
Pool{
Name = FullPool
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Volume Retention = 35 days
Cleaning Prefix = "CLN"
Maximum Volumes = 22
Storage = TL2000
Scratch Pool = Scratch
Recycle Pool = Scratch
# The location where the copies go for offsite backups.
Next Pool = CopyPool
}
# Offsite tapes get written here.
Pool{
Name = CopyPool
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Volume Retention = 6 days
Cleaning Prefix = "CLN"
Maximum Volumes = 22
Storage = TL2000
Scratch Pool = Scratch
Recycle Pool = Scratch
}
Pool{
Name = Scratch
Pool Type = Backup
Recycle Pool = Scratch
}
### Console directive removed...
Can anyone see why the VirtualFull backup can't find the previous backup jobs?
The "FullBackup" job is referring to the "Default" pool where the incremental
backups have been going.
The first ever incremental backups to the "Default" pool created Full backups
as expected.
The "Default" pool has "Next Pool" defined to be "FullPool".
I figured it should be able to find all the backups on the "Default" pool.
I've also tried just using a single "Default" pool with "Next Pool" pointing to
itself.
But I think that may possibly violate the Copy job I want to achieve later?
However I had exactly the same result with the VirtualFull backup trying this
method as well.
Thanks,
------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Bacula-users mailing list
Bacula-users AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users
|