S3 Offsite Backups with PBS 4.2 for Homelab Labs
S3 offsite backups with PBS 4.2 close the speed gap for homelabs. Enable parallel sync and encryption to survive site failure without a second server.
On this page
Offsite backups protect against site failure, and PBS 4.2 makes S3 offsite viable for homelabs with native support and parallel sync that closes the speed gap. You get encrypted offsite replication that runs within minutes of your local job, giving you true disaster recovery without buying a second server.
Key Takeaways
- Native S3 support: PBS 4.2 includes built-in S3 storage, removing the manual rclone workarounds.
- Parallel sync: Two streams halve replication time, making offsite feasible over consumer upload.
- Cost vs Speed: S3 offsite is cheaper than buying a second disk array but slower than local ZFS replication.
- Encryption: Client-side encryption is mandatory for offsite to keep data private.
- Retention safety: Offsite copies survive local snapshot pruning, giving you true disaster recovery.
How to Configure PBS 4.2 S3 Storage
Adding an S3 bucket as a backup target is now a first-class operation. You add the storage on the PBS node itself, not on the Proxmox VE cluster. The storage type is s3.
pvesm add s3 bucketid endpoint accesskey secretkey
Replace bucketid with your chosen identifier, endpoint with the S3 URL, and the credentials with your access key and secret. You don't pass a region flag for generic S3 endpoints; the endpoint URL carries that context. If you're using a provider like Cloudflare R2, the endpoint is https://account-id.r2.cloudflarestorage.com.
Verify the storage appears:
pvesm status
You should see the bucket listed with type s3. On the Proxmox VE side, you add a PBS storage pointing to this server as usual; the S3 logic lives entirely inside the PBS node.
S3 Offsite vs Local ZFS Replication
Choosing between local ZFS replication and S3 offsite depends on your threat model and budget. Local ZFS replication to a second node is fast and cheap on bandwidth, but it doesn't protect against a rack fire or ransomware that compromises both nodes. S3 offsite survives site loss but pays in egress costs and latency.
| Aspect | Local ZFS Replication | S3 Offsite |
|---|---|---|
| Speed | Near line-rate over LAN | Limited by upload bandwidth |
| Cost | Hardware only | Egress fees apply |
| DR Level | Node failure | Site failure |
| Complexity | Two nodes, shared cluster | Single PBS, cloud cred |
| Bandwidth | Internal traffic | Consumes WAN upload |
If your goal is pure speed and you have a second node, ZFS replication wins. If you need offsite survival, S3 is the pragmatic choice. The two strategies complement each other; run local replication for daily recovery and S3 offsite for disaster safety.
How to Speed Up Replication Over Slow Uploads
Consumer upload links are the bottleneck. On a 50 Mbps upload, a single stream caps around 0.3 MB/s average. A 500 GB VM takes days. PBS 4.2's parallel sync cuts that time in half by running two streams, effectively doubling throughput.
Configure the sync job with --parallel 2. You can do this via the UI or CLI. The CLI form:
pvesm sync --storage s3store --id vm.100 --parallel 2
vm.100 is the backup ID, not the VM ID. The backup ID includes the date and time, like vm.100.2024-05-20T10:00:00z. You find it with pvesm list s3store.
The sync job mirrors what you'd configure in Configure Parallel Sync Jobs for S3 Offsite Backups; the flags are identical. Two streams compress and encrypt independently, then upload in lockstep.
Gotcha: parallel sync burns CPU. Each stream runs its own decompression, encryption, and upload pipeline. On a low-end Atom or older Celeron, two streams can saturate the CPU and actually reduce throughput due to context switching. If your PBS node has fewer than four cores, stick to one stream or accept the longer runtime. The tradeoff is CPU headroom versus time.
Retention and Snapshot Management
Local backup retention prunes old snapshots on a schedule. If your local job keeps 7 daily and 4 weekly, pruning removes data older than that. The offsite copy is independent; it retains whatever it received. This is the safety net. An offsite copy made before pruning survives the prune.
Set local retention on the Proxmox VE cluster, not on the offsite copy. The offsite storage doesn't enforce retention; it's a write-once target from the sync perspective.
If you haven't defined local backup schedules, the baseline is covered in Automated Backups with Proxmox Backup Server. Define the schedule and retention there, then rely on the offsite copy for long-term survival.
Monitoring Sync Health
Sync jobs leave traces in the journal and the storage status. Check recent sync runs:
journalctl -u pbs-s3-sync --since "1 hour ago" --no-pager
Look for sync completed lines. Failed streams log ERROR with the reason. A common failure is authentication drift; if your S3 credentials rotate, sync fails immediately.
I wrap these checks in the health check script from Automate Proxmox VE: Essential Scripts for Homelab Backups, Health Checks & VLANs. The script queries pvesm status and the journal, alerting on zero completed syncs in the last 24 hours.
Conclusion
S3 offsite with PBS 4.2 closes the gap between "nice to have" and "actually usable." Native storage, parallel sync, and client-side encryption give you affordable disaster recovery that runs alongside your local jobs. Define retention on the local cluster, run offsite sync with two streams, and monitor the journal. The next step is to test restore from the offsite copy; a backup you haven't restored from is just hope.