Was ist ein Proxmox-Backupserver?

Proxmox-Backupserver ist eine Open-Source-Software Lösung für Backuperstellung und Wiederherstellung. Genauer gesagt ist die Software auf das vzdump-Tool von Proxmox spezialisiert. Es können somit virtuelle Maschinen (KVM), LXC-Container oder physische Hosts gebackupt werden. Der Backupserver wird auf einem Debian-Server installiert und unterstützt nativ ZFS.

Die meiste administrative Arbeit kann über ein Webinterface erfolgen, was dem eines Proxmox-Hypervisors sehr ähnelt.

Warum sollten Backups von virtuellen Maschinen oder Containern erstellt werden?

Hauptgrund hierfür ist Datenverlust. Dieser kann durch menschliches aber auch technisches Versagen entstehen. Im Falle eines Datenverlusts kann ein aktuelles Backup eingespielt werden ohne Datenverlust. Auch kann der Stand einer virtuellen Maschine gesichert werden, wenn kritische Updates durchgeführt werden oder ein neues Feature ausgerollt wird.

Zusätzlich kann der Stand einer nicht mehr genutzten virtuelle Maschine gesichert werden, falls sich im Nachhinein herausstellt, dass wichtige Daten noch gebraucht werden. Somit können gesetzliche Vorschriften zur Datenspeicherung eingehalten werden.

Wie werden Backups durchgeführt?

Alle Backup-Daten werden in Chunks unterteilt, unter anderem die virtuellen Festplatten der VMs. Proxmox überwacht, in welchen Chunks/Sektoren Änderungen erfolgt sind. Nur die geänderten Chunks werden auf den Backupserver übertragen. Damit das Backup trotzdem vollständig ist, werden die Chunks, welche sich nicht verändert haben, referenziert statt redundant übertragen zu werden. Das spart eine Menge Ressourcen, wie Speicherplatz, und erhöht die Geschwindigkeit der Backups. Die Aufgabe der Unterteilung in Chunks übernimmt der jeweilige Proxmox-Hypervisor, nicht der Backupserver.

Als Beispiel: Eine VM mit einer 30 GB großen virtuellen Festplatte benötigt für ein initiales Backup etwa 3 Minuten im lokalen Gigabit-Netzwerk. Jedes weitere Backup mit mäßig vielen Dateiänderungen benötigt nicht einmal eine Minute.

Wie werden die Backups gespeichert?

Die Backups werden in vorher erstellen Datastores gespeichert. Dies können bspw. Festplatten im RAID-Verbund sein. Die Backups können in sogenannten Namespaces organisiert werden. So kann ein Namespace pro Cluster erstellt werden, um Verwechselungen oder Verwirrungen zu vermeiden.

Durch die Referenzierung von Chunks können beliebige Backups gelöscht werden, ohne frühere oder spätere Backups zu zerstören. Nach außen sichtbar ist jedes Backup ein Voll-Backup. Die einzelnen Chunks werden mit Prüfsummen verifiziert, damit keine korrupten Daten entstehen können. Mithilfe von Garbabe-Collection-Jobs können ungenutzte Daten gelöscht werden, um ungenutzten Speicher freizugeben.

Die Backups können auch mithilfe von AES-256 verschlüsselt werden. Der Key zur Verschlüsselung verbleibt auf dem jeweiligen Proxmox-Hypervisor. Der Backupserver hat keinen Zugriff auf den Key. Somit können Backups auch auf Backupservern gespeichert werden, welche nicht von einem selbst administriert werden, ohne Gefahr zu laufen, dass gespeicherte virtuelle Maschinen in fremde Hände gelangen können.

Die Backups werden zusätzlich verlustfrei komprimiert. Dabei wird auf Zstandard zurückgegriffen. Angaben zu Folge können mehrere Gigabyte Daten in wenigen Sekunden komprimiert werden. Beispiel: Es werden weniger als 250 GB Speicherplatz benötigt, um 10 Backups von 10 VMs zu speichern, welche überwiegend 10 GB große virtuelle Festplatten besitzen.

Administratoren können über die durchgelaufenen Jobs per E-Mail informiert werden, um bei Fehlern direkt reagieren zu können.

Was gibt es noch für Vorteile?

