Proxmox Backup Server: Garbage Collection und Prune
Einleitung
In dieser Anleitung erfahren Sie, wie Sie die Wartung von Proxmox Backup Server für die Langzeitspeicherung von Backups mit Prune-Jobs und Garbage Collection konfigurieren. Sie richten die Proxmox-Prune-Konfiguration ein, planen die Proxmox Garbage Collection und schätzen den Speicherbedarf ab, damit Ihr Datastore nicht unbegrenzt wächst und den gesamten verfügbaren Speicherplatz belegt.
Am Ende dieser Anleitung verfügen Sie über eine geplante Prune-Richtlinie und einen Garbage-Collection-Zeitplan für einen Proxmox-Backup-Server-Datastore, inklusive praktischer Aufbewahrungsbeispiele für tägliche, wöchentliche und monatliche Backups.
Voraussetzungen
Stellen Sie vor Beginn sicher, dass Folgendes vorhanden ist:
- Proxmox Backup Server 4.2.x oder neuer
- Ein konfigurierter PBS-Datastore mit vorhandenen oder geplanten Backups
- Administratorzugriff auf die Weboberfläche von Proxmox Backup Server
- Shell-Zugriff als root oder als ein anderer Benutzer mit ausreichenden PBS-Administrationsrechten
- Grundkenntnisse zu Backup-Jobs in Proxmox VE und zu PBS-Namespaces
- Etwa 30 Minuten für die Konfiguration
Diese Anleitung richtet sich an Systemadministratoren mit mittleren Vorkenntnissen.
Schritt 1: Zusammenspiel von Prune und Garbage Collection verstehen
In Proxmox Backup Server sind Pruning (Bereinigung) und Garbage Collection getrennte Wartungsvorgänge. Für eine effektive Verwaltung von Proxmox-Datastores ist es wichtig zu verstehen, wie beide zusammenarbeiten.
Ein Prune-Job legt fest, welche Backup-Snapshots behalten und welche aus dem sichtbaren Backup-Verlauf entfernt werden. Beim Prunen eines Snapshots entfernt PBS dessen Metadaten, Indizes, Logs und Notizen. Nicht verwendete Backup-Chunks werden dabei nicht sofort entfernt. Die Chunks, auf die gelöschte Snapshots verwiesen haben, werden erst später von der Garbage Collection entfernt.
Die Garbage Collection (GC) gibt Speicherplatz im Datastore frei, indem sie nicht mehr verwendete Chunks aus dem Chunk-Speicher löscht. PBS arbeitet mit deduplizierten Chunks, sodass ein Chunk von mehreren Backup-Snapshots referenziert werden kann. Daher kann PBS Chunks nicht genau in dem Moment sicher löschen, in dem ein Snapshot geprunt wird. Zuvor muss geprüft werden, dass kein verbleibender Snapshot und kein laufendes Backup mehr auf sie verweist.
Prune entfernt alte Backup-Snapshot-Einträge. Die GC gibt den tatsächlichen Speicherplatz frei.
PBS verwendet außerdem eine Karenzzeit (Grace Period) für das Entfernen von Chunks. Während der GC werden Chunks markiert und anschließend bereinigt (Mark-and-Sweep). Chunks innerhalb der Karenzzeit werden jedoch als ausstehende Entfernungen (pending removals) gemeldet und nicht sofort gelöscht. Dies schützt laufende Backups und berücksichtigt das Verhalten der Dateisystem-Zugriffszeiten, insbesondere beim üblichen relatime-Mount-Verhalten.
Schritt 2: Aktuelle Datastore-Konfiguration prüfen
Dies ist sowohl über die CLI als auch über die Weboberfläche möglich.
Verfügbare Datastores auflisten:
proxmox-backup-manager datastore list
Erwartete Ausgabe: Tabelle mit der Datastore-Liste.
Wählen Sie den Datastore, in dem Ihre Proxmox-VE-Backups gespeichert sind. Ersetzen Sie in den folgenden Beispielen <DATASTORE_NAME> durch den Namen Ihres Datastores.
Aktuellen Garbage-Collection-Status prüfen:
proxmox-backup-manager garbage-collection status <DATASTORE_NAME>
Es wird der aktuelle GC-Status des Datastores angezeigt. Wurde die GC noch nie ausgeführt, zeigt die Ausgabe möglicherweise keinen früheren erfolgreichen Lauf an.
Vorhandene Prune-Jobs auflisten:
proxmox-backup-manager prune-job list
Es werden die vorhandenen Prune-Jobs angezeigt, oder eine leere Liste, wenn noch kein Prune-Job konfiguriert wurde.
Zur Prüfung über die Weboberfläche öffnen Sie Datastore - <DATASTORE_NAME> - Prune & GC Jobs:

