Bacula-users

Re: [Bacula-users] How to organize File-Bases Volumes...

2011-01-27 08:51:23
Subject: Re: [Bacula-users] How to organize File-Bases Volumes...
From: Phil Stracchino <alaric AT metrocast DOT net>
To: ml ml <mliebherr99 AT googlemail DOT com>
Date: Thu, 27 Jan 2011 08:48:51 -0500
On 01/27/11 06:59, ml ml wrote:
> If i set Maximum Volume Bytes = 10GB then it uses the full 10GB at the
> very first run as full-backup. But the increments later get always
> written to new Volume Files. E.g.
> Volume-0001: 10GB (from full run)
> Volume-0002: 10GB (from full run)
> Volume-0003: 10GB (from full run)
> Volume-0004: 126MB (from full run)
> Volume-0005: 7MB (incremental run later on...)
> 
> I would have expected, that it would ALWAYS append to my volume until
> it reaches its "Maximum Volume Bytes" (here 10GB) limit.

If you're using a maximum volume size, then yes, Bacula should append to
a volume as long as it remains appendable, then when it reaches the size
limit, it should mark it Full and create a new volume.

What is the volume status of each of these volumes?  There really isn't
enough information here to analyze the problem.


> Again, here is my Pool Definition:
> 
> Pool {
>  Name = File
>  Pool Type = Backup
>  Recycle = yes                       # Bacula can automatically recycle 
> Volumes
>  AutoPrune = yes                     # Prune expired volumes
>  Volume Retention = 14 days
>  Maximum Volume Bytes = 10GB
>  Maximum Volumes = 500
>  Label Format = "Volume-"
> }

Again, I personally recommend against using Maximum Volume Bytes to
manage creation of disk volumes, unless you are planning to copy the
volumes off to fixed-size media later.  A fixed maximum volume size may
waste disk space because it can mix jobs with different expiration dates
on the same volume, and may unnecessarily split jobs across multiple
volumes.  If one is using disk-based volumes where volume size is
flexible, I prefer to manage volumes by level and use window, so that
any given volume contains only jobs with the same expiration date, and
as a result entire volumes are pruned at once and can be purged and deleted.


These are my disk pools:

Pool {
  Name = Scratch
  Storage = babylon4-file
  Pool Type = Backup
}

Pool {
  Name = VirtualFull
  Storage = babylon4-virtual
  Pool Type = Backup
  Recycle = no
  Recycle Oldest Volume = no
  Recycle Current Volume = no
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 2 months
  Maximum Volume Jobs = 1
  Label Format =
"VIRTUAL-$Year${Month:p/2/0/r}${Day:p/2/0/r}-${Hour:p/2/0/r}:${Minute:p/2/0/r}-$Client"
  RecyclePool = Scratch
}

Pool {
  Name = Full-Disk
  Storage = babylon4-file
  Pool Type = Backup
  Recycle = no
  Recycle Oldest Volume = no
  Recycle Current Volume = no
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 2 months
  Maximum Volume Jobs = 0
  Volume Use Duration = 23h
  Label Format =
"FULL-$Year${Month:p/2/0/r}${Day:p/2/0/r}-${Hour:p/2/0/r}:${Minute:p/2/0/r}"
  RecyclePool = Scratch
  NextPool = VirtualFull
}

Pool {
  Name = Diff-Disk
  Storage = babylon4-file
  Pool Type = Backup
  Recycle = no
  Recycle Oldest Volume = no
  Recycle Current Volume = no
  AutoPrune = yes
  Volume Retention = 2 months
  Maximum Volume Jobs = 0
  Volume Use Duration = 23h
  Label Format =
"DIFF-$Year${Month:p/2/0/r}${Day:p/2/0/r}-${Hour:p/2/0/r}:${Minute:p/2/0/r}"
  RecyclePool = Scratch
  NextPool = VirtualFull
}

Pool {
  Name = Incr-Disk
  Storage = babylon4-file
  Pool Type = Backup
  Recycle = no
  Recycle Oldest Volume = no
  Recycle Current Volume = no
  AutoPrune = yes
  Volume Retention = 1 month
  Maximum Volume Jobs = 0
  Volume Use Duration = 23h
  Label Format =
"INCR-$Year${Month:p/2/0/r}${Day:p/2/0/r}-${Hour:p/2/0/r}:${Minute:p/2/0/r}"
  RecyclePool = Scratch
  NextPool = VirtualFull
}


