Proxmox Backup Server endlich da

Nachdem ich in den letzten Beiträgen zuerst versucht habe, den Proxmox Backup Server (PBS) auf Basis eines LXC Containers zu installieren und mir daran die Zähne ausgebissen habe, hat es zum Glück mit einer virtuellen Maschine funktioniert. Jetzt kann ich mich daran machen, die relevanten alten Backups zu migrieren und PBS als neues Backupziel zu definieren.

PBS Backup User erstellen

Ich halte mich wieder an die sehr gute Anleitung von derekseaman.com. Wir brauchen zuerst einen User für die Backupjobs.

Unter “Access Control” auf “Add” klicken…

… und einen User erstellen. Diesen dann unter “Datastore” den erstellten Datastore auswählen, auf “Permissions” gehen und dort wiederum auf “Add” und “User Permission” klicken…

… und als “DatastoreAdmin” hinzufügen:

Wenn man self-signed Certificates verwendet braucht man noch den Fingerabdruck vom PBS, den gibt is im “Dashboard” rechts blau hinterlegt “Show Fingerprint”:

Achtung: Wie ich nachher kapiert habe, ist es sinnvoll gleich an dieser Stelle Unterverzeichnisse (= “Namespaces”) für jeden Proxmox-Node zu erstellen, wie das geht erkläre ich in diesem Folgebeitrag. Ansonsten kollidieren identische IDs und das ist schlecht und unordentlich ist es sowieso.

Proxmox konfigurieren

Jetzt im gewünschten Proxmox Host einloggen, dort unter “Datacenter” auf “Storage”, “Add” und “Proxmox Backup Server” auswählen:

Und ausfüllen:

Schon kann man ein Backup anstoßen…

… und schauen, ob es auch geht:

Und wird schon im PBS angezeigt:

Die Geschwindigkeit ist bei einer 1Gbit-Verbindung nicht berauschend, aber ausreichend: Im PBS Dashboard kann man dann auch live zusehen, was der Backup Server so tut:

Und man bekommt auch eine gute Übersicht der letzten 30 Tag:

Den Aufmerksamen ist wohl schon aufgefallen, dass das mehrere Backups sind, ich habe nämlich auch gleich meinen Backupjob auf den neuen PBS gerichtet:

Unklar ist mir noch, inwiefern die Retention Policy auf Proxmox-Ebene…

… mit der vom PBS zusammengeht, oder nicht:

Aber das werde ich mir in Zukunft genauer anschauen. Jetzt bin ich einmal froh, dass es funktioniert hat.

Tailscale direkt auf PBS installieren

Da ich auch ein paar Proxmox-Server habe, die nicht im selben LAN sind, werde ich der Einfachheit halber Tailscale direkt auf dem PBS installieren. Alternativ könnte man auch die Routen advertisen, aber das lasse ich jetzt einmal sein. Dadurch kann ich einfach direkt die Tailscale IP-Adresse für das Hinzufügen vom Proxmox Backup Server nehmen. So zumindest die Überlegung.

Ah, der Haken an der Sache ist, dass ich ja sonst auf keinem Proxmox Host Tailscale direkt installiert habe. Das heißt ich muss das sowieso noch konfigurieren.

IP Adresse von Tailscale Container auf Proxmox Host weiterleiten

Dazu kann man gerne den Chatbot befragen:

Also zuerst im Tailscale Container sicherstellen, dass IPv4 weitergeleitet wird:

nano /etc/sysctl.conf

Hier die entsprechende Zeile auskommentieren, falls noch nicht geschehen:

Dann mit sysctl überprüfen:

sudo sysctl -p

So schaut das dann aus:

Jetzt die iptables anpassen:

iptables -t nat -A POSTROUTING -d <PBS_TAILSCALE_IP> -o tailscale0 -j MASQUERADE
iptables -A FORWARD -i tailscale0 -o <Proxmox_Network_Interface> -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i <Proxmox_Network_Interface> -o tailscale0 -d <PBS_TAILSCALE_IP> -j ACCEPT

Und dann permanent machen mit dem Programm iptables-persistent:

apt install iptables-persistent

Während der Installation werden die aktuellen IP-Tabellen-Regeln gespeichert, falls man also das Programm installiert bevor man die iptable Regeln hinzufügt, kann man die aktuellen Regeln manuell speichern mit:

iptables-save > /etc/iptables/rules.v4

Bei meinem unprivilegierten LXC Tailscale Container läuft intern alles unter root, aber nachdem der Container außerhalb keine Berechtigungen hat, sollte das kein Problem sein, heißt aber, dass hier kein sudo gebraucht wird. Falls das Setup anders ist, noch sudo hinzufügen.

Für <Proxmox_Network_Interface> muss man bei den Node Einstellungen unter “System” und “Network” überprüfen welches Interface Proxmox verwendet, bei mir ist das vmbr0:

Wie es bei einem LLM so ist, ist der nächste Eintrag redundant:

Egal, jetzt müssen wir noch eine statische Route einrichten:

Also in die Shell vom Proxmox Host gehen und die Route hinzufügen:

ip route add <PBS_TAILSCALE_IP> via <LXC_IP>

Das ist aber nur eine temporäre Route, um sie permanent zu machen muss man unter etc/network/interfaces die folgenden Zeilen zum Network Interface hinzufügen:

post-up ip route add <PBS_TAILSCALE_IP> via <LXC_IP> 
pre-down ip route del <PBS_TAILSCALE_IP> via <LXC_IP>

Dann überlebt die ganze Route auch einen Neustart.

Überprüfen ob man den PBS pingen kann:

ping <PBS_TAILSCALE_IP>

Wenn ja, dann kann man den PBS auch hinzufügen:

Und schon kann man sich am neuen Backup Server erfreuen, welcher über das Internet bestückt werden kann:

Den Backupjob fügt man, wie oben bereits erwähnt, hinzu.

Bei meinem 250 Mbit/s Internet (und dem VPS mit mindestens 1Gbit/s) schwankt die Datenrate doch einigermaßen, zwischen ein paar Mbit/s und fast 200 Mbit/s:

Aber das genügt für meine Zwecke vollkommen, vor allem wird ja nur initial eine große Datenmenge übertragen.

Fazit

Also hätte ich gewusst wie haglich (heikel) PBS ist bei den NFS Share hätte ich mir vielleicht den Umweg über LXC Container gespart. Andererseits habe ich einiges über das vermaledeite ID Mapping gelernt. Mit der VM habe ich jetzt endlich ein funktionierendes Setup und kann von meinen stetig wachsenden Proxmox Hosts Backups auf einen zentralen Punkt laden. Sehr schön, so gefällt mir das!

PS: ich muss mir wohl noch die Struktur ansehen, jetzt werden die verschiedenen Proxmox Hosts einfach vermischt. Keine Ahnung was passiert, wenn es da zu einer ID-Kollision kommt:

Aber das ist eine Aufgabe für ein andermal.