Proxmox VE and Proxmox Backup Server Backup is overwritten

LSX3

New Member
May 5, 2025
15
2
3
Bayern - Germany
Hello everyone,

I’m running a Proxmox VE setup with a connected Proxmox Backup Server (PBS). Everything works as expected with my scheduled nightly backup job - it runs at 2:00 AM and creates a backup each night.

However, if I manually trigger the same backup job during the day, it overwrites the backup from the night before instead of creating a new one. I would expect Proxmox to create a separate backup each time the job is run, regardless of whether it’s started automatically or manually.

  • Retention is set to: keep-daily=32
  • Deduplication factor is working well
  • Only VMs are backed up
  • Garbage collection is inactive
  • Manual and automatic backups use the same job

Is this behavior expected?
If not, is there a known way to prevent the manual job from overwriting the nightly backup?
Attached are screenshots of my configuration.

Thanks in advance for your help!
 

Attachments

  • 2025-05-19 14_16_17-PBS-LAB01.png
    2025-05-19 14_16_17-PBS-LAB01.png
    67.3 KB · Views: 11
  • 2025-05-19 14_19_30-PVE-LAB01.png
    2025-05-19 14_19_30-PVE-LAB01.png
    50.6 KB · Views: 11
  • 2025-05-19 14_19_07-PVE-LAB01.png
    2025-05-19 14_19_07-PVE-LAB01.png
    14.6 KB · Views: 11
  • 2025-05-19 14_18_32-PVE-LAB01.png
    2025-05-19 14_18_32-PVE-LAB01.png
    26.5 KB · Views: 11
  • 2025-05-19 14_17_56-PBS-LAB01.png
    2025-05-19 14_17_56-PBS-LAB01.png
    65.9 KB · Views: 11
  • 2025-05-19 14_16_56-PBS-LAB01.png
    2025-05-19 14_16_56-PBS-LAB01.png
    77.6 KB · Views: 11
Last edited:
Nun da Du deutsch spricht, versuche ich es auch.
Setzte bitte die Anzahl der Backups auf alle im Proxmox VE Job.
Ich lasse dann regelmäßig den Proxmox BS Prune Job für die unterschiedlichen Nodes laufen und kann so auf dem Proxmox BS festlegen, wie viele Backup ich über welchen Zeitraum aufheben möchte.
Dann z.B. alle 3 Stunden auch den Proxmox BS Garbage Collecor Job, um Cuncks markieren zu können.

Wichtig der Proxmox VE Job erhält nur create/ Schreibrechte, kann aber nichts löschen.
 
Nun da Du deutsch spricht, versuche ich es auch.
Setzte bitte die Anzahl der Backups auf alle im Proxmox VE Job.
Ich lasse dann regelmäßig den Proxmox BS Prune Job für die unterschiedlichen Nodes laufen und kann so auf dem Proxmox BS festlegen, wie viele Backup ich über welchen Zeitraum aufheben möchte.
Dann z.B. alle 3 Stunden auch den Proxmox BS Garbage Collecor Job, um Cuncks markieren zu können.

Wichtig der Proxmox VE Job erhält nur create/ Schreibrechte, kann aber nichts löschen.
Hallo,

ich habe es getestet, leider ohne Erfolg.
Das Backup läuft, jedoch löscht der Garbage Collect-Job die Dateien, was wieder zu gleichem Ergebnis führt, dass nur ein Backup des Tages da ist.
Anbei Screenshots.

Hast du noch eine andere Idee?
Oder habe ich was falsch gemacht?


1747851639663.png
1747851750504.png
 
Auf welchen Speichermedium und Filesystem liegen die Daten?
bei zfs ist es das flag atime=on auf dem zfs datastore des Backups.
 
Last edited:
Auf welchen Speichermedium und Filesystem liegen die Daten?
bei zfs ist es das flag atime=on auf dem zfs datastore des Backups.
Ich habe einen LVM-Thin Pool darunter
Ich konnte das Verhalten mit mehreren frischen Installationen (sowohl PVE, als auch PBS) nachstellen, es tritt immer gleiches Ergebniss auf
 
Ich verwende folgendes Setup:

Auf dem PBS habe ich einen restricted User angelgt mit den den Rechten/Rolle "Datastore.Backup" für den Datastore der Sicherungen.
Mit diesem User ist auch der PBS Storage am PVE angemeldet.
Für den Datastore auf dem PBS sind dann Prune und GC Tasks erstellt.