Schritt 3: Langfristige Aufbewahrungsrichtlinie für Backups planen
Eine Aufbewahrungsrichtlinie sollte zu den Wiederherstellungsanforderungen und zur Speicherkapazität passen. Für viele Proxmox-Backup-Aufbewahrungskonzepte eignet sich als Langzeitrichtlinie das Großvater-Vater-Sohn-Prinzip (Grandfather-Father-Son):
| Aufbewahrungsoption | Beispielwert | Ergebnis |
|---|---|---|
keep-daily |
14 | Ein Backup pro Tag für 14 Backup-Tage behalten |
keep-weekly |
8 | Ein Backup pro Woche für 8 Backup-Wochen behalten |
keep-monthly |
12 | Ein Backup pro Monat für 12 Backup-Monate behalten |
keep-yearly |
2 | Ein Backup pro Jahr für 2 Backup-Jahre behalten |
Die Aufbewahrungsoptionen von PBS werden anhand von Zeitintervallen (Time Buckets) verarbeitet. keep-daily behält beispielsweise das jeweils neueste Backup jedes aufbewahrten Tages, wobei Tage ohne Backups nicht mitgezählt werden. keep-weekly behält das jeweils neueste Backup jeder aufbewahrten ISO-Woche, wobei Wochen ohne Backups nicht mitgezählt werden.
Berechnen Sie die Aufbewahrung nicht als einfache Addition, ohne Überschneidungen zu berücksichtigen. Ein Backup kann die täglichen, wöchentlichen, monatlichen und jährlichen Regeln gleichzeitig erfüllen, sodass die genaue Anzahl der behaltenen Snapshots von den Zeitstempeln der Backups abhängt.
Beginnen Sie bei einem täglichen Backup-Zeitplan mit einer der folgenden Richtlinien:
| Richtlinie | Aufbewahrungseinstellungen | Anwendungsfall |
|---|---|---|
| Konservativ | keep-daily 7keep-weekly 4keep-monthly 6 |
Kleiner Datastore oder kurzer Wiederherstellungsverlauf |
| Ausgewogen | keep-daily 14keep-weekly 8keep-monthly 12 |
Typische VM- und Container-Backups |
| Langzeit | keep-daily 30keep-weekly 12keep-monthly 24keep-yearly 3 |
Größerer Datastore oder compliance-bedingter Aufbewahrungsverlauf |
Konfigurieren Sie die Aufbewahrung, bevor der Datastore fast voll ist. Die Bereinigung eines Proxmox-Datastores ist sicherer, wenn PBS noch genügend freien Speicherplatz für neue Backups und Wartungsaufgaben hat.
Schritt 4: Speicherbedarf vor dem Anwenden der Aufbewahrung abschätzen
Die Speicherplanung für die Langzeitspeicherung von Backups ist nicht dasselbe wie die Multiplikation der vollständigen VM-Größe mit der Anzahl der Snapshots. Proxmox Backup Server verwendet Deduplizierung, sodass jedes neue Backup in der Regel nur geänderte Chunks und Metadaten speichert. Dennoch sollten Sie eine konservative Schätzung vornehmen.
Verwenden Sie diese Formel:
Geschätzter Speicherbedarf = ursprünglich gesicherte Daten + täglich geänderte Daten * Äquivalent der aufbewahrten Tage + Sicherheitsreserve
Beispiel 1: Ausgewogene Aufbewahrung für eine VM-Gruppe:
| Wert | Beispiel |
|---|---|
| Gesicherte VM-Daten | 2 TB |
| Durchschnittlich täglich geänderte Daten | 80 GB |
| Aufbewahrungsrichtlinie | 14 täglich · 8 wöchentlich · 12 monatlich |
| Sicherheitsreserve | 25 Prozent |
Ungefähre Anzahl der aufbewahrten Änderungspunkte:
14 daily + 8 weekly + 12 monthly = 34 restore points
Ungefähre Menge geänderter Daten:
80 GB * 34 = 2720 GB
Ungefähre Gesamtmenge vor der Reserve:
2000 GB + 2720 GB = 4720 GB
Addieren Sie eine Sicherheitsreserve von 25 Prozent:
4720 GB * 1.25 = 5900 GB
Für diese Arbeitslast sollten Sie etwa 6 TB nutzbare Datastore-Kapazität einplanen.
Beispiel 2: Richtlinie für einen kleineren Datastore:
| Wert | Beispiel |
|---|---|
| Gesicherte VM-Daten | 1 TB |
| Durchschnittlich täglich geänderte Daten | 30 GB |
| Aufbewahrungsrichtlinie | 7 täglich · 4 wöchentlich · 6 monatlich |
| Sicherheitsreserve | 25 Prozent |
Ungefähre Anzahl der Wiederherstellungspunkte:
7 + 4 + 6 = 17 restore points
Ungefährer Speicherbedarf:
1000 GB + (30 GB * 17) = 1510 GB 1510 GB * 1.25 = 1887.5 GB
Für diese Arbeitslast sollten Sie etwa 2 TB nutzbare Datastore-Kapazität einplanen.
Diese Beispiele sind bewusst konservativ gewählt. Die tatsächliche PBS-Auslastung kann niedriger ausfallen, da die Deduplizierung Chunks über mehrere Snapshots und ähnliche Systeme hinweg wiederverwenden kann.
Schritt 5: Prune-Job in der Weboberfläche erstellen
- Öffnen Sie die Weboberfläche von Proxmox Backup Server.
- Wählen Sie Datastore.
- Wählen Sie
<DATASTORE_NAME>. - Öffnen Sie den Tab Prune & GC.
- Klicken Sie auf Add Prune Job.
- Setzen Sie Datastore auf
<DATASTORE_NAME>. - Legen Sie den Namespace fest, wenn nur ein Namespace gepruned werden soll.
- Konfigurieren Sie die Aufbewahrungswerte, zum Beispiel
keep-dailymit14,keep-weeklymit8undkeep-monthlymit12. - Legen Sie den Zeitplan fest, zum Beispiel
03:00. - Speichern Sie den Prune-Job.

