This episode chooses and optimizes the storage where the PBS datastore lives: ZFS with compression, snapshots, and checksums plus the recordsize 1M best practice; the ext4 + LVM scenario; and the performance trade-offs when using NFS/SMB. You will also learn to calculate storage capacity based on dedup ratio and actual data size.

Security in episode 14 makes the repository resilient — now we talk about the ground the data stands on: storage. All PBS chunks, dedup, and snapshots live on top of a filesystem, and the filesystem choice determines durability, performance, and the features available. Episode 15 covers ZFS, ext4 + LVM, and NFS/SMB as datastore hosts.
Imagine PBS like a hospital: the datastore is the sample storage room. ZFS is an air-conditioned room with a recording system and automatic backup; ext4+LVM is a simple room maintained manually; and NFS is a room in the building across the street — it still works, but every time you fetch a sample you must cross the road (network latency).
ZFS is Proxmox's primary recommendation for datastores because of three capabilities that perfectly complement PBS:
One setting is a must for PBS datastores: recordsize 1M (1 MiB). The ZFS default for data datasets is 128K — but PBS chunks are up to 4 MiB and written sequentially. A larger record size means:
zfs create -o recordsize=1M -o compression=lz4 rpool/dataAlso set xattr=sa and atime=off for better metadata performance and reads. A separate ZFS dataset for the datastore makes snapshots and space monitoring easier.
Important
Change recordsize before the datastore fills up, and weigh ZFS compression vs PBS compression: enable only one of them to avoid wasting CPU on already-dense data. ZFS lz4 is very light, but compressed PBS chunks will not shrink any further.
Not every environment has ZFS — whether due to team preference or existing hardware. ext4 on top of LVM is a stable alternative:
e2fsck).What you lose compared to ZFS: end-to-end checksums (rely on PBS checksums), and ZFS-based immutable snapshots. For anti-ransomware protection in this scenario, rely on off-site sync and the firewall.
lvcreate -L 1T -n pbs-data vg1
mkfs.ext4 /dev/vg1/pbs-data
mount /dev/vg1/pbs-data /var/lib/proxmox-backup/datastore/store1noatime mount option to reduce metadata writes.df and inodes (df -i) — PBS chunks are numerous; inodes can become the limit on small filesystems.A datastore on NFS or SMB is legal and supported — for example to take advantage of an existing NAS/array. But there are real costs:
For serious production, 10G network storage and a separate network (episode 13) are a reasonable minimum. For lab needs or small environments, NFS on a 1G link is enough.
mount -t nfs 10.0.20.5:/backup /mnt/pbs-nfsStorage capacity is calculated from the actual data after dedup and compression, not the raw backup size:
Capacity ≈ (Total Data × RPO window snapshots)
÷ Dedup Ratio ÷ Compression RatioExample: 4 TB of VM data, dedup ratio 5x, compression 2x, full 30-day retention:
4 TB × 1.0 (full logical each night) ÷ 5 ÷ 2 ≈ 0.4 TB per cycle
× 30 days ≈ 12 TB before marginAdd a 20-30% margin for metadata, GC watermark, and ZFS snapshots. The most accurate way: measure the Original vs Dedup vs Compressed metrics in your datastore (episode 6) after a few days of running, then project.
Tip
Project capacity from your datastore's real ratios, not guesses: after a week of backups, take the Dedup and Compressed numbers from the PBS web UI and multiply by your data growth projection. That is far more accurate than a theoretical formula.
Key takeaways:
recordsize=1M is a mandatory best practice for PBS datastores on ZFS.In the next episode, episode 16, we will face the hard times: troubleshooting & recovery — reading detailed task logs, using proxmox-backup-manager commands, handling common cases like full disks, GC races, and fingerprint mismatch, and recovering a datastore to a new server via sync/import with thorough recovery testing. Being on standby does not mean problems never happen!