Borg-Backup mit Hetzner Storage Box

Der Sommer ist da und mit ihm steigen nicht nur die Temperaturen, sondern auch der Bedarf an Speicherplatz für unsere stetig wachsenden Datenmengen. Es ist an der Zeit, uns um die Sicherung unserer wertvollen Informationen zu kümmern, bevor unsere Rechner unter der Hitze zusammenbrechen und wichtige Daten verloren gehen.

In diesem Blogbeitrag werden wir uns mit einer effektiven Lösung befassen, um diesem Problem entgegenzuwirken: Borg Backup in Verbindung mit der Hetzner Storage Box. Erfahren Sie, wie Sie Ihre Daten zuverlässig sichern und gleichzeitig Speicherplatz freigeben können, um den Sommer ohne Sorgen zu genießen.

Was ist die Hetzner Storage Box?

Im Grunde genommen handelt es sich um einen günstigen, ausfallsicheren Cloud-Speicher beim renomierten Cloud Storage Provider Hetzner welcher relativ einfach, beginnend von 1TB bis 20TB flexibel erweitert oder wieder geschrumpft werden kann. Mehr dazu finden Sie in der offiziellen Dokumentation von Hetzner.

Was ist Borg Backup?

Borg Backup ist ein leistungsstolles Open-Source-Tool zur Sicherung und Archivierung von Daten. Es wurde entwickelt, um eine effiziente und zuverlässige Methode zum Schutz von Daten vor Verlust oder Beschädigung zu bieten.

Das Hauptziel von Borg Backup ist es, eine einfache und sichere Möglichkeit zu bieten, Backups von Dateisystemen zu erstellen und diese effizient zu speichern. Es bietet:

  • Verschlüsselung
  • Kompression und Prüfsummen
  • Vollständige Backups
  • Inkrementelle Backups
  • Differenzielle Backups
  • Deduplizierung

Insgesamt ist Borg Backup eine leistungsstarke Lösung zur Sicherung von Daten, die sowohl für Privatanwender als auch für Unternehmen geeignet ist.

Vorbereitung

Sobald wir eine Storage Box gemietet haben, muss auf dem Account unserer Storage Box noch das Verzeichnis .ssh angelegt und dann der öffentliche SSH-Key unseres Produktivsystems hinterlegt werden.

Aktivieren Sie den SSH-Support, externe Erreichbarkeit und lassen Sie sich ein neues Passwort erstellen. Notieren Sie sich das Passwort, sonst müssen Sie jedes mal ein neues generieren lassen.

Zum Verständnis:
Unsere Storage Box hat den Namen u355253 und wir Nutzen keinen Subaccount. Passen Sie den Code auf jeden Fall an Ihre Umgebung an.

Storage Box

Loggen Sie sich dazu auf einmal auf der Storage Box ein:

ssh -p23 u355253@u355253.your-storagebox.de

Legen Sie hier noch das Verzeichnis .ssh und backups an.

mkdir .ssh backups

Produktivsystem

Falls Sie noch keinen öffentlichen SSH-Key auf Ihrem System haben können Sie einen generieren. Bestätigen Sie aufkommende Abfragen ohne Eingaben mit der Enter-Taste:

ssh-keygen

Importieren Sie den SSH-Key:

ssh-copy-id -p 23 -s u355253@u355253.your-storagebox.de

Sollten Sie aufgrund alter OpenSSH Versionen nicht mit dem ssh-copy-id Befehl arbeiten können, nutzen Sie einfach:

scp -P 23 ~/.ssh/id_rsa.pub u355253@u355253.your-storagebox.de:.ssh/authorized_keys

Versuchen Sie nun, sich von Ihrem Daten-Quellsystem aus auf Ihre Hetzner Storage Box zu verbinden. Nutzen Sie dazu einfach den ersten Befehl auf diesem Blogeintrag.
Sollte die Verbindung erfolgreich sein, können Sie sich wieder mit dem exit-Kommando ausloggen.

Installieren Sie nun Borg Backup:

apt install borgbackup -y

Initialisierung eines Borg Backup Repositories

