Thomas Kramer

IT-COW | All posts tagged 'Proxmox-Backup-Server'

Aufsetzen eines Proxmox Backup Servers

By Administrator at September 14, 2022 20:16
Filed Under:

Als ich neulich den Barebone-PC Gigabyte Brix GB-BACE-3000 für nur 50 Euro neu bei twoGe sah, habe ich ihn mal spontan als günstigen Bastel-PC bestellt. Natürlich war mir bewusst dass das Gerät zu dem Preis eher leistungsschwach sein muss, aber zu dem Preis kann man sich nicht beschweren und der Raspberry Pi wird ja auch gekauft.

 

Mit dem Proxmox Backup-Server wollte ich noch Erfahrungen sammeln, daher hatte ich ihn direkt mit einer 1 TB SSD und 8 GB RAM bestellt. Das Aufsetzen dieser Software ist auch recht einfach, ich empfehle dazu die Webcast-Reihe von ApfelCast: 1 2 3.

 

Wenn Ihr das Bootmedium als Datenspeicher einsetzen wollt, braucht Ihr als Datastore auf dem Backup-Server nur ein Verzeichnis auf dem Speichermedium anzugeben, z. B. /backups. Für die Verbindung auf dem Proxmox VE-Server fügt man dann unter Storage den Backup Server hinzu. Den nötigen Fingerabdruck kann man über das Dashboard des Backup-Servers auslesen. Gestolpert war ich eigentlich nur darüber, dass man als Benutzername statt root dann root@pam eingeben muss.

 

Man kann eine Verschlüsselung für die Backups aktivieren, die benötige ich aber nicht und würde natürlich auch die Ausführung weiter verlangsamen. Relevant sind natürlich die Backup-Modi. Momentan habe ich bei mir nur Container und keine VMs im Betrieb, daher gilt für mich der Abschnitt “Backup modes for Containers” in der Anleitung.

 

Aus Sicht der Daten-Konsistenz, speziell beim Einsatz von Datenbanken, ist wahrscheinlich der stop-Mode am besten. Da in meinen Containern aber separate Datei-Backups der Datenbanken vorhanden und der Backup-Server etwas langsam ist, werde ich, um eine längere Downtime zu vermeiden, wahrscheinlich den snapshot-Modus einsetzen. Für meine Zwecke sollte das auch ausreichen, denke ich.

 

Die Celeron N3000-CPU ist sicher nicht prädestiniert für den Einsatzzweck als Proxmox-Backup-Server, könnte aber für private Zwecke ausreichend sein. Bei meinen Tests habe ich, vor allem bei der initialen Sicherung, eine lange CPU-Auslastung von 95% festgestellt, im Prinzip also Vollauslastung. Das liegt wahrscheinlich an der Komprimierung, die er dabei macht.

 

Den Job kann er natürlich trotzdem vollenden, das bedeutet erstmal nur dass 1. die Ausführungszeit länger als notwendig ist und 2. er sich dabei stärker erwärmt und dabei auch mehr Strom verbraucht, wobei der Stromverbrauch bei diesem Modell trotzdem gering sein wird.

 

Mir fehlt beim Proxmox VE- und –Backup-Server übrigens eine Temperaturanzeige für die CPU und die HDD bzw. SSD. Vielleicht habe ich sie nur nicht gefunden, aber auf den ersten Blick scheint sie nicht vorhanden zu sein.

Man kann Tools zu diesem Zweck natürlich auf der Kommandozeile nachinstallieren, für die Temperaturmessung der CPU ist das z. B:

 

apt install lm-sensors

 

Und dann der Aufruf mit sensors:

clip_image001

 

Die Temperatur der SSD kann man dagegen mit smartctl auslesen:

apt install smartmontools

smartctl –A /dev/sda

 

clip_image003

 

hddtemp wird übrigens auch öfters vorgeschlagen, gibt bei mir aber nichts aus.

 

Während des initialen Backups im stop-Mode ging die CPU-Last also dauerhaft auf 93-95% hoch und die Ausführungszeit betrug ca. 100 Minuten bei 300 GB Daten. Das Gehäuse erwärmte sich dabei schon spürbar und mehr als bei meinem NUC mit J5005-CPU. Wahrscheinlich ist das aber noch unbedenklich gewesen, ansonsten hätte Gigabyte sicher einen Lüfter eingebaut.

 

