On Wed, Aug 24, 2005, Daniel Holtkamp wrote:

> Hi !
> 
> Trying to understand pools & volumes
> 
> Setup:
> Let`s say i only have a Default-Pool defined. Two Clients and two 
> seperate jobs. Also two (File-)Storage locations. Each client backups to 
> a seperate storage location BUT have the default-pool configured.
> 
> Does this work ? From the configuration there seem to be no ties between 
> the storage location and a pool. But i don`t understand what would 
> happen because Volume001 of the Default pool cannot be on two storage 
> locations right ?

The volumes are tied to a pool. You would have Volume001 in the first
storage location and Volume002 in the second storage location. E.g.

disk
+--- client1
|    +--- Volume001
+--- client2
     +--- Volume002

All depending on your schedule, naturally.

When you want to backup every client to his own storage location (or set
of media), you have to have a pool and a storage device for each client.
I recommend to work with include files in this case. I use a separate
file for each client and include them in bacula-dir.conf. 
At the end of bacula-dir.conf i have
@/path/to/conf/clients/Catalog
@/path/to/conf/clients/client1
@/path/to/conf/clients/client2
@/path/to/conf/clients/client3
..

And each client file looks basically like

---------8<---------8<---------8<---------8<---------8<---------8<---------8<
# http://localhost/opkg/doc/bacula/bacula/Configuring_Director.html

Client {
  Name           = @[EMAIL PROTECTED]
  Address        = @[EMAIL PROTECTED]
  FDPort         = 9102
  Catalog        = DefaultCatalog
  Password       = "@[EMAIL PROTECTED]" # pwd FileDaemon
  File Retention = 60 days
  Job Retention  = 6 months
  AutoPrune      = yes       # Remove expired File-/Jobinfos from Database
}

#
# ---------------------------------- STORAGE ----------------------------------
#

#
# Access devices from the Storage Daemon.
# Name and MediaType here and in the Storage Daemon's "Device"
# entry must be identical.
#

Storage {
  Name       = [EMAIL PROTECTED]@
  Address    = @[EMAIL PROTECTED]
  SDPort     = 9103
  Password   = "@[EMAIL PROTECTED]"
  Device     = [EMAIL PROTECTED]@
  Media Type = [EMAIL PROTECTED]@
}

#
# ----------------------------------- POOLS -----------------------------------
#

#
# Default pool definition (FIXEDDISK)
#

Pool {
  Name                 = @[EMAIL PROTECTED] # used monthly
  Pool Type            = Backup
  Label Format         = "0.full.${Job}.${NumVols:p/2/0/r}"
  Accept Any Volume    = yes         # use next available volume
  Maximum Volume Jobs  = 1
  Maximum Volumes      = 4
  Volume Retention     = 4 months    # catalog entries
  AutoPrune            = yes         # Prune expired volumes
  Recycle              = yes         # automatically recycle Volumes
}

Pool {
  Name                 = @[EMAIL PROTECTED] # used weekly
  Pool Type            = Backup
  Label Format         = "1.diff.${Job}.${NumVols:p/2/0/r}"
  Accept Any Volume    = yes         # use next available volume
  Maximum Volume Jobs  = 1
  Maximum Volumes      = 5
  Volume Retention     = 4 weeks
  AutoPrune            = yes         # Prune expired volumes
  Recycle              = yes         # automatically recycle Volumes
}

Pool {
  Name                 = @[EMAIL PROTECTED] # used daily
  Pool Type            = Backup
  Label Format         = "2.incr.${Job}.${NumVols:p/2/0/r}"
  Accept Any Volume    = yes         # use next available volume
  Maximum Volume Jobs  = 6           # whole week in one volume/file
  Maximum Volumes      = 4
  Volume Retention     = 24 days
  AutoPrune            = yes         # Prune expired volumes
  Recycle              = yes         # automatically recycle Volumes
}

#
# ------------------------------- FILESETS ------------------------------------
#

FileSet {
  Name = @[EMAIL PROTECTED]
  Ignore FileSet Changes = yes

  Include {
    Options {
      signature = MD5
      compression = GZIP9
      onefs = yes
      hardlinks = yes
    }
    File = /
  }
}

#
# -------------------------------- BACKUP JOBS --------------------------------
#

