Das Proxmox Host Backup ist genauso wichtig, wie die Backups wie von den eigentlichen virtuellen Maschinen. Wenn es zu dem Fall kommt, dass der Host selber ausfällt, dann sind nicht nur die Hüllen von den virtuellen Maschinen weg, sondern auch jegliche Einstellungen in eurer Proxmox Umgebung.
Eventuell habt Ihr spezielle Einstellungen vorgenommen, spezielle Backup oder HA Regeln. Alle diese Regeln sind nun weg. Also müssen wir uns bemühen, dass auch diese Einstellungen schnell und einfach gesichert werden.
Proxmox VE Host Backup mit Borg Backup
Borg Backup ist eine kostenlose Software, welche für sehr viele Betriebssysteme verfügbar ist, unteranderem natürlich Linux. Mir persönlich gefallen die Effizienten Funktionen, wie z.B. Deduplication & Compression sehr gut. Es spart besonders für das “lästige” Backup enorm viel Speicherplatz. Beide Funktionen in Kombination erreichen gerne mal schnell Werte von bis zu 9:1, je nachdem was Ihr so an Daten in euer Backup schiebt.
Kommen wir zum eigentlichen, was sollte ich von meinem Proxmox Host alles speichern?
/etc/pve
/etc/network
/etc/hosts
/etc/passwd
Der Template Ordner wo eure Templates und ISOs liegen?
Grundsätzlich reicht es wenn Ihr den Ordner /etc/pve speichert, denn dort liegen alle Konfigurationen für den Proxmox VE. Wenn Ihr noch zusätzlich weitere Informationen speichern möchte wie ich hier, braucht ihr diese Ordner nur mit in euer Backup aufnehmen. Aber wie das jetzt wirklich geht kommt im folgenden Abschnitt.
Manuelles Borg Backup – Schritt für Schritt
Borg Backup benötigt für die gewisse Intelligenz sein eigenes Repository. Das heißt nichts anderes, dass Ihr das Backup einmalig auf einem Pfad eurer Wahl initiieren müsst.
Wo legt man das Backup hin? Natürlich auf einen entfernten Speicher wie z.B. ein NFS oder SMB/Cifs Share. Ein iSCSI Blockdevice eignet sich natürlich ebenfall. Ein USB-Stick tut es auch, aber dieser Steckt ja wieder im System selber, kann also genauso ausfallen oder betroffen sein.
#Damit wird das Borg Backupauf dem gewünschten Pfad initialisiert. (Es wird nach einem Passwort verlangt)
borg init --encryption=repokey /pfad/zum/backup_ordner
Mit dem oben stehenden Befehl wird das Backup initialisiert und kann ab sofort genutzt werden. Diesen Befehl braucht ihr nur einmalig.
Ein Backup wird nun wie folgt durchgeführt.
borg create --stats --progress --compression=lz4 /pfad/zum/backup_ordner::backup1 /etc/pve /etc/network /etc/hosts
Der hier stehende Befehl macht folgendes. Mit Stats und Progress bekommt Ihr eine Anzeige mit Informationen zum Backup.
Der Pfad wird wieder angegeben und das “::backup1” benennt das hier erstellte Backup “backup1”. Beim nächsten Backup muss das ein anderer Name sein.
Zu guter Letzt wird der oder die Pfade angegeben, welche ins Backup einfließen sollen. Da könnt ihr gerne weitere Ordner und Pfade mit einem Leerzeichen getrennt hinzufügen.
Alle weiteren Backups müssen unter einem anderen Namen gespeichert werden. Das Deduplizieren und Komprimieren passiert dabei automatisch.
Automatisches Proxmox Borg Backup Skript
Quelle: borgbackup.org
#!/bin/sh
export BORG_REPO=/opt/Backup
# Euer Passwort muss hier hinterlegt werden.
export BORG_PASSPHRASE='Was5kGANZ5jgop54KOMPLIZIERTES'
info() { printf "\n%s %s\n\n" "$( date )" "$*" >&2; }
trap 'echo $( date ) Backup unterbrochen >&2; exit 2' INT TERM
info "Start backup"
# Hier wird das Backup erstellt, passt das so an wie Ihr das gerne haben möchtet
borg create \
--stats \
--compression lz4 \
::'{hostname}-{now}' \
/etc/pve \
/etc/network/interfaces
backup_exit=$?
info "Loeschen von alten Backups"
# Automatisches löschen von alten Backups
borg prune \
--prefix '{hostname}-' \
--keep-daily 7 \
--keep-weekly 4 \
--keep-monthly 6
prune_exit=$?
info "schroederdennis.de"
# Informationen ob das Backup geklappt hat.
global_exit=$(( backup_exit > prune_exit ? backup_exit : prune_exit ))
if [ ${global_exit} -eq 0 ]; then
info "Backup and Prune finished successfully"
elif [ ${global_exit} -eq 1 ]; then
info "Backup and/or Prune finished with warnings"
else
info "Backup and/or Prune finished with errors"
fi
exit ${global_exit}
24. Mai 2021 um 21:44
Wirf mal einen Blick auf das Skript vzborg.
Da bin ich vor einer Weile darüber gestolpert. Es ist ein Wrapper der vzdump und borg miteinander verheiratet.
25. Februar 2022 um 09:18
Hi,
zunächst vielen Dank für deine guten Videos und Guides – top Job und (für mich) einiges nützliches dabei, so auch dieses Thema hier.
Dazu eine Frage: du sagst im Vid, dass Borg auch auf dem remote System laufen muss.
Wenn ich Borg auf meinem PVE Host laufen lasse und ein Backup in Richtung meines NAS mache, das als NFS LW gemountet ist, kann ich mir nach einem Testlauf den Backup im Remotepfad per borg list /pfad/zum/backup/ auch tatsächlich anzeigen lassen.
Es scheint also was dort zu sein. Die Ausgabe des Backup Jobs zuvor sieht auch aus wie bei dir im Video.
Warum genau muss/sollte Borg jetzt auch auf dem remote System laufen?
Für einen etwaigen Restore ja eher nicht, denn davon rätst du ja am Ende explizit ab und das man die Backups lediglich als Basis für eine Neukonfig im Fall der Fälle hernehmen sollte.
Danke!
20. Februar 2023 um 05:30
Hi Stefan,
vielleicht etwas spät die Antwort. Aber wenn du dir ein nfs-Share einbindest, dann ist dies wie ein lokales Backup. Also vergleichbar mit einer externen Festplatte etc.
Beste Grüße