Erwartetes Ergebnis: PBS erstellt einen geplanten Prune-Job für den Datastore oder Namespace. Dieser Job entfernt regelmäßig Backup-Snapshots, die von Ihrer Aufbewahrungsrichtlinie nicht mehr erfasst werden.
Schritt 6: Prune-Job über die Kommandozeile erstellen
Denselben Prune-Job können Sie auch über die PBS-Shell erstellen.
Für einen Prune-Job für den gesamten Datastore:
proxmox-backup-manager prune-job create pve-longterm \ --store <DATASTORE_NAME> \ --schedule "03:00" \ --keep-daily 14 \ --keep-weekly 8 \ --keep-monthly 12 \ --comment "Long-term Proxmox backup retention"
Erwartetes Ergebnis: PBS erstellt einen Prune-Job mit dem Namen pve-longterm.
Für einen Prune-Job, der auf einen Namespace beschränkt ist:
proxmox-backup-manager prune-job create pve-namespace-longterm \ --store <DATASTORE_NAME> \ --ns <NAMESPACE> \ --schedule "03:00" \ --keep-daily 14 \ --keep-weekly 8 \ --keep-monthly 12 \ --comment "Long-term retention for namespace"
Erwartetes Ergebnis: PBS prunt nur den ausgewählten Namespace. Das ist nützlich, wenn verschiedene Cluster, Mandanten oder Umgebungen unterschiedliche Aufbewahrungsrichtlinien benötigen.
Prune-Job auflisten:
proxmox-backup-manager prune-job list
Erwartete Ausgabe: Tabelle mit der Liste der Proxmox-Backup-Bereinigungsjobs.
Schritt 7: Garbage-Collection-Zeitplan konfigurieren
Nachdem das Pruning die Metadaten alter Snapshots entfernt hat, muss die GC laufen, um den Speicherplatz nicht verwendeter Chunks freizugeben. Ein wöchentlicher GC-Zeitplan ist für die meisten Konfigurationen ein guter Ausgangspunkt.
Wöchentlichen GC-Zeitplan festlegen:
proxmox-backup-manager datastore update <DATASTORE_NAME> \ --gc-schedule "Sun 04:00"
In der Weboberfläche konfigurieren Sie ihn unter Datastore - <DATASTORE_NAME> - Prune & GC Jobs → Garbage Collection Jobs → Edit:

