Proxmox Backup Server (PBS) Spiegelung auf USB-Festplatte
Einleitung
In dieser Anleitung wird beschrieben, wie du deine Backups, die auf einer
Synology NAS mit einem
Proxmox Backup Server (PBS) gespeichert sind, zusätzlich auf eine
externe USB-Festplatte spiegelst.
Das Ziel ist es, sicherzustellen, dass Backups auch dann wiederhergestellt werden können, wenn die Synology NAS ausfällt oder nicht erreichbar ist.
Warum diese Konfiguration?
- Die Synology NAS bietet durch RAID ein hohes Maß an Sicherheit, ist aber ein Single Point of Failure:
Wenn die NAS nicht läuft, sind die Backups unzugänglich.
- Ein zusätzlicher PBS-LXC auf dem Proxmox Host kann die Backups via Pull-Sync auf eine USB-Festplatte spiegeln.
- Dadurch kannst du Backups direkt vom PBS-LXC und der USB-Festplatte wiederherstellen, ohne auf die Synology angewiesen zu sein.
Abkürzungen
- pve: Proxmox Virtual Environment
- pbs: Proxmox Backup Server
- lxc: Linux Container
- node: pve (Kann bei dir anders sein!!!)
- lxc-id: 149 ID bei der Erstellung vom lxc (Kann bei dir anders sein!!!)
Szenarien
Es gibt zwei mögliche Ansätze für dieses Setup:
- Init (Neuinstallation): Erstinstallation von pbs in einem lxc mit neu formatierter externer Festplatte
- Bak (Wiederherstellung): Einbinden einer bereits befüllten Festplatte, um ein bestehendes pbs-Backup wiederherzustellen
Ausgangssituation & Hardware
- PC mit kleiner SSD für das pve-Betriebssystem
- Zweite, größere SSD für Container und Disk-Images
- Synology NAS (mit Virtual Machine Manager) als Backup-Ziel für pbs
- Externe USB-Festplatte zur Spiegelung der pbs-Backups von der NAS
Hilfreiche Links & Hinweise
Installation von Proxmox VE
- Proxmox VE ISO herunterladen, auf ein Installationsmedium schreiben und auf die kleine SSD installieren.
- Nach der Installation das "Proxmox VE Post Install"-Helper Script ausführen, um das System zu optimieren.
Storage-Konfiguration in Proxmox
ZFS auf großer SSD
- In der Web-UI: Node → Disks → ZFS
- Große SSD als ZFS-Pool erstellen, ID z. B.
DataDiskZFS1
- Inhalte (Rechencenter→ Storage → DataDiskZFS1): Disk-Image und Container aktivieren.
Anpassung der lokalen Partitionierung
Die kleine SSD wird standardmäßig in
local und
local-lvm aufgeteilt.
local-lvm kann entfernt werden, um mehr Platz für
local zu gewinnen, da wir eine große zweite SSD haben.
local-lvm aus der Storage-Konfiguration (Datacenter) entfernen.
- Auf der Node-Konsole folgende Befehle ausführen:
Bash:
lvremove /dev/pve/data
lvresize -l +100%FREE /dev/pve/root
resize2fs /dev/mapper/pve-root
- Inhalte (Rechencenter→ Storage → local): ISO-Images, Container-Templates und Importe nutzen.
Einbinden der externen USB-Festplatte
Der Vorgang unterscheidet sich je nach Szenario.
Szenario Init (Neuinstallation)
- pbs als LXC installieren (Helper Script: "Proxmox Backup Server LXC").
- Im LXC den "Proxmox Backup Server Post Install" Script ausführen.
- Externe USB-Festplatte an pve anschließen.
- In der pve Web-UI: Node → Disks → Verzeichnis
- Neues Verzeichnis erstellen (
Achtung: Die Festplatte wird formatiert und alle Daten gehen verloren!)
- "Storage hinzufügen" abwählen
- Als Namen z. B.
BackBackupUSB1 wählen.
Mount-Konfiguration überprüfen:
Bash:
cd /etc/systemd/system
ls -la
cat mnt-pve-BackBackupUSB1.mount
Diese Config unbedingt sichern (für spätere Wiederherstellungen)!
UID/GID anpassen, damit der unprivilegierte LXC Zugriff hat:
Bash:
cd /mnt/pve/
ls -la
chown 100000:100000 BackBackupUSB1 -R
ls -la
- LXC-Container-Konfiguration anpassen, um den Mountpoint durchzureichen:
Bash:
cd /etc/pve/nodes/$(hostname)/lxc
ls -la
nano <lxc-id>.conf
Am Ende hinzufügen:
mp0: /mnt/pve/BackBackupUSB1,mp=/mnt/BackBackupDataUSB1
LXC stoppen und neu starten (herunterfahren + wieder starten, kein "Restart").
In pve die shell von lxc pbs starten und ein sicheres root Passwort vergeben:
- Testen im LXC PBS:
Bash:
cd /mnt/BackBackupDataUSB1
ls -la
echo "Write test successful" >> testfile.txt
ls -la
rm testfile.txt
- Im LXC PBS (Web-UI): Datastore → Datastore hinzufügen
- Name:
BackBackupStoreUSB1
- Pfad:
/mnt/BackBackupDataUSB1
- GC Zeitplan: Keine
- Prune Zeitplan: Keine
- (Pruning und GC erfolgen auf der Synology NAS.)
Szenario Bak (Wiederherstellung)
- Externe Festplatte an pve anstecken.
- Gesicherte Mount-Konfiguration wiederherstellen:
Bash:
cd /etc/systemd/system
nano mnt-pve-BackBackupUSB1.mount
Die zuvor gesicherte Config einfügen und speichern. Dann:
Bash:
systemctl daemon-reload
systemctl enable mnt-pve-BackBackupUSB1.mount
systemctl status mnt-pve-BackBackupUSB1.mount
Erklärung:
Dieser Befehl lädt die systemd-Konfiguration neu, damit Änderungen an .mount-Dateien oder anderen Units wirksam werden.
Überprüfen ob alles korrekt gemountet ist:
- pbs erneut als lxc installieren (Helper Scripts).
- Im pbs lxc Web-UI Datastore hinzufügen und unter "Erweitert" → "Existierendes Datastore wiederherstellen" auswählen.
- In pve: Rechenzentrum → Storage → Hinzufügen → Proxmox Backup Server
- Verbindungsdaten aus pbs lxc Web-UI (BackBackupStoreUSB1→ Übersicht → Verbindungsinformationen anzeigen) eintragen.
- Auth-ID: root@pam
- Als ID z. B.
BackBackupPBS1 wählen.
- Unter BackBackupPBS1
→ Backups können nun die Backups wiederhergestellt werden.
Einrichtung des pbs auf der Synology NAS
- Hierzu gibt es ein Video, das alles erklärt: https://www.youtube.com/watch?v=abf2D9ikkn8
- Nach der Installation auf Synology ggf. das "Proxmox Backup Server Post Install" Script ausführen und dem Video folgen.
- Als Name für das Speicher Verzeichnis z. B. BackupDIR1 wählen und als Datastore hinzufügen.
- Prune-Job unter
BackupDIR1erstellen nach eigenen Wünschen.
- Zeitplan: daily (00:00)
- Letze behalten: 7
- Tage behalten: 7
- Monate behalten: 3
- Wochen behalten: 4
- Jahre behalten: 1
- Garbage Collect-Job unter
BackupDIR1erstellen bzw anpassen nach eigenen Wünschen.
- In pve: Rechenzentrum → Storage → Hinzufügen → Proxmox Backup Server
- Verbindungsdaten aus pbs nas Web-UI (BackupDIR1 → Übersicht → Verbindungsinformationen anzeigen) eintragen.
- Auth-ID: root@pam
- Als ID z. B.
BackupPBS1 wählen.
- Unter BackupPBS1 → Backups können nun die Backups wiederhergestellt werden.
- In pve: Rechenzentrum → Backup→ Hinzufügen → Backup-Job erstellen nach eigenen Wünschen erstellen.
- Storage:
BackupPBS1
- Zeitplan: 21:00
- Auswahlmodus: Alle
Synchronisierung (Pull-Sync) vom Synology-pbs auf den pve-pbs
- Wenn pbs auf der NAS läuft, in pbs lxc Remote einrichten: Konfiguration → Remotes
- Die benötigten Daten findet ihr wieder unter:
Verbindungsdaten aus pbs nas Web-UI (BackupDIR1 → Übersicht → Verbindungsinformationen anzeigen) eintragen.
- Auth-ID: root@pam
- Im pbs lxc: Datastore → BackBackupStoreUSB1→ Sync-Jobs → Hinzufügen Add Pull Sync Job hinzufügen
- Quell Remote: Synology pbs Verbindung
- Quell Datastore: Der auf Synology eingerichtete Datastore
- Zeitplan für den Sync festlegen nach eigenen Wünschen.
- Syn-Zeitplan: 10:00
Dadurch werden Backups von der Synology NAS auf die externe USB-Festplatte des pbs lxc gespiegelt.
So ist auch bei Ausfall der NAS eine Wiederherstellung möglich.
Auto HDD Spindown
Ermittlung des Festplatten-Laufwerksbuchstabens
- In der Web-UI: Node → Disks → ZFS
Dort siehst du alle verfügbaren Laufwerke.
- Wichtig: Verwende nur den Laufwerksbuchstaben (z.B.
/dev/sdb), nicht die Zahlen am Ende (z.B. /dev/sdb1).
- Ersetze
/dev/sdb durch dein eigenes Laufwerk (z.B. /dev/sda oder /dev/sdc).
Kann meine HDD mit hdparm zusammen arbeiten?
- Bei mir ist das Laufwerk mit
sdb gelistet. (Bei euch kann das anders sein!!!)
- Mit diesem Befehl kannst du überprüfen, ob deine HDD mit hdparm zusammen arbeitet:
Bash:
hdparm -I /dev/sdb | grep -E 'Model Number|Serial Number|Firmware Revision|Advanced power management|Power Management|Standby timer|Nominal Media Rotation Rate|Logical.*size|Physical.*size'
Meine Ausgabe:
Code:
Model Number: WDC WD10SDZW-11UMGS0
Serial Number: WD-WX81A77EAYT2
Firmware Revision: 01.01A01
Logical Sector size: 512 bytes
Physical Sector size: 4096 bytes
Nominal Media Rotation Rate: 5400
Standby timer values: spec'd by Standard, with device specific minimum
Advanced power management level: 128
* Power Management feature set
* Advanced Power Management feature set
- Wenn du ähnliche Einträge siehst, unterstützt deine Festplatte Spindown und Power Management.
Falls du keine „Advanced Power Management“ oder „Standby timer“-Werte siehst, funktioniert hdparm möglicherweise nicht mit deinem Laufwerk.
Manuelles Testen des Spindown
- Schicke deine HDD in den Spindown-Modus und höre genau hin, ob sie stoppt:
- Hinweis:
Wenn Fehler wie SG_IO: bad/missing sense data erscheinen, ist das bei einigen Festplatten (vor allem USB) normal. Die Festplatte geht trotzdem in den Spindown. Aber nur mit dem direkten Befehl und nicht nach der Eingestelten Zeit!!! Das ist doof. Das bedeutet man muss ich ein Script basteln...
Auto Spindown nach 3 Minuten einrichten
- Zeit berechnen bei mir sind es 3 Minuten.
Formel: Wert × 5 Sekunden = Spindown-Timeout.
Für 3 Minuten: 36 × 5 = 180 Sekunden.
- Dauerhafte Konfiguration beim Systemstart:
- Füge am Ende folgende Zeilen hinzu:
Bash:
/dev/sdb {
spindown_time = 36
}
- Speichere die Datei:
Strg + O → Enter → Strg + X.
- Konfiguration neu laden:
Bash:
systemctl restart systemd-udevd