Proxmox Backup Client Change Detection Mode - Legacy, Data, Metadata?

Der Proxmox Backup Client beherrscht mehrere Modi zur Erkennung und dem Sichern von Änderungen. In diesem Artikel eklären wir die Unterschiede und geben Empfehlungen, welchen Modus Sie für welchen Zweck verwenden sollten.

Für die Sicherung von LXC-Containern und separaten, nicht virtualisierten Hosts ist die Effizienz Ihrer Backups ein entscheidender Faktor. Die in Proxmox VE integrierte Backup Client sowie auch der Proxmox Backup Commandline Client (`proxmox-backup-client`) bieten verschiedene Change Detection Modes um die Effizienz von Dateibackups zu verbessern. So kann man zwischen den Modi "data", "metadata" und "legacy" wählen - aber wo liegen die Unterschiede und wann verwende ich was?

Das pxar-Format als Grundlage

Bevor wir uns die verschiedenen Modi genauer ansehen, möchte ich ein paar Informationen über das pxar-Archivformat nennen. Das Format wurde von Proxmox entwickelt, um Daten effizient zu speichern. Insbesondere die Verwendung von Hard-Links und dem Ziel, die Daten im Archiv möglichst gut deduplizieren zu können standen beim Design im Vordergrund.

Vom .pxar-Format gibt es mittlerweile eine weiter entwickelte Version:

  • pxar Version 1: Alle Daten werden in einem einzigen Archiv gespeichert.
  • pxar Version 2: Daten und Metadaten werden in separate Archive aufgeteilt.

Grundsätzlicher Ablauf

Sowohl der Proxmox Backup Client wie auch das Container Backup arbeiten nach dem gleichen Prinzip: Die Verzeichnisse und Dateien eines Filesystems werden gelesen. Darüber wird ein Rolling Hash gebildet, der bei bestimmten Mustern eine Markierung setzt und damit Verzeichnisse und Dateien in einzelne Chunks teilt. Diese Chunks werden dann auf dem Proxmox Backup Server abgelegt. Damit bei der Wiederherstellung die einzelnen Chunks in der richtigen Reihenfolge gelesen werden, wird zusätzlich ein Index über die gespeicherten Chunks und deren Reihenfolge erzeugt.

Bei einem späteren Restore wird dieser Index gelesen, damit die einzelnen Chunks in der ursprünglichen Reihenfolge wiederhergestellt werden können.

Der Vorteil liegt auf der Hand: Wenn ein gerade gelesener Chunk bereits auf dem Backup Server vorhanden ist, kann der Chunk auf clientseitig verworfen werden und nur ein Link zum bereits vorhandenen Server eingefügt werden. Alle gleichen Chunks müssen also nur einmal auf dem Datastore des PBS abgelegt werden. Dies entspricht einer clientseitigen Deduplizierung und reduziert den benötigten Speicherplatz für viele Backups, bei denen sich nur wenige Daten bei jedem Backup ändern. Das ist bei den meisten Backups der Fall.

Wo verwende ich das denn?

QEMU/KVM VMs: Bei der Sicherung von VMs unter Proxmox VE werden 4 MB große Chunks des VM Image gelesen und verarbeitet. Dabei ist der Change-Detection Mode völlig irrelevant, spielt hierbei also überhaupt keine Rolle.

LXC-Container: Beim Sichern von Containern unter Proxmox VE werden die einzelnen Dateien des Containers gelesen und diese je nach eingestelltem Legacy/Data/Metadata-Modus gelesen und verarbeitet. Hier spielt es eine Rolle. Einstellen lässt sich der Modus dann unter dem Advanced Tab eines Backup Jobs:

Proxmox-Backup-Client: Nutzt man den `proxmox-backup-client` als Commandline-Befehl um beispielsweise die Dateien seines Notebooks oder eines Proxmox VE Hypervisors zu sichern, kann man mit Hilfe der Option `--change-detection-mode=<legacy|data|metadata>` angeben, welcher Modus gewünscht wird. In der aktuellen Version ist der Legacy-Modus voreingestellt, wenn ich nichts anderes angebe.

In Gänze kann das dann so aussehen:

# proxmox-backup-client backup home.pxar:/home/<username>/    \
      --repository <user>@<realm>@<pbs-server>:<datastore>    \
      --change-detection-mode metadata

Change Detection Mode Legacy: Der frühere Ansatz

Der Legacy-Modus ist der älteste Modus und wird aus Kompatibilitätsgründen beibehalten. Er erstellt vollständige Backups im pxar-Format Version 1, bei dem sowohl Daten wie auch deren Metadaten in einem einzigen Archiv gespeichert werden.

Dieser Modus liest dazu alle Dateien im Container oder dem zu sichernden Host und speichert die geänderten Chunks in einem einzelnen Backup-Archiv pro Backup.

Allerdings müssen bei jedem Backup sämtliche Daten und Metadaten aus der Quelle gelesen werden, was bei größeren Containern oder Filesystemen eine ganze Weile dauern kann. Dieser Modus ist also zwar kompatibel mit alten Backup Client Versionen, jedoch auch der langsamste und ineffizienteste.

Nutzen Sie diesen Modus vor allem, wenn Sie die Daten in einer älteren Proxmox VE Version oder mit einem älteren Proxmox Backup Client wiederherstellen können möchten.

Change Detection Mode Data: Das vollständige, sichere Backup

