This episode opens PBS to other backup ecosystems: making the datastore filesystem an NFS/SMB target for Veeam and Bacula, then using S3 object storage (PBS 4.x) as an off-site destination in the cloud — complete with Object Lock and cost considerations.

The hub-spoke architecture of episode 18 handles PBS-to-PBS. But the backup ecosystem is wider than that: you may still have non-Proxmox physical servers, or commercial backup suites, that need a storage destination in the same place. Episode 19 bridges PBS to other ecosystems: PBS as an NFS/SMB target for Veeam and Bacula, plus S3 object storage in PBS 4.x for cloud off-site.
The analogy is like a central archive warehouse serving many couriers: PBS still manages its own shelves with its own chunk format, but provides a standard entrance (NFS/SMB) so other couriers — Veeam, Bacula — can drop off their own archive boxes in the same warehouse.
PBS stores VM/CT backups in its own chunk format — that data cannot be read directly by Veeam/Bacula. What can be shared is the filesystem where the datastore lives. The correct pattern:
This practice centralizes storage in one place: PBS handles Proxmox VMs/CTs natively, Veeam/Bacula handles other workloads, and both write to the same machine.
Important
Never write another agent's files into the PBS datastore chunk directory. The chunks, index, and meta directories are PBS's domain. Set up a separate export directory — e.g. /srv/shared/veeam-repo — so PBS and other agents do not corrupt each other's data.
If the PBS datastore is on a ZFS pool, the easiest export is via sharenfs:
zfs set sharenfs="on" zpool-pbs/shared
zfs list -r zpool-pbs -o name,mountpoint,sharenfsCheck access from a client (e.g. the Veeam gateway server) with a normal mount:
mkdir -p /mnt/pbs-shared
mount -t nfs 10.0.1.5:/zpool-pbs/shared /mnt/pbs-sharedFor SMB, install Samba on PBS and export the same directory. Note the performance caveat from episode 15: NFS/SMB paths have higher latency than local disks — measure throughput first before committing the share as a repository target.
Veeam Backup & Replication supports NFS shares and CIFS/SMB shares as backup repositories. On the Veeam side:
The benefit of using PBS as the share host: one machine, one maintenance cycle, one set of resources — PBS and Veeam coexist without an extra server.
Bacula (an enterprise suite based on a director/storage architecture) writes backups to File storage:
Storage { Device = PBS-Shared } block in the Bacula configuration points to that path.The same pattern applies to Bacula Community and Enterprise (File/autochanger types). The Bacula configuration does not change — only the file location now lives on the PBS machine.
Episode 17 introduced the PBS 4.2 headline feature: datastore on top of S3-compatible object storage. This changes how off-site works: instead of a second PBS to maintain (episode 10), the cloud destination can be an object storage bucket.
proxmox-backup-manager datastore create store-s3 \
--storage s3://bucket-pbs/offsite \
--access-key-id 'AKIA...' \
--secret-key '...'Chunks, dedup, and snapshots work identically to a local datastore — PBS just writes to different "paper". Verify and GC schedules still apply.
The most sensible pattern: fast local backup, S3 as the off-site layer:
[PVE cluster] ──backup──> [Local PBS: ZFS]
│ daily sync
▼
[S3 datastore: cloud]This combination avoids two problems at once: S3 latency (not suitable for direct daily backups) and the burden of maintaining a second PBS. Syncing to S3 creates an automatic off-site copy — the "1" layer of the 3-2-1 strategy (episode 10).
Two security layers that can be combined:
Warning
S3 is not a replacement for the primary local datastore. Watch costs (per-GB storage and PUT/GET requests for each chunk) and latency: GC on an S3 datastore can be expensive because it reads chunk metadata from the bucket. Enable Object Lock only when the retention policy is certain — compliance mode makes objects truly undeletable before their term expires.
Key takeaways:
zfs set sharenfs makes ZFS exports easy.In the next episode, episode 20, we will measure and monitor: monitoring PBS via the API, InfluxDB/Prometheus, and Zabbix, plus performance tuning — chunk size, zstd compression, and io-threads — so backups are fast and their health is tracked. From "it works" to "it is measured"!