I have 3 Disk pools, and 3 tape pools, for Incremental, Differential, and Full, which look thusly (only one reproduced here)
Pool {
Name = DiskFull
Pool Type = Backup
Recycle = yes
Auto Prune = yes
Volume Retention = 60 days
Maximum Volume Bytes = 20G
Maximum Volumes = 15
Label Format = "DiskFull-"
Action On Purge = Truncate
Recycle Pool = DiskFull
Next Pool = TapeFull
Migration Time = 2 minutes
}
Pool {
Name = TapeFull
Pool Type = Backup
Recycle = yes
Auto Prune = yes
Volume Retention = 181 days
Action On Purge = Truncate
Maximum Volume Bytes = 75G
Maximum Volumes = 15
Storage = STK-L700
}
I have the standard WeeklyCycle, and after each backup to the disk pool, the migrate job runs to migrate the job from the disk pool to the tape pool several hours later, with the following job:
Job {
Name = "MigrateDiskFullToTape"
Type = Migrate
Level = Full
Pool = DiskFull
Storage = File
Messages = Standard
Schedule = "MonthlyMigrateFullToTape"
Selection Type = PoolTime
SpoolData = no
Priority = 20
Purge Migration Job = yes
}
# Full Migration Schedule, 1st Sunday at 04:05
Schedule {
Name = "MonthlyMigrateFullToTape"
Run = Full 1st sun at 04:05
}
Jobs are successfully migrated, but somehow volumes are never recycled, witness the following volume (extracted from list volumes pool=TapeFull)
E01014L4 Full 2016-06-05 12:28:27
This has jobs on it which expired long ago; the volume should be marked for recycling, but isn't.
What have I missed ?
Yes, I have volumes with volstatus=Append, so I guess recycling will not happen just yet.
What I dont (yet) understand, is that I have volumes with volstatus=Full, which were last written to in the June 2016 timeframe. I would have thought, that with the pool definition Volume Retention time of 181 days, that after 6 months and one day after the tape was last written, it would automagically get purged, and be eligible for recycling, but this doesn't seem to happen, and I cannot figure out why. Should I lower the retention time on the volumes in question (its not a real tape robot anyway) and see if it gets purged automatically. Can I do that directly in the database (I dont want to change all volumes, just a single one to see if I can get bareos to purge the volume)
It dawns on my that I forgot to post the typical client setup, in case that is what is affecting my recycling (I dont think so). Anyway, the typical client.conf looks thusly:
Client {
Name = client-fd
Address = xxxxx
Password = "mytopsecretpassword"
File Retention = 60 days
Job Retention = 4 months
AutoPrune = yes
}
Job {
Name = "client"
Type = Backup
Client = client-fd
FileSet = "client"
Schedule = "WeeklyCycle"
Storage = File
Messages = Standard
Pool = File
Write Bootstrap = "/var/lib/bareos/%c.bsr"
Spool Attributes = yes
Full Backup Pool = DiskFull
Differential Backup Pool = DiskDifferential
Incremental Backup Pool = DiskIncremental
}