Erwartetes Ergebnis: PBS plant die Garbage Collection für den Datastore jeden Sonntag um 04:00 Uhr.
GC-Status prüfen:
proxmox-backup-manager garbage-collection status <DATASTORE_NAME>
Die erwartete Ausgabe enthält den Datastore-Namen sowie Informationen zum letzten oder nächsten GC-Lauf.
Sie können die GC auch manuell starten:
proxmox-backup-manager garbage-collection start <DATASTORE_NAME>
Erwartetes Ergebnis: PBS startet einen GC-Task für den Datastore.
Erwarten Sie nicht, dass die GC unmittelbar nach dem Pruning jeden nicht verwendeten Chunk löscht. PBS meldet einige Chunks möglicherweise als ausstehende Entfernungen (pending removals), bis die Karenzzeit abgelaufen ist.
Schritt 8: Sicheren Prune- und GC-Zeitplan wählen
Ein praxistauglicher Zeitplan sieht so aus:
| Aufgabe | Beispiel-Zeitplan | Begründung |
|---|---|---|
| Proxmox-VE-Backup-Job | Täglich um 01:00 Uhr |
Erstellt zuerst neue Backups |
| PBS-Prune-Job | Täglich um 03:00 Uhr |
Entfernt Snapshots außerhalb der Aufbewahrung |
| PBS-GC-Job | Wöchentlich sonntags um 04:00 Uhr |
Gibt nach dem Pruning nicht verwendete Chunks frei |
Diese Reihenfolge stellt sicher, dass neue Backups verfügbar sind, bevor alte Snapshots entfernt werden. Außerdem bleibt PBS genügend Zeit, Backup-Schreibvorgänge abzuschließen, bevor die Prune- und GC-Tasks starten.
Vermeiden Sie in stark ausgelasteten Umgebungen, Backup-, Verifizierungs-, Prune-, Sync- und GC-Tasks gleichzeitig auszuführen. Staffeln Sie die Wartungsjobs zeitlich, um Konkurrenz um I/O-Ressourcen zu verringern.
Wenn Ihr Datastore täglich viele Backups erhält, beginnen Sie mit einer wöchentlichen GC. Füllt sich der Datastore nach dem Pruning schnell wieder, können Sie die GC häufiger ausführen, sollten aber die I/O-Auswirkungen überwachen.
Schritt 9: Konfiguration überprüfen
Prune-Jobs auflisten:
proxmox-backup-manager prune-job list
Vergewissern Sie sich, dass der Job den erwarteten Datastore, Namespace, Zeitplan und die erwarteten keep-Werte enthält.
Einen Prune-Job anzeigen:
proxmox-backup-manager prune-job show pve-longterm
Erwartetes Ergebnis: PBS zeigt die konfigurierten Aufbewahrungsoptionen an.
GC-Konfiguration prüfen:
proxmox-backup-manager garbage-collection list
Erwartetes Ergebnis: PBS listet den Garbage-Collection-Status aller Datastores auf, einschließlich Datastores ohne GC-Jobs.
Datastore-Auslastung in der Weboberfläche prüfen:
- Öffnen Sie Datastore.
- Wählen Sie
<DATASTORE_NAME>. - Prüfen Sie die Datastore-Auslastung und den Task-Verlauf.
- Öffnen Sie Tasks und vergewissern Sie sich, dass die Prune- und GC-Jobs erfolgreich abgeschlossen werden.
Erwartetes Ergebnis: Der Datastore zeigt geplante Wartungsaktivitäten, und alte Snapshots werden gemäß der konfigurierten Proxmox-Prune-Konfiguration entfernt.
Schritt 10: Speicherwachstum im Zeitverlauf überwachen
Überwachen Sie nach dem Konfigurieren der Prune-Jobs in PBS die Speicherauslastung mindestens über einen vollständigen Aufbewahrungszyklus. Wenn Sie beispielsweise keep-monthly 12 konfigurieren, benötigen Sie Daten über mehrere Monate, bevor der langfristige Trend erkennbar wird.
Prüfen Sie diese Kennzahlen:
| Kennzahl | Was zu prüfen ist |
|---|---|
| Belegter Speicherplatz des Datastores | Zeigt, ob die Optimierung des Backup-Speichers wirkt |
| Prune-Task-Logs | Bestätigen, dass Snapshots entfernt werden |
| GC-Task-Logs | Bestätigen, dass nicht verwendete Chunks gelöscht werden |
| Ausstehende Entfernungen (Pending removals) | Zeigen Chunks an, die auf das Ende der GC-Karenzzeit warten |
| Trend der Backup-Job-Größe | Zeigt, ob die Menge geänderter Daten steigt |
Wächst der Datastore schneller als erwartet, reduzieren Sie die Aufbewahrung oder erweitern Sie den Speicher, bevor das Dateisystem voll wird.
Häufige Anpassungen:
| Problem | Anpassung |
|---|---|
| Datastore füllt sich zu schnell | keep-daily, keep-weekly oder keep-monthly reduzieren |
| Zu wenige aktuelle Wiederherstellungspunkte | keep-daily erhöhen |
| Monatsverlauf ist zu kurz | keep-monthly erhöhen |
| Backups überschneiden sich mit der Wartung | Prune oder GC auf einen späteren Zeitpunkt verschieben |
| GC gibt kaum Speicher frei | Prüfen, ob die Prune-Jobs tatsächlich alte Snapshots entfernen |
Änderungen rückgängig machen
So entfernen Sie einen Prune-Job:
proxmox-backup-manager prune-job remove pve-longterm
Erwartetes Ergebnis: PBS entfernt die Konfiguration des Prune-Jobs.
So deaktivieren Sie den GC-Zeitplan, ohne den Datastore zu löschen:
proxmox-backup-manager datastore update <DATASTORE_NAME> \ --delete gc-schedule
Erwartetes Ergebnis: PBS entfernt den automatischen GC-Zeitplan für den Datastore.
So ändern Sie die Aufbewahrung, statt den Prune-Job zu entfernen:
proxmox-backup-manager prune-job update pve-longterm \ --keep-daily 7 \ --keep-weekly 4 \ --keep-monthly 6
Erwartetes Ergebnis: PBS behält den Prune-Job bei, wendet aber bei künftigen Prune-Läufen die neue Aufbewahrungsrichtlinie an.
Das Zurücksetzen einer Prune-Richtlinie stellt bereits gelöschte Snapshots nicht wieder her. Sobald ein Snapshot entfernt wurde und seine Chunks später von der GC gelöscht wurden, lässt er sich aus PBS nicht wiederherstellen.
Fehlerbehebung
Die GC gibt nicht sofort Speicherplatz frei
Ursache: Prune hat die Snapshot-Metadaten entfernt, aber die Chunks werden noch von anderen Snapshots referenziert oder liegen innerhalb der GC-Karenzzeit.
Lösung: Warten Sie die Karenzzeit ab und führen Sie die GC später erneut aus. Prüfen Sie die Task-Logs auf ausstehende Entfernungen (pending removals).
Prune behält mehr Backups als erwartet
Ursache: keep-daily, keep-weekly und keep-monthly arbeiten mit Zeitintervallen. Tage, Wochen oder Monate ohne Backups zählen nicht mit. Außerdem überschneiden sich die Aufbewahrungsregeln.
Lösung: Verwenden Sie den PBS-Prune-Simulator, bevor Sie die Aufbewahrung in der Produktion ändern. So können Sie das Verhalten der Aufbewahrung vor dem Anwenden der Änderungen in einer Vorschau prüfen.
Der Datastore wächst nach Prune und GC weiter
Ursache: Die täglich geänderte Datenmenge kann höher sein als geschätzt, Backups können neue Disks enthalten, oder die Aufbewahrung ist für den Datastore zu umfangreich.
Lösung: Berechnen Sie die Volumenschätzung mit den tatsächlich geänderten Daten neu. Reduzieren Sie die Aufbewahrung oder erweitern Sie den Speicher.
Ein Prune-Job wirkt sich nicht auf einen Namespace aus
Ursache: Der Prune-Job ist möglicherweise für den falschen Namespace oder die falsche Namespace-Tiefe konfiguriert.
Lösung: Prüfen Sie die Einstellungen des Prune-Jobs und kontrollieren Sie den Wert von --ns. Soll der Job nur für einen Namespace gelten, legen Sie den Namespace explizit fest.
Backup-Clients können weiterhin Backups löschen
Ursache: Die Backup-Zugangsdaten haben möglicherweise Löschrechte, oder die Aufbewahrung ist außerhalb von PBS konfiguriert.
Lösung: Wenden Sie für Backup-Clients das Prinzip der minimalen Rechte (Least Privilege) an. Für Ransomware-Resistenz sollten Sie PBS-seitige Prune-Jobs bevorzugen, statt Backup-Clients Löschrechte zu erteilen.
Fazit
Sie haben die Wartung von Proxmox Backup Server für die Langzeitaufbewahrung konfiguriert, indem Sie einen Prune-Job erstellt und die Garbage Collection geplant haben. Außerdem haben Sie erfahren, warum Chunks nicht sofort gelöscht werden, wie die GC die Bereinigung des Datastores abschließt und wie Sie den Speicherbedarf vor dem Anwenden der Langzeitaufbewahrung abschätzen. Diese Vorgehensweisen unterstützen die Proxmox-Backup-Optimierung, indem sie die Speichereffizienz verbessern und dafür sorgen, dass die Backup-Aufbewahrung berechenbar und beherrschbar bleibt.
Als nächste Schritte empfehlen wir, Verifizierungsjobs hinzuzufügen, Benachrichtigungen für fehlgeschlagene Prune- und GC-Tasks einzurichten und das Datastore-Wachstum monatlich zu überprüfen. So bleibt die Optimierung des Backup-Speichers berechenbar, und die Aufbewahrungseinstellungen verbrauchen nicht unbemerkt die gesamte verfügbare Kapazität.
Dokumentversion: 1.0
Zuletzt aktualisiert: Juni 2026
Verantwortlich: Team für technische Dokumentation