Proxmox Backup Server auf Raspberry Pi installieren

Ich habe vor kurzem mein Zimaboard zu einem Proxmox Server aufgebaut und der läuft sehr anständig. Problem: Was passiert, wenn das System mal abschmiert oder Daten manipuliert oder gelöscht werden? Korrekt BACKUP-TIME!

Es gibt kein offizielles Image für den Proxmox Backup Server auf dem Raspberry Pi, aber wir können es uns mit der Anleitung und dem Compiler Skript aus dem Github Repository https://github.com/wofferl/proxmox-backup-arm64 von Wofferl installieren.

Dazu benötigen wir einen Raspberry Pi 4 mit am besten 8 GB RAM, minimum 4 GB RAM, mindestens 32 GB Micro-SD-Karte und einen Backup Speicher von entsprechender Größe.
Ich habe hier ein Argon One Gehäuse mit M.2 Anschluss für einer 1 TB M.2 SSD. Die reicht, vor allem da Deduplication angeschaltet ist.

Vorbereitung

Zunächst stellt man die Grundinstallation mit Raspberry Pi OS auf einer SD-Karte und die Aktualisierungen fertig, seht hierzu gerne in den Post Raspberry Pi: Getting Started/Erste Schritte (Raspbian / Raspberry Pi OS) rein.
Achtung!!: Verwendet das 64-Bit Image vom Raspberry Pi OS um die gesamte Performance und den kompletten Speicher verwenden zu können.

Installation und Kompilierung vom Proxmox Backup Server

Kompilierung von PBS

Wenn die Grundinstallation erledigt ist, müssen vorher einige Programme auf dem Pi installiert werden. Führt nachfolgend die Befehle aus:

apt-get install -y --no-install-recommends \
	build-essential curl ca-certificates sudo git lintian fakeroot \
	pkg-config libudev-dev libssl-dev libapt-pkg-dev libclang-dev \
	libpam0g-dev
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -sSf | sh -s
source ~/.cargo/env
sudo reboot

Nach dem Reboot laden wir nun das Github Repository im Homeverzeichnis in das Unterverzeichnis “pbs” herunter.

git clone https://github.com/wofferl/proxmox-backup-arm64.git ./pbs/

Anschließend gehen wir in den Ordner “pbs” und führen die Kompilierung aus.

cd pbs/
./build.sh

Die Kompilierung benötigt dann etwas Zeit und kann auch mal an einem Punkt für mehrere Minuten stehen bleiben. Bei mir hat es um die 2 Stunden gedauert. Wenn die Kompilierung fertig ist, sind all ARM Pakete in dem Ordner “./pbs/packages” abgelegt.

Download der vorkompilierten Debian-Pakete

Seit kurzem kann man als Alternative die entsprechend vorkompilierten Debian Pakete herunterladen.

Dazu wird dennoch das Github Repository wie bekannt heruntergeladen.

git clone https://github.com/wofferl/proxmox-backup-arm64.git ./pbs/

Anschließend gehen wir in den Ordner “pbs” und führen einen Download der aktuellen Version für Bullseye aus, Version 2.4.3-1.
Nach momentanem Stand (2023-09-04) ist das Raspberry Pi OS noch nicht auf Bookworm aktualisiert worden. Ist dies der Fall, kann natürlich die aktuellste Version von Release 3 heruntergeladen werden.

cd pbs/
./build.sh download=2.4.3-1

Sobald der Download fertig ist, findet man unter “./pbs/packages” die Debian-Pakete. Man spart sich damit die Zeit für die Kompilierung, muss dann allerdings darauf hoffen, dass die vorgefertigten Debian-Pakete alle in Ordnung sind. Es gab aber bei meinem Test mit einem Raspberry Pi 4, 8 GB RAM keine Probleme.

Installation PBS

Wenn man mit einem der beiden Möglichkeiten die Debian-Pakete in “packages” hat, gehen wir nun hinein und führen mit dem apt Befehl die Installation der erstellten Debian Pakete aus.

cd packages
sudo apt install \
  ./libjs-extjs_*_all.deb \
  ./libjs-qrcodejs_*_all.deb \
  ./libproxmox-acme-plugins_*_all.deb \
  ./pbs-i18n_*_all.deb \
  ./proxmox-backup-docs_*_all.deb \
  ./proxmox-backup-server_*_arm64.deb \
  ./proxmox-mini-journalreader_*_arm64.deb \
  ./proxmox-widget-toolkit_*_all.deb \
  ./pve-xtermjs_*_arm64.deb
