Recommended Setup for Offsite Proxmox Backups? Hetzner Storage Box & Remote PBS Challenges

hlarc

New Member
Aug 11, 2025
3
2
3
Hey everyone,


I’m currently running a Proxmox VE server with about 10 VMs and LXCs. One of those is a Proxmox Backup Server VM—yes, I know it’s not the ideal setup to run PBS inside PVE, but so far, it has been working fine for local backups.


Recently, I wanted to set up offsite backups and purchased a Hetzner Storage Box for this purpose. My goal is to push backups from the local PBS to the Hetzner box.


Here’s what I’ve tried so far:


  • Remote Datastore over SFTP/SMB: I attempted to mount the Hetzner box via SFTP, rclone, and SMB to make it accessible as a remote datastore in PBS. None of these worked reliably or were supported in a way that allowed me to use them as proper datastores.
  • Remote PBS on VPS: I also spun up a VPS to host a remote instance of PBS to improve speed and latency. However, I ran into issues creating a datastore there or syncing data effectively.
  • Manual rsync of chunk data: I tried rsyncing the chunk data directly, but PBS doesn't seem to recognize or work properly with the manually synced data.

At this point, I’m a bit stuck.


Questions:


  1. What’s the recommended or best-practice setup for offsite backups with Proxmox Backup Server?
  2. Is there a supported method to back up to a Hetzner Storage Box?
  3. Should I continue pursuing the remote PBS on a VPS route, or is there a better approach for reliable offsite backup?

Thanks in advance for any guidance!
 
afaik Storage Box and PBS often cause headaches.

Maybe a bit off-topic, but eventually it's interesting for you:

PBS 4.0 has S3 support as technology preview. With Object Storage, Hetzner offers S3 storage. Price is a bit more than Storage Box.

Maybe S3 fits for your needs, it worth to take a look onto it, at least in my opinion.

I'm testing it as offside backup since the PBS beta was out. Works good, at least for my needs. Must keep in mind, that S3 support is still a technology preview.
 
  • Like
Reactions: Johannes S
Hey everyone,


I’m currently running a Proxmox VE server with about 10 VMs and LXCs. One of those is a Proxmox Backup Server VM—yes, I know it’s not the ideal setup to run PBS inside PVE, but so far, it has been working fine for local backups.


Recently, I wanted to set up offsite backups and purchased a Hetzner Storage Box for this purpose. My goal is to push backups from the local PBS to the Hetzner box.


Here’s what I’ve tried so far:
  • Remote Datastore over SFTP/SMB: I attempted to mount the Hetzner box via SFTP, rclone, and SMB to make it accessible as a remote datastore in PBS. None of these worked reliably or were supported in a way that allowed me to use them as proper datastores.

Network storages are already not the best option in a local network and thus not recommended by the developers due to their bad performance, see https://forum.proxmox.com/threads/datastore-performance-tester-for-pbs.148694
Via Internet it's even worse.

  • Remote PBS on VPS: I also spun up a VPS to host a remote instance of PBS to improve speed and latency. However, I ran into issues creating a datastore there or syncing data effectively.

Yes, this is the way to go. What exact issues did you have? Please note, that ou shouldn't use the storagebox for it but local storage on your vserver. For me this works fine on a Netcup vserver and and was quite straight-forward. I would expect that it's not that different with hetzner. Alternatively if you don't want to do the server maintenance there are PBS-as-service cloud providers like Inett, tuxis.nl and more whose names I forgot ;) Alternatively you could setup a PBS at one friends or family members place.


  • Manual rsync of chunk data: I tried rsyncing the chunk data directly, but PBS doesn't seem to recognize or work properly with the manually synced data.

This is known to break: https://forum.proxmox.com/threads/datastore-synced-with-rclone-broken.154709/


  1. What’s the recommended or best-practice setup for offsite backups with Proxmox Backup Server?

Using a remote PBS or alternativly tape backup (and storing them on another site) or an external storage device (like USB disc). Tape and usb storage needs more manual steps but a USB storage might be an option if you don't have a big budget: Buy two-three USB SSDs, store one of them at another location (e.G. friend/family members flat) and swap regulary their locations to sync your backups to them.

  1. Is there a supported method to back up to a Hetzner Storage Box?