Job {
  Name                     = @[EMAIL PROTECTED]
  Client                   = @[EMAIL PROTECTED] 
  JobDefs                  = DefaultJob
  Storage                  = [EMAIL PROTECTED]@
  FileSet                  = @[EMAIL PROTECTED]
  Schedule                 = WeeklyCycle
  Full Backup Pool         = @[EMAIL PROTECTED]
  Differential Backup Pool = @[EMAIL PROTECTED]
  Incremental Backup Pool  = @[EMAIL PROTECTED]
  Write Bootstrap          = /opkg/var/bacula/@[EMAIL PROTECTED]
}
---------8<---------8<---------8<---------8<---------8<---------8<---------8<

The file for the Catalog looks like this:

---------8<---------8<---------8<---------8<---------8<---------8<---------8<

#
# Generic catalog service
#
Catalog {
  Name   = DefaultCatalog
  dbname = bacula; user = bacula; password = ""
}

#
# ---------------------------------- STORAGE ----------------------------------
#

#
# Access devices from the Storage Daemon.
# Name and MediaType here and in the Storage Daemon's "Device"
# entry must be identical.
#

Storage {
  Name       = FIXDISK-Catalog
  Address    = @[EMAIL PROTECTED]
  SDPort     = 9103
  Password   = "@[EMAIL PROTECTED]"
  Device     = FIXDISK-Catalog
  Media Type = File-Catalog
}

#
# ----------------------------------- POOLS -----------------------------------
#

#
# Default pool definition (FIXEDDISK)
#

Pool {
  Name                 = full-Catalog # used daily
  Pool Type            = Backup
  Label Format         = "0.full.${Job}.${NumVols:p/2/0/r}"
  Accept Any Volume    = yes         # use next available volume
  Maximum Volume Jobs  = 1
  Maximum Volumes      = 10
  Volume Retention     = 9 days      # catalog entries
  AutoPrune            = yes         # Prune expired volumes
  Recycle              = yes         # automatically recycle Volumes
}

#
# ------------------------------- FILESETS ------------------------------------
#

# This is the backup of the catalog
FileSet {
  Name = Catalog
  Include {
    Options {
      signature = MD5
      compression = GZIP9
    }
    File = /opkg/var/bacula/bacula.sql
  }
}

#
# -------------------------------- BACKUP JOBS --------------------------------
#

#
# Backup the catalog database (after the nightly save)
#
Job {
  Name            = Catalog-disk
  Client          = @[EMAIL PROTECTED] # where the director runs/the db resides
  JobDefs         = DefaultJob
  Storage         = FIXDISK-Catalog
  FileSet         = Catalog
  Level           = Full
  Schedule        = WeeklyCycleAfterBackup
  Pool            = full-Catalog
  # This creates an ASCII copy of the catalog
  RunBeforeJob    = "/opkg/libexec/bacula/make_catalog_backup bacula bacula"
  # This deletes the copy of the catalog
  RunAfterJob     = "/opkg/libexec/bacula/delete_catalog_backup"
  Write Bootstrap = "/opkg/var/bacula/Catalog-disk.bsr"
  Priority        = 11             # run after main backup
}

---------8<---------8<---------8<---------8<---------8<---------8<---------8<

And for the Catalog and each client there is a storage device. At the end
of bacula-sd.conf i have:
@/path/to/conf/clients/Catalog-sd
@/path/to/conf/clients/client1-sd
@/path/to/conf/clients/client2-sd
@/path/to/conf/clients/client3-sd
..

And each file looks like:

---------8<---------8<---------8<---------8<---------8<---------8<---------8<
Device {
  Name             = [EMAIL PROTECTED]@
  Media Type       = [EMAIL PROTECTED]@
  Archive Device   = /backup/bacula/fixdisk/@client@
  AlwaysOpen       = no
  RemovableMedia   = no
  Random Access    = yes
  RequiresMount    = no

  LabelMedia       = yes               # lets Bacula label unlabeled media
  AutomaticMount   = yes               # when device opened, read it
}
---------8<---------8<---------8<---------8<---------8<---------8<---------8<

Where "@client@" can be "Catalog".

Well, i'm running this for less than a month - maybe i have to play a bit
with the retention timings.


  (mk)


-- 
Matthias Kurz; Fuldastr. 3; D-28199 Bremen; VOICE +49 421 53 600 47
  >> Im prämotorischen Cortex kann jeder ein Held sein. (bdw) <<


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users

Reply via email to