Backup & Snapshots
Datensicherung fuer VMs und Container - von Snapshots bis zur 3-2-1 Strategie.
🤔 Snapshots vs. Backups
Beide schuetzen vor Datenverlust, aber auf unterschiedliche Weise.
📸 Snapshots
- ✓ Sofort erstellt (Sekunden)
- ✓ Schnelles Rollback
- ✓ Auf gleichem Storage
- ✓ Ideal vor Updates/Tests
- ✗ Kein Schutz bei Storage-Ausfall
- ✗ Abhaengig von Original-Disk
📦 Backups
- ✓ Vollstaendige Kopie
- ✓ Unabhaengig vom Original
- ✓ Auf anderem Storage moeglich
- ✓ Disaster Recovery
- ✗ Dauert laenger (Minuten-Stunden)
- ✗ Braucht Speicherplatz
Empfehlung
Beide kombinieren: Snapshots fuer schnelle Rollbacks im Alltag, Backups fuer echte Datensicherung auf separatem Storage.
📸 Snapshots erstellen
Snapshots speichern den aktuellen Zustand einer VM oder eines Containers.
Web-UI
- VM/CT auswaehlen → Snapshots
- "Take Snapshot" klicken
- Name und Beschreibung eingeben
- Optional: RAM-Zustand mit speichern (nur VMs)
# Snapshot erstellen
qm snapshot 100 pre-update --description "Vor System-Update"
# Mit RAM-Zustand (VM muss laufen, ermoeglicht Rollback ohne Reboot)
qm snapshot 100 pre-update --vmstate --description "Mit RAM-Zustand"
# Alle Snapshots auflisten
qm listsnapshot 100
# Snapshot-Details
qm config 100 --snapshot pre-update
# Zu Snapshot zurueckkehren
qm rollback 100 pre-update
# Snapshot loeschen
qm delsnapshot 100 pre-update
# Alle Snapshots loeschen
for snap in $(qm listsnapshot 100 | awk '{print $2}' | grep -v current); do
qm delsnapshot 100 $snap
done
# Snapshot erstellen
pct snapshot 200 pre-update --description "Vor apt upgrade"
# Snapshots auflisten
pct listsnapshot 200
# Rollback
pct rollback 200 pre-update
# Snapshot loeschen
pct delsnapshot 200 pre-update
Snapshot-Limitierungen
- Snapshots belegen Speicher (alle Aenderungen seit Erstellung)
- Zu viele Snapshots verlangsamen I/O
- Alte Snapshots regelmaessig loeschen
- Nicht als Backup-Ersatz verwenden!
📦 Backups erstellen
Vollstaendige Sicherung von VMs und Containern als komprimierte Dateien.
Backup-Modi
| Modus | Beschreibung | Downtime |
|---|---|---|
| snapshot | Live-Backup, kein Stop noetig | Keine |
| suspend | VM/CT wird kurz pausiert | Sekunden |
| stop | VM/CT wird gestoppt, dann gestartet | Minuten |
# VM-Backup (Snapshot-Modus, komprimiert mit zstd)
vzdump 100 --storage local --mode snapshot --compress zstd
# Container-Backup
vzdump 200 --storage local --mode snapshot --compress zstd
# Mehrere VMs/CTs gleichzeitig
vzdump 100 101 200 201 --storage local --mode snapshot --compress zstd
# Alle VMs und Container
vzdump --all --storage local --mode snapshot --compress zstd
# Mit E-Mail-Benachrichtigung
vzdump 100 --storage local --mode snapshot --compress zstd \
--mailto admin@example.com --mailnotification always
# Backup mit bestimmtem Dateinamen
vzdump 100 --storage local --mode snapshot --compress zstd \
--dumpdir /var/lib/vz/dump --tmpdir /tmp
# Verfuegbare Komprimierung:
# --compress 0 → Keine Komprimierung (schnell, gross)
# --compress gzip → Gzip (langsam, mittel)
# --compress lzo → LZO (schnell, gross)
# --compress zstd → Zstandard (schnell, klein) ← Empfohlen!
# Beispiel mit Zstd (beste Balance)
vzdump 100 --compress zstd --storage local --mode snapshot
Empfohlene Einstellungen
- Modus:
snapshot(kein Downtime) - Komprimierung:
zstd(schnell & effizient) - Storage: Separater Storage (NFS, PBS, etc.)
⏰ Automatische Backups
Backup-Jobs fuer regelmaessige automatische Sicherungen einrichten.
Web-UI
- Datacenter → Backup → Add
- Storage, Zeitplan, VMs/CTs auswaehlen
- Modus und Komprimierung einstellen
- Retention (Aufbewahrung) konfigurieren
# Backup-Jobs werden in /etc/pve/jobs.cfg gespeichert
# Beispiel: Taegliches Backup aller VMs um 02:00
# /etc/pve/jobs.cfg
vzdump: backup-daily
enabled 1
schedule *-*-* 02:00:00
storage backup-storage
mode snapshot
compress zstd
mailnotification failure
mailto admin@example.com
all 1
prune-backups keep-daily=7,keep-weekly=4,keep-monthly=3
# Beispiel: Woechentliches Backup bestimmter VMs
vzdump: backup-weekly-critical
enabled 1
schedule Sun *-*-* 03:00:00
storage backup-nfs
mode snapshot
compress zstd
vmid 100,101,200
prune-backups keep-weekly=8,keep-monthly=6
# Alte Backups automatisch loeschen
# In der Backup-Job Konfiguration:
prune-backups keep-daily=7,keep-weekly=4,keep-monthly=3,keep-yearly=1
# Bedeutung:
# keep-daily=7 → Die letzten 7 taeglichen Backups behalten
# keep-weekly=4 → 4 woechentliche Backups behalten
# keep-monthly=3 → 3 monatliche Backups behalten
# keep-yearly=1 → 1 jaehrliches Backup behalten
# Manuell alte Backups loeschen
# /var/lib/vz/dump/
ls -la /var/lib/vz/dump/
rm /var/lib/vz/dump/vzdump-qemu-100-2024_01_*.vma.zst
Zeitplanung (Schedule)
Proxmox verwendet Systemd-Timer-Syntax:
*-*-* 02:00:00→ Taeglich um 02:00Sun *-*-* 03:00:00→ Sonntags um 03:00Mon,Wed,Fri *-*-* 04:00→ Mo, Mi, Fr um 04:00*-*-01 05:00:00→ Am 1. jeden Monats
🔄 Backups wiederherstellen
VMs und Container aus Backups wiederherstellen.
Web-UI
- Storage → Backups auswaehlen
- Backup-Datei auswaehlen → Restore
- Ziel-VM-ID und Storage waehlen
- Optional: Andere Konfiguration (RAM, CPU, etc.)
# Backup-Dateien auflisten
ls -la /var/lib/vz/dump/vzdump-qemu-*.vma*
# VM wiederherstellen (gleiche ID)
qmrestore /var/lib/vz/dump/vzdump-qemu-100-2024_01_15-02_00_00.vma.zst 100
# VM mit neuer ID wiederherstellen
qmrestore /var/lib/vz/dump/vzdump-qemu-100-2024_01_15-02_00_00.vma.zst 150
# Auf anderem Storage wiederherstellen
qmrestore /var/lib/vz/dump/vzdump-qemu-100-2024_01_15-02_00_00.vma.zst 150 \
--storage local-lvm
# Mit Bandbreiten-Limit (MB/s)
qmrestore /var/lib/vz/dump/vzdump-qemu-100-2024_01_15-02_00_00.vma.zst 100 \
--bwlimit 50
# Backup-Dateien auflisten
ls -la /var/lib/vz/dump/vzdump-lxc-*.tar*
# Container wiederherstellen (gleiche ID)
pct restore 200 /var/lib/vz/dump/vzdump-lxc-200-2024_01_15-02_00_00.tar.zst
# Mit neuer ID
pct restore 250 /var/lib/vz/dump/vzdump-lxc-200-2024_01_15-02_00_00.tar.zst
# Auf anderem Storage
pct restore 250 /var/lib/vz/dump/vzdump-lxc-200-2024_01_15-02_00_00.tar.zst \
--storage local-lvm
# Unprivileged-Modus erzwingen
pct restore 250 /var/lib/vz/dump/vzdump-lxc-200-2024_01_15-02_00_00.tar.zst \
--unprivileged 1
# Backup-Inhalt pruefen (ohne Restore)
vzdump --info /var/lib/vz/dump/vzdump-qemu-100-2024_01_15-02_00_00.vma.zst
# Gibt aus:
# - VM/CT ID und Name
# - Erstellungsdatum
# - Entpackte Groesse
# - Disk-Informationen
Vor dem Restore
- Existierende VM/CT mit gleicher ID wird ueberschrieben!
- Bei laufender VM: Erst stoppen oder neue ID verwenden
- Nach Restore: Netzwerk-Konfiguration pruefen (IP-Konflikte)
🏢 Proxmox Backup Server
Fuer professionelle Backup-Loesungen: Proxmox Backup Server (PBS).
PBS-Vorteile
- ✓ Deduplizierung (spart 50-90% Platz)
- ✓ Inkrementelle Backups
- ✓ Verschluesselung
- ✓ Integritaetspruefung
- ✓ Sync zu Remote-PBS
- ✓ Web-Interface
Alternativen
- NFS-Share (einfach, aber keine Dedupe)
- CIFS/SMB-Share
- Lokaler Storage + rsync
- Borg Backup (CLI-basiert)
# In Proxmox VE:
# Datacenter → Storage → Add → Proxmox Backup Server
# Oder per CLI:
pvesm add pbs pbs-storage \
--server 192.168.1.200 \
--username backup@pbs \
--datastore main \
--fingerprint XX:XX:XX...
# Passwort eingeben wenn aufgefordert
PBS empfohlen fuer
- Mehrere Proxmox-Nodes
- Grosse VMs mit wenig Aenderungen
- Offsite-Backup noetig
- Langzeit-Archivierung
🛡️ 3-2-1 Backup-Strategie
Die bewaehrte Backup-Strategie fuer maximale Datensicherheit.
Die 3-2-1 Regel
Kopien deiner Daten
Verschiedene Medien
Offsite-Kopie
Beispiel-Setup
- Original: VMs auf lokalem SSD-Storage (local-lvm)
- Backup 1: Taeglich auf NAS im LAN (NFS-Share)
- Backup 2: Woechentlich auf externem PBS oder Cloud
# Backups zu Remote-Server synchronisieren
rsync -avz --progress \
/var/lib/vz/dump/ \
backup@remote-server:/backup/proxmox/
# Mit SSH-Key und Bandbreiten-Limit
rsync -avz --progress --bwlimit=10000 \
-e "ssh -i /root/.ssh/backup_key" \
/var/lib/vz/dump/ \
backup@remote-server:/backup/proxmox/
# Als Cronjob (taeglich um 04:00)
# crontab -e
0 4 * * * rsync -avz /var/lib/vz/dump/ backup@remote:/backup/proxmox/ 2>&1 | logger -t backup-sync
Backups testen!
Ein Backup ist nur so gut wie der letzte erfolgreiche Restore-Test!
- Regelmaessig Restore auf Test-VM durchfuehren
- Backup-Integritaet pruefen
- Dokumentieren: Wer hat Zugang zu Backups?
- Disaster-Recovery-Plan erstellen und testen
🔧 Troubleshooting
# Backup schlaegt fehl - Logs pruefen
cat /var/log/vzdump/*.log
journalctl -u vzdump
# Storage voll
df -h /var/lib/vz/dump
pvesm status
# Alte Backups loeschen
ls -la /var/lib/vz/dump/
rm /var/lib/vz/dump/vzdump-*-2023_*.vma.zst
# Backup haengt
# Prozess finden
ps aux | grep vzdump
# Abbrechen
kill -9 [PID]
# Korrupte Backup-Datei pruefen
vzdump --info /path/to/backup.vma.zst
# Oder mit zstd:
zstd -t /path/to/backup.vma.zst
# Snapshot entfernen nach fehlgeschlagenem Backup
qm unlock 100
qm delsnapshot 100 vzdump
# Parallel-Backups (max. gleichzeitig)
# In Backup-Job: maxfiles angeben
# Bandbreite begrenzen (schont Netzwerk)
vzdump 100 --bwlimit 50 # 50 MB/s
# Backup-Zeiten anpassen
# Nicht waehrend Spitzenlast
# Nachts zwischen 02:00-06:00 ideal
# Komprimierung anpassen
# zstd ist Standard und gut
# Bei CPU-Mangel: --compress lzo (schneller)
# Bei Speichermangel: --compress zstd (kleiner)
Lock-Probleme
Wenn eine VM/CT als "locked" erscheint nach fehlgeschlagenem Backup:
qm unlock 100 # Fuer VMs
pct unlock 200 # Fuer Container
Backup-Strategie entwickeln?
Wir helfen bei der Planung und Umsetzung deiner Backup-Infrastruktur.
Beratung anfragen →