No. Beginning with PBS4 you could alternatively use S3 cloud storage (like Hetzners S3 offerings or from another Cloud storage S3 provider) but I would only use this as a kind of last ressort since (according to Proxmox staff members) it's slower than using a sync between PBS instances. Depending on your amount of data and budget this might still be the best option.

If you absoluetly want to use the storagebox you may need to rethink your approach:
  • Don't use PBS at all (or only on your local network), do your offsite backups with PVEs native vma-Backups to a cifs- or sshfs-mounted storagebox
  • Split your backups by using a vserver PBS as offsite backup for the VMs and LXCs and a regular backup (like restic or borgbackup) tool inside your VMs/lxcs for bulk data. This is what I do: I use my PBS vserver for all my VMs and LXCs but not the data on my TrueNAS VM. The data stored on the NAS is backed up with restic to the storagebox.
 
Last edited:
I'd go the route with the Remote PBS on VPS until S3 got stable.
What kind of issues did you have with that setup?
 
  • Like
Reactions: AlexHK
Well I created myself an S3 Bucket to test the Feature out But it doesnt seem to work because when i want to create a new Datastore with S3
I used /var/cache/S3 as cache Directory and the Storage Bucket was correctly identified in the Setup Window. But when i started the creation Process I got this:
Code:
2025-08-13T09:01:05+02:00: Chunkstore create: 1%
2025-08-13T09:01:05+02:00: Chunkstore create: 2%
2025-08-13T09:01:05+02:00: Chunkstore create: 3%
2025-08-13T09:01:05+02:00: Chunkstore create: 4%
2025-08-13T09:01:05+02:00: Chunkstore create: 5%
2025-08-13T09:01:05+02:00: Chunkstore create: 6%
2025-08-13T09:01:05+02:00: Chunkstore create: 7%
2025-08-13T09:01:05+02:00: Chunkstore create: 8%
2025-08-13T09:01:05+02:00: Chunkstore create: 9%
2025-08-13T09:01:05+02:00: Chunkstore create: 10%
2025-08-13T09:01:05+02:00: Chunkstore create: 11%
2025-08-13T09:01:05+02:00: Chunkstore create: 12%
2025-08-13T09:01:05+02:00: Chunkstore create: 13%
2025-08-13T09:01:05+02:00: Chunkstore create: 14%
2025-08-13T09:01:05+02:00: Chunkstore create: 15%
2025-08-13T09:01:05+02:00: Chunkstore create: 16%
2025-08-13T09:01:05+02:00: Chunkstore create: 17%
2025-08-13T09:01:05+02:00: Chunkstore create: 18%
2025-08-13T09:01:05+02:00: Chunkstore create: 19%
2025-08-13T09:01:05+02:00: Chunkstore create: 20%
2025-08-13T09:01:05+02:00: Chunkstore create: 21%
2025-08-13T09:01:05+02:00: Chunkstore create: 22%
2025-08-13T09:01:05+02:00: Chunkstore create: 23%
2025-08-13T09:01:05+02:00: Chunkstore create: 24%
2025-08-13T09:01:05+02:00: Chunkstore create: 25%
2025-08-13T09:01:05+02:00: Chunkstore create: 26%
2025-08-13T09:01:05+02:00: Chunkstore create: 27%
2025-08-13T09:01:05+02:00: Chunkstore create: 28%
2025-08-13T09:01:05+02:00: Chunkstore create: 29%
2025-08-13T09:01:05+02:00: Chunkstore create: 30%
2025-08-13T09:01:05+02:00: Chunkstore create: 31%
2025-08-13T09:01:05+02:00: Chunkstore create: 32%
2025-08-13T09:01:05+02:00: Chunkstore create: 33%
2025-08-13T09:01:05+02:00: Chunkstore create: 34%
2025-08-13T09:01:05+02:00: Chunkstore create: 35%
2025-08-13T09:01:05+02:00: Chunkstore create: 36%
2025-08-13T09:01:05+02:00: Chunkstore create: 37%
2025-08-13T09:01:05+02:00: Chunkstore create: 38%
2025-08-13T09:01:05+02:00: Chunkstore create: 39%
2025-08-13T09:01:05+02:00: Chunkstore create: 40%
2025-08-13T09:01:05+02:00: Chunkstore create: 41%
2025-08-13T09:01:05+02:00: Chunkstore create: 42%
2025-08-13T09:01:05+02:00: Chunkstore create: 43%
2025-08-13T09:01:05+02:00: Chunkstore create: 44%
2025-08-13T09:01:05+02:00: Chunkstore create: 45%
2025-08-13T09:01:05+02:00: Chunkstore create: 46%
2025-08-13T09:01:05+02:00: Chunkstore create: 47%
2025-08-13T09:01:05+02:00: Chunkstore create: 48%
2025-08-13T09:01:05+02:00: Chunkstore create: 49%
2025-08-13T09:01:05+02:00: Chunkstore create: 50%
2025-08-13T09:01:05+02:00: Chunkstore create: 51%
2025-08-13T09:01:05+02:00: Chunkstore create: 52%
2025-08-13T09:01:05+02:00: Chunkstore create: 53%
2025-08-13T09:01:05+02:00: Chunkstore create: 54%
2025-08-13T09:01:05+02:00: Chunkstore create: 55%
2025-08-13T09:01:05+02:00: Chunkstore create: 56%
2025-08-13T09:01:05+02:00: Chunkstore create: 57%
2025-08-13T09:01:05+02:00: Chunkstore create: 58%
2025-08-13T09:01:05+02:00: Chunkstore create: 59%
2025-08-13T09:01:05+02:00: Chunkstore create: 60%
2025-08-13T09:01:05+02:00: Chunkstore create: 61%
2025-08-13T09:01:05+02:00: Chunkstore create: 62%
2025-08-13T09:01:05+02:00: Chunkstore create: 63%
2025-08-13T09:01:05+02:00: Chunkstore create: 64%
2025-08-13T09:01:05+02:00: Chunkstore create: 65%
2025-08-13T09:01:05+02:00: Chunkstore create: 66%
2025-08-13T09:01:05+02:00: Chunkstore create: 67%
2025-08-13T09:01:05+02:00: Chunkstore create: 68%
2025-08-13T09:01:05+02:00: Chunkstore create: 69%
2025-08-13T09:01:05+02:00: Chunkstore create: 70%
2025-08-13T09:01:05+02:00: Chunkstore create: 71%
2025-08-13T09:01:05+02:00: Chunkstore create: 72%
2025-08-13T09:01:05+02:00: Chunkstore create: 73%
2025-08-13T09:01:05+02:00: Chunkstore create: 74%
2025-08-13T09:01:05+02:00: Chunkstore create: 75%
2025-08-13T09:01:05+02:00: Chunkstore create: 76%
2025-08-13T09:01:05+02:00: Chunkstore create: 77%
2025-08-13T09:01:05+02:00: Chunkstore create: 78%
2025-08-13T09:01:05+02:00: Chunkstore create: 79%
2025-08-13T09:01:05+02:00: Chunkstore create: 80%
2025-08-13T09:01:05+02:00: Chunkstore create: 81%
2025-08-13T09:01:05+02:00: Chunkstore create: 82%
2025-08-13T09:01:05+02:00: Chunkstore create: 83%
2025-08-13T09:01:05+02:00: Chunkstore create: 84%
2025-08-13T09:01:05+02:00: Chunkstore create: 85%
2025-08-13T09:01:05+02:00: Chunkstore create: 86%
2025-08-13T09:01:05+02:00: Chunkstore create: 87%
2025-08-13T09:01:05+02:00: Chunkstore create: 88%
2025-08-13T09:01:05+02:00: Chunkstore create: 89%
2025-08-13T09:01:05+02:00: Chunkstore create: 90%
2025-08-13T09:01:05+02:00: Chunkstore create: 91%
2025-08-13T09:01:05+02:00: Chunkstore create: 92%
2025-08-13T09:01:05+02:00: Chunkstore create: 93%
2025-08-13T09:01:05+02:00: Chunkstore create: 94%
2025-08-13T09:01:05+02:00: Chunkstore create: 95%
2025-08-13T09:01:05+02:00: Chunkstore create: 96%
2025-08-13T09:01:05+02:00: Chunkstore create: 97%
2025-08-13T09:01:05+02:00: Chunkstore create: 98%
2025-08-13T09:01:05+02:00: Chunkstore create: 99%
2025-08-13T09:01:05+02:00: <?xml version="1.0" encoding="UTF-8"?>
<Error>
    <Code>NoSuchBucket</Code>
    <Message>The specified bucket does not exist.</Message>
    <RequestId>N/A</RequestId>
    <HostId>N/A</HostId>