Bedeutet in der Praxis:
Der PVE Host kann Backups auf dem PBS speichern und rücksichern - aber keine Backups löschen.
Das hat unter anderem den Sinn, <falls> jemand durch einen Exploit den PVE übernimmt, kann er meine Backups nicht löschen.
Gelöscht wird ausschliesslich von den PBS Prune+GC Tasks oder manuell auf dem PBS.

Für die Retention Policy nehme ich den PBS Simulator, und richte das so ein das 10-20% Luft nach oben ist.

Läuft super ;)
 
Last edited:
  • Like
Reactions: news
Ich verwende folgendes Setup:

Auf dem PBS habe ich einen restricted User angelgt mit den den Rechten/Rolle "Datastore.Backup" für den Datastore der Sicherungen.
Mit diesem User ist auch der PBS Storage am PVE angemeldet.
Für den Datastore auf dem PBS sind dann Prune und GC Tasks erstellt.

Bedeutet in der Praxis:
Der PVE Host kann Backups auf dem PBS speichern und rücksichern - aber keine Backups löschen.
Das hat unter anderem den Sinn, <falls> jemand durch einen Exploit den PVE übernimmt, kann er meine Backups nicht löschen.
Gelöscht wird ausschliesslich von den PBS Prune+GC Tasks oder manuell auf dem PBS.

Für die Retention Policy nehme ich den PBS Simulator, und richte das so ein das 10-20% Luft nach oben ist.

Läuft super ;)
Genau das ist ja mein Problem, dass wenn Prune+GC laufen, diese meine automatischen Backups löschen, wenn ich manuell welche machen lasse
Allerdings bleiben mehrere manuelle alle bestehen, das ist eigenartig und ich komme nicht dahinter, warum das so ist und wie ich es korrigiere, dass er nach dem Alter löscht, wie es andere Backup Lösungen auch tun
 
Guten Morgen,
zum testen rate ich kein LVM für den Proxmox BS Datastore zu nutzen.
Einfach eine weitere SSD einhängen, partitionieren, für zfs Nutzung einrichten und in als BS Datastore anlegen.
 
Es gäbe eine einfache Lösung: Du kannst Backups auf "Protected" setzen, dann werden die von Prune/GC ausgenommen, bis du das wieder entfernst oder manuell löscht. Unabhängig davon liegt der eigentliche Fehler in den Prune Parametern.
 
Guten Morgen,
zum testen rate ich kein LVM für den Proxmox BS Datastore zu nutzen.
Einfach eine weitere SSD einhängen, partitionieren, für zfs Nutzung einrichten und in als BS Datastore anlegen.
Hallo,
das LVM-Thin liegt unter dem PVE Host, der PBS ist eine VM und darin ist via CIFS ein SMB Share eingebunden
 
Es gäbe eine einfache Lösung: Du kannst Backups auf "Protected" setzen, dann werden die von Prune/GC ausgenommen, bis du das wieder entfernst oder manuell löscht. Unabhängig davon liegt der eigentliche Fehler in den Prune Parametern.
Kannst du mir sagen, wo genau mein Fehler ist und wie ich ihn korrigiere?
 
ok dann liegt es daran: SMB Share
Siehe Post #7
Der Proxmox BS muss lokal auf SSDs laufen, so dass man auch das flag atime hat.

# https://forum.proxmox.com/threads/enabling-smb3-multichannel-in-proxmox.139414/
Ich habe es auch auf einem Blech mit einer SSD getestet, gleiches Ergebnis
Mehrere Verbindungen sind mit dem NAS möglich
Ich hatte zu Beginn ein Problem mit dem Zeitstempel der Dateien auf dem NAS, das habe ich erfolgreich korrigiert
Aber da gleiches Verhalten mit einer Installation auf Blech entsteht, gehe ich davon aus, dass das Verhalten nicht von der SMB Verbindung herrührt

Direkt nach dem Backup sind alle beiden Backups da, erste wenn ich die Prune/GC Jobs starte, löschen diese das automatische Backup
Jedoch behält es alle manuellen Backups (diese werden dennoch nach Ablauf der Zeit, testweise waren es 3 Tage, wie gewünscht gelöscht)
Das Verhalten irritiert mich sehr, es muss also einen Unterschied geben, ob der Job automatisch startet oder manuell
 
