Backup und Replikation trojanersicher für Proxmox VE mit Miyagi Workflow Trojanersichere Backups und Replikationen mit Proxmox Backup Server, ZFS und Miyagi Ziel ist eine Datensicherung mit drei Kopien der Daten, mindestens zwei Standorten und zwei unterschiedlichen Sicherungsmethoden. Zusätzlich muss die Kontrolle der Backups und Replikationen zuverlässig, automatisch und ohne Fehlerquote funktionieren. Unsere Lösung kombiniert Proxmox Backup Server, ZFS-Replikation, Snapshots, Monitoring mit Checkmk und den Miyagi-Workflow. Dadurch entstehen sowohl klassische Backups mit langer Historie als auch startfähige ZFS-Replikate für schnelle Wiederherstellung im Notfall. Backups bieten ein Wiederherstellungsversprechen. ZFS-Replikate bieten eine sehr schnelle Wiederherstellungsmöglichkeit, weil replizierte Systeme auf geeigneter Hardware direkt gestartet werden können. Was wir erreichen wollen Native Proxmox-Backups ohne Löschmöglichkeit von der Quelle Startfähige ZFS-Replikate auf einem zweiten System Lückenloses Monitoring aller Backups und Replikationen Serialisierte Sicherungen für bessere Performance Automatisierte Updates, Backupwartung und Verifizierung Automatisches Herunterfahren des Sicherungsservers nach Abschluss Zentrales Dashboard für Backupstatus, Replikation und Systemzustand Schnelle Wiederherstellung über Proxmox Backup Server oder ZFS-Replikate Als Ergebnis entsteht eine Backuphistorie über mehrere Monate bis Jahre sowie ein ZFS-Replikat mit typischer Aufbewahrung von ca. 14 Tagen bis drei Monaten. Beispiel auf dem Zielserver # Auf dem Zielserver sollte das dann so aussehen # Proxmox Backups mit Snapshot-Schutz gegen Kompromittierung zfs list rpool/pbsstore 4.9T 30.4T 4.62T /rpool/pbsstore # PVE mit LXC Container rpool/repl/lwpve2/rpool/data/subvol-100-disk-0 168G 34.8G 165G /rpool/repl/lwpve2/rpool/data/subvol-100-disk-0 rpool/repl/lwpve2/rpool/data/subvol-102-disk-0 918M 31.1G 872M /rpool/repl/lwpve2/rpool/data/subvol-102-disk-0 # PVE mit KVM rpool/repl/lwpve3/rpool3/data/vm-301-disk-0 267K 41.0T 169K - rpool/repl/lwpve3/rpool3/data/vm-301-disk-1 40.6G 41.0T 26.7G - rpool/repl/lwpve3/rpool3/data/vm-301-disk-2 277G 41.0T 214G - # ZVOLs finden sich unter /dev/zvol/rpool... Backups benötigen für eine Wiederherstellung den richtigen Zeitpunkt, genügend freien Platz und Zeit. ZFS-Replikate können dagegen auf ausreichend leistungsfähiger Hardware sehr schnell produktiv gestartet werden. Die Aufbewahrungszeiten für Backups und Replikate können selbst festgelegt werden. Überlegungen zu Proxmox VE, ZFS und Ceph Proxmox VE ist eine leistungsfähige Virtualisierungsplattform auf Basis von KVM und LXC. Viele ältere VMware- und Hyper-V-Umgebungen können auf Proxmox VE migriert werden. Der eigentliche Nutzen von Proxmox entsteht aber nicht nur durch die Weboberfläche, sondern durch die Kombination mit ZFS, Ceph, SDN, Snapshots, Replikation und dem Proxmox Backup Server. Nutzt man Proxmox VE nur mit Hardware-RAID oder klassischem SAN, verliert man viele Vorteile, die Proxmox in Verbindung mit ZFS oder Ceph eigentlich bietet. ZFS eignet sich besonders für kleinere und mittlere Installationen mit einem bis drei Proxmox-Servern. Hier können Systeme performant betrieben, regelmäßig snapshotiert und auf weitere Systeme repliziert werden. Ceph kommt vor allem dann ins Spiel, wenn im Fehlerfall möglichst kein Datenverlust entstehen darf und ausreichend Budget, Netzwerkleistung und Know-how vorhanden sind. In der Praxis bedeutet Ceph häufig einen deutlich höheren Hardware- und Betriebsaufwand. Mit ZFS erreicht man realistisch eine Sicherungslücke von unter fünf Minuten oder besser, wenn es notwendig ist. Nur weil bei einem Server das Licht ausgeht, sind die Daten noch lange nicht verloren. Empfehlung für kleinere Umgebungen Ein bis drei Proxmox-Server bevorzugt mit ZFS betreiben ZFS-Snapshots regelmäßig automatisieren ZFS-Replikation auf ein zweites System einrichten Zusätzlich Proxmox Backup Server für längere Historie nutzen Monitoring für Backup, Replikation und ZFS-Zustand einrichten Snapshots gegen Bedienfehler, Fahrlässigkeit und Ransomware Vor Umstellungen, Updates oder riskanten Maßnahmen erstellt ein Administrator üblicherweise einen Snapshot. Bei VMware oder Hyper-V können zu viele oder zu lange bestehende Snapshots schnell zum Problem werden. Hier spielt ZFS seine Stärke aus. ZFS-Snapshots sind sehr effizient und können regelmäßig erstellt werden, ohne den Betrieb in gleicher Weise zu belasten. Durch die Arbeitsweise von ZFS sind permanente Snapshots im produktiven Betrieb ein großer Vorteil. Empfohlene Snapshot-Strategie Für automatische Snapshots eignen sich beispielsweise zfs-auto-snapshot oder CV4PVE als Web-GUI für Proxmox VE. 12 Snapshots alle 15 Minuten für schnelle Hilfe in den letzten drei Stunden 96 stündliche Snapshots für vier Tage 21 tägliche Snapshots für drei Wochen 6 wöchentliche Snapshots für sechs Wochen 3 monatliche Snapshots für unentdeckte Fehler Für Aufbewahrungszeiten über drei Monate hinaus eignet sich zusätzlich die tägliche Sicherung mit dem Proxmox Backup Server. Wichtig: Das System sollte nicht dauerhaft über 80 % belegt werden. Bei zu hoher Belegung müssen Aufbewahrungszeiten reduziert werden. Proxmox Backup Server: Segen und Risiko Der Proxmox Backup Server ist ein hervorragendes Sicherungswerkzeug für virtuelle Maschinen und Linux-Container auf Proxmox VE. Er bietet inkrementelle Backups, Deduplizierung, Verifizierung und effiziente Wiederherstellung. Das Standarddesign sieht allerdings vor, dass Proxmox VE seine Sicherungen zum Proxmox Backup Server schiebt. Dadurch entsteht im Ernstfall Angriffsfläche, wenn Zugangsdaten oder Berechtigungen zu weit gefasst sind. Der Backup-Benutzer sollte ausschließlich Sicherungs- und Wiederherstellungsrechte besitzen. 2FA, ein API-Token mit minimalen Rechten und deaktivierter SSH-Passwortlogin sind Pflicht. Typische Probleme im Standardbetrieb Der Backupserver muss häufig dauerhaft laufen Automatisches Einschalten und Herunterfahren ist nicht vorgesehen Monitoring der Backups ist nicht komfortabel integriert Mailbenachrichtigungen reichen für professionelle Kontrolle oft nicht aus Ein zentrales Dashboard für Backup-, Replikations- und ZFS-Zustand fehlt Der Miyagi-Workflow Der Miyagi-Workflow kombiniert Proxmox Backup Server, ZFS-Replikation, Wartung, Updates, Verifizierung und Monitoring in einem Ablauf. Das Ziel ist ein Backupserver an einem anderen Standort, der nur für den Sicherungslauf aktiv ist, die Sicherungen kontrolliert, Replikate erstellt und anschließend wieder herunterfährt. Voraussetzungen Proxmox VE 8.4 oder neuer ZFS RAID10 empfohlen, RAIDZ möglich aber langsamer Optional zfs-auto-snapshot oder CV4PVE Snapshotmanager Separater Sicherungsserver mit möglichst viel Speicherplatz Empfohlen: HPE Microserver mit ECC und mehreren großen HDDs Proxmox Backup Server 3.4 oder neuer Installation idealerweise ebenfalls auf ZFS Bashclub Postinstaller für checkzfs und zsync auf beiden Systemen Optional Checkmk-Agent auf PVE und PBS Bashclub Postinstaller: https://github.com/bashclub/proxmox-zfs-postinstall Proxmox Backup Server vorbereiten SSH-Zugriff vorbereiten Auf dem PBS den Inhalt von .ssh/id_rsa.pub kopieren Den Key in Proxmox VE unter .ssh/authorized_keys ergänzen Einmalig per SSH vom PBS zum PVE verbinden, um den Hostkey zu speichern Wichtige Hinweise zur PBS-Konfiguration Kein NFS als Datastore für Proxmox Backup Server verwenden. Optional kann beim Booten ein iSCSI-LUN von Synology oder einem anderen System eingebunden werden, wenn keine lokalen Platten genutzt werden. @reboot iscsiadm --mode node --targetname "iqn.2xxxx" --portal "10.ipsyn...:3260" --login && zpool import -f iscsi ZFS-Pool und Dataset für PBS erstellen Bei direkter Nutzung von Festplatten: zpool create -f iscsi /dev/sdx -o autoexpand=on zfs create iscsi/pbsstore -o recordsize=1M -o com.sun:auto-snapshot=false Bei nativ installiertem PBS: zfs create rpool/pbsstore -o recordsize=1M -o com.sun:auto-snapshot=false Die Festplatten sollten idealerweise über /dev/disk/by-id eingebunden werden. Datastore im Proxmox Backup Server anlegen Bei iSCSI: /iscsi/pbsstore Bei nativer Installation: /rpool/pbsstore Purge, Garbage Collection und Verifyjobs zunächst deaktiviert anlegen Benutzer backup@pbs mit starkem Passwort und 2FA anlegen API-Key backup@pbs!backup anlegen Berechtigung Datastore Backup für Benutzer und API-Key setzen Datastore in Proxmox VE einrichten In Proxmox VE wird ein neuer Datastore vom Typ Proxmox Backup Server eingerichtet. Danach sollte direkt aus einer VM oder einem LXC ein Testbackup ausgeführt werden. Achtung: Proxmox VE setzt den Store local standardmäßig teilweise auf Typ Backup. Das sollte dringend deaktiviert werden. Miyagi installieren Die Installation erfolgt auf dem Proxmox Backup Server. apt install git open-iscsi git clone -b dev https://github.com/bashclub/miyagi-pbs-zfs.git cd miyagi-pbs-zfs cp config.example ipdeinespve.conf nano ipdeinespve.conf Das Miyagi-Script sichert einen Proxmox VE Host mit maximal zwei ZFS-Pools auf ein Ziel. Für weitere Hosts oder Pools werden einfach mehrere Konfigurationsdateien verwendet. Beispielkonfiguration SSHPORT='22' BACKUPSERVER=yes MAINTDAY=6 SHUTDOWN=yes UPDATES=yes SOURCEHOST='dein-pve-ip' # ZFS-Replikation ZFSROOT='rpool/data' ZFSSECOND='rpool-hdd/data' ZFSTRGT='rpool/repl' ZPOOLSRC=rpool ZPOOLDST=rpool # ZSYNC für ZFS-Replikation ZPUSHTAG=bashclub:zsync ZPUSHMINKEEP=3 ZPUSHKEEP=14 ZPUSHLABEL=zsync ZPUSHFILTER="daily,weekly,monthly" # Backup PBSHOST='ip-des-pbs' BACKUPSTORE=backup BACKUPSTOREPBS=backup BACKUPEXCLUDE='99999' Wichtige Parameter BACKUPSERVER=yes: Proxmox Backup ausführen MAINTDAY=6: Wartungstag, idealerweise Samstag SHUTDOWN=yes: Backupserver nach Abschluss herunterfahren UPDATES=yes: Updates auf dem PBS ausführen ZPUSHKEEP=14: Anzahl der aufzubewahrenden Replikationsstände ZPUSHFILTER: vorhandene Snapshots wie daily, weekly, monthly mitnehmen BACKUPEXCLUDE: auszuschließende VMs oder LXC, Komma-getrennt Testlauf durchführen /root/miyagi-pbs-zfs/pbs-zfs-daily.sh -c /root/miyagi-pbs-zfs/192.x.x.x.conf Die Ausgabe sollte zuerst die ZFS-Replikation und anschließend das Proxmox-Backup anzeigen. Danach fährt der Server bei entsprechender Konfiguration herunter. Kontrolle des Testlaufs Proxmox Backup Server In Proxmox VE unter Cluster / Datastores den Backupstore wieder aktivieren In den VMs/LXCs oder im Store kontrollieren, ob Backups vorhanden sind ZFS-Replikation auf dem PBS prüfen checkzfs --sourceonly Alternativ: checkzfs --source ippve --filter rpool/data --threshold 1500,2000 --columns +message ZFS-Replikation auf dem PVE prüfen cat /var/lib/check_mk_agent/spool/* Monitoring mit Checkmk Ein zentraler Bestandteil des Workflows ist das Monitoring ohne Fehlerquote. Backups und Replikationen sollen nicht nur laufen, sondern zuverlässig überwacht werden. Service Discovery auf Proxmox VE Dieser Dienst zeigt den Status des letzten Backups. Dieser Dienst zeigt alle Quelldatasets und Volumes. Wenn innerhalb eines Tages keine neuen Daten kommen, geht der Status auf Unknown. Ausgeschalteten Miyagi-Server überwachen Da der Sicherungsserver nach Abschluss herunterfahren kann, wird in Checkmk ein eigener Host angelegt. Host mit Namen nach Schema miyagi-quelle-ziel anlegen Kein Agent und keine API notwendig Spezialprüfung für den letzten bekannten Backupstatus verwenden Nach der Service Discovery erscheint der entsprechende Status. Damit bleibt auch ein ausgeschalteter Backupserver kontrollierbar. Wenn innerhalb eines Tages keine neuen Daten eintreffen, geht der Status auf Unknown. Warum dieser Ansatz trojanersicherer ist Der zentrale Vorteil liegt in der Kombination mehrerer Schutzebenen: Snapshots schützen gegen Bedienfehler und schnelle Verschlüsselung ZFS-Replikate ermöglichen einen schnellen Start auf Ersatzhardware Proxmox Backup Server bietet lange Historie und Deduplizierung Der Backupserver muss nicht dauerhaft erreichbar sein API-Token und minimale Rechte reduzieren Angriffsflächen Checkmk überwacht Erfolg, Alter und Vollständigkeit der Sicherungen Fazit Mit Proxmox VE, ZFS, Proxmox Backup Server, Miyagi und Checkmk entsteht ein sehr robuster Backup- und Replikationsworkflow für kleine und mittlere Unternehmen. Die Lösung kombiniert eine lange Backuphistorie mit schnell startfähigen Replikaten und einer zentralen Überwachung. Damit lassen sich Ausfälle, Bedienfehler und Ransomware-Schäden deutlich besser beherrschen. Passende Schulungen Wenn Sie diesen Workflow im Detail verstehen oder gemeinsam aufbauen möchten, passen besonders diese Kurse auf cloudistboese.de: Replikationen und Backups trojanersicher Proxmox produktiv mit ZFS betreiben ZFS Grundlagen IT Monitoring und Kontrolle mit Checkmk, Tactical RMM und Wazuh