⚡ HomelabVergleich

Kein Backup ist sicher, bis es getestet ist: Die 3-2-1-Strategie für Self-Hoster

Neun von zehn Datenverlust-Katastrophen haben dieselbe Wurzel: Während der Sache lief, wurde etwas kopiert – ein Snapshot auf denselben Datenträger, ein synchrones Mirror in dieselbe Rack-Zone, ein rsync-Lauf, der ohne Prüfsumme lief. Das Ergebnis sieht aus wie ein Backup. Es ist es nicht.

Eine Wiederherstellung aus einer Kopie, die noch nie angefasst wurde, ist wie ein Rettungsplan, den niemand bis zum Schiffbruch gelesen hat. In der Selbsthosting-Praxis wird dieser Unterschied täglich ignoriert – bis die Festplatte klickt, die VM-Umgebung beschädigt ist oder der Provider-Version-Upload die Datenbank korruptiert. Der Rest der Geschichte ist langweiliger und teurer als das, was man hätte tun können.

Das Kernproblem: Eine Kopie ist kein Backup

Eine Kopie erfüllt drei Bedingungen nicht automatisch:

Wenn ein rsync-Job dieselbe Festplatte auf einen anderen Pfad schreibt, gibt es technisch gesehen eine Kopie, aber keine Redundanz gegen den Plattencrash. Wenn ein Proxmox-Backup auf ein NAS schreibt, das denselben Rechner über dasselbe VLAN versorgt, hilft es nicht gegen einen Stromschlag am Rack. Wenn ein Docker-Volumes-Backup als tarball auf denselben Host schlägt, hilft es nicht gegen eine fehlerhafte Image-Aktualisierung, die das originale Volumen überschreibt.

Backup heißt: unabhängig, versioniert, wiederherstellungstauglich, geprüft.

Die 3-2-1-Regel: Definition und konkrete Umsetzung

Die 3-2-1-Regel ist alt und bleibt vollständig gültig: drei Kopien, zwei verschiedene Medien, eine Kopie extern. Für Self-Hoster bedeutet das:

Konkret auf Proxmox: Eine typische Einrichtung nutzt vzdump mit einem Backup-Scheduler, der die VM- und Container-Dumps als .vma.lzo oder .tar.zst auf einen separaten Storage schreibt. Der Storage sollte kein Mount aus dem laufenden Host sein, der den gleichen Controller bedient. Ein guter Minimalaufbau:

In Containern ist die Lage anders: Ein Docker-Volume-Backup ist kein VM-Heat-Backup. Container sind zerstörbar, ihre Daten liegen in Volumes und Konfigurationsdateien. Ein sinnvoller Container-Backup-Ansatz:

```bash

docker run --rm -v meinedaten:/data -v $(pwd):/backup alpine tar czf /backup/meinedaten-$(date +%F).tar.gz -C /data .

```

Ein häufiger Amateurfehler ist, den Container einfach zu committen oder ein Volume zu kopieren, ohne die Konsistenz der laufenden Datenbank zu sichern. Das Ergebnis ist eine Kopie, die beim Wiederherstellungsversuch Fehler verbergen.

Die 3-2-1-Regel im Detail – Konkrete Umsetzung auf Proxmox und in Containern

Die 3-2-1-Regel klingt simpel, wird aber von fast allen Self-Hostern falsch umgesetzt. Zuerst die Regel rein: Drei Kopien der Daten, auf zwei verschiedenen Speichermedien, von denen eine extern liegt. Das klingt nach Mathematik, ist aber im Detail eine Logistics-Frage.

Auf einem Proxmox-Host bedeutet das konkret: Die laufende VM ist Kopie eins. Eine lokale Backup-Partition auf einer zweiten Festplatte – besser noch ein anderes RAID-Level oder eine andere Controller-Schiene – ist Kopie zwei. Kopie drei muss physisch weg vom Rechner sein: ein zweiter Proxmox-Host im anderen Zimmer, ein NAS in der Wohnung des Elternhauses, ein VPS mit OwnBackups oder ein Objektspeicher mit clientseitiger Verschlüsselung. Was nicht funktioniert: Eine Kopie auf demselben Storage-Array, das dieselbe Stromversorgung teilt. Was auch nicht funktioniert: Ein Snapshot, der auf demselben Logical Volume liegt und nur einen anderen Dateisystem-Pfad hat.