</Error>
2025-08-13T09:01:05+02:00: TASK ERROR: failed to upload in-use marker for datastore: unexpected status code 404 Not Found

Could this be a Bug in PBS or an Issue with Hetzner?
I get the Same Error on Both PBS Instances.
 
  • Like
Reactions: nokotim
Thanks for all the suggestions! I've decided to stick with using BorgBackup to back up my data to the StorageBox. I won’t be doing offsite backups of my Proxmox VMs—for me, the critical part is preserving the actual data.


In the event of a catastrophic failure, I’m okay with rebuilding the infrastructure from scratch, as long as my data is safe. If anyone has ideas or alternative approaches, I’m still open to suggestions—but for now, I consider this issue resolved.
 
  • Like
Reactions: Johannes S
Thanks for all the suggestions! I've decided to stick with using BorgBackup to back up my data to the StorageBox. I won’t be doing offsite backups of my Proxmox VMs—for me, the critical part is preserving the actual data.

Sounds reasonable to me.
In the event of a catastrophic failure, I’m okay with rebuilding the infrastructure from scratch, as long as my data is safe. If anyone has ideas or alternative approaches, I’m still open to suggestions—but for now, I consider this issue resolved.
You could also do a backup directly with PVE to the storagebox or some local folder you sync to the storagebox with rclone. This doesn't need PBS but will cost more storage space and take longer to restore. But it should be OK as a kind of last ressort and you can reduce the needed space by doing less backups ( e.g. weekly or monthly instead of daily ), still better than rebuilding everything from scratch ;)

