Proxmox Backup Server is written mostly in Rust[6] and implements data deduplication to reduce the storage space needed.[7] Data is split into chunks.[8]
History
Development of Proxmox Backup originally began in October 2018 to provide more efficient backup for the virtualization platform Proxmox Virtual Environment than the integrated vzdump backup tool which only allows full backups. In July 2020, the first public beta was announced. Its first stable release was announced in November, 2020.[9]
Operation
Proxmox Backup uses a client-server model where the server stores the backup data. The client tool works on most modern Linux systems. The software is installed bare-metal with an ISO image, which includes management tools and a web-based GUI. Administrators can manage the system via a Web browser or a command-line interface (CLI). Proxmox Backup Server also provides a REST API for third party tools.
Proxmox Backup Server supports incremental backups, data deduplication, Zstandard compression and authenticated encryption (AE).[3] The first backup is a full backup, and subsequent backups are sent incrementally from the client to the Proxmox Backup Server, where data is deduplicated.
Backups can be stored on-premises or synchronized to remote locations with Remotes,[10] and multiple, unrelated hosts can use the same backup server. All client-server traffic is transferred over TLS-1.3 to protect against eavesdropping. To further protect backup data at rest, optional encryption of all backed-up-data is available using AES-256 in Galois/Counter Mode.[11] As the backup server can not access the backup data without the matching encryption keys, it can even be an untrusted host.
Data retention policy can be defined in Proxmox Backup Server. Removing expired data is done in two phases: first, prune removes indices of the backups which are no longer needed, and then garbage collector process is running to physically delete the orphaned data chunks.[12]
PBS supports using namespaces, which allows to store backups from multiple PVE servers with duplicate VM IDs.[13]
Client software
For the Proxmox VE platform, the Proxmox Backup client is tightly integrated; the backup storage is configurable as a storage backend on a Proxmox VE node and supports deduplicated backups of QEMU virtual machines and LXC containers.[14] The platform also leverages QEMU dirty-bitmaps, which allows for fast backups from the Proxmox VE client to the server, as the disk images do not need to be scanned for changes.[15]
PBS can be also used via separate text based application Proxmox Backup Client application.[16]