remote-backups.comremote-backups.com
Contact illustration
Sign In
Don't have an account ?Sign Up

How PBS Encryption Affects Deduplication

You enabled encryption on your Proxmox Backup Server datastore. Your dedup ratio dropped. Now you're wondering if encryption "breaks" deduplication. It doesn't. But your key management strategy determines how far deduplication can reach. This post explains exactly why.

Key Takeaways
  • PBS encrypts after chunking, so deduplication still works at the chunk level
  • Same encryption key across all nodes = full deduplication, identical to unencrypted
  • Different keys per node = deduplication works within each key boundary, not across
  • Single-org environments should share one key via /etc/pve/priv/storage/ for maximum dedup
  • Multi-tenant setups accept per-tenant dedup as the cost of true data isolation

How PBS Deduplication Works

Proxmox Backup Server uses content-addressable storage. Every backup is split into variable-length chunks using a content-defined chunking (CDC) algorithm. The chunking boundaries are determined by the data itself, not by fixed offsets. This means inserting 10 bytes at the start of a file doesn't shift every chunk boundary downstream.

Each chunk gets a SHA-256 hash. If that hash already exists in the datastore, PBS skips the upload. The existing chunk gets a new reference instead. One chunk, stored once, referenced by hundreds of snapshots.

This chunking and hashing happens on the client side, inside the proxmox-backup-client process on your Proxmox VE node. The client checks with the server which chunks already exist before uploading. Only new, unique chunks cross the wire.

Deduplication in PBS is per-datastore. Chunks are not shared across datastores. Two datastores on the same PBS instance maintain completely separate chunk stores. This matters when designing your datastore layout and planning multi-tenant architectures.

How PBS Encryption Works

PBS uses AES-256-GCM for client-side encryption. The encryption key lives on your Proxmox VE node at /etc/pve/priv/storage/<STORAGE-ID>.enc. The PBS server never sees the key.

The encryption pipeline looks like this:

  1. The backup client splits data into chunks (CDC algorithm)
  2. Each chunk is encrypted with AES-256-GCM using your key
  3. The encrypted chunk is hashed (SHA-256)
  4. The hash is checked against the datastore's chunk index
  5. If the hash is new, the encrypted chunk is uploaded

The critical detail: PBS uses deterministic encryption for a given key. Same plaintext chunk plus same key produces the same ciphertext every time. This is what makes deduplication possible with encryption enabled.

For the full setup walkthrough, see our PBS client-side encryption guide.

The Key Factor: Same Key = Dedup Works

This is the core insight most people miss. Encryption doesn't destroy deduplication. Key diversity does.

When every node encrypts with the same key, identical plaintext chunks produce identical ciphertext. Identical ciphertext produces identical SHA-256 hashes. Identical hashes mean PBS deduplicates them. The dedup ratio stays the same as without encryption.

When nodes use different keys, the same plaintext chunk produces different ciphertext per key. Different ciphertext means different hashes. PBS treats them as unique chunks. Deduplication across those nodes is gone.

Encryption Scenarios vs Dedup Scope
Scenario
No encryption
Same key, all nodes
Different key per node
Dedup Within VM
Dedup Across VMs
Dedup Across Nodes

The "Dedup Across VMs" column assumes VMs on the same node (same key). VMs on different nodes with different keys follow the "Across Nodes" column.

Different keys kill cross-node dedup

If you have 10 PVE nodes backing up to one PBS datastore with 10 different encryption keys, PBS stores 10 copies of every common OS chunk. Your storage usage can increase dramatically compared to a shared-key setup.

When Different Keys Make Sense

Not every environment should share a single key. Sometimes isolation is the priority, and the storage overhead is acceptable.

Multi-tenant / MSP environments. If you manage backups for multiple clients on the same PBS infrastructure, each client needs their own encryption key. Client A should never be able to decrypt Client B's data, even theoretically. Per-client datastores with per-client keys is the standard approach. See our MSP multi-tenant guide for the full architecture.

Regulatory compartmentalization. Some compliance frameworks require cryptographic separation between data classes. Healthcare and finance environments may need different keys for different data tiers, even within the same organization.

Zero-trust internal boundaries. If your organization treats each department or business unit as a separate trust domain, per-unit keys enforce that boundary at the backup layer.

In all these cases, you accept reduced cross-boundary dedup as the cost of true data isolation. Within each key boundary, deduplication still works normally.

Dedup still works within each key

Even with per-client keys, each client's backups deduplicate against themselves. A client with 20 VMs running the same base OS image still gets excellent dedup ratios within their own backup set.

Practical Recommendations

Single Organization, Multiple PVE Nodes

Share the encryption key across all nodes. In a PVE cluster, this happens automatically. The key at /etc/pve/priv/storage/<STORAGE-ID>.enc lives inside pmxcfs, the cluster-aware filesystem. Every node in the cluster has access to the same key.

bash
# Run on each node - the fingerprint should match
proxmox-backup-client key show /etc/pve/priv/storage/my-pbs.enc
Verify the key is consistent across cluster nodes

For standalone PVE nodes (not in a cluster) backing up to the same PBS datastore, manually copy the .enc key file to each node. Keep the path identical so backup jobs reference the same key.

Back up the key separately

If you share one key across all nodes and lose it, every backup in the datastore becomes unrecoverable. Store a paper key backup in a physically separate location.

Multi-Tenant Environments

Use separate datastores per client, each with their own encryption key. Accept per-tenant deduplication only. The storage overhead is the price of proper isolation. Don't try to share keys between tenants to save disk space.

Monitor Your Dedup Ratio

Check the dedup factor in the PBS web interface under Datastore > Summary. The "Deduplication Factor" shows how effectively chunks are being shared.

bash
proxmox-backup-manager datastore list --output-format json-pretty
Check datastore dedup and usage via CLI

If your dedup ratio drops after enabling encryption, check whether all nodes are using the same key. A sudden drop usually means one node generated a new key instead of using the shared one.

Wrapping Up

Encryption doesn't break Proxmox Backup Server deduplication. Key management does. Same key across all nodes gives you the same dedup ratios as unencrypted backups. Different keys per node or per tenant limits dedup to each key boundary. For single-org setups, share the key. For multi-tenant environments, accept the overhead. Either way, monitor your dedup factor in the PBS UI and investigate any unexpected drops.

Need encrypted offsite backups with full dedup?

remote-backups.com managed PBS datastores support client-side encryption with full deduplication when you use the same key across your PVE cluster.

View PBS Hosting Plans

Yes, but it's minimal. AES-256-GCM is hardware-accelerated on any modern CPU with AES-NI (virtually all x86 processors from the last decade). You won't notice a difference in backup duration.

Yes. New backups will be encrypted. Old unencrypted snapshots remain readable. PBS tracks encryption status per snapshot. Over time, pruning removes old unencrypted snapshots and the datastore becomes fully encrypted.

The dedup factor compares total backup size (all snapshots) to actual disk usage (unique chunks). Encrypted chunks are slightly larger than plaintext chunks due to GCM authentication tags, but the dedup ratio calculation is unaffected by encryption itself.

PBS stores duplicate chunks for any data those nodes have in common. Your storage usage increases. To fix it, align the keys and run new backups. After [pruning and garbage collection](/blog/pbs-pruning-garbage-collection) remove the old snapshots, the duplicate chunks are cleaned up.
Bennet Gallein
Bennet Gallein

remote-backups.com operator

Infrastructure enthusiast and founder of remote-backups.com. I build and operate reliable backup infrastructure powered by Proxmox Backup Server, so you can focus on what matters most: your data staying safe.