Proxmox Backup: Aufbewahrung und Zeitpläne richtig einstellen
Grundsatz: Nur der PBS entscheidet, welche Backups wegfallen. Der PVE sichert nur und behält alles (keep-all). Sonst räumen zwei Regelwerke gleichzeitig auf, und keiner weiß mehr, welches gilt.
1. PVE: Aufbewahrung auf „Keep all“
Das geht an zwei Stellen. Eine davon reicht, sicherer ist es, beide einzustellen:
- Pro Backup-Job: Datacenter → Backup → Job → Edit → Reiter Retention → Keep all backups anhaken. In der Job-Liste steht dann in der Spalte Retention
keep-all=1. - Am Storage: Datacenter → Storage → PBS-Storage → Edit → Reiter Backup Retention → Keep all backups. Das greift für alle Jobs, die „Fallback from storage config“ anzeigen.
2. PVE: Backup-Zeitpläne
Das Feld Schedule ist ein Textfeld. Die Liste darunter enthält nur Vorschläge. Lösche den Inhalt, tippe den Zeitplan ein und bestätige mit Tab und nicht mit Enter. Mit Enter übernimmt das Feld sonst den markierten Vorschlag. Danach muss in der Liste unter Next Run eine Uhrzeit stehen.
Bewährte Aufteilung in zwei Jobs:
| Job | Welche VMs | Schedule | Warum |
|---|---|---|---|
| Arbeits-VMs | Fileserver, Terminalserver, VDI, Datenbanken | mon..fri 06..20/2:00 |
Alle 2 Stunden während der Arbeitszeit. Nachts ändert sich nichts, und der PBS hat Ruhe für die Wartung. |
| Infrastruktur | DC, Proxy, Telefonanlage, DynDNS-Client, Kleinkram | 21:00 (täglich) |
Durch die Deduplizierung kostet ein unverändertes Backup fast nichts. Ein tägliches Backup auch am Wochenende fängt z. B. einen neu angelegten Benutzer im DC mit ab. |
Haken bei „Enable“ prüfen. In der Liste muss in der Spalte Enabled ein ✔ stehen. Ein Strich heißt: Der Job ist deaktiviert.
Ausgeschaltete VMs dürfen trotzdem im Job stehen, sie werden ganz normal gesichert.
Über den Knopf Show: Guests Without Backup Job findest du VMs, die in keinem Job stehen.
Kurzreferenz Zeitplan-Syntax (systemd-Kalender)
| Schedule | Bedeutung |
|---|---|
21:00 |
täglich 21:00 |
mon..fri 22:00 |
Montag bis Freitag 22:00 |
mon..fri 06..20/2:00 |
Mo–Fr um 06, 08, …, 20 Uhr |
*/2:00 |
alle 2 Stunden, rund um die Uhr |
sun 04:00 |
sonntags 04:00 |
3. PBS: Prune, Garbage Collection, Verify
Alles unter Datastore → (Name) → Prune & GC Jobs bzw. Verify Jobs. Die Reihenfolge ist wichtig: erst sichern, dann Prune, dann GC.
| Was | Schedule | Was es tut |
|---|---|---|
| Prune-Job | 01:00 |
Entscheidet nach den Keep-Regeln, welche Backups wegfallen. Gibt selbst keinen Platz frei. |
| Garbage Collection | 02:00 |
Löscht Chunks, die kein Backup mehr braucht. Erst damit wird die Platte frei. |
| Verify-Job | sun 04:00, Skip Verified an, Re-Verify After 30 Tage |
Liest die Backups und prüft, ob sie lesbar sind. |
Empfohlene Keep-Regeln (Startwerte)
| Regel | Wert | deckt ab |
|---|---|---|
| keep-hourly | 12 | bei 2-Stunden-Takt etwa die letzten anderthalb Arbeitstage |
| keep-daily | 14 | zwei volle Wochen, jeder Tag einzeln. Fängt „Datei vor zwei Wochen gelöscht“ ab. |
| keep-weekly | 4 | weitere vier Wochen im Wochenabstand |
| keep-monthly / yearly | 0 (erst einmal) | erst erhöhen, wenn die Belegung nach zwei Wochen deutlich unter 80 % bleibt |
Insgesamt kommt man damit etwa 6 Wochen zurück. Für Stände über Jahre gehört ein zweites Ziel mit eigener, langer Aufbewahrung dazu. Dafür einen Sync-Job einrichten, z. B. auf einen zweiten PBS oder einen S3-Datastore.
proxmox-backup-debug api create /admin/datastore/DATASTORE/prune \ --backup-type vm --backup-id 101 --dry-run true \ --keep-hourly 12 --keep-daily 14 --keep-weekly 4
4. Überwachung (nicht weglassen)
- PVE: Backup-Job → Reiter Notifications → Mail bei Fehler.
- PBS: Configuration → Notifications → Ziel und Regeln für GC-, Prune-, Verify- und Sync-Fehler.
- Belegung: eine Warnung ab 80 %, z. B. per Monitoring (Zabbix, Checkmk usw.) auf den Datastore-Pfad. ZFS wird ab etwa 80 % außerdem spürbar langsamer.