Proxmox Backup mit Veeam
Aus znilwiki
Changelog:
- 29.03.2025 erste Version mit Proxmox 8.3.5 und Veeam Backup & Replication 12.3.0.310
Vorwort
Seit vielen Jahren ist VMware (vSphere) und Veeam (Backup & Replication) eine tolle Kombination für viele Firmen, egal ob es nur ein Host oder Hundert sind.
Seit der Übernahme von VMware durch Broadcom und deren neue Lizenz- und Preispolitik rückt auch Proxmox immer mehr in den Fokus von Unternehmen, gerade von kleineren die zum Beispiel nur 2 oder 3 Hosts einsetzen.
Eine häufige Frage dabei ist "Und was ist mit Veeam?", wobei Veeam hier immer gleichgesetzt wird mit dem Produkt "Veeam Backup & Replication". Viele habe die Software liebgewonnen, die Lizenzen sind vorhanden - also wie sichert man Proxmox mit Veeam?
Ich zeige hier den jeweiligen Stand auf - ohne Anspruch auf Vollständigkeit oder Richtigkeit.
Ich sichere hier VMs von einen privaten 4 Knoten Proxmox-Cluster seit ein paar Monaten auch mit Veeam und zeige hier meine Erfahrungen.
Ich plane den Artikel bei neuen Features (oder auch Problemen) zu überarbeiten.
Kurze Zusammenfassung der Einschränkungen
Bevor man alles liest, hier schon mal die Zusammenfassung was alles an gewohnten Features nicht geht:
- Backup Jobs können nicht verkettet werden
- Keine Replikations Jobs
- Kein Guest Processing, somit auch kein Item-Level-Restore (Dateien geht, aber z.B. kein Exchange-Postfach oder Actice Directory Element)
- Keine Steuerung über Powershell von Proxmox Sicherungen oder Wiederherstellung, also keine Automatisierung möglich.
- Damit auch keine Überwachung oder Steuerung per API (zumindest habe ich in Swagger nichts gefunden)
Ausgangslage
Ich habe einen fertig konfigurierten Proxmox-Cluster mit 4 Knoten:
proxmox01 und proxmox02 sind 2 Intel N95 Mini-PCs mit jeweils 16GB RAM und einer 512GB SSD (die im Angebot schon ab 150 Euro gibt, regulär um die 200 Euro),
proxmoxesxi ist ein virtueller Proxmox der unter VMware ESXi 8 installiert wurde,
und proxmoxhyperv ein virtuller Proxmox unter Microsoft Hyper-V auf Windows 11
Als Backupsystem haben ich eine VM mit installierten Veeam Backup & Replication an dem diverse Repositories als Backupziele angebunden sind.
Hinzufügen des Proxmox-Clusters zu VMware
Es gibt - noch - bei Proxmox kein adäquat zum VMware vCenter, also kein zentrales Management. Man kann den Cluster von jedem Knoten aus Überwachen oder konfigurieren.
Deshalb müssen wir in Veeam alle einzelnen Knoten hinzufügen.
Das geht wie bei VMware oder Hyper-V über
Backup Infrastructure => Managed Server => oben links Add Server
Also links "Backup Infrastructure" auswählen, den Bereich "Manged Servers" markieren, oben links auf "Add Server" und dann "Virtualization Platforms".
Hier können wir dann "Proxmox VE" auswählen.
Es erscheint der Dialog zum hinzufügen eines neuen Proxmox VE Servers:
Ich habe hier die IP-Adresse genutzt und als Beschreibung den Hostnamen.
Als Zugangsdaten nutze ich den root Benutzer.
Es kommt die obligatorische Zertifikatswarnung:
Es folgt die Frage nach dem Snapshot-Speicher, die Standardauswahl ist immer The largest available file level storage.
Das übernehmt Ihr am besten NICHT sondern wählt gezielt einen der lokalen Datenspeicher des Proxmox-Host aus:
Der "largest" wäre bei mir mein QNAP-NFS Storage und das ist nicht dafür geeignet, ich würde dann beim Backup eine Fehlermeldung bekommen.
Dann auf Apply:
Es folgt die Frage ob eine Worker-VM auf dem gerade hinzugefügten Proxmox-Host deployed werden soll:
Das können wir gleich machen, das kann man aber auch später noch manuell machen über den Punkt "Backup Proxies".
Wenn Ihr mehrere Proxmox-Hosts in einem Cluster habt, würde ich erst einmal alle Hosts hinzufügen.
Wenn Ihr alle hinzugefügt habt, seht Ihr unten unter
Backup Infrastucture => Managed Servers => Proxmox VE => Clusters
euren Cluster markiert ihr diesen seht Ihr rechts die dazu gehörigen Knoten:
Proxmox VE worker hinzufügen
Anders als bei VMware kann Veeam die VMs oder Container nicht direkt über die Managementschnittstelle der Proxmox Hosts sichern sondern braucht immer eine Hilfs-VM.
Die Hilfs-VM läuft nicht ständig sondern wird nur für die Backups gestartet und im Anschluss wieder gestoppt.
Die Hilfs-VM hat eine 100GiB Festplatte, ob diese den Speicherplatz auch belegt hängt vom Datenspeicher ab auf dem Ihr diese platziert, ist es ein thin provisioning werden bei mir keine 5GiB belegt. Anfangs sind es sogar nur 3GiB, es kann über die Zeit etwas anwachsen.
Die VM wird beim Bereitstellen einmal zur Probe gestartet und es werden dann Updates eingespielt, die VM braucht also eine Internet-Verbindung (Proxy lässt sich einstellen).
Diese Hilfs-VM deployed man über
Backup Infrastructure => Backup Proxies => Add Proxy
Unter Choose... können wir den gewünschten Host aus dem Cluster auswählen:
Wir vergeben einen Namen für die VM - unter diesem wird diese in Proxmox erscheinen - und wählen wiederum über Choose... den Datenspeicher aus auf dem die VM liegen soll, auch hier wieder einen lokalen Datenspeicher des jeweiligen Proxmox Servers auswählen:
Wählt eine Beschreibung und wie viele VMs / Container gleichzeitig gesichert werden dürfen:
Danach geht unbedingt auf Advanced...:
Hier könnt Ihr auswählen wie viele CPU-Kerne und wieviel RAM die Hilfs-VM nutzen soll. Der Default-Wert kann von eurer Umgebung abhängen.
Ich gebe hier mal die Faustformel "pro gleichzeitiger VM ein CPU Kern und 1GiB RAM, mindestens aber jeweils 2" heraus.
Danach geht es weiter mit Next > zu den Netzwerkeinstellungen:
Nach dem Klick auf Add... erscheint ein Dialog in welchen wir oben die vorhandenen VM-Netzwerke des Proxmox-Hosts auswählen können. Außerdem können wir eine feste IP-Adresse festlegen:
Nach dem Klick auf OK müssen wir nun noch die DNS-Server einstellen indem wir oben auf den blauen Link klicken:
Weiter geht es dann mit Apply:
Unten ist der Test angehakt, der blaue Kreis verrät das dieser 10 Minuten dauern kann.
Nach ein paar Sekunden erscheint auf dem Proxmox-Host auch schon die neue VM:
in der ein Rocky-Linux bootet. Den Fortschritt seht Ihr ansonsten im Statusfenster von Veeam:
Das ganze hat bei mir dann etwas mehr als 7 Minuten gedauert:
Das ganze müsst Ihr nun wiederholen bis auf jedem Proxmox-Host auch eine Hilfs-VM deployed ist:
Backup Job anlegen
Im Moment gibt es noch ein paar Einschränkungen bei den Proxmox-Backup-Jobs im Vergleich zu den anderen Platformen:
- Die Jobs lassen sich nicht mit anderen Jobs (auch nicht anderen Proxmox-Jobs) verketten.
- Es gibt nur Backup Jobs, keine Replikation
- Es gibt kein Guest Processing!
- Keine Steuerung über PowerShell
Unter
Backup Job => Virtual machine => Proxmox VE...
kann man einen Job erstellen, es kommt der gewohnte Dialog:
In der VM-Auswahl gibt es nur die Auswahl nach Host and Clusters
oder nach Resource Pools:
Auch wenn Ihr in der Host and Clusters ungewohnter weise die Hosts erweitern müsst um die gerade dort laufenden VMs auszuwählen, ist es später beim Backup egal wenn die VM gerade auf einem anderen Host läuft, also verschoben wurde.
Aber nur wenn er zwischendurch Zeit hatte diese zu bemerken, wenn Ihr also eine VM zwei Minuten vor dem Backup-Fenster verschiebt, wird der Job beim ersten Anlauf fehlschlagen.
In der Ansicht werden dann auch nur die VMs aufgeführt:
Im Gegensatz zu z.B. VMware Jobs gibt es keine Schnellinfo wenn man mit der Maus länger über den Eintrag einer VM verweilt, hier passiert nichts.
Der Punkt Exclusions funktioniert analog wie bei den herkömmlichen Jobs, man kann ganze VMs oder einzelne Disks von VMs auschließen.
Man kann auch die Resource Pools oder den ganzen Cluster hinzufügen:
Im nächsten Schritt erfolgt die bekannte Auswahl des Backup repository und der 'Retention policy':
Hinter Advanced... verbirgt sich ein abgespeckter Dialog:
Die Auswahl ob Forward oder Reverse Incremental gibt es hier schon nicht mehr, das Feature ist im allgemeinen abgekündigt und soll wohl spätestens ab Version 14 ganz verschwinden.
Beim Zeitplan fällt auf das die Option After this job: komplett fehlt:
Und noch etwas fehlte => es gibt kein Guest Processing! Somit können auch keine Application Items wiederhergestellt werden über diese Form des Backup-Jobs. Dafür müsstet Ihr - zusätzlich - eine Agentensicherung machen.
Am Ende gibt es die übliche Zusammenfassung und die Möglichkeit den Job gleich zu starten:
Auch hier fehlt etwas: Es gibt keinen Hinweis wie man den Job per cmdlet starten könnte, sonst steht da etwas wie folgt:
Ein kleiner Test in der PowerShell zeigt das dort die Jobs nicht aufgeführt werden:
Und ich habe auch keine PowerShell Befehle speziell für Proxmox gefunden.
Ablauf Backup Job
Der eigentliche Sicherungsjob sieht genauso aus wie sonst auch, er stellt die VMs zusammen, startet die Hilfs-VMs (aka Worker) und sichert die VMs per HotAdd:
Ablauf Restore
Die Backups die üblichen Möglichkeiten, links die Optionen einer Windows VM unter Proxmox, rechts (oder darunter) bei einer VMware VM mit Guest Processing:
Bei Instant Recovery kann ich bei mir nur VMware auswählen, vermutlich ginge auch Hyper-V, ich habe aber keinen eingebunden:
Der Restore guest files für Windows sieht aus wie gewohnt:
Man kann die Dateien aber nicht im Windows Explorer (oder Shell) nutzen sondern nur über das Veeam Fenster, somit kann man z.B. keine Dokumente probeweise öffnen.
Wenn man an den Original Speicherpunkt wiederherstellen will, muss man dann erst einmal Zugangsdaten angeben:
Ob das dann klappt liegt dann an vielerlei, der Zugriff über das Netzwerk muss z.B. möglich sein. Bei VMware schiebt Veeam die Dateien z.B. auch gerne über die VMware Tools (und somit über den ESXi-Host) in die VM zurück.
Bei einer Linux-VM braucht es einen Helper Host, dieser muss vorher unter
Backup Infrastructure => Managed Servers => Linux
hinterlegt worden sein, dabei werden auf dem System die Veeam Komponenten "Installer" und "Transport" installiert:
Auch hier wird dann eine separate Anmeldung für die direkte Wiederherstellung benötigt.
Man kann - bei Linux und Windows - auch die Festplatte an den Helper Host hängen ( Publish disk... ) und dann lokal auf dieser Maschine mit den Dateien arbeiten.
Dann kann man auch Dateien öffnen:
Es fällt auf das Optionen wie Restore entire VM... fehlen.
Es gibt aber die separate Option
Welche dann auch die Option für die Wiederherstellung am Originalplatz hat:
Aus der täglichen Praxis
Hier eine Sammlung von Problemen die bei mir aufgetreten sind.
Failed to perform Backup: Failed to prepare disks for backup
Wenn Ihr diese Fehlermeldung bekommt:
Failed to perform Backup: Failed to prepare disks for backup
Dann müsst ihr die Eigenschaften des Proxmox-Hosts noch mal bearbeiten und bei diesem bei Snapshot Storage einen anderen, am besten lokalen Speicher auswählen:
Worker VM kann nicht gestartet werden
Ich hatte alle paar Tage / Wochen das Problem das Veeam die notwendige Worker-VM auf einen der Proxmox Hosts nicht mehr starten konnte.
Da hilft nur ein Neustart des Proxmox Hosts.
Die VM / der Proxi durfte eine VM zur Zeit sichern, hatte 2 CPU und 2GiB, und war für 3 VMs zuständig.
Im Job hat er für jede VM den Worker hochgefahren, gesichert, heruntergefahren und für die nächste Vm noch mal von vorne.
Habe habe das dann in 2 Jobs aufgeteilt so das die 3. VM ihren eigenen Job hat, danach war das Problem weg.
Ich vermute mehr Sicherungen gleichzeitig + mehr CPU/RAM würden auch zum Erfolg führen. Kann aber auch ein Problem meiner Testumgebung sein.