Proxmox Backup Server (PBS) ist eine Open-Source-Backup-Lösung der Firma Proxmox Server Solutions GmbH, die speziell für die Sicherung virtueller Maschinen, Container und physischer Hosts entwickelt wurde. Im Gegensatz zu klassischen Backup-Werkzeugen wie rsync, Bacula oder Amanda verfolgt PBS einen modernen, inkrementell-dauerhaften Ansatz auf Basis von chunk-basierter Deduplizierung.
Bei herkömmlichen Backup-Strategien wird entweder ein vollständiges Abbild (Full Backup) oder ein differenzielles bzw. inkrementelles Backup erstellt. Das führt dazu, dass bei jedem Backup entweder sehr viel Platz benötigt wird oder komplexe Backup-Chains entstehen, die bei der Wiederherstellung fehleranfällig sein können. PBS geht einen anderen Weg: Jedes Backup wird als eigenständig (self-contained) gespeichert – es ist jedoch intern auf gemeinsam genutzte Chunks angewiesen, die dedupliziert auf dem Datastore liegen.
Das bedeutet: PBS zerlegt das zu sichernde Abbild in gleichgroße oder variable Datenblöcke (Chunks) und speichert jeden Chunk nur einmal, unabhängig davon, wie oft er in verschiedenen Backups vorkommt. Ändert sich zwischen zwei Backups nur ein kleiner Teil der VM-Festplatte, werden auch nur die geänderten Chunks neu gespeichert. Der Speicherbedarf bleibt dadurch drastisch geringer als bei vollständigen Abbildern – gleichzeitig ist jedes Backup einzeln und vollständig wiederherstellbar, ohne auf eine Backup-Chain angewiesen zu sein.
Typische Einsatzbereiche für PBS im Homelab und im professionellen Betrieb sind die Sicherung von Proxmox VE-Clustern, einzelnen QEMU/KVM-VMs, LXC-Containern sowie die Langzeitarchivierung mit konfigurierbaren Aufbewahrungsregeln.
2. Architektur – Datastore, Chunks und Client-Server-Modell
Die grundlegende Architektur von PBS basiert auf wenigen, aber klar definierten Konzepten, die zusammen ein effizientes und robustes Backup-System ergeben.
2.1 Datastore
Ein Datastore ist das zentrale Speicherziel in PBS. Es handelt sich dabei um ein Verzeichnis auf dem Dateisystem des PBS-Hosts, das PBS zur strukturierten Ablage von Backups nutzt. Innerhalb eines Datastores werden Backups nach Host, Backup-Typ und Zeitstempel organisiert. Mehrere Datastores können auf einem PBS-Server konfiguriert werden, beispielsweise für verschiedene Aufbewahrungsrichtlinien oder physisch getrennte Speichermedien.
2.2 Chunks und Deduplizierung
PBS zerlegt die Backup-Daten in Chunks mit einer Größe von standardmäßig 4 MB. Jeder Chunk wird durch einen kryptografischen Hash (SHA-256) identifiziert. Beim Speichern prüft PBS, ob ein Chunk mit demselben Hash bereits im Datastore vorhanden ist. Ist das der Fall, wird kein neuer Chunk gespeichert – stattdessen verweist das Backup lediglich auf den bereits vorhandenen. Diese Deduplizierung funktioniert datastore-weit, also auch über verschiedene VMs und Backup-Jobs hinweg.
2.3 Namespaces
Ab PBS 2.2 unterstützt PBS Namespaces innerhalb eines Datastores. Namespaces erlauben es, Backups logisch zu gruppieren und Zugriffsrechte feingranular zu vergeben. So kann beispielsweise ein Mandant nur auf seinen eigenen Namespace zugreifen, obwohl er denselben physischen Datastore nutzt wie andere Benutzer. Im Homelab lassen sich Namespaces gut nutzen, um Backups verschiedener PVE-Cluster oder verschiedener Umgebungen (z. B. Produktion und Test) sauber voneinander zu trennen.
2.4 Client-Server-Modell
PBS arbeitet nach einem klassischen Client-Server-Modell. Der PBS-Host stellt den Backup-Server dar und ist über HTTPS (Port 8007) erreichbar. Clients – in der Praxis meist Proxmox VE-Nodes – verbinden sich mit dem PBS-Server, übertragen geänderte Chunks und lösen Backup-Jobs aus. Die Kommunikation ist stets TLS-verschlüsselt; die Authentifizierung erfolgt über API-Tokens oder Benutzerpasswörter. Der Fingerprint des TLS-Zertifikats wird beim ersten Verbindungsaufbau verifiziert und anschließend fest hinterlegt, um Man-in-the-Middle-Angriffe zu verhindern.
3. Installation
PBS basiert auf Debian und kann entweder auf Bare-Metal oder als eigene virtuelle Maschine (beispielsweise innerhalb von Proxmox VE selbst) installiert werden. Im Homelab-Betrieb ist die Installation als VM besonders praktisch, da sie einfach gesnapshotter und migriert werden kann. Für die PBS-VM empfehlen sich mindestens 2 vCPUs, 4 GB RAM und eine separate virtuelle Festplatte als Datastore-Laufwerk.
3.1 ISO-Installation
Das offizielle PBS-ISO-Image steht auf der Proxmox-Website zum Download bereit. Die Installation verläuft ähnlich wie bei Proxmox VE: Sprache, Zeitzone, Festplatte, Netzwerkkonfiguration und Root-Passwort werden abgefragt. Nach der Installation ist das Web-UI unter https://<IP>:8007 erreichbar.
3.2 Installation auf bestehendem Debian
Alternativ kann PBS auf einem bestehenden Debian 12 (Bookworm) installiert werden. Dazu wird zunächst das Proxmox-Repository eingerichtet:
Nach der Installation startet der Dienst proxmox-backup.service automatisch. Das Web-UI ist anschließend ebenfalls unter Port 8007 erreichbar. Für produktive Umgebungen empfiehlt sich stattdessen das Enterprise-Repository, das gepflegte und getestete Pakete liefert und ein gültiges Abonnement voraussetzt.
3.3 Erstanmeldung
Die Erstanmeldung erfolgt mit dem Benutzer root@pam und dem bei der Installation gesetzten Root-Passwort. Im Web-UI können anschließend weitere Benutzer, API-Tokens und Berechtigungen konfiguriert werden. Es ist empfehlenswert, den Root-Account nicht für den regulären Backup-Betrieb zu verwenden, sondern einen dedizierten Benutzer mit eingeschränkten Rechten anzulegen.
4. Datastore einrichten und Retention konfigurieren
Ein Datastore ist das Herzstück von PBS. Vor dem ersten Backup muss mindestens ein Datastore angelegt werden. Das ist sowohl über das Web-UI als auch über die Kommandozeile möglich.
4.1 Datastore über das Web-UI anlegen
Im Web-UI navigiert man zu Administration > Storage / Disks, um ggf. zunächst eine neue Festplatte zu formatieren und einzubinden. Anschließend wird unter Datastore > Create Datastore ein Name und ein Pfad angegeben. PBS legt dort automatisch die nötige Verzeichnisstruktur an. Das Dateisystem des zugrundeliegenden Verzeichnisses ist PBS weitgehend gleichgültig – empfohlen werden jedoch ext4, XFS oder ZFS, da diese Dateisysteme eine zuverlässige Datensicherheit bieten.
4.2 Datastore per CLI anlegen
# Datastore "main-backup" im Verzeichnis /mnt/backup-disk/pbs anlegen
proxmox-backup-manager datastore create main-backup /mnt/backup-disk/pbs
# Vorhandene Datastores auflisten
proxmox-backup-manager datastore list
4.3 Retention (Aufbewahrungsregeln) konfigurieren
PBS unterstützt flexible Aufbewahrungsregeln, die pro Datastore oder pro Backup-Job definiert werden können. Die gängigsten Parameter sind:
keep-last – Anzahl der zuletzt erstellten Backups, die behalten werden
PBS wendet die Aufbewahrungsregeln beim sogenannten Prune-Vorgang an. Pruning kann manuell ausgelöst oder als automatischer Zeitplan konfiguriert werden. Beim Pruning werden Backup-Snapshots, die keine Aufbewahrungsregel mehr erfüllen, als zu löschend markiert. Der tatsächliche Speicherplatz wird erst durch den nachgelagerten Garbage-Collection-Lauf freigegeben, der verwaiste Chunks entfernt.
# Garbage Collection manuell anstoßen
proxmox-backup-manager garbage-collection start main-backup
# Status der laufenden oder letzten GC abfragen
proxmox-backup-manager garbage-collection status main-backup
5. Proxmox VE anbinden
Die Integration von PBS in eine bestehende Proxmox VE-Umgebung ist unkompliziert und direkt im PVE-Web-UI möglich.
5.1 PBS als Storage in PVE hinzufügen
In Proxmox VE unter Datacenter > Storage > Add > Proxmox Backup Server werden folgende Parameter angegeben:
ID: ein frei wählbarer Name, z. B. pbs-home
Server: IP-Adresse oder Hostname des PBS-Servers
Username: ein PBS-Benutzer mit API-Token, z. B. backup-user@pbs!pve-token
Password / API Token Secret: das zugehörige Token-Secret
Datastore: Name des Ziel-Datastores auf dem PBS-Server
Fingerprint: der TLS-Fingerprint des PBS-Servers (wird im PBS-Web-UI unter Dashboard angezeigt)
Es empfiehlt sich, für die PVE-Anbindung einen dedizierten PBS-Benutzer mit einem API-Token zu verwenden, anstatt den Root-Account zu nutzen. Die nötigen Berechtigungen sind Datastore.Backup für das Erstellen von Backups sowie Datastore.Read und VM.Backup für Restore-Operationen.
5.2 Backup-Job anlegen und Zeitplan konfigurieren
In PVE unter Datacenter > Backup > Add wird ein neuer Backup-Job erstellt. Relevante Einstellungen:
Storage: den zuvor angelegten PBS-Storage auswählen
Schedule: Cron-Ausdruck, z. B. 0 2 * * * für täglich um 02:00 Uhr
Selection: alle VMs/Container im Cluster oder gezielt einzelne
Mode:Snapshot (empfohlen, kein Stopp der VM), Suspend oder Stop
Compression:zstd ist ein guter Kompromiss aus Geschwindigkeit und Kompressionsrate
# Backup-Job per CLI auf dem PVE-Node einmalig auslösen
vzdump 100 101 102 \
--storage pbs-home \
--mode snapshot \
--compress zstd \
--notes-template "{{guestname}}"
5.3 Backup-Status prüfen
Den Status laufender und abgeschlossener Backup-Jobs sieht man in PVE unter Datacenter > Backup > Job Detail bzw. im Task-Log jedes Nodes. Im PBS-Web-UI unter Datastore > [Name] > Content werden alle vorhandenen Backup-Snapshots mit Größe, Zeitstempel und Deduplizierungsverhältnis angezeigt. Das Deduplizierungsverhältnis (Dedup Ratio) gibt an, wieviel Speicherplatz durch die chunk-basierte Deduplizierung tatsächlich eingespart wurde – Werte von 3:1 bis 10:1 sind bei typischen VM-Backups keine Seltenheit.
6. Restore – VMs, Container und Datei-Level
Die Wiederherstellung aus einem PBS-Backup ist einer der stärksten Aspekte des Systems: PBS unterstützt sowohl die vollständige Wiederherstellung ganzer VMs als auch das gezielte Extrahieren einzelner Dateien aus einem VM-Backup, ohne die gesamte VM wiederherstellen zu müssen.
6.1 VM oder Container vollständig wiederherstellen
Im PVE-Web-UI navigiert man zum gewünschten Node, wählt unter Storage > pbs-home > Backups den entsprechenden Snapshot aus und klickt auf Restore. Die Wiederherstellung kann auf derselben oder einer anderen VM-ID erfolgen und optional auf einem anderen Storage-Ziel landen.
# Restore per CLI auf dem PVE-Node (VM-ID 100 aus PBS wiederherstellen)
qmrestore PBS:backup/vzdump-qemu-100-2025_06_01-02_00_00.vma.zst 100 \
--storage local-lvm \
--unique true
Das Flag --unique sorgt dafür, dass MAC-Adresse und UUID der VM neu generiert werden – sinnvoll, wenn die ursprüngliche VM noch läuft und Konflikte vermieden werden sollen. Für LXC-Container wird statt qmrestore der Befehl pct restore verwendet.
6.2 Datei-Level-Restore
PBS bietet eine integrierte Funktion zum Durchsuchen und Extrahieren einzelner Dateien aus einem VM-Backup. Voraussetzung ist, dass das Backup ein unterstütztes Dateisystem enthält (ext4, XFS, NTFS) oder dass der QEMU Guest Agent zum Zeitpunkt des Backups aktiv war.
Im PBS-Web-UI navigiert man zu Datastore > [Name] > Content, wählt ein Backup aus und klickt auf das Lupen-Symbol (File Restore). Es öffnet sich ein Datei-Browser, über den einzelne Verzeichnisse und Dateien heruntergeladen werden können – ohne die VM neu starten oder manuell mounten zu müssen.
# Datei-Level-Restore per CLI mit proxmox-backup-client
proxmox-backup-client restore \
backup/vm/100/2025-06-01T02:00:00Z \
drive-scsi0.img.fidx \
/tmp/restored-disk.img \
--repository backup-user@pbs@192.168.1.50:main-backup
Das wiederhergestellte Abbild kann anschließend mit guestmount oder einem ähnlichen Werkzeug gemountet werden, um gezielt einzelne Dateien zu extrahieren, ohne eine vollständige VM-Wiederherstellung durchführen zu müssen.
7. Verschlüsselung
PBS unterstützt client-seitige Verschlüsselung (Client-Side Encryption), bei der die Daten bereits auf dem Backup-Client verschlüsselt werden, bevor sie zum PBS-Server übertragen werden. Der PBS-Server selbst hat zu keinem Zeitpunkt Zugriff auf den Klartext der Backup-Daten. Die Verschlüsselung basiert auf AES-256-GCM und bietet damit sowohl Vertraulichkeit als auch Integritätsprüfung.
7.1 Encryption Key erstellen
# Neuen Encryption Key erzeugen (auf dem Client)
proxmox-backup-client key create /etc/proxmox-backup/encryption-key.json
# Key mit Passwort schützen (empfohlen)
proxmox-backup-client key change-passphrase /etc/proxmox-backup/encryption-key.json
Der erzeugte Key ist eine JSON-Datei, die den verschlüsselten privaten Schlüssel enthält. Diese Datei muss sicher aufbewahrt werden – ohne sie ist eine Wiederherstellung der Backups nicht möglich. Es gibt keinen Recovery-Mechanismus; ein verlorener Schlüssel bedeutet unwiderruflich unzugängliche Backups.
Der Encryption Key sollte an einem von den Backup-Daten getrennten Ort gesichert werden – beispielsweise in einem Passwort-Manager, auf einem externen USB-Stick oder in einem sicheren Cloud-Speicher. PBS bietet zusätzlich die Möglichkeit, einen sogenannten Paper Key zu generieren: einen QR-Code mit dem Schlüsselinhalt, der ausgedruckt und physisch verwahrt werden kann.
# Paper Key (QR-Code als Textausgabe) erzeugen
proxmox-backup-client key paperkey /etc/proxmox-backup/encryption-key.json
In Proxmox VE kann der Encryption Key direkt im Backup-Job unter Datacenter > Backup > [Job bearbeiten] > Encryption Key hinterlegt werden. PVE speichert den Key dann sicher in seiner Konfiguration und verwendet ihn automatisch für alle Backups dieses Jobs. Wichtig: Verschlüsselte Backups schließen den serverseitigen Datei-Level-Restore im PBS-Web-UI aus, da PBS den Inhalt nicht entschlüsseln kann. Der Datei-Level-Restore muss in diesem Fall vom Client aus durchgeführt werden.
8. Praxistipp – 3-2-1-Backup-Strategie mit PBS
Die 3-2-1-Backup-Regel ist ein bewährter Standard für robuste Datensicherung: drei Kopien der Daten, auf mindestens zwei verschiedenen Medientypen, davon mindestens eine Kopie an einem anderen physischen Standort (off-site). PBS lässt sich hervorragend in eine solche Strategie einbinden.
8.1 Typischer Homelab-Aufbau
Ein praktikabler 3-2-1-Aufbau mit PBS sieht im Homelab folgendermaßen aus:
Kopie 1 (primär): Produktionsdaten auf den Proxmox VE-Nodes (lokaler ZFS-Pool oder NFS-Storage)
Kopie 2 (lokal, PBS): lokaler PBS-Server mit Backup-Daten auf einer dedizierten Festplatte im selben Heimnetzwerk
Kopie 3 (off-site, Remote-PBS): zweiter PBS-Server an einem anderen Standort (z. B. bei Verwandten, in einem Rechenzentrum oder als Cloud-VPS) – Replikation über einen PBS Sync-Job
8.2 Remote-Sync zwischen zwei PBS-Instanzen einrichten
PBS bietet eingebaute Sync-Jobs, mit denen ein Datastore auf einen entfernten PBS-Server gespiegelt werden kann. Der Sync läuft inkrementell und überträgt nur geänderte Chunks – die Deduplizierung greift also auch bei der Remote-Replikation.
Die Option --remove-vanished false sorgt dafür, dass Backups, die lokal bereits durch Pruning entfernt wurden, auf dem Remote-PBS erhalten bleiben. Das ist für off-site-Backups mit längerer Aufbewahrungszeit sinnvoll.
8.3 Empfehlungen für den Homelab-Betrieb
Einige bewährte Hinweise für den Betrieb von PBS im Homelab:
Garbage Collection regelmäßig ausführen (z. B. wöchentlich), um verwaiste Chunks und belegten Speicher tatsächlich freizugeben.
Den Datastore auf einem dedizierten Laufwerk oder ZFS-Pool betreiben – nicht auf demselben Speicher wie die Produktionsdaten.
Benachrichtigungen aktivieren: PBS unterstützt E-Mail-Benachrichtigungen und ab PBS 3.x auch systemd-basierte Notification-Targets für fehlgeschlagene Backup- oder Sync-Jobs.
Backup-Restore regelmäßig testen: mindestens einmal pro Quartal eine Test-Wiederherstellung durchführen, um die Integrität der Backups zu verifizieren. PBS bietet dafür den eingebauten Verify-Job.
Encryption Keys niemals nur auf dem PBS-Server selbst lagern. Ein verlorener Key macht verschlüsselte Backups dauerhaft unzugänglich.
Der Parameter --outdated-after 30 stellt sicher, dass Backups, die zuletzt vor mehr als 30 Tagen verifiziert wurden, erneut geprüft werden. Mit dieser Kombination aus lokalem PBS, Remote-Sync, Verify-Jobs und einer dokumentierten Key-Backup-Strategie entsteht eine solide, praxiserprobte Backup-Infrastruktur, die auch im Homelab professionellen Anforderungen genügt.