For fast local restores I would also run a PBS and borgserver on your lical network.
 
Well I created myself an S3 Bucket to test the Feature out But it doesnt seem to work because when i want to create a new Datastore with S3
I used /var/cache/S3 as cache Directory and the Storage Bucket was correctly identified in the Setup Window. But when i started the creation Process I got this:
Code:
2025-08-13T09:01:05+02:00: Chunkstore create: 1%
2025-08-13T09:01:05+02:00: Chunkstore create: 2%
2025-08-13T09:01:05+02:00: Chunkstore create: 3%
2025-08-13T09:01:05+02:00: Chunkstore create: 4%
2025-08-13T09:01:05+02:00: Chunkstore create: 5%
2025-08-13T09:01:05+02:00: Chunkstore create: 6%
2025-08-13T09:01:05+02:00: Chunkstore create: 7%
2025-08-13T09:01:05+02:00: Chunkstore create: 8%
2025-08-13T09:01:05+02:00: Chunkstore create: 9%
2025-08-13T09:01:05+02:00: Chunkstore create: 10%
2025-08-13T09:01:05+02:00: Chunkstore create: 11%
2025-08-13T09:01:05+02:00: Chunkstore create: 12%
2025-08-13T09:01:05+02:00: Chunkstore create: 13%
2025-08-13T09:01:05+02:00: Chunkstore create: 14%
2025-08-13T09:01:05+02:00: Chunkstore create: 15%
2025-08-13T09:01:05+02:00: Chunkstore create: 16%
2025-08-13T09:01:05+02:00: Chunkstore create: 17%
2025-08-13T09:01:05+02:00: Chunkstore create: 18%
2025-08-13T09:01:05+02:00: Chunkstore create: 19%
2025-08-13T09:01:05+02:00: Chunkstore create: 20%
2025-08-13T09:01:05+02:00: Chunkstore create: 21%
2025-08-13T09:01:05+02:00: Chunkstore create: 22%
2025-08-13T09:01:05+02:00: Chunkstore create: 23%
2025-08-13T09:01:05+02:00: Chunkstore create: 24%
2025-08-13T09:01:05+02:00: Chunkstore create: 25%
2025-08-13T09:01:05+02:00: Chunkstore create: 26%
2025-08-13T09:01:05+02:00: Chunkstore create: 27%
2025-08-13T09:01:05+02:00: Chunkstore create: 28%
2025-08-13T09:01:05+02:00: Chunkstore create: 29%
2025-08-13T09:01:05+02:00: Chunkstore create: 30%
2025-08-13T09:01:05+02:00: Chunkstore create: 31%
2025-08-13T09:01:05+02:00: Chunkstore create: 32%
2025-08-13T09:01:05+02:00: Chunkstore create: 33%
2025-08-13T09:01:05+02:00: Chunkstore create: 34%
2025-08-13T09:01:05+02:00: Chunkstore create: 35%
2025-08-13T09:01:05+02:00: Chunkstore create: 36%
2025-08-13T09:01:05+02:00: Chunkstore create: 37%
2025-08-13T09:01:05+02:00: Chunkstore create: 38%
2025-08-13T09:01:05+02:00: Chunkstore create: 39%
2025-08-13T09:01:05+02:00: Chunkstore create: 40%
2025-08-13T09:01:05+02:00: Chunkstore create: 41%
2025-08-13T09:01:05+02:00: Chunkstore create: 42%
2025-08-13T09:01:05+02:00: Chunkstore create: 43%
2025-08-13T09:01:05+02:00: Chunkstore create: 44%
2025-08-13T09:01:05+02:00: Chunkstore create: 45%
2025-08-13T09:01:05+02:00: Chunkstore create: 46%
2025-08-13T09:01:05+02:00: Chunkstore create: 47%
2025-08-13T09:01:05+02:00: Chunkstore create: 48%
2025-08-13T09:01:05+02:00: Chunkstore create: 49%
2025-08-13T09:01:05+02:00: Chunkstore create: 50%
2025-08-13T09:01:05+02:00: Chunkstore create: 51%
2025-08-13T09:01:05+02:00: Chunkstore create: 52%
2025-08-13T09:01:05+02:00: Chunkstore create: 53%
2025-08-13T09:01:05+02:00: Chunkstore create: 54%
2025-08-13T09:01:05+02:00: Chunkstore create: 55%
2025-08-13T09:01:05+02:00: Chunkstore create: 56%
2025-08-13T09:01:05+02:00: Chunkstore create: 57%
2025-08-13T09:01:05+02:00: Chunkstore create: 58%
2025-08-13T09:01:05+02:00: Chunkstore create: 59%
2025-08-13T09:01:05+02:00: Chunkstore create: 60%
2025-08-13T09:01:05+02:00: Chunkstore create: 61%
2025-08-13T09:01:05+02:00: Chunkstore create: 62%
2025-08-13T09:01:05+02:00: Chunkstore create: 63%
2025-08-13T09:01:05+02:00: Chunkstore create: 64%
2025-08-13T09:01:05+02:00: Chunkstore create: 65%
2025-08-13T09:01:05+02:00: Chunkstore create: 66%
2025-08-13T09:01:05+02:00: Chunkstore create: 67%
2025-08-13T09:01:05+02:00: Chunkstore create: 68%
2025-08-13T09:01:05+02:00: Chunkstore create: 69%
2025-08-13T09:01:05+02:00: Chunkstore create: 70%
2025-08-13T09:01:05+02:00: Chunkstore create: 71%
2025-08-13T09:01:05+02:00: Chunkstore create: 72%
2025-08-13T09:01:05+02:00: Chunkstore create: 73%
2025-08-13T09:01:05+02:00: Chunkstore create: 74%
2025-08-13T09:01:05+02:00: Chunkstore create: 75%
2025-08-13T09:01:05+02:00: Chunkstore create: 76%
2025-08-13T09:01:05+02:00: Chunkstore create: 77%
2025-08-13T09:01:05+02:00: Chunkstore create: 78%
2025-08-13T09:01:05+02:00: Chunkstore create: 79%
2025-08-13T09:01:05+02:00: Chunkstore create: 80%
2025-08-13T09:01:05+02:00: Chunkstore create: 81%
2025-08-13T09:01:05+02:00: Chunkstore create: 82%
2025-08-13T09:01:05+02:00: Chunkstore create: 83%
2025-08-13T09:01:05+02:00: Chunkstore create: 84%
2025-08-13T09:01:05+02:00: Chunkstore create: 85%
2025-08-13T09:01:05+02:00: Chunkstore create: 86%
2025-08-13T09:01:05+02:00: Chunkstore create: 87%
2025-08-13T09:01:05+02:00: Chunkstore create: 88%
2025-08-13T09:01:05+02:00: Chunkstore create: 89%
2025-08-13T09:01:05+02:00: Chunkstore create: 90%
2025-08-13T09:01:05+02:00: Chunkstore create: 91%
2025-08-13T09:01:05+02:00: Chunkstore create: 92%
2025-08-13T09:01:05+02:00: Chunkstore create: 93%
2025-08-13T09:01:05+02:00: Chunkstore create: 94%
2025-08-13T09:01:05+02:00: Chunkstore create: 95%
2025-08-13T09:01:05+02:00: Chunkstore create: 96%
2025-08-13T09:01:05+02:00: Chunkstore create: 97%
2025-08-13T09:01:05+02:00: Chunkstore create: 98%
2025-08-13T09:01:05+02:00: Chunkstore create: 99%
2025-08-13T09:01:05+02:00: <?xml version="1.0" encoding="UTF-8"?>
<Error>
    <Code>NoSuchBucket</Code>
    <Message>The specified bucket does not exist.</Message>
    <RequestId>N/A</RequestId>
    <HostId>N/A</HostId>
