This episode ensures stored snapshots do not silently corrupt: scheduling a verify job that re-reads and validates every chunk's checksum, using the verify-new option for new snapshots, and performing integrity audits via task logs and datastore checks. A backup that corrupts undetected is a disaster waiting to happen.

Retention in episode 8 keeps storage lean — but there is a subtler threat: data that silently corrupts. Bit rot on disks, bad sectors, or chunk corruption can make snapshots unrestorable, and you only feel the problem when you need it most. Episode 9 covers verify & integrity check: how PBS ensures what is stored is still exactly what was sent.
Imagine it like a periodic warehouse audit: the staff opens every box, recounts the contents, and matches them against the list. Boxes with missing or damaged contents are flagged immediately — before the goods are actually shipped to the customer (restore).
Every PBS chunk has a checksum computed when it is written. A verify job re-reads each chunk from the datastore, recomputes its checksum, and matches it against the stored value. A match means the chunk is intact; a mismatch means corruption is detected and reported.
Verify differs from "seeing whether a file exists" — it actually reads the data from disk, so it catches bit rot and bad sectors that ls cannot see. For encrypted snapshots, verify validates chunk integrity without being able to read the contents (the server has no key — consistent with episode 7).
Create a verify job so it runs periodically — a healthy routine is monthly verification of the entire datastore:
proxmox-backup-manager verify job create \
--datastore store1 --schedule "sun 04:00"proxmox-backup-manager verify job listLarge datastores take a long time for a full verify. A common strategy: verify-new for new snapshots plus periodic verify for old ones.
The --verify-new option verifies a snapshot immediately after it is created — ideal for catching corruption in newly ingested data (e.g. RAM issues, full disk during writes, or flaky connections):
proxmox-backup-manager verify job update <id> --verify-newIn episode 3 we already enabled --verify-new when creating the datastore. The combination of --verify-new (immediate) + monthly verify (thorough) gives a double layer: new data is checked fast, old data is checked thoroughly.
Tip
Verify reads all data — it is a "disk read" exercise that can also reveal disk health earlier than smartctl in some cases. Do not forget to schedule verify on the remote PBS server receiving sync results too; synced snapshots need the same integrity assurance.
To verify a specific snapshot from a client:
proxmox-backup-client verify \
--repository backup@pbs@10.0.1.10:store1 \
vm/100/2026-08-13T02:00:04ZVerify status can also be seen from the web UI: Datastore → select a snapshot shows the last verification status. Snapshots never verified are clearly flagged — a soft alarm to schedule verify soon.
Every PBS operation (backup, verify, GC, sync, prune) is recorded as a task with a detailed log. In the web UI: Administration → Task Log. The verify log shows which chunks were verified and any errors found:
proxmox-backup-manager task list --since '1 hour ago'
proxmox-backup-manager task log <upid>proxmox-backup-manager task log opens the details of a single task. Make auditing the task log a routine: a verify failure left unaddressed is technical debt that will one day be paid with data.
PBS provides a direct integrity check on the server side:
proxmox-backup-manager datastore verify store1This command verifies all snapshots in the datastore and reports the result per snapshot. Run it periodically in a maintenance window — and if you find corruption, immediately compare with the remote sync result (episode 10): a snapshot also corrupted in two locations indicates corruption from the start, not local hardware damage.
Warning
Verify detects corruption but does not repair it — damaged chunks must be restored from another source (re-backup, or sync from a healthy remote server). Make sure your sync/off-site pipeline (episode 10) works as a data recovery mechanism as well as a backup.
Key takeaways:
proxmox-backup-manager verify job create) in quiet hours.--verify-new verifies new snapshots immediately after creation.proxmox-backup-client verify.proxmox-backup-manager task log) is the audit source for all operations.proxmox-backup-manager datastore verify checks the integrity of the entire datastore.In the next episode, episode 10, we will reach across locations: remote sync & off-site backup — creating a sync job that pulls snapshots from the local PBS to a remote PBS encrypted, scheduling it daily, and assembling a 3-2-1 strategy so a disaster in one location does not erase the future of your data!