Der Data-Modus erstellt immer ein vollständiges Backup aller Dateien. Er muss also noch immer sämtliche Dateien und Metadaten des Quellsystems lesen, allerdings werden diese dann in separaten pxar(v2)-Archiven gespeichert. Nun werden die einzelnen Chunks verglichen und damit festgestellt, ob Chunks bereits auf dem Datastore des Proxmox Backup Server vorhanden sind. Ist der Chunk bereits vorhanden, wird er nicht erneut übertragen, sondern nur noch referenziert.

Im Vergleich zum Legacy-Modus werden also immer noch alle Daten gelesen, aber die Verarbeitung auf dem Proxmox Backup Server hat Vorteile und führt damit zu einer höheren Geschwindigkeit und einer effizienteren Speicherung.

Nutzen Sie diesen Modus, wenn Sie Dateien sichern, deren Inhalt sich verändert ohne dass sich die Metadaten verändern. Nehmen wir als Beispiel eine Datenbank, die zwar Inhalte austauscht, dabei aber die vorher reservierte Größe und das Änderungsdatum der Datenbankdatei unverändert lässt.

Change Detection Mode Metadata: Der schnelle, inkrementelle Ansatz

Der Metadata-Modus untersucht die Metadaten der Dateien, z.B. Dateigröße und Änderungsdatum, um festzustellen, ob sie sich seit dem letzten Backup geändert haben. Anschließend werden nur noch die Chunks gesichert, deren Metadaten sich geändert haben. Auch dieser Modus verwendet das pxar-Format Version 2.

Dieser Modus ist deutlich schneller, da im LXC-Container oder dem zu sichernden Filesystem zunächst nur Metadaten verarbeitet werden müssen. Die eigentlichen Inhalte der Dateien werden jedoch dann erst dann gelesen, wenn die Metadaten seit dem letzten Backup verändert wurden. Dadurch ergibt sich ein deutlicher Gewinn bei der Geschwindigkeit.

Falls Sie Software einsetzen, die zwar Dateiinhalte verändert, aber die Metadaten nicht, kann dieser Modus aber zu fehlenden Chunks führen weil geänderte Dateiinhalte nicht erkannt werden.

Übersichtstabelle: Data- vs. Metadata- vs. Legacy-Modus

Merkmal Data-Modus Metadata-Modus Legacy-Modus
Backup-Typ Liest alle Dateien und deren Inhalte, erzeugt zwei getrennte Archive für Datei-Metadaten und Dateiinhalte. Liest und verarbeitet nur Dateien, deren Metadaten geändert wurden. Liest alle Dateien und deren Inhalte, erzeugt ein einziges Archiv, in dem Metadaten und Daten enthalten sind.
pxar-Format Version 2 (getrennte Daten und Metadaten) Version 2 (getrennte Daten und Metadaten) Version 1 (alle Daten in einem Archiv)
Geschwindigkeit Langsam Schnell Langsam
Datensicherheit Hoch Hoch, wenn Metadaten aktualisiert werden Hoch
Geeignet für Vollständige Backups, z.B. zum Beginn oder Ende eines Monats oder einer Woche Häufige inkrementelle Backups, z.B. stündliche oder tägliche Backups Kompatibilität mit älteren Versionen

Den richtigen Modus auswählen

  • Verwenden Sie den Data-Modus, wenn Sie ein vollständiges Backup benötigen und Wert auf hohe Datensicherheit legen. Dies bietet sich beispielsweise an, wenn Sie am Ende jeder Woche eine vollständige Sicherung anstoßen wollen, die alle Dateien sichert unabhängig davon ob sich die Metadaten geändert haben. In regelmäßigen Abständen erhöhen Sie damit die Sicherheit, dass auch Daten gesichert werden, deren Dateiinhalt sich geändert hat, die Metadaten aber nicht.
  • Verwenden Sie den Metadata-Modus, wenn Sie häufige inkrementelle Backups durchführen und die Backup-Geschwindigkeit und -Größe optimieren möchten. Beachten Sie jedoch das Risiko, dass Änderungen im Dateiinhalt möglicherweise nicht erkannt werden. Dieser Modus eignet sich z.B. für regelmäßige, im Hintergrund laufende Backups von Desktops.
  • Verwenden Sie den Legacy-Modus nur, wenn Sie Kompatibilität mit älteren Proxmox-Versionen benötigen.

Zusätzliche Tipps

  • Auf einem Proxmox VE können Sie in einem Backup Job unter Advanced den Modus pro Backup Job konfigurieren.
  • Es ist ratsam, monatlich oder wöchentlich vollständige Backups mit dem data-Modus durchzuführen, um sicherzustellen, dass alle Daten gesichert sind. Da die Modi data und metadata das gleiche Archivformat verwenden, können Sie problemlos mischen und Freitags ein Backup im data-Modus machen während Sie alle anderen Backups den schnelleren metadata-Modus verwenden.
  • Wenn Sie Anwendungen haben, die zwar Daten in einzelnen Dateien verändern, die Metadaten jedoch gleich bleiben, sollten Sie auf den metadata-Modus ganz verzichten.

Dieser Artikel ist ein Teil der Serie über Möglichkeiten des Proxmox Backup Servers. Kennen Sie schon unseren Self-Service Proxmox Backup Server in der Cloud?

Relevante Artikel in unserem Blog