Trotzdem habe ich im BIOS dann den Turbo Modus deaktiviert, um die Abwärme zu reduzieren. Dadurch wird die Ausführung der Backups natürlich noch länger dauern. Ich rate übrigens davon ab, eine Festplatte als weitere Wärmequelle in diesen Mini-PC einzubauen. SSDs bleiben allgemein kühler als HDDs und sind daher, nicht nur deswegen, zu bevorzugen.

 

Im Prinzip ist es mir aber egal wie lange das Backup dauert, solange die Downtime der virtuellen Maschinen und Container kurz ist. Proxmox beherrscht natürlich inkrementelle Backups, bei denen nur die Änderungen gesichert werden. Das erste Backup dauerte 100 Minuten, das inkrementelle zweite Backup dann 26 Minuten. Beim inkrementellen Backup war die CPU-Last übrigens wesentlich geringer, aber es waren auch noch keine neuen oder geänderten Daten hinzugekommen.

 

Man kann übrigens den Traffic für die Backups begrenzen, das schien bei meinen Tests leider keinen Einfluss auf die CPU-Auslastung zu nehmen. Bei meinen Tests konnte ich zu keinem Zeitpunkt mehr als 800 MB RAM-Auslastung sehen; mit aktivierter Verschlüsselung mag es vielleicht anders aussehen. 8 GB RAM einzusetzen sind demnach Overkill gewesen, ein 2 GB RAM-Riegel hätte auch ausgereicht. Es wäre sicher aber auch möglich gewesen, den Backup Server als VM aufzusetzen und außerhalb der Backupzeiten noch andere Server-Dienste laufen zu lassen.

 

Die Oberfläche vom Proxmox Backup Server ist aufgeräumt und übersichtlich, gefällt mir gut. Unter Prune-Optionen kann man einstellen, wieviele Backups behalten oder gelöscht werden sollen:

 

clip_image004

 

Auf der Proxmox-Webseite gibt es einen Prune-Simulator, der anhand eines Kalenders aufzeigt, mit welchen Optionen wann welche Backups gelöscht werden.

 

Wichtig waren für mich Mail-Benachrichtigungen, um zu sehen ob die Backups ordnungsgemäß ablaufen. Das ist mit Proxmox natürlich auch möglich, aber wie schon bei Bitwarden können die SMTP-Mail-Einstellungen nicht über die Oberfläche vorgenommen werden. Die ersten Tests mit meiner Mail-Adresse liefen demnach ins Leere.

Proxmox verwendet den Postfix als Mail Transfer Agent. Der Proxmox VE-Server initiiert das Backup, also müssen dort die SMTP-Einstellungen über das Terminal vorgenommen werden. Dazu war als Anleitung howtodotech.de hilfreich.

 

Falls jemand Benachrichtigungen über eine GMX-Adresse vornehmen will, sollte er den Schritt

clip_image005

in der Anleitung übrigens nicht auslassen und die Absender-Adresse so einstellen, dass sie mit dem verwendeten Account beim Versenden übereinstimmt. Parallel dazu sollte man bei den Proxmox-Optionen die Einstellung

clip_image006

vornehmen. Vielleicht ist das auch bei anderen Freemailern notwendig.

 

Als weiterer Schritt war für mich dann relevant, die Ausführungszeit meines Proxmox-Servers zu begrenzen. Er soll für Backups aufgeweckt werden und sich danach wieder schlafen legen, um Strom zu sparen. Hinweise dazu, wie man das umsetzen kann, habe ich im Proxmox-Forum gefunden. Auch dazu muss man sich wieder auf die Kommandozeile begeben.

 

Im Prinzip muss man zuerst herausfinden, welcher Befehl den Backup-Server aufweckt und welcher ihn wieder schlafen legt. Für das Aufwecken habe ich zuerst an den Befehl etherwake gedacht, der ist bei Proxmox aber nicht vorinstalliert. Mit “apt install etherwake” habe ich ihn dann nachinstalliert. Danach habe ich gesehen dass es auch einen vorinstallierten wakeonlan-Befehl gibt, aber es sollte egal sein welchen Befehl man verwendet.

 

Für das Aufwecken braucht man den Namen der Netzwerkschnittstelle, die verwendet wird, wenn diese von eth0 abweicht. Normalerweise kann man die Konfiguration der Netzwerkschnitstellen mit ifconfig auflisten lassen, aber der Befehl ist bei Proxmox nicht vorinstalliert. In derem Forum habe ich gelesen dass der Befehl veraltet sei und man stattdessen “ip a” verwenden soll. Auch für das Auslesen der MAC-Adresse ist der Befehl hilfreich.

 