</Error>
2025-08-13T09:01:05+02:00: TASK ERROR: failed to upload in-use marker for datastore: unexpected status code 404 Not Found

Could this be a Bug in PBS or an Issue with Hetzner?
I get the Same Error on Both PBS Instances.
I got the same error while trying to Setup the S3 Bucket as Datastorage. Although using Hetzner and PBS 4.0.14
 
I had the same problem creating the datastore with Hetzner, until I added the template to the endpoint.
In my case it is now "{{bucket}}.nbg1.your-objectstorage.com", while ngb1 is for Nürnberg. If yours is located in other sites you will need to change this according to the details in the Hetzner Console of your project.
 
  • Like
Reactions: Deviss
I had the same problem creating the datastore with Hetzner, until I added the template to the endpoint.
In my case it is now "{{bucket}}.nbg1.your-objectstorage.com", while ngb1 is for Nürnberg. If yours is located in other sites you will need to change this according to the details in the Hetzner Console of your project.
Thanks!!! That solved my issue. Saved my day! :)

Did you find that in the documentation from Hetzner? Because i read through it and always thought, that in PBS the "S3 Endpoint ID" must be the name of the bucket and Endpoint only has to be e.g. ngb1.your-objectstorage.com and the server uses these entries for the Datastore. Is it possible that this is a bug in PBS4 ?
 
