I am seeing a lot of read on the source, multiple times the overall data size already and a little CPU load ~10%. But nearly no network traffic anymore. First i thought the sync might hang so i restarted it but it ended in the same way. No i guess it is the encryption on the fly, see below.
Setup
Observation
My theory
The docs say encrypted chunk digests are computed from plaintext + key.
The source datastore only holds plaintext digests, so to find out
whether a chunk is already known on the target, the source must read
and hash every chunk of every snapshot. Only new chunks are then
encrypted and uploaded. So an encrypted push costs a full local read of
each snapshot's logical size, even if almost nothing changed.
Questions
1. Is this correct and expected behaviour for push with
active-encryption-key?
2. Is there any mapping/cache (plaintext digest -> encrypted digest)
to avoid re-reading known chunks, or is one planned?
Setup
- Source PBS 4.2.7 (kernel 7.0.14-20-pve), unencrypted local datastore
- Target PBS 4.2.8, untrusted offsite, connected via WireGuard
- Sync job in push direction with active-encryption-key
- ~2 TB physical datastore, daily snapshots, mostly CTs
- (split archives .mpxar/.ppxar)
Observation
- Initial push transferred ~1.5 TB normally.
- Since then: source reads ~45-50 MB/s from disk with constant CPU load, but network traffic is close to zero.
- Target log for the current snapshot shows the previous snapshot is found and its chunks registered as known:
- download 'index.json.blob' from previous backup 'ct/107/2026-09-30T10:00:26Z'
- register chunks in 'root.ppxar.didx' from previous backup ...
- created new dynamic index 1 ("ct/107/2026-10-01T10:00:21Z/root.ppxar.didx")
- Source journal for that single snapshot: processed 1.01 TiB in 5h 41m, uploaded 481.474 MiB
My theory
The docs say encrypted chunk digests are computed from plaintext + key.
The source datastore only holds plaintext digests, so to find out
whether a chunk is already known on the target, the source must read
and hash every chunk of every snapshot. Only new chunks are then
encrypted and uploaded. So an encrypted push costs a full local read of
each snapshot's logical size, even if almost nothing changed.
Questions
1. Is this correct and expected behaviour for push with
active-encryption-key?
2. Is there any mapping/cache (plaintext digest -> encrypted digest)
to avoid re-reading known chunks, or is one planned?