Pools and Volumes — Organizing Your Storage

The storage hierarchy

Bareos organizes backup data in three layers:

Storage Daemon
  └── Pool (logical grouping)
       └── Volume (physical storage unit)
            └── Job data (backup content)

Understanding this hierarchy is essential for managing storage capacity — and it’s the foundation for everything Onesimus visualizes.

What is a Pool?

A Pool is a logical container that groups volumes with the same purpose and policies. Think of it as a filing cabinet with a specific label.

Common pool configurations:

PoolPurposeTypical settings
FullWeekly Full backupsLong retention, large volumes
IncrementalDaily Incremental backupsShort retention, smaller volumes
DifferentialWeekly Differential backupsMedium retention
ArchiveLong-term retentionVery long retention, write-once
ScratchUnused volumes ready for any poolNo retention, auto-assigned

Each pool has its own settings for:

  • Volume Retention — how long data is kept
  • Maximum Volume Size — how large a volume can grow
  • Maximum Volumes — how many volumes the pool can hold
  • Recycle — whether expired volumes can be reused
  • Auto-Prune — whether Bareos automatically removes expired data

What is a Volume?

A Volume is a physical storage unit — typically a file on disk, or a tape. It holds the actual backup data from one or more jobs.

Volume states in Bareos:

StatusMeaning
AppendCurrently accepting new data
FullReached maximum size, no more data accepted
UsedContains data, waiting for retention to expire
PurgedRetention expired, data pruned from catalog
RecycledReused for new data
ErrorSomething went wrong

The lifecycle: Append → Full → Used → Purged → Recycled → Append.

Why pools matter

Without pools, all backups go into one big pile. With pools, you can:

  • Separate backup levels — Full backups to large volumes, Incrementals to smaller ones
  • Different retention per type — keep Fulls for 90 days, Incrementals for 14
  • Different storage targets — Fulls to tape, Incrementals to disk
  • Copy and migration — move data between pools for offsite or archival

The Scratch Pool

The Scratch pool is special. It holds “blank” volumes that Bareos can automatically assign to any pool that needs space. When a pool needs a new volume and none are available, Bareos pulls one from Scratch.

This is useful because:

  • You don’t need to pre-assign volumes to specific pools
  • Storage is used on-demand
  • Recycled volumes can return to Scratch for reuse anywhere

Pool management in Onesimus

Pool management is coming in Onesimus v0.3.0 — visual pool overview with volume status and lifecycle tracking. Onesimus Pro will add consumption analysis per job and client, growth trends, and recycling recommendations.

The 5 core questions every backup admin asks are all about understanding pools and volumes — where storage goes, when it runs out, and how to optimize it.

Back to Knowledge Base →