sudo reboot

Nach der Installation und einem weiteren Neustart kann man auf das Webinterface des Proxmox Backup Servers unter https://{IP-des-PI}:8007/ zugreifen. Vorher muss allerdings der Root Anmeldung des PBS noch ein Passwort vergeben werden.

sudo proxmox-backup-manager user update root@pam --password PASSWORD

Statt PASSWORD wird eine Zeichenfolge als Passwort eingegeben. Anmelden kann man sich dann mit dem Benutzer root und dem entsprechenden selbst ausgesuchten Passwort.

Eine Sache müssen wir nun noch tätigen, zumindest wenn eine zusätzliche SSD verwendet wird. Der Speicher muss formatiert werden.

Mit sudo fdisk -l kann man sich alle vorhandenen Speicher anzeigen:

fdisk -l eine Liste aller Partitionen und Speicher anzeigen lassen.

Wir sehen, dass die 1 TB SSD auf /dev/sda1 hängt. Das ist standardmäßig so, wenn keine weiteren Festplatten im System erkannt werden. Als nächstes wird mit sudo fdisk /dev/sda1 das Partitionierungstool geöffnet.

Mit “d” könnt ihr die alte Partition löschen – wahrscheinlich NTFS – und mit “n” könnt ihr eine neue Partition erstellen. Wenn die gesamte Festplatte verwendet werden soll, können alle Defaults bestätigt werden. Mit “w” werden die Änderungen dann in die Formatierungstabelle geschrieben.

Konfiguration des Proxmox Backup Servers

Backupstorage erstellen und konfigurieren

Nun also können wir zum Webinterface, wie oben beschrieben, und die letzten Einstellungen tätigen.

Als Erstes wird ein Ordner erstellt, wo das Backup-Repository beheimatet sein wird. Dazu geht man auf “Storage/Disks” und auf den Reiter “Directory” und klickt auf “Create: Directory”. Dort wählt man dann den entsprechenden Speicher und das Dateisystem ext4 aus und gibt einen entsprechenden Namen ein. Mit “Create” wird das Verzeichnis erstellt.

Storage in PBS erstellen

Nun geht man auf den erstellten Storage unter “Datastore” und wählt den Reiter “Prune & GC” aus. Unter Prune Jobs kann man dann auf den “Add” Button klicken, wo man nun einstellt, wie lange die Backups erhalten bleiben sollen und wann die Backup-Snapshots wieder entfernt werden können.

Prune Jobs für den Storage einstellen

Die momentane Einstellung bei mir zeigt, dass stündlich geprüft wird, dass nur 10 stündliche Backups, 3 tägliche, 2 wöchentliche und 1 monatliches Backup vorhanden sind. Sollte das die entsprechende Anzahl überschreiten, wird das älteste Backup entfernt.

Mit “Add” bestätigt man die Einstellung. Prinzipiell kann man die Einstellung auch in dem Backup-Job auf dem Proxmox Virtual Environment Server einstellen. Es wird aber empfohlen, die Einstellung direkt auf dem Backupserver zu konfigurieren, damit währenddessen die Last nicht auf dem Virtualisierungshost liegt.

Wenn man möchte, kann man unter dem Punkt “Verify Jobs” die Backup-Snapshots überprüfen lassen. Die lasse ich aber bspw. direkt beim Erstellen des Backups prüfen.

Update konfigurieren

Wie ihr euch sicher vorstellen könnt, sind Updates nicht so einfach möglich bei den selbst kompilierten Proxmox Backup Server Paketen. Daher muss man unter “Administration” und dann im Reiter “Repositories” die Repository “https://enterprise.proxmox.com/debian/pbs” deaktivieren.

PBS Update Repository deaktivieren

Ein Update der Software wird wie die Installation durchgeführt. Ihr kompiliert die Software neu oder ladet die neue Version der vorkompilierten Pakete herunter, führt die Paketinstallation durch und die Software wird auf die aktuelle Version gebracht.

Garbage Collection

Als Tipp noch: Führt ab und zu die Garbage Collection unter “Prune & GC” auf dem PBS aus. Deduplication führt der Backupserver selbstständig aus, allerdings zeigt er beim Datastore den Deduplcation Factor nur ordentlich an, wenn die Routine ab und an mal durchgeführt wird.

Bei mir sind es 22.27 nach 3 Monaten. Das liegt daran, dass die Container relativ ähnlich sind und nicht so viele Änderungen auf den Containern stattfindet. Daher sind die Backups deutlich kleiner. Wie gesagt, mit einem TeraByte kann man sehr lange haushalten.

Deduplikationsfaktor im PBS anzeigen

Backup-Job auf dem Proxmox Virtual Environment Server konfigurieren

Backupspeicher auf dem PVE einrichten

Gleich ist alles soweit für das erste Backup. Zunächst müssen wir allerdings den Datastore vom PBS (Proxmox Backup Server) in den PVE (Proxmox Virtual Environment Server) hinzufügen – diese Abkürzungen. 😀

Dazu gehen wir auf unserem Virtualisierungshost auf Rechenzentrum bzw Datacenter – sorry der PVE ist bei mir auf Deutsch – und klicken auf “Storage” – warum das jetzt nicht übersetzt ist 😀 . Dort wird per “Hinzufügen” in der Liste “Proxmox Backup Server” hinzugefügt. Im Dialogfenster werden nun alle benötigten Daten eingefügt, also Name des Speichers auf dem Host, Anmeldedaten und Name des Datastores (Achtung: Case-Sensitive!).

Hinzufügen des Backupspeichers in PVE

Wie man sieht, benötigt man noch den Fingerabdruck des Backupservers, da wir ein selbstsigniertes Zertifikat verwenden. Dazu wechseln wir kurz wieder auf den PBS und können unter Dashboard auf den Knopf “Show Fingerprint” klicken. Die entsprechende Zeile kopiert man sich dann raus, trägt sie in das Fenster auf dem Virtualisierungshost ein und klickt anschließend auf “Hinzufügen”.

Fingerprint auf dem PBS anzeigen lassen

Die Verschlüsselung der Backups kann ebenfalls eingestellt werden. Ich habe dies jedoch abgeschaltet gelassen, da das natürlich vor allem mit dem Raspberry Pi auch auf die Leistung und Geschwindigkeit geht.

Backup-Job einrichten

Nun benötigen wir nur noch ein Backup-Job. Dazu gehen wir wieder auf dem PVE unter Rechenzentrum bzw. Datacenter auf Backup und klicken auf “Hinzufügen”.

Backup-Job auf dem PVE erstellen.

Nun geben wir den zuvor erstellen Storage an, wie der Zeitplan aussehen soll – hier */2:00, heißt alle zwei Stunden zu jeder Tageszeit, mittlerweile habe ich allerdings auf */4:00 für alle vier Stunden gestellt – und welche VMs oder Container gesichert werden soll – hier alle. Der Modus gibt an, wie das Backup erstellt werden soll. Wenn der Betrieb nicht gestört werden soll, dann ist Snapshot die beste Wahl, könnte aber selten auch zu kaputten Backups oder auch zu Problemen beim Zusammenführen der Snapshots führen, hatte ich bisher allerdings nicht.

Falls man auf Nummer sicher gehen will, lässt man alle VMs vorher stoppen und herunterfahren und zieht dann die Sicherung. Das bedeutet aber natürlich auch, dass die Dienste für den Zeitpunkt des Backups nicht laufen. Suspend ist wie Pause zu behandeln, die VM wird auf halt gesetzt und der RAM-Speicher in eine Datei geschrieben, bevor das Backup beginnt. Auch hier sind die Dienste während des Backups nicht verfügbar. Nach dem Backup startet die VM allerdings schneller und setzt da an, wo sie pausiert wurde.

Machen wir es kurz, normalerweise ist Snapshot der bestmögliche Modus ohne größere Probleme für ein Backup.

Und fertig ist der Proxmox Backup Server. War gar nicht so schwer.

3 Gedanken zu “Proxmox Backup Server auf Raspberry Pi installieren

  1. Damit man auch TFS Nutzen kann muss noch folgendes auf dem Raspberry Pi installiert werden mit Debian 12 Bookworm -> sudo apt install raspberrypi-kernel-headers zfsutils-linux zfs-dkms zfs-zed

    • Hallo Alisha,

      guter Hinweis!
      Ich persönlich würde auf einem PI mit ZFS etwas vorsichtiger agieren. Kann doch recht CPU und RAM heavy sein und PBS ist auch nicht gerade sparsam.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert