How does BackupWall verify that my backups can be restored?
BackupWall checks every object it reads against its hash, runs a daily integrity check that every stored object still exists, and runs a weekly restore check that restores a random sample into a scratch folder and compares it. You can also run Verify now on any point.
Verify now
On the Backup points page, open a point and choose Verify now. It confirms that every object the point references exists on the destination, and reads the content of a random sample (64 objects, up to 1 GiB per destination). It runs in the background. The result shows in the Integrity column as OK, Damaged·N or Error, and a damaged point raises the "Integrity damaged" alert.
Verification is sampled: the existence check covers every object, but the content check reads only a random sample.
The daily integrity check
Under Settings → Integrity, Backup Integrity runs a daily verification that every backed-up object still exists on its destination. Pick the Start time (server time). It lists each destination once and compares, so it is cheap even on large stores. A missing object is reported with its exact key.
The weekly restore check
The Restore check (also under Settings → Integrity) restores a random sample of every job's latest backup point into a private scratch directory, compares it with the backup, and deletes it. It is read-only on the destination.
- On by default: Sunday 10:00 server time. Change How often, Day and Start time, or set
RESTORE_CHECK_ENABLED=falsein/etc/backupwall/backupwall.envto turn the scheduled runs off. - What it restores: up to 20 random files per account (none over 64 MB, at most 256 MB per account), at least one of each storage kind the account has, and one database dump per job (up to 512 MB).
- Cost: it reads from your destinations, so on a remote destination it costs that much download traffic once a week.
- Alert: a failed check raises the
restore_check_failedalert. Last restore checks shows the newest check of each job.
Every restore checks hashes
Every object is checked against its hash when it is read back, and files with a recorded checksum are checked against that too. A damaged object is reported and not silently written. With encryption on, a tag that does not verify means a damaged object or another install's key.
Verify without BackupWall
bw-extract verify <point> checks that every object is there, and bw-extract verify <point> --deep reads everything back and checks every hash (it downloads the whole point). See Get your files out without BackupWall.