Last edited:
Wie erreicht man diese denn?
Als zahlender Kunde über das Supportforumular, hier im Forum beteiligen sie sich je nach ihren Zeitkapazitäten. Dazu kann man stehen, wie man will, aber grundsätzlich kann ich nachvollziehen, dass zahlende Kunden bevorzugt werden ;)
Das Problem in deinen Fall liegt aber meiner Meinung daran, dass ein Missverständnis in der Funktionsweise des PBS vorliegt.
Ganz grob:
  • Der PBS teilt die Backups in viele kleine Dateien (Chunks auf), diese werden in den einzelnen Snapshots referenziert.
  • Die prune-Jobs löschen die Snapshots samt ihrer Referenzen, die Chunks selbst bleiben noch liegen.
  • Die garbage-collection-Jobs entfernen dann die Chunks, die seit einer bestimmten Zeit (normalerweise 24 Stunden und fünf Minuten) in keinen Snapshot mehr referenziert wurden.
  • Darum sind prune-Jobs sehr schnell, garbage-collection und verify jobs dagegen sehr langsam, wenn sie auf einer Netzwerkfreigabe (wie smb) oder HDD statt SSD liegen. Man kann das bei HDDs mit einen special device als Metadatencache beschleunigen (vor allen die garbage collection): https://pbs.proxmox.com/docs/sysadmin.html#local-zfs-special-device
    Mit deinen Problem hat das aber noch nichts zu tun, aber der Vollständigkeit halber ;) smb benutzt du ja und das ist für eine gute Performance keine gute Idee.
  • Details zur Funktionsweise der Chunks sind dem technical Overview im Handbuch zu entnehmen:
    https://pbs.proxmox.com/docs/technical-overview.html
    Und zu den prune- und gc Jobs im Maintenance-Kapitel: https://pbs.proxmox.com/docs/maintenance.html

Du schreibst ja, dass prune- und gc-Jobs dir deine Snapshots löschen, das glaube ich nicht, da die garbage-collection (wie geschrieben) nichts mit dem Löschen der Snapshots samt Referenzen zu tun hat, das trägt nur den Müll nach den Aufräumen raus.

Dein Problem ist dass du deinen prune-Job im PBS nicht mitgeteilt hast, wieviele Kopien du aufbewahren willst. Der PBS bewahrt immer jeden Zeitraum das aktuellste Backup auf plus ggf. zusätzliche, die man mit keep-last ausgewählt hat, das kann man sich gut mit dem bereits verlinkten Simulator https://pbs.proxmox.com/docs/prune-simulator/ klar machen (der dazu daneben auch noch mal alle Optionen dokumentiert):
1747912648105.png
Erklärung: Ich lasse zwischen 0 und 23 Uhr alle 30 Minuten ein Backup machen (um dein Szenario mit zusätzlichen Backups zu simulieren) und möchte 32 tägliche und sechs stündliche behalten, dazu immer die vier letzten. Ergebnis: Die letzten vier werden behalten (auch die nicht zur vollen Stunde gesicherten), außerdem die letzten sechs stündlichen und 32 Täglichen. Da beim PBS immer die Reihenfolge last/hourly/daily/weekly/monthly/yearly abgearbeitet wird, führt das am Anfang dazu, dass sich die Tage teilweise überlappen.

Dein Ziel (Backups außerhalb der Reihe werden nicht gelöscht) lassen sich auf folgende Weise lösen:

  • Schreibschutz für den Snapshot setzen, dann wird er nur gelöscht, wenn du das explizit anforderst
  • keep-last großzügig genug setzen, dass es immer hinkommen wird (z.B. 24)
  • keep-hourly groß genug setzen (siehe 2. Option), envtl. in Kombination mit keep-last
Dafür musst du natürlich eine Idee haben, wieviele Backups außerhalb der Reihe du üblicherweise haben wirst und sobald keep-last abgearbeitet ist, werden trotzdem beim nächsten Schedule natürlich wieder die außerhalb des stündlichen/täglichen etc Zeitraums liegenden Snapshots gelöscht werden. Aber das sollte sich mit passend gesetzten Parametern ja im erträglichen Bereich befinden, z.B. mit 24 last und 24 hourly:
1747912563687.png

Oder mit sechs last 24 hourly und 32 daily:
1747912484732.png


Was ich mir an deiner Stelle noch überlegen würde: Zusätzlich noch wöchentliche und monatliche Kopien aufbewahren (bei mir vier wöchentliche und zwölf Monatliche), der Platzverbrauch hält sich dank der Deduplizierung in Grenzen und so kann man bei einen Datenverlust/Ransomwarevorfall noch einen längeren Zeitraum zurück, falls die Kompromittierung bereits den Zeitraum der 30 täglichen Backups umfasst...