Proxmox bietet zwei relevante Wege: vzdump für ganze VMs und Container, und die Storage-Backup-Strategie für rein containerisierte Umgebungen. vzdump erstellt konsistente Snapshots, kann Kompression und Verschlüsselung anwenden und werdenüber Cron geplant. Ein typischer Cron-Eintrag in /etc/cron.d/pve-backup:


0 3 * * * root /usr/sbin/vzdump --mode snapshot --compress zstd --storage backup-nas --all 1>>/var/log/pve-backup.log 2>&1

Das reicht nicht. Der Storage backup-nas darf nicht derselbe Pfade sein wie die VM-Disks. Besser: ein separater NFS-Mount aus einem anderen Rechner, oder ein lokaler Backup-Pool auf einer physisch anderen Platte. Und: Backups müssenEncrypted sein, bevor sie ins Netz gehen.

In Docker-Umgebungen ist die Lage subtler. Ein Volume-Backup mit docker run --rm -v meindb-data:/data -v $(pwd):/backup alpine tar czf /backup/meindb-data-$(date +%F).tar.gz -C /data . ist eine Kopie – aber nur, wenn sie an einen anderen Ort geht. Ebenfalls wichtig: Datenbanken müssen konsistent gesichert werden. Ein gewöhnliches Volume-Snapshot einer laufenden Datenbank ist mit hoher Wahrscheinlichkeit korrupt, wenn es während des Schreibens genommen wurde. Für PostgreSQL ist pg_dump der richtige Weg, für MySQL/MariaDB mysqldump. Container-Konfigurationen – docker-compose.yml, .env, Secrets – müssen als Dateien ebenfalls in den Backup-Kreislauf.

Auf Proxmox: vzdump, Storage-Regeln und External Targets

Proxmox-Backups sind einfach, aber nur wenn man die Failure-Domains respektiert. Ein vzdump auf denselben ZFS-Pool, aus dem die VMs laufen, ist eine Kopie, aber kein Backup gegen Pool-Ausfall. Ziel:

Ein Minimal-Pfad für das externe Ziel ist ein rclone-Kommando, das den letzten Backup-Ordner verschlüsselt hochlädt, oder ein restic-Repository auf einem S3-kompatiblen Endpoint. Beides lassen sich in den Backup-Cron integrieren.

In Containern: Volumes, Datenbanken, Compose-Konfig

Container-User laufen Gefahr, die Backup-Strategie an der Virtualisierung festzumachen und die Applikationsdaten zu vergessen. Ein Docker-Setup ohne Datenbank-Backup ist blind. Beispiel:


# Datenbankkonsistente Sicherung vor dem Volume-Backup
docker exec meinedb pg_dump -U dbuser meinedb > /backup/meinedb-$(date +%F).sql
# Danach Volume exportieren – veraltete Daten wird man so vermeiden
docker run --rm -v meinedb-data:/src -v /backup:/backup alpine tar czf /backup/meinedb-data-$(date +%F).tar.gz -C /src .

Die Konfigurationsdateien gehören ebenfalls ins Backup: docker-compose.yml, .env, Secrets, Netzwerk-Definitionen.

Getestete gegenüber ungetesteter Wiederherstellung

Ein ungetestetes Backup ist ein Versprechen, das niemand eingelöst hat. Wiederherstellungstests werden nicht gemacht, weil sie Arbeit sind und keinen sichtbaren Gewinn bringen – bis sie gebraucht wird.

Ein getestetes Backup ist eines, bei dem man:

Ohne Test bleibt unklar, ob der Backupstrom komplett ist, ob Kompressions- oder Verschlüsselungsfehler die Dateien unbrauchbar machen, ob Applikations-Config-Dateien dabei sind, und ob die Wiederherstellung überhaupt möglich ist.