Das Borg Backup-Repository ist ein verschlüsselter Container, der alle gesicherten Daten und Metadaten von Borg Backup enthält. Es dient als zentraler Speicherort für Ihre Backups. Das Repository wird zu Beginn erstellt und kann auf einem Speichermedium oder in der Cloud liegen. Borg Backup erstellt dann inkrementelle Backups, bei denen nur geänderte Teile von Dateien gespeichert werden. Die Daten im Repository werden verschlüsselt und komprimiert, um Vertraulichkeit und effiziente Speichernutzung zu gewährleisten. Sie können auf verschiedene Versionen Ihrer Daten zugreifen und einzelne Dateien wiederherstellen, ohne das gesamte Backup extrahieren zu müssen.

An dieser Stelle sollten Sie sich die Frage stellen, ob Sie Ihre Daten verschlüsselt oder unverschlüsselt im Borg Repository legen wollen. Für uns jedoch stellt sich diese Frage jedoch nicht und wir verschlüsseln unsere Daten mit einem repokey.

Sollten Sie keine verschlüsselung wollen tragen Sie statt „–encryption repokey-blake2“ dort „–encryption none“ ein.

borg init --encryption repokey-blake2 ssh://u355253@u355253.your-storagebox.de:23/./backups/REPOSITORY_NAME

Mit Repokey-Verschlüsselung werden Sie nun nach einer Passphrase gefragt. Dieses wird zukünftig benötigt Ihre Daten zu ver- bzw. zu entschlüsseln. Bewahren Sie also gut auf.

Das Borg Backup

Hier bietet es sich an ein Script zusammenzustellen. In unserem Fall sollen folgende Dinge passieren:

  • Komprimierung (in diesem Fall lz4).
  • Backups sollen mit Zeitstempel versehen sein.
  • Die Verzeichnisse /etc /root und /var/www sollen im Backup enthalten sein.
  • Das Repository sein Regelmäßig gereinigt werden. Bleiben soll nur ein Backup der letzten 7 Tage, wöchentlich das aktuellste der letzten 4 Wochen sowie das monatlich aktuellste der letzten 6 Monate.

Das Script besteht im wesentlichen aus 3 Bestandteilen: Variablen/Zugangsdaten setzen, Backup erstellen und zuletzt alte Backups bereinigen.

nano borg_backup.sh

Wenn Sie das Script kopieren müssen Sie BORG_REPO, BORG_PASSPHRASE sowie die Parameter bei „borg create“ für Ihre Umgebung anpassen.

 #!/bin/bash

export BORG_REPO="ssh://u355253@u355253.your-storagebox.de.your-storagebox.de:23/./backups/REPOSITORY_NAME

export BORG_PASSPHRASE='BEI_INITALISIERUNG_ANGELEGT'

echo "###### Starting backup on $(date) ######"
echo "Syncing backup files ..."

borg create -v --stats --progress --compress lz4 --one-file-system \
        ::'{now:%Y-%m-%d_%H:%M}'        \
        /etc                            \
        /root                           \
        /var/www

echo "Deleting outdated files > 6 months"

borg prune --progress --stats --keep-daily=7 --keep-weekly=4 --keep-monthly=6

echo "###### Finished backup on $(date) ######"

Setzen Sie das Bit für execute, damit Ihr Script ausführbar wird.

chmod +x borg_backup.sh

Backups automatisieren

Wir können nun unser neues Backupscript jederzeit manuell starten. Die Backups sollen uns jedoch Zeit geben den Sommer zu genießen, nicht Scripte zu starten. Hier bieten sich Cronjobs an.

crontab -e

Tragen Sie hier Ihren automatischen Cronjob ein.

0 2 * * * /pfad/zum/borg_backup.sh

In diesem Beispiel wird jede Nacht um 02:00 das borg_backup.sh Script gestartet.

Fazit

Die Hetzner Storage Box bietet Ihnen einen zuverlässigen und sicheren Speicherort für Ihre Borg Backups. Mit der Möglichkeit, die Speicherkapazität flexibel anzupassen, können Sie Ihre Daten optimal verwalten und skalieren. Das gibt Ihnen die Gewissheit, dass Ihre Backups geschützt sind und jederzeit verfügbar sein werden.

Kontaktieren Sie uns noch heute, um mehr über unsere Backup-Dienstleistungen und die Möglichkeiten der Hetzner Storage Box zu erfahren. Gemeinsam finden wir die beste Lösung, um Ihre Daten vor Verlust oder Beschädigung zu schützen und Ihnen die nötige Sicherheit zu bieten, um den Sommer unbesorgt zu genießen.