Backup retention simulator (GFS)
Pick your backup hours and your keep-daily, keep-weekly, keep-monthly… rules: the calendar shows what Proxmox Backup Server keeps, what it removes, and gives you the configuration line.
In short
A GFS (grandfather-father-son) rotation keeps recent backups close together and older ones further apart: for example 7 daily, 4 weekly and 12 monthly, which is 23 restore points over slightly more than a year. In PBS it is written with the keep-daily, keep-weekly and keep-monthly options of a prune job. This simulator applies the same logic as PBS and shows the result day by day.
The simulator
7 daily, 4 weekly, 12 monthly.
Result after the last prune
23 kept out of 730 backups
380 days before the latest backup
Configuration to copy
proxmox-backup-manager prune-job create retention --store <datastore> --schedule daily --keep-daily 7 --keep-weekly 4 --keep-monthly 12
2:00
Replace <datastore> with your datastore name. Set retention in one place only: on the PBS side, in the prune job.
Backup calendar
One cell per day, one segment per backup: the colour of the rule that keeps it, light grey if the prune removes it. Hover a cell for details.
Kept points (23)
| # | Date | Rule |
|---|---|---|
| 1 | 15 Oct 2026, 02:00 | keep-daily #1 |
| 2 | 14 Oct 2026, 02:00 | keep-daily #2 |
| 3 | 13 Oct 2026, 02:00 | keep-daily #3 |
| 4 | 12 Oct 2026, 02:00 | keep-daily #4 |
| 5 | 11 Oct 2026, 02:00 | keep-daily #5 |
| 6 | 10 Oct 2026, 02:00 | keep-daily #6 |
| 7 | 9 Oct 2026, 02:00 | keep-daily #7 |
| 8 | 4 Oct 2026, 02:00 | keep-weekly #1 |
| 9 | 27 Sept 2026, 02:00 | keep-weekly #2 |
| 10 | 20 Sept 2026, 02:00 | keep-weekly #3 |
| 11 | 13 Sept 2026, 02:00 | keep-weekly #4 |
| 12 | 31 Aug 2026, 02:00 | keep-monthly #1 |
| 13 | 31 Jul 2026, 02:00 | keep-monthly #2 |
| 14 | 30 Jun 2026, 02:00 | keep-monthly #3 |
| 15 | 31 May 2026, 02:00 | keep-monthly #4 |
| 16 | 30 Apr 2026, 02:00 | keep-monthly #5 |
| 17 | 31 Mar 2026, 02:00 | keep-monthly #6 |
| 18 | 28 Feb 2026, 02:00 | keep-monthly #7 |
| 19 | 31 Jan 2026, 02:00 | keep-monthly #8 |
| 20 | 31 Dec 2025, 02:00 | keep-monthly #9 |
| 21 | 30 Nov 2025, 02:00 | keep-monthly #10 |
| 22 | 31 Oct 2025, 02:00 | keep-monthly #11 |
| 23 | 30 Sept 2025, 02:00 | keep-monthly #12 |
Storage and cost estimate
Assumption: 0.5% of the volume changes every day, 70% of those changes hit the same blocks as the day before, ×1 reduction. The first point counts as the whole volume, each following point as the changes since the previous one.
Assumptions in detail
The two bounds bracket the share of overlapping changes:
- If every change overlaps (100%), each point adds only one day of changes: 1.11 TB.
- If none overlaps (0%), each point adds every change since the previous one, capped at the protected volume: 2.90 TB.
Deduplication and compression are not promised: leave 1.0 until you have measured the ratio on your data.
Priced per TB, no cap and no per-host or per-VM price. Exact configuration and ordering: pricing and configurator.
Space is not freed by the prune, which only removes the backups' indexes. It is freed by the next garbage collection, and only for chunks last accessed more than 24 h 05 min before the GC started (or before the oldest backup still running started). Allow at least a day, and a scheduled GC, between the prune and the space coming back. (PBS documentation, garbage collection)
To size a ZFS pool precisely (RAIDZ, usable space), use the ZFS RAIDZ capacity and PBS storage calculator.
Where the calculation comes from
Proxmox publishes its own tool, the prune simulator in the PBS documentation. We are not the first: our simulator uses the same selection rule, and we compared it with theirs on 7 test cases on 15 October 2026 (GFS rotation, hourly backups, ISO year boundary, week 53, daylight saving changes): same input, same list of kept backups, same rule for each. What we add: a dated calendar, the configuration line, a storage estimate and the pitfalls below. The rule itself is described in the PBS documentation on pruning.
GFS rotation, translated into PBS options
The GFS scheme comes from tapes: a "son" tape each day, a "father" each week, a "grandfather" each month. You keep many recent points, because that is where most restores happen, and few old ones, to go back far without storing everything. PBS has no "GFS" option: the rotation is built from its keep-* rules.
| GFS level | PBS option | What it keeps |
|---|---|---|
| — | keep-last | The last N backups, whatever their date |
| — | keep-hourly | The latest backup of each of the last N hours that have one |
| Son | keep-daily | The latest of each of the last N days that have one |
| Father | keep-weekly | The latest of each of the last N ISO weeks (Monday → Sunday) |
| Grandfather | keep-monthly | The latest of each of the last N months |
| Archive | keep-yearly | The latest of each of the last N years |
The rules chain: a week whose backup is already kept by keep-daily does not use up a slot in keep-weekly, which then reaches further back. That is why 7/4/12 gives 23 points, not fewer. The prune job is set on the PBS; the page Proxmox Backup Server, from installation to maintenance shows where it fits, alongside garbage collection and verify.
Three retention pitfalls
1. A keep-last set too low that removes yesterday's backup
keep-last counts backups, not days. With a backup every hour and keep-last 3 as the only rule, at 11 pm only the 9 pm, 10 pm and 11 pm backups remain: last night's is already gone. A manual backup before an upgrade also takes a slot. Always add a keep-daily: select every hour in the simulator with keep-last alone to see it.
2. Client-side and server-side pruning that stack up
Proxmox VE can also prune after each backup (storage or backup job retention), and so can proxmox-backup-client prune. If one retention runs on the client and another on the PBS, a backup survives only if both keep it. Example, with one backup a day: keep-last 7 in Proxmox VE and a 7/4/12 rotation on the PBS leave only 7 points, because the client removes the weekly and monthly ones. Set retention in one place, preferably on the PBS. On NimbusBackup, the account we deliver cannot delete anything: retention is set on the server side.
3. A sync job that does not necessarily replicate the same retention
A sync job copies backups, not the retention policy. Without a prune job on the destination PBS, the copy grows forever. With the remove-vanished option, it does the opposite and deletes whatever disappeared at the source, including an accidental or malicious deletion. And transfer-last only copies the last N backups of each group. Give the copy its own retention, and check it here (sync job documentation).
Frequently asked questions
How does Proxmox Backup Server decide which backups to keep?
PBS applies the rules in the order keep-last, keep-hourly, keep-daily, keep-weekly, keep-monthly, keep-yearly. Each rule keeps the latest backup of each hour, day, week, month or year, skipping periods already covered by an earlier rule. A period without a backup does not count, and weeks are ISO weeks, Monday to Sunday. Anything no rule keeps is removed by the prune.
How many restore points does a 7/4/12 GFS rotation give?
Once the history has built up, keep-daily 7, keep-weekly 4 and keep-monthly 12 keep 23 backups. With one backup a day at 2 am, on 15 October 2026, the oldest dates from 30 September 2025, 380 days back. The monthly points start after the months already covered by the daily and weekly ones, hence slightly more than a year.
Why doesn't disk usage drop right after a prune?
A prune only removes the backups' indexes. Data chunks are freed by the next garbage collection, and only if they have not been used for at least 24 hours and 5 minutes before the GC started (or before the oldest backup still running started). You therefore need a scheduled GC and at least a day of waiting.
How long are you legally required to keep backups?
There is no single period. The GDPR requires keeping data no longer than its purpose needs, and other laws set periods for specific kinds of data. The period is therefore decided data set by data set; our article on GDPR and backups covers these obligations. The 1-year compliance preset is an example, not a legal requirement.
For retention periods and their sources: GDPR and data backup: the obligations.
What next
You now know how many points to expect and how much storage to plan for. NimbusBackup plans are billed per TB, with retention set on the server side; the configurator gives the exact price for your volume and protection level.
Unsure about your retention policy?
We review your schedule and keep-* rules, on the Proxmox VE side and on the PBS side. A 15-minute tech chat, no commitment.