Sinnvoller Ablauf: Einmal im Monat eine schematische Wiederherstellung – nicht vollständig alle Daten, aber eine repräsentative Auswahl. Eine VM aus dem letzten Backup, ein Datenbankdump, ein Container-Image mit Volume. Das Ergebnis wird dokumentiert: erfolgreich / fehlgeschlagen, Zeitbedarf, auffälligkeiten.

Verschlüsselung des Backups und Key-Management

Backups enthalten die ganzen Daten – auch Passwörter, Tokens, sensible Konfigurationen. Wenn das externe Backup unverschlüsselt liegt, ist der Verlust dieses Backups genauso schlimm wie ein Einbruch in das aktive System.

Ein solides Modell:

Konkret auf Proxmox: vzdump unterstütützt Verschlüsselung mit einem Passwort:


vzdump <vmid> --compress zstd --storage backup-nas --encrypt-key /etc/vzdump/backup-key

Die Handhabung des Keys ist der kritische Teil: Der Key muss auf einem Ort liegen, der nicht durch denselben Ausfall betroffen ist wie das Backup. Ein Key, der auf derselben NAS liegt wie das Backup, macht die Verschlüsselung wertlos.

Für Container-Backups gilt dasselbe: Der Backup-Pfad, der das Passwort zum Entschlüsseln enthält, ist kein Backup, sondern ein Risiko.

Key-Management heißt hier nicht Only-Key-Here-selbst, sondern: wer kann im Notfall den Schlüssel finden, ohne dass er mit dem Backup zusammenfällt? Wenigstens: Schlüssel an anderer Stelle, dokumentiert, von einer zweiten Person zugänglich, wenn nötig.

Monatlicher Wiederherstellungstest als Routine

Routine ist nötig, weil sich Systeme ändern. Eine Backup-Strategie, die vor einem Jahr funktionierte, kann nach drei Kubernetes-Updates, einer Datenbank-Migration oder einem Storage-Wechsel defekt sein, ohne dass es auffällt.

Monatlich sollten:

Eine einfache Checklisten-Dokumentation reicht: Datum, was wiederhergestellt wurde, Erfolg / Misserfolg, Zeitbedarf, Bemerkungen. Ohne Dokumentation wird der Test nicht wiederholt.

Typische Fehler von Self-Hostern

Die häufigsten Fehler sind nicht technisch komplex, sondern strukturell:

All diese Fehler haben dieselbe Wurzel: Die Illusion, dass die Kopie die Arbeit erledigt, ohne die Wiederherstellung zu prüfen.

BsN: Backup-Konfigurationen als Dienstleistung

Eine funktionierende Backup-Strategie für eigene Clouds ist wenig Aufwand, wenn sie einmal richtig aufgesetzt ist – aber die Details sind langweilig und fehleranfällig. BsN, Benjamin Nickl, richtet für Self-Hoster und kleine Betriebe Backup-Konfigurationen ein: Proxmox-Backup-Jobs, externe Kopien, encrypted Storage, wiederherstellungstests in Kombination mit dem jeweiligen Umfeld.

Was dabei varriert: ob der Kunde bereits eine Infrastruktur hat, ein völlig neuer Aufbau gewünscht wird, welchen Schutzgrad die Daten haben – private Cloud, kleine Firma, sensibler Betrieb. Der konkrete Ort für Fragen: homelab.brillianze.de.

Fazit: Was zählt, wird getestet

Die 3-2-1-Regel ist ein Minimalstandard, kein Luxus. Ohne sie läuft jeder Self-Host auf einem zweifelhaften Untergrund. Getestete Wiederherstellung ist der einzige Beweis, dass ein Backup existiert. Verschlüsselung + getrenntes Key-Management ist der Mindeststandard für externe Backups. Und der monatliche Test ist die Routine, die aus einer guten Absicht etwas macht, das funktioniert, wenn es zählt.

Hinweis: Dieser Artikel ist redaktioneller Inhalt und enthält keine Affiliate- oder Partner-Links. Alle Angaben entsprechen dem Stand 2026 und können sich ändern.