Proxmox Backup Server Wartung

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Proxmox Backup Server: Prüfen und Aufräumen

Einführung

Ein Backup-Server sammelt Sicherungen, und ohne Pflege entstehen zwei Probleme:

  • Die Platte läuft über die Wochen voll.
  • Eine Sicherung kann auf der Platte unbemerkt kaputtgehen. Man merkt es erst, wenn man sie braucht.

Der Proxmox Backup Server (PBS) löst beides mit drei Aufgaben, die man als Jobs einrichtet:

Aufgabe Englisch Was sie tut
Prüfen Verify liest alle gespeicherten Daten und vergleicht die Prüfsummen. Findet beschädigte Sicherungen.
Ausdünnen Prune löscht alte Sicherungen nach einer Regel, zum Beispiel „die letzten 3, dazu 8 wöchentliche und 6 monatliche“.
Aufräumen Garbage Collection (GC) gibt den Platz frei, den gelöschte Sicherungen belegt haben.

Voraussetzungen

  • Ein laufender Proxmox Backup Server mit einem Datastore, hier storage
  • Mindestens eine Sicherung im Datastore
  • Zugriff als root auf dem Backup-Server (Weboberfläche auf Port 8007 oder SSH)

Die richtige Reihenfolge

Die Jobs bauen aufeinander auf. Darum liegen sie in dieser Reihenfolge am selben Wochentag:

Uhrzeit Job Warum zu dieser Zeit
nach dem Backup Backup der VMs läuft auf den Proxmox-Hosts, nicht auf dem Backup-Server
06:00 Prune entfernt zuerst, was nicht mehr gebraucht wird
07:00 Garbage Collection gibt danach den Platz frei
08:00 Verify prüft zuletzt nur noch, was wirklich übrig ist

Prune: alte Sicherungen ausdünnen

Wichtig
  • Prune löscht nur die Sicherung (den Eintrag), nicht sofort die Daten. Der Platz wird erst von der Garbage Collection frei.
Weboberfläche
  • Datastore → storage → Prune & GC → Add Prune Job
  • Schedule: sun 06:00
  • Keep Last: 3, Keep Weekly: 8, Keep Monthly: 6
Kommandozeile
proxmox-backup-manager prune-job create wochenbereinigung \
  --store storage --schedule "sun 06:00" \
  --keep-last 3 --keep-weekly 8 --keep-monthly 6
So liest man die Regel
Wert Bedeutung
keep-last 3 die drei jüngsten Sicherungen bleiben immer
keep-weekly 8 zusätzlich je eine pro Woche, die letzten acht Wochen
keep-monthly 6 zusätzlich je eine pro Monat, die letzten sechs Monate
  • Eine Sicherung bleibt, wenn eine der Regeln sie behalten will.
Kontrolle
proxmox-backup-manager prune-job list

Garbage Collection: Platz freigeben

Weboberfläche
  • Datastore → storage → Prune & GC → Edit bei Garbage Collection
  • Schedule: sun 07:00
Kommandozeile
proxmox-backup-manager datastore update storage --gc-schedule "sun 07:00"
Einmal von Hand starten
proxmox-backup-manager garbage-collection start storage
proxmox-backup-manager garbage-collection status storage
Gut zu wissen
  • Die Garbage Collection entfernt nur Daten, die kein Backup mehr braucht und die seit etwa 24 Stunden unbenutzt sind. Frisch gelöschte Sicherungen geben ihren Platz deshalb erst beim nächsten Lauf frei, nicht sofort.
  • Gleiche Datenblöcke speichert PBS nur einmal (Deduplizierung). Darum wächst der Speicher bei vielen ähnlichen Sicherungen nur langsam.

Verify: Sicherungen prüfen

Warum
  • Ein Backup, das man nicht zurückspielen kann, ist wertlos. Verify liest jeden Datenblock und vergleicht ihn mit der Prüfsumme, die beim Schreiben gespeichert wurde.
  • Das ist besonders wichtig, wenn der Datastore auf einer einzelnen Platte liegt, etwa mit ext4 und ohne Spiegel oder ZFS. Dann gibt es keine zweite Kopie, die einen Fehler bemerken würde.
Weboberfläche
  • Datastore → storage → Verify Jobs → Add
  • Schedule: sun 08:00
  • Skip verified: ja, Re-Verify After: 7 Tage
Kommandozeile
proxmox-backup-manager verify-job create wochenpruefung \
  --store storage --schedule "sun 08:00" \
  --ignore-verified true --outdated-after 7
Einmal von Hand prüfen
proxmox-backup-manager verify storage

Am Ende steht TASK OK und pro Sicherung (0 errors).

Was Verify nicht kann
  • Es repariert nichts. Ein Fehler wird gemeldet, die Sicherung gilt als „failed“. Bei der nächsten Sicherung legt PBS die betroffenen Teile neu an, sofern die Quelle noch da ist.
  • Es ersetzt keine zweite Kopie. Fällt die ganze Platte aus, ist alles weg.

Kontrolle: Läuft alles?

proxmox-backup-manager prune-job list
proxmox-backup-manager verify-job list
proxmox-backup-manager datastore show storage
proxmox-backup-manager task list --limit 10
  • In der Weboberfläche unter Administration → Tasks sieht man jeden Lauf mit Ergebnis.

Stolperfallen

  • Prune löscht, aber der Platz bleibt belegt. Erst die Garbage Collection gibt ihn frei, und sie braucht etwa einen Tag Abstand.
  • Die Reihenfolge ist wichtig. Läuft Verify vor Prune, prüft es Sicherungen, die kurz danach gelöscht werden.
  • Zu wenig behalten. Wer nur „keep-last 1“ einstellt, hat nach einem Fehler in der letzten Sicherung keine gute mehr. Mehrere Generationen behalten.
  • Die Uhrzeit. Schedule-Angaben sind in der Zeit des Servers. Stimmt die Uhr nicht, laufen die Jobs zur falschen Zeit.

Ausblick

  • Eine einzelne Platte ist ein einzelner Ausfallpunkt. Für echte Sicherheit braucht es eine zweite Kopie an anderem Ort: einen Sync-Job zu einem zweiten Backup-Server oder ein Remote-Ziel.

Aufgaben

  1. Lege den Prune-Job an und starte ihn von Hand. Wie viele Sicherungen bleiben übrig? (Hinweis: Eine neue Installation hat meist nur wenige.)
  2. Starte die Garbage Collection und lies in garbage-collection status, wie viel Platz belegt ist.
  3. Lege den Verify-Job an und starte eine Prüfung. Was bedeutet (0 errors)?
  4. Ändere die Regel auf „keep-last 1“. Warum ist das keine gute Idee?
  5. Erkläre in eigenen Worten, warum Prune allein keinen Platz freigibt.