Proxmox-Backupserver unterstützt die Möglichkeit von Sync-Jobs. Das ermöglicht offside-Backups, welche zusätzlich georedundant sein können. Die Backups werden durch Deduplikation nicht jedes mal vollständig übertragen, was Speicherplatz und Netzwerktraffic einspart. Backups werden clientseitig verschlüsselt, sodass der Backupserver keinen Zugriff auf die Daten des Backups hat. Wird der Backup-Key auf einem Proxmox-Hypervisor importiert, können dort die Backups wiederhergestellt werden.

Einen Proxmox-Backupserver einrichten

Nachdem der PBS (Proxmox-Backupserver) installiert wurde, kann sich wie während der Installation festgelegt, im Webinterface angemeldet werden. Achtung: Bei einem Proxmox-Hypervisor läuft das Webinterface über Port 8006, bei einem PBS über den Port 8007!

Speicher konfigurieren

Nach dem erfolgreichen Einloggen, muss zunächst ein Speicher konfiguriert werden, auf dem Backups gespeichert werden können. Dazu muss links im Menü zum Punkt Administration - Speicher/Disks navigiert werden. Es könnte wie folgt aussehen:


Bevor eine Festplatte als Speicher eingerichtet wird, sollte diese formatiert werden. Wir empfehlen als Dateisystem ZFS. Auf die Vorteile von ZFS gehen wir an dieser Stelle nicht ein, das würde zu weit führen. Um ein ZFS-Dateisystem auf der ausgewählten Festplatte zu erzeugen, muss in den Tab ZFS navigiert werden:


Der Name kann frei gewählt werden und die Kompression kann deaktiviert werden. Die Backups werden ohnehin komprimiert. Das spart unnötigen Overhead. Im unteren Bereich sollte nun die passende Festplatte angezeigt werden und das Dateisystem kann erzeugt werden. Nach einer kurzen Wartezeit wird der neu erzeugte ZFS-Pool unter Datstores angezeigt.

Datastores

Datastores sind Speicherlokationen, worin Backups gespeichert und organisiert werden können. Bevor das erste Backup gespeichert werden kann, sollten 2 essenzielle Änderungen gemacht werden:

  1. Namespaces anlegen
  2. Verifizierungs-Jobs anlegen

Namespaces sind sinnvoll, um Backups voneinander zu separieren. Beispielsweise können damit die Backups zwei verschiedener PVE-Hosts getrennt werden. Ein Namespace kann unter Datastore - (Name) - Inhalt - Namespace hinzufügen im oberen rechten Bereich hinzugefügt werden. Dabei können auch mehrere Namespaces unterhalb eines Namespaces angelegt werden.

Verifizierungs-Jobs können dem gleichnamigen Reiter angelegt werden. Hierbei können typische Job-Attribute konfiguriert werden. Der Dialog zur Erstellung eines solchen Jobs ist selbsterklärend. Abhängig von der Häufigkeit der erstellten Backups sollte die Häufigkeit der Job-Ausführung gewählt werden.

Den Backup-Server auf einem PVE-Host hinzufügen

Dieser Vorgang ist sehr einfach. Über Rechenzentrum - Storage - Hinzufügen - Proxmox-Backup-Server kann der Dialog gestartet werden. Die Maske wird wie folgt befüllt:

ID: “Name” des PBS auf dem lokalen PVE

Server: IP-Adresse des PBS

Username: root@pam

Password: root-Passwort des PBS

Datastore: Datastorename auf dem PBS

Namespace: nur wenn konfiguriert

Fingerprint: PBS → Dashboard → oben mittig Show Fingerprint

Danach kann direkt eine Verschlüsselung eingerichtet werden. Dazu muss im gleichen Dialog auf den Reiter Verschlüsselung geklickt werden. Dort kann ausgewählt werden, dass ein neuer Key generiert werden soll. Dieser ist unbedingt aufzubewahren! Falls der PVE-Host aus diversen Gründen nicht mehr genutzt werden kann, muss dieser Key auf einem anderen PVE-Host hinzugefügt werden können! Bei Verlust des Backup-Keys gibt es keine Möglichkeit die Backups wiederherzustellen!

Der PBS ist nun als Storage hinzugefügt und kann bei Backup-Jobs als Ziel ausgewählt werden.


Quelle: https://pbs.proxmox.com/docs/