Der Befehl für das Aufwecken ist dann

etherwake –i $Interface $MAC-Adresse

Der Befehl für das Schlafenlegen lautet

ssh root@$PBS-Backup-Server “systemctl suspend”

 

Damit der SSH-Befehl ohne Passworteingabe funktioniert, muss zuerst ein SSH-Key erzeugt und auf den Zielserver übertragen werden. Der SSH-Key ist bei Proxmox standardmäßig schon vorhanden, daher reicht die einmalige Ausführung von

ssh-copy-id root@$PBS-Backup-Server

 

Das gesamte Skript wird dann mit folgendem Befehl angelegt:

nano /usr/local/bin/vzdump-hook-script

 

Folgende Zeilen muss das Skript beinhalten:

#!/bin/bash

if [ "$1" == "job-init" ]; then
  etherwake -i $Interface $MAC
  ping $PBS-Backup-Server -c 60
  /usr/sbin/pvesm set $ProxmoxStorage -disable false
fi

if [ "$1" == "job-end" ]; then
  ssh root@$PBS-Backup-Server "systemctl suspend"
fi

exit 0

 

Nicht vergessen, das Skript anschließend mit

chmod +x /usr/local/bin/vzdump-hook-script

ausführbar zu machen.

 

Wie immer gilt, mit $ kennzeichne ich bei mir Variablen und die Werte müsst Ihr bei euch austauschen. Das Skript muss in dieses Skript von Proxmox verlinkt werden:

nano /etc/pve/jobs.cfg

 

Dort muss die Zeile

script /usr/local/bin/vzdump-hook-script

hinzugefügt werden.

 

Abschließend ist sicher noch interessant, wie man die automatischen Updates bei Proxmox aktiviert. Standardmäßig ist das Enterprise Repository aktiviert, für dass man eine Subskription kaufen muss. Ohne Subskription bekommt man demnach keine automatischen Updates. Es gibt aber ein “No Subscription Update Repository”, dass man über Terminal-Befehle eintragen kann.

 

Das erfolgt in zwei Schritten:

1. Die Datei

nano /etc/apt/sources.list.d/pbs-enterprise.list

editieren und den vorhandenen Eintrag mit vorangestelltem #-Zeichen deaktivieren.

 

2. Im selben Verzeichnis eine Datei

nano /etc/apt/sources.list.d/pbs-no-subscription.list

anlegen und dort die folgenden Zeile hinzufügen:
deb http://download.proxmox.com/debian/pbs bullseye pbs-no-subscription

 

Das gilt für den Proxmox Backup-Server, für den Proxmox VE-Server ist folgende Datei anzulegen:

nano /etc/apt/sources.list.d/pve-no-subscription.list

Die folgende Zeile muss dort eingefügt werden:
deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription

 

Danach muss ggf. der Server einmal neu gestartet werden.

 

Die aktuellen Versionen von Proxmox VE und Proxmox Backup Server basieren auf Debian Bullseye, wie man sehen kann. Es ist wahrscheinlich dass man diese Zeilen bei einem großen Update ändern muss, weil sich die Debian Codenamen bei großen Releasewechseln auch ändern.

 

Nach diesen Änderungen wird man mit folgendem Eintrag im Dashboard empfangen:

clip_image008

 

Bis hierhin sieht der Proxmox-Backup-Server nach einer gelungenen Software aus, und auch ohne Geld zu bezahlen kann man ihn sinnvoll einsetzen. Wer das Geld aber über hat, kann durchaus darüber nachdenken eine Subscription zu kaufen.

 

Ergänzung 19.07.2022: Wie ich festgestellt habe aktiviert der Proxmox Backup Server standardmäßig nicht die Wake on Lan-Fähigkeit der Netzwerkschnittstellen, und es gibt auch keine Möglichkeit diese Einstellung über die Oberfläche vorzunehmen.

 

Grundsätzlich lautet der Befehl dazu:

ethtool -s $Interface wol g

 

Allerdings muss der Befehl bei jedem Reboot erneut aufgerufen werden.

Die Seite myworkroom.de präferiert dazu eine Lösung über einen systemd-Dienst. Dazu ist als erstes eine Datei anzulegen:

nano /etc/systemd/system/wol.service

 