And this is the current contents of my /spool/bacula ZFS filesystem:

-rw-r----- 1 root root 120820845787 Dec  6 21:13 FULL-20101206-04:30
-rw-r----- 1 root root   3586058535 Dec 22 07:25 FULL-20101222-07:23
-rw-r----- 1 root root  35261385704 Dec 27 04:57 DIFF-20101227-04:30
-rw-r----- 1 root root  10084447358 Dec 30 05:08 INCR-20101230-04:30
-rw-r----- 1 root root   3467882684 Dec 30 05:12 FULL-20101230-05:09
-rw-r----- 1 root root   6184189544 Dec 31 04:55 INCR-20101231-04:30
-rw-r----- 1 root root   4775370142 Jan  1 04:59 INCR-20110101-04:40
-rw-r----- 1 root root   5502831112 Jan  2 04:57 INCR-20110102-04:35
-rw-r----- 1 root root   4802846686 Jan  4 22:49 FULL-20110104-22:46
-rw-r----- 1 root root  12672560405 Jan  7 04:59 INCR-20110107-04:30
-rw-r----- 1 root root   8370869102 Jan  8 04:59 INCR-20110108-04:30
-rw-r----- 1 root root   9248419080 Jan  9 04:59 INCR-20110109-04:30
-rw-r----- 1 root root 201266283011 Jan 10 05:26 FULL-20110109-20:01
-rw-r----- 1 root root  11307886168 Jan 10 05:48 DIFF-20110110-05:26
-rw-r----- 1 root root  10417192609 Jan 10 09:43 VIRTUAL-20110110-08:58
-rw-r----- 1 root root   1812020641 Jan 10 10:15
VIRTUAL-20110110-09:56-spikyfishthing
-rw-r----- 1 root root  19484251702 Jan 11 05:29 INCR-20110111-04:30
-rw-r----- 1 root root  10614299359 Jan 12 04:59 INCR-20110112-04:30
-rw-r----- 1 root root   8910044456 Jan 13 04:58 INCR-20110113-04:30
-rw-r----- 1 root root  10182033050 Jan 14 04:59 INCR-20110114-04:30
-rw-r----- 1 root root  21556383114 Jan 15 05:12 INCR-20110115-04:30
-rw-r----- 1 root root  10216496800 Jan 16 04:59 INCR-20110116-04:30
-rw-r----- 1 root root  22852549541 Jan 17 05:10 DIFF-20110117-04:30
-rw-r----- 1 root root   9275750350 Jan 18 04:59 INCR-20110118-04:30
-rw-r----- 1 root root   9210496054 Jan 19 04:58 INCR-20110119-04:30
-rw-r----- 1 root root  13107614131 Jan 20 04:58 INCR-20110120-04:30
-rw-r----- 1 root root  10421076767 Jan 21 04:59 INCR-20110121-04:30
-rw-r----- 1 root root  10014814262 Jan 22 04:59 INCR-20110122-04:30
-rw-r----- 1 root root  10690472066 Jan 23 04:59 INCR-20110123-04:30
-rw-r----- 1 root root  11998461170 Jan 26 04:57 INCR-20110126-04:30
-rw-r----- 1 root root   9545634458 Jan 27 04:57 INCR-20110127-04:30

As you can see here, each volume contains a single day's jobs at one
level, and each can be deleted individually as that day's jobs reach
their retention limit without any wasted space.  (Deleting expired
volumes from the disk is handled by an external script.)


You also need to be aware that using dedicated pools per client means
that you need to have a dedicated storage device per client, because any
given storage device can only ever have a single volume mounted at once.
 So if you're using pool-per-client, you lose the ability to run
concurrent backups on multiple clients unless you use multiple Storage
devices.


-- 
  Phil Stracchino, CDK#2     DoD#299792458     ICBM: 43.5607, -71.355
  alaric AT caerllewys DOT net   alaric AT metrocast DOT net   phil AT 
co.ordinate DOT org
         Renaissance Man, Unix ronin, Perl hacker, Free Stater
                 It's not the years, it's the mileage.

------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
Bacula-users mailing list
Bacula-users AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users

<Prev in Thread] Current Thread [Next in Thread>