Proxmox Backup Server 3.3 → 3.4
8 releases · 2 breaking changes · 2 security fixes · 0 advisories fixed
2security2breaking0deprecated50feature14fix
Breaking changes
- breaking fix #4382: api: access control: remove permissions of token on deletion. in 3.3.7
- breaking fix #3336: datastore: remove group if the last snapshot is removed to avoid confusing situations where the group directory still exists and blocks re-creating a group with another owner even though the empty group was not visible in the web UI. in 3.3.5
Security changes
- security Several vulnerabilities in GRUB that could be used to bypass SecureBoot were discovered and fixed (PSA-2025-00005-1) The Documentation for SecureBoot now includes instructions to prevent using vulnerable components for booting via a revocation policy. in 3.4
- security api: datastore list: move checking if a datastore is mounted after we ensured that the user may actually access it. While this had no effect security wise, it could significantly increase the cost of this API endpoint in big setups with many datastores and many tenants that each have only access… in 3.3.3
Every release in between
featureLatest 6.8.12-9 Kernel as new stable default
featurePerformance improvements for garbage collection. Garbage collection frees up storage space by removing unused chunks from the datastore. For this, it has to mark all chunks that are currently in use by backup snapshots. The marking phase now uses a cache to avoid redundant marking operations. This…
featureMore fine-grained control over backup snapshot selection for sync jobs. Sync jobs are useful for pushing or pulling backup snapshots to or from remote Proxmox Backup Server instances. Group filters already allow selecting which backup groups should be synchronized. In addition, it is now possible…
featureStatic build of the Proxmox Backup command-line client. Proxmox Backup Server is tightly integrated with Proxmox VE, but its command-line client can also be used outside Proxmox VE. Packages for the command-line client are already provided for hosts running Debian or Debian derivatives. A new…
featureLatest Linux 6.14 kernel available as opt-in kernel.
featureAllow configuring a default realm which will be pre-selected in the login dialog (issue 5379).
featureThe prune simulator now allows specifying schedules with both range and step size (issue 6069).
featureEnsure that the prune simulator shows kept backups in the list of backups.
featureFix an issue where the GUI would not fully load after navigating to the "Prune & GC Jobs" tab in rare cases.
featureDeleting the comment of an API token is now possible.
featureVarious smaller improvements to the GUI.
featureFix some occurrences where translatable strings were split, which made potentially useful context unavailable for translators.
featurePerformance improvements for garbage collection (issue 5331). Garbage collection frees up storage space by removing unused chunks from the datastore. For this, its first phase updates the atime (access time) of all chunk files that are currently in use by backup snapshots. The marking phase now…
featureAdd a safeguard against filesystems that do not honor atime updates (issue 5982). The first phase of garbage collection marks used chunk files by explicitly updating their atime. If the filesystem backing the chunk store does not honor such atime updates, phase two may delete chunks that are still…
featureAllow to customize the atime cutoff for garbage collection in the datastore's tuning options. The atime cutoff defaults to 24 hours and 5 minutes, as a safeguard for filesystems that do not always immediately update the atime. However, on filesystems that do immediately update the atime, this can…
featureAllow to generate a new token secret for an API token via the API and GUI (issue 3887).
featureRevert a check for known but missing chunks when creating a new backup snapshot (reverts fix for issue 5710). This check was introduced in Proxmox Backup Server 3.3 to enable clients to re-send chunks that disappeared. However, the check turned out to not scale well for large setups, as reported…
featureEnsure proper unmount if the creation of a removable datastore fails.
featureRemove a backup group if its last backup snapshot is removed (issue 3336). Previously, the empty backup group persisted with the previous owner still set. This caused issues when trying to add new snapshots with a different owner to the group.
featureDecouple the locking of backup groups, snapshots, and manifests from the underlying filesystem of the datastore (issue 3935). Lock files are now created on the tmpfs under /run instead of the datastore's backing filesystem. This can also alleviate issues concerning locking on datastores backed by…
featureEnsure that permissions of an API token are deleted when the API token is deleted (issue 4382).
featureEnsure that chunk files are inserted with the correct owner if the process is running as root.
featureFix an issue where prune jobs would not write a task log in some cases, causing the tasks to be displayed with status "Unknown".
featureWhen listing datastores, parse the configuration and check the mount status after the authorization check. This can lead to performance improvements on large setups.
featureImprove the error reporting by including more details (for example the errno) in the description.
featureEnsure that "Wipe Disk" also wipes the GPT header backup at the end of the disk (issue 5946).
featureEnsure that the task status is reported even if logging is disabled using the PBS_LOG environment variable.
featureFix an issue where proxmox-backup-manager would write log output twice.
featureFix an issue where a worker task that failed during start would not be cleaned up.
featureFix a race condition that could cause an incorrect update of the number of current tasks.
featureIncrease the locking timeout for the task index file to alleviate issues due to lock contention.
featureFix an issue where verify jobs would be too eagerly aborted if the manifest update fails.
featureFix an issue where file descriptors would not be properly closed on daemon reload.
featureFix an issue where the version of a remote Proxmox Backup Server instance was checked incorrectly.
featureStatic build of the Proxmox Backup command-line client (issue 4788). Proxmox Backup Server is tightly integrated with Proxmox VE, but its command-line client can also be used outside Proxmox VE. Packages for the command-line client are already provided for hosts running Debian or Debian…
featureAllow to read passwords from credentials passed down by systemd. Examples are the API token secret for the Proxmox Backup Server, or the password needed to unlock the encryption key.
featureImprovements to the vma-to-pbs tool, which allows importing Proxmox Virtual Machine Archives (VMA) into Proxmox Backup Server:
featureOptionally read the repository or passwords from environment variables, similarly to proxmox-backup-client.
featureAdd support for the --version command-line option.
securitySeveral vulnerabilities in GRUB that could be used to bypass SecureBoot were discovered and fixed (PSA-2025-00005-1) The Documentation for SecureBoot now includes instructions to prevent using vulnerable components for booting via a revocation policy.
+22 more items in the release notes3.3.7 Apr 5, 2025
fixfix #5982: garbage collection: add a check to ensure that the underlying file system supports and honors file access time (atime) updates. The check is performed once on datastore creation and on start of every garbage collection (GC) task, just to be sure. It can be disabled in the datastore…
othergarbage collection: support setting a custom access time cutoff, overriding the default of one day and five minutes.
otherui: expose flag for GC access time support safety check and the access time cutoff override in datastore tuning options.
otherdocs: describe rationale for new GC access time update check setting and the access time cutoff check in tuning options.
featureaccess control: add support to mark a specific authentication realm as default selected realm for the login user interface.
breakingfix #4382: api: access control: remove permissions of token on deletion.
fixfix #3887: api: access control: allow users to regenerate the secret of an API token without changing any existing ACLs.
fixfix #6072: sync jobs: support flags to limit sync to only encrypted and/or verified snapshots.
featureui: datastore tuning options: expose overriding GC cache capacity so that admins can either restrict the peak memory usage during GC or allow GC to use more memory to reduce file system IO even for huge (multiple TiB) referenced data in backup groups.
otherui: datastore tuning options: increase width and rework labels to provide a tiny bit more context about what these options are.
otherui: sync job: increase edit window width to 720px to make it less cramped.
otherui: sync job: small field label casing consistency fixes.
3.3.6 Apr 3, 2025
otherdatastore: ignore group locking errors when removing snapshots, they normally happen only due to old-locking, and the underlying snapshot is deleted in any case at this point, so it's no help to confuse the user.
featureapi: datastore: add error message on failed removal due to old locking and tell any admin what they can do to switch to the new locking.
featureui: only add delete parameter on token edit, not when creating tokens.
featurepbs-client: allow reading fingerprint from system credential.
otherdocs: client: add section about system credentials integration.
3.3.5 Apr 2, 2025
otherapi: config: use guard for unmounting on failed datastore creation
otherclient: align description for backup specification to docs, using archive-name and type over label and ext.
featureclient: read credentials from CREDENTIALS_DIRECTORY environment variable following the "System and Service Credentials" specification. This allows users to use native systemd capabilities for credential management if the proxmox-backup-client is used in systemd units or, e.g., through a wrapper…
fixfix #3935: datastore/api/backup: move datastore locking to '/run' to avoid that lock-files can block deleting backup groups or snapshots on the datastore and to decouple locking from the underlying datastore file-system.
fixapi: fix race when changing the owner of a backup-group.
breakingfix #3336: datastore: remove group if the last snapshot is removed to avoid confusing situations where the group directory still exists and blocks re-creating a group with another owner even though the empty group was not visible in the web UI.
featurenotifications: clean-up and add dedicated types for all templates as to allow declaring that interface stable in preparation for allowing overriding them in the future (not included in this release).
featuretape: introduce a tape backup job worker-thread option for restores. Depending on the underlying storage using more threads can dramatically improve the restore speed. Especially fast storage with low penalty for random access, like flash-storage (SSDs) can profit from using more worker threads.…
othergarbage collection: generate index file list via datastore iterators in a structured manner.
fixfix #5331: garbage collection: avoid multiple chunk atime updates by keeping track of the recently marked chunks in phase 1 of garbage to avoid multiple atime updates via relatively expensive utimensat (touch) calls. Use a LRU cache with size 32 MiB for tracking already processed chunks, this…
featurelogging helper: use new builder initializer – not functional change intended.
3.3.4 Mar 13, 2025
fixfix #6185: client/docs: explicitly mention archive name restrictions
otherdocs: using-the-installer: adapt to raised root password length requirement
otherdisks: wipe: replace dd with write_all_at for zeroing disk
fixfix #5946: disks: wipe: ensure GPT header backup is wiped
otherdocs: fix hash collision probability comparison
3.3.3 Feb 11, 2025
securityapi: datastore list: move checking if a datastore is mounted after we ensured that the user may actually access it. While this had no effect security wise, it could significantly increase the cost of this API endpoint in big setups with many datastores and many tenants that each have only access…
fixRevert "fix #5710: api: backup: stat known chunks on backup finish" due to a big performance impact relative to what this is protectign against. We will work out a more efficient fix for this issue in the future.
otherprune simulator: show backup entries that are kept also in the flat list of backups, not just in the calendar view.
otherdocs: improve the description for the garbage collection's cut-off time
otherpxar extract: correctly honor the overwrite flag
featureapi: datastore: add missing log context for prune to avoid a case where the worker state being unknown after it finished.
otherdocs: add synopsis and basic docs for prune job configuration
otherbackup verification: handle manifest update errors as non-fatal to avoid that the job fails, as we want to continue with verificating the rest to ensure we uncover as much potential problems as possible.
fixfix #4408: docs: add 'disaster recovery' section for tapes
fixfix #6069: prune simulator: correctly handle schedules that mix both, a range and a step size at once.
fixclient: pxar: fix a race condition where the backup upload stream can miss an error from the create archive function, because the error state is only set after the backup stream was already polled. This avoids a edge case where a file-based backup was incorrectly marked as having succeeded while…
3.3.2 Dec 10, 2024
fixfile-restore: fix regression with the new blockdev method used to pass disks of a backup to the isolated virtual machine.
3.3.1 Dec 3, 2024
featuretree-wide: add missing O_CLOEXEC flags to openat calls to avoid passing any open FD to new child processes which can have undesired side-effects like keeping a lock open longer than it should.
fixcargo: update proxmox dependency of rest-server and sys crates to include some fixes for open FDs and a fix for the active task worker tracking, as on failing to update the index file the daemon did not finished the worker, causing a reference count issue where an old daemon could keep running…
otherui: check that store is set before trying to select anything in the garbage collection (GC) job view.