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:
| Pool | Purpose | Typical settings |
|---|---|---|
| Full | Weekly Full backups | Long retention, large volumes |
| Incremental | Daily Incremental backups | Short retention, smaller volumes |
| Differential | Weekly Differential backups | Medium retention |
| Archive | Long-term retention | Very long retention, write-once |
| Scratch | Unused volumes ready for any pool | No 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:
| Status | Meaning |
|---|---|
| Append | Currently accepting new data |
| Full | Reached maximum size, no more data accepted |
| Used | Contains data, waiting for retention to expire |
| Purged | Retention expired, data pruned from catalog |
| Recycled | Reused for new data |
| Error | Something 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.