PBS inside PVE,
I advise, and are using it this way myself.. and lately it is the only deployment *for*me* for PBS, is to run PBS as an LXC, and PVE managing the ZFSs... this leaves (at least in my case) some spare throw-away CPU cycles to use of throw-away VM stuff :)
 
Recently, I wanted to set up offsite backups
Do NOT forget about Tuxis.nl -> not associated with them, I just used their services when I initially started using PBS, and it's well priced remote sync options to consider.
Not fancy all bells included, but is does do work as a remote destination, and they do allow/etc. sync jobs
 
YEs, I saw the S3 options advices... I had ask and do have a need/use for it, but in an archival setup, not my first/primary and neither my secondary/sync servers, but like my tertiary servers when I need to recover something from a year ago, not to recover in a jiffy after a DC burn down (Yes, I had that experience :D !)
Questions:
  1. What’s the recommended or best-practice setup for offsite backups with Proxmox Backup Server?
1. Tuxis.nl is my first advice for simplicity and "quick set"
2. Get a dedicated physical where you can run ZFS on disks. Consider cheap server with storage (Depending on your requirements, OVH and HEtzner have various cheap options, and HEtzner you can get a "auction" of decommed servers)


  1. Is there a supported method to back up to a Hetzner Storage Box?
See my intro response.
  1. Should I continue pursuing the remote PBS on a VPS route, or is there a better approach for reliable offsite backup?
Anything VPS I'll stay away from... for anything with decent size (Ie. > 1TB backups) you'll be hit with some issue and I prefer ZFS for the base storage. Period.
You might find that the cost of the VPS might already be more per TB than the cost of Tuxis.nl for backups :D
 
  • Like
Reactions: UdoB