Skip to content

Funktionsweise

pve-smart-backup fungiert als intelligente Steuerungsschicht oberhalb des Proxmox-eigenen VZDump-Tools. Es verhindert unnoetige, redundante Backups von Gaesten, an denen seit der letzten erfolgreichen Sicherung keinerlei Aenderungen vorgenommen wurden.


Fuer jeden in einem markierten Backup-Job konfigurierten Gast (VMID) prueft pve-smart-backup die folgende Entscheidungskette:

[Pruefung fuer VMID]
│
▼
Existiert bereits ein Backup?
/ \
Nein Ja
/ \
▼ ▼
[MUSS SICHERN] Zeitstempel des
(Erst-Backup) letzten Backups
ermitteln (T_last)
│
▼
War der Gast seit T_last aktiv?
/ \
Ja Nein
/ \
▼ ▼
[MUSS SICHERN] [UEBERSPRINGEN]
(Neues Backup) (Keine Aenderung)

1. Erkennung des letzten Backups ($T_{last}$)

Section titled “1. Erkennung des letzten Backups ($T_{last}$)”
  • pve-smart-backup fragt das fuer den Job konfigurierte Storage-Ziel ab.
  • Unterstuetzt werden alle Proxmox-kompatiblen Storages:
    • Lokale Verzeichnisse / NFS / CIFS / ZFS: Auswertung von Dateinamen im Format vzdump-qemu-<vmid>-<YYYY>_<MM>_<DD>-<HH>_<mm>_<ss>.vma.* bzw. vzdump-lxc-<vmid>-...tar.* sowie der Dateimetadaten (ctime).
    • Proxmox Backup Server (PBS): Auswertung von Snapshots im Datastore (vm/<vmid>/<timestamp> bzw. ct/<vmid>/<timestamp>).
  • Findet der Dienst kein vorheriges Backup, wird sofort ein Erst-Backup veranlasst.

Ein Gast gilt als aktiv, sobald mindestens eine der folgenden Bedingungen zutrifft:

  1. Aktueller Status ist running: Der Gast laeuft zum Pruefzeitpunkt.
  2. Uptime-Pruefung: Der Gast laeuft und wurde nach $T_{last}$ neu gestartet.
  3. Proxmox Task-Historie: In den Node-Tasks (qmstart, vzstart, qmreboot, qmresume, qmreset) existiert ein Start- oder Resume-Ereignis, dessen Startzeitpunkt nach $T_{last}$ liegt.
  4. Fehlerbehandlung: Kann der Status eines Gastes oder die Task-Historie nicht zuverlaessig ermittelt werden, greift automatisch das Sicherheitsprinzip: Der Gast wird vorsorglich gesichert.

Fuer alle als aktiv eingestuften Gaeste fuehrt pve-smart-backup den Befehl /usr/bin/vzdump aus. Dabei werden alle im Proxmox-Job konfigurierten Parameter 1:1 uebernommen:

  • Speicherziel (--storage)
  • Sicherungsmodus (--mode snapshot|suspend|stop)
  • Bandbreitenbegrenzung (--bwlimit)
  • Komprimierung (--compress zstd|gzip|lzo)
  • Notes-Template mit Platzhaltern (--notes-template {{guestname}} - {{cluster}})
  • Aufbewahrungsregeln (--prune-backups)
  • Mail-Benachrichtigungen (--mailnotification, --mailto)

Waren alle Gaeste eines Jobs inaktiv, wird vzdump gar nicht erst gestartet. Dadurch entsteht keinerlei I/O-Last auf den Platten und das Backup-Fenster bleibt frei.