Diese Datei muss folgenden Inhalt haben:
clip_image009

 

Der Name der Netzwerkschnittstelle muss bei euch angepasst werden. Danach sind die folgenden Befehle auszuführen:

systemctl start wol.service

systemctl enable wol.service

systemctl is-enabled wol.service

systemctl daemon-reload

 

Danach den Proxmox Backup-Server einmal neu starten. Nun sollte mein Proxmox Backup eigentlich zuverlässig laufen.

 

Ergänzung 22.07.2022: Habe mittlerweile auch den Verifzierungs-Modus vom Backup Server getestet, das dauerte bei mir ca. 100 Minuten bei den erwähnten 300 GB Daten, aber ohne aktivierten Turbo-Modus. Leider kann man den Modus nur zeitgesteuert triggern, daher werde ich das vorerst deaktiviert lassen. Sinnvoll wäre eine Verifikation direkt nach einem erfolgten Backup. Jemand aus dem Proxmox-Team hatte das im Forum als sinnvoll erachtet, daher wird diese Funktion sicher auch noch irgendwann eingebaut werden.

 

Die Wahrscheinlichkeit ist aber viel höher, dass man versehentlich Daten zerstört oder durch ein Update irgendwas kaputt geht, und das erst dann bemerkt, wenn bereits alle vorhandenen Backups den Fehler aufweisen. Daher sollte man mit der Anzahl der aufbewahrten Backups nicht geizen, insbesondere wenn täglich nur wenige Daten hinzukommen oder geändert werden. Sehr wichtige Daten wie Passwort-Datenbanken sollte man doppelt und dreifach sichern.

 

Interessant bei den Restore-Möglichkeiten ist übrigens, dass man gezielt einzelne Dateien herunterladen und gezielt bestimmte Backups vor dem Löschen schützen kann. Ich denke der Aufwand der Installation war auf jeden Fall sinnvoll, auch wenn dieses Gerät etwas langsam ist.

 

Wer einen schnellen PC mit dem Backup Server aufsetzen will, sollte auch seine Netzwerk-Infrastruktur nicht vergessen. In den meisten Fällen dürften die Privat-Netzwerke noch auf 1 GBit/Sec beschränkt sein, das ergibt grob überschlagen 430 GB pro Stunde (ca. 120 MB/Sec ist dabei das Limit), die an Daten gesichert werden können. Wenn man die Leitungen intern exklusiv nutzen kann und es optimal läuft.

 

Bei großen Datenmengen sollte man dann eher auf 2,5, 5 oder 10 GBit Ethernet aufrüsten, wobei das dann natürlich auch Ausgaben für passende Netzwerkkarten, Kabel und Switches nach sich zieht. Bei mir habe ich bislang noch keine Notwendigkeit dafür gesehen.

 

Ergänzung 26.08.2022: Betrifft eher den Proxmox Server als den Proxmox Backup Server, aber ich setze den Tipp mal hierunter. Neuerdings findet bei meinem Proxmox Server sporadisch ein Disconnect der USB-SSD statt, was in der Folge natürlich Lesefehler provoziert:

 

Aug 26 18:19:37 pve kernel: usb 2-4: USB disconnect, device number 3
Aug 26 18:19:37 pve kernel: blk_update_request: I/O error, dev sdc, sector 184970680 op 0x1:(WRITE) flags 0x0 phys_seg 1 prio class 0
Aug 26 18:19:37 pve kernel: EXT4-fs warning (device sdc1): ext4_end_bio:342: I/O error 10 writing to inode 11010056 starting block 23121336)

 

Auf der Seite von Tobias Gräber bin ich auf den Tipp gestoßen, USB Autosuspend unter Proxmox zu deaktivieren. Wenn man kein UEFI im BIOS aktiviert hat muss man dazu folgendermaßen vorgehen:

- Die Einstellungsdatei vom Bootmanager grub editieren: nano /etc/default/grub

- Die Zeile

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

durch

GRUB_CMDLINE_LINUX_DEFAULT="quiet usbcore.autosuspend=-1"

ersetzen und dann den Bootmanager durch den Befehl “update-grub” aktualisieren sowie neu booten.

Möglicherweise wurde durch eines der automatischen Proxmox-Updates Änderungen am Powermanagement vorgenommen, wodurch dieser Fehler neuerdings auftritt. Ich hoffe dass der nervige Fehler nun verschwindet.

   

Tag-Wolke

Monats-Liste