[SOLVED] How does the Proxmox Backup Server _actually_ work? | compared to other backups

Apr 19, 2022
32
5
13
Hello everyone,

I have been running a Proxmox Backup Server in test mode for a few months. It is already running very well and I have been able to restore entire machines, volumes or files without any problems.
Nevertheless, I still lack the basic understanding of how the Proxmox Backup Server works.

Or to put it another way:
Explain as if I were five - I know backup solutions with weekly full backups, daily incremental backups or daily differential backups.
+ Where are my full backups with the PBS? Are there any at all? At what interval are they created?
+ With the classic combination of full backups and incremental backups, a corrupt incremental backup destroys all subsequent backups. How does PBS deal with this? I have already seen that the backup server requires incredibly few HDD resources.

Overall, I am thrilled with what I have seen of the Proxmox Backup Server so far. However, in order to go productive with it with a clear conscience, I need more knowledge about how the server _actually_ works.

I am looking forward to your answers.
 
  • Like
Reactions: Sasha
Or to put it another way:
Explain as if I were five - I know backup solutions with weekly full backups, daily incremental backups or daily differential backups.
+ Where are my full backups with the PBS? Are there any at all? At what interval are they created?
+ With the classic combination of full backups and incremental backups, a corrupt incremental backup destroys all subsequent backups. How does PBS deal with this? I have already seen that the backup server requires incredibly few HDD resources.

The backup client splits the disk image or file archive (pxar) into chunks. Every chunk is compressed (and encrypted, if an encryption key is set) and stored on the backup server's data store. Storage happens based on the chunk's hash, meaning that if there are multiple identical chunks, only one copy is saved (deduplication). Aside from the stored chunks, every backup snapshot also produces index files (.didx/.fidx). These index files are essentially are list of all chunks (identified by their hash) that are needed for this backup.

Essentially, with this system, every backup snapshot is a 'full backup' - however the data is automatically shared with other backups, reducing the amount of needed storage drastically.
In terms of data corruption: If chunk is corrupted, all backup snapshots that reference this particular chunk will be affected. If an index file is corrupted, only that particular snapshot is affected.

Verification jobs can be used to check if all chunks are clean, essentially it checks if the chunk's hash is equal to the expected one.

https://pbs.proxmox.com/docs/technical-overview.html#