February 22, 20251 yr Servus, ich habe vor meine wichtigsten Daten außerhalb bei einem Cloud Provider zu sichern (wahrscheinlich Hetzner Storagebox). Ich bin jetzt auf der Suche nach einer geeigneten Möglichkeit ein verschlüsseltes und inkrementelles Backup zu erstellen, dabei sind mir unter anderem die Tools Borg, Restic, Duplicati über den Weg gelaufen, Duplicati hat aller Dings nicht so einen guten Ruf. Meine Frage wäre jetzt, welche Tool für mein Vorhaben am geeignetsten ist unter Unraid und vielleicht noch welcher Cloud-Anbieter noch infrage kommen könnten, Ich habe etwa 1 TB an Speicher denn ich Backupen möchte.
February 22, 20251 yr Servus, das Duplicati nicht gerade die erste Wahl ist habe ich auch festgestellt. Als ich noch völlig ohne UNRAID, TrueNAS was auch immer unterwegs war also einem "nackten" Debian habe ich BorgBackup genutzt. Dieses nutze ich ebenfalls in Unraid welches ich in einem Docker Container laufen habe und per Userscript starte. Im Anschluss sicher ich das ganze mittels rclone auf meinem GOOGLE Drive Dadurch habe ich das Borgbackup zwar auf dem Array liegen aber es wird auch in die Cloud gesichert. Mag vielleicht nicht die eleganteste Lösung sein aber es funktioniert sehr gut. Hetzner mit der Storage Box hat direkte unterstützung für BorgBackup. Wie das funktioniert und ob das gut ist kann ich dir nicht sagen. Edited February 22, 20251 yr by mikiunraid
February 22, 20251 yr Hi, also ich nutze eine Storage Box von Hetzner mit BorgBackup (5TB). Funktioniert super man kann das Laufwerk wenn man es möchte auch per SMB in Unraid einbinden (Vorsicht Sicherheit - SMB Port der Storage Box offen). Das schöne was ich an BorgBackup finde ist zum einen das nur Änderungen gesichert werden (Deduplizierung) und das man die Sicherungen wie ein eigenes Laufwerk Mounten kann. Zu dem sind die Backups mittels BorgBackup verschlüsselt. VG Thorsten
February 22, 20251 yr Author Wie habt ihr Borg auf eurem Server Installier? Per Docker oder direkt auf dem System, bei den Nerdtools war Borg meine ich mit dabei, aber seit Unraid 7 werden die Nerdtools nicht mehr unterstützt. Kann man Borg irgendwie auf dem Server installieren so das ich das Backup mit den users Skripts einrichten kann?
February 22, 20251 yr Ich habe es als Docker gestartet. Dann den Backupbefehl mittels UserScript: docker exec -e BORG_PASSPHRASE='DAS_SUPER_PASSWORD' BorgBackup borg create --files-cache=mtime,size --list --exclude-from '/app/exclude.txt' -v --stats -p -C lzma /mnt/user/borgbackup::{now:%Y-%m-%d__%H:%M} /mnt/user Ich hatte zu anfangs immer das Problem das einige Dateien immer und immer wieder ins Backup geschrieben wurden obwohl diese in keiner weise verändert wurden. Ich habe herausgefunden das man den Parameter --files-cache=mtime,size mit angeben muss. Das verhindert das zur Prüfung die inode Nummer geprüft wird. Unraid schraubt wohl die ganze Zeit daran rum und Borg denkt dann immer das die Dateien verändert worden sind. Ein Nachteil von Borg ist wenn man ein Backup wiederherstellen will muss man das aus dem Docker heraus machen. Da man in dem Ordner stehen muss in dem man die wiederhergestellten Dateien schreiben will. Meines Wissens gibt es beim Zurücklesen nicht --> hier schreib in /mnt/user/restor Falls ihr andere Infos habt dann bitte her damit. Edited February 22, 20251 yr by mikiunraid
February 22, 20251 yr Author Benutzt du dann borgmatic aus dem CA Store oder hast du dir deinen eigenen Container in Unraid zusammen gebaut. Stimmt mit Docker exec könnte ich auch arbeiten, mein Ziel ist es das ich vor dem Backup ein Snapshot von meinen Container mache und das mit in das Backup schiebe, muss mich da aber noch etwas mit den Borg befehlen auseinandersetzen es gibt auch von Hetzner einer gute Borg Dokumentation dazu.
February 22, 20251 yr Ich habe einen eigenen Container gebastet. Aber mit Borgmatic muss ich mich mal befassen ob das auch mit dem GOOGLE Drive geht. Habe gerade bei Hetzner eine StorageBox eingerichtet. Schaue mir das mal alles an. Backup ist echt ein leidiges Thema.
February 22, 20251 yr Author 24 minutes ago, mikiunraid said: Habe gerade bei Hetzner eine StorageBox eingerichtet. Schaue mir das mal alles an. Hier ist eine Anleitung von Hetzner selber zur Einrichtung von Borg Link Dann schaue ich mal ob das mit Borgmatic auch so gut funktioniert mit den users Skripts oder ob ich auch einen eigenen Container basteln muss
February 22, 20251 yr 1 hour ago, Major_Pain said: Hier ist eine Anleitung von Hetzner selber zur Einrichtung von Borg Link Dann schaue ich mal ob das mit Borgmatic auch so gut funktioniert mit den users Skripts oder ob ich auch einen eigenen Container basteln muss WOW vielen Dank, genau nach so einer Anleitung wollte ich gerade suchen. Aber richtig doof ist das Borg nicht direkt unter Unraid läuft. Edited February 22, 20251 yr by mikiunraid
February 22, 20251 yr Author Ich hab mir jetzt mal ein Skript erstellt was mir die Backups erstellt, scheint auch soweit zu funktionieren, gerne Verbesserungsvorschläge. Edit: hab das Skript noch etwas angepasst #!/bin/bash # Prüfen, ob das Skript bereits läuft SCRIPT_NAME=$(basename "$0") LOCKFILE="/tmp/${SCRIPT_NAME}.lock" if [ -f $LOCKFILE ]; then echo "Das Skript '$SCRIPT_NAME' läuft bereits. Abbruch." exit 1 else touch $LOCKFILE fi # Ersetze diese Variablen durch die richtigen Werte DATASET="fast/appdata" DATE=$(date +%Y-%m-%d_%H-%M-%S) SNAPSHOT_NAME="borg_$DATE" BACKUP1="/mnt/user/appdata/.zfs/snapshot/$SNAPSHOT_NAME" BACKUP2="/mnt/user/Daten" CONTAINER_NAME="borgmatic" REPOSITORY="/mnt/borg-repository" # Angepasster Pfad für das Borg-Repository # Prüfen, ob der Docker-Container läuft echo "Überprüfe, ob der Container '${CONTAINER_NAME}' läuft..." if ! docker ps --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then echo "Container läuft nicht. Starte den Container..." docker start ${CONTAINER_NAME} if [ $? -ne 0 ]; then echo "Fehler beim Starten des Containers." rm -f $LOCKFILE exit 1 fi else echo "Container ist bereits gestartet." fi # Setze die BORG_PASSPHRASE innerhalb des Docker-Containers docker exec ${CONTAINER_NAME} sh -c " export BORG_PASSPHRASE=\$(cat /run/s6/container_environment/BORG_PASSPHRASE) " # Prüfen, ob das Borg-Repository initialisiert ist echo "Prüfe, ob das Backup-Ziel initialisiert ist..." docker exec ${CONTAINER_NAME} borg info ${REPOSITORY} > /dev/null 2>&1 if [ $? -ne 0 ]; then echo "Backup-Ziel ist nicht initialisiert. Versuche es zu initialisieren..." docker exec ${CONTAINER_NAME} borg init --encryption repokey ${REPOSITORY} if [ $? -ne 0 ]; then echo "Fehler bei der Initialisierung des Borg-Repositories." rm -f $LOCKFILE exit 1 fi echo "Repository erfolgreich initialisiert." fi # Erstelle einen ZFS Snapshot mit -r echo "Erstelle ZFS Snapshot..." zfs snap -r ${DATASET}@${SNAPSHOT_NAME} if [ $? -ne 0 ]; then echo "Fehler beim Erstellen des ZFS-Snapshots." rm -f $LOCKFILE exit 1 fi # Überprüfe und lösche alte Snapshots, um maximal 7 Snapshots der eigenen zu behalten echo "Überprüfe alte Snapshots..." EXISTING_SNAPSHOTS=$(zfs list -t snapshot -H -o name | grep "${DATASET}@borg_") SNAPSHOT_COUNT=$(echo "$EXISTING_SNAPSHOTS" | wc -l) if [ "$SNAPSHOT_COUNT" -ge 7 ]; then echo "Maximale Anzahl an Snapshots erreicht. Lösche die ältesten Snapshots..." OLD_SNAPSHOTS=$(echo "$EXISTING_SNAPSHOTS" | sort | head -n $(($SNAPSHOT_COUNT - 6))) for snapshot in $OLD_SNAPSHOTS; do echo "Lösche alten Snapshot: $snapshot..." zfs destroy "$snapshot" done fi # Starten des Backupprozesses mit borgmatic echo "Starte den Backupprozess mit borgmatic..." docker exec ${CONTAINER_NAME} sh -c " borg create -v --stats --progress --list --files-cache=mtime,size -C lzma \ ${REPOSITORY}::{now:%Y-%m-%d_%H-%M-%S} \ ${BACKUP1} \ ${BACKUP2} \ #--exclude /dev \ " if [ $? -eq 0 ]; then echo "Führe Borg Prune durch, um alte Backups zu entfernen..." docker exec ${CONTAINER_NAME} borg prune -v --list ${REPOSITORY} --keep-daily=7 --keep-weekly=4 --keep-monthly=12 if [ $? -ne 0 ]; then echo "Fehler beim Prune-Vorgang." else echo "Prune erfolgreich abgeschlossen." fi else echo "Fehler beim Backupvorgang." fi # Lockfile löschen rm -f $LOCKFILE echo "Skript abgeschlossen." Edited February 23, 20251 yr by Major_Pain
February 23, 20251 yr Ich befülle meine StorageBox gerade aus meinem Borg Container per SSH. Bin gespannt ob das funktioniert. Borgmatic muss ich erst mal in Ruhe anschauen die wollen beim einrichte viel wissen und viele Einstellungen die ich so nicht parat habe.
February 23, 20251 yr Author Mit Borgmatic habe bis jetzt keine Probleme kann die normalen borg befehle benutzen, habe aber auch keine anderen Docker Container gefunden außer einem das 6 Jahre alt ist. Werde mich dann denke jetzt auch mal an die Storagebox setzten, Ich hab jetzt aber noch ein Problem, wenn ich mein Backup im Container mounte dann wird mir das Backup nicht auf dem Hostsystem angezeigt obwohl der Pfad derselbe ist, wenn ich das Backup im Container an eine andere Stelle verschiebe, taucht das Backup plötzlich in Unraid auf, hat da jemand eine Ahnung woran das liegen könnte? Edited February 23, 20251 yr by Major_Pain
February 25, 20251 yr Ich habe mir Borgmatic mal angeschaut. Denke das ich es noch nicht so ganz verstanden habe was genau der Vorteil sein soll wenn ich mit Borg nur einen Befehl zum sichern brauche. Cron macht UserScript von Unraid. Einen Docker benötige ich trotzdem. Wäre eben schän wenn Borg direkt in Unraid integriert wäre. Vielleicht habe ich das ganze auch noch nicht so richtig verstanden.
February 25, 20251 yr On 2/22/2025 at 8:15 PM, Major_Pain said: Wie habt ihr Borg auf eurem Server Installier? Per Docker oder direkt auf dem System, bei den Nerdtools war Borg meine ich mit dabei, aber seit Unraid 7 werden die Nerdtools nicht mehr unterstützt. Kann man Borg irgendwie auf dem Server installieren so das ich das Backup mit den users Skripts einrichten kann? Also ich die Slackware BorgBackup Version herunter geladen und auf dem USB Stick von Unraid im Verzeichnis borgBackup abgelegt. /borgBackup/borg-linux64 mit einem Skript mit dem Plugin user.scripts wird diese Datei ein seinem Ort kopiert und ausführbar gemacht. #!/bin/bash cp /boot/borgBackup/borg-linux64 /usr/bin/borg chmod +x /usr/bin/borg Dieses Skript wird beim starten des Arrays ausgeführt. Wenn man das Package für borgBackup für Slackware hat kann man es sicherlich auch im /extra Verzeichnis des USB Sticks abgelegen alle Packages die da drin sind werden im booten von Unraid installiert. Das ist mein Skript welches ich für die Hetzner Storagebox benutze in diesem Fall für "Appdata" wie ja oben beschrieben ist borgbackup direkt auf Unraid und somit kein Docker Container notwendig. borg_backup_storagebox_appdata.txt So sieht dann das LogFile aus.... Borg-Backup-StorageBox-APPDATA--2025-02-06_22-59-09.log Edited February 25, 20251 yr by Thorsten
February 26, 20251 yr Author Ich hab mir auch die Borg Binary auf dem USB-Stick gepackt und hab dann nur noch die go File angepasst, das ich Borg auch benutzen kann cp /boot/config/borg-linux-glibc228 /usr/local/bin/borg chown root:root /usr/local/bin/borg chmod 755 /usr/local/bin/borg Ich hab mir mit ChatGPT dann noch ein Skript zusammen schustern lassen was ich in die User Skripts importiert habe, es ist denke ich nicht Perfekt aber es tut was soll bis jetzt. borg_backup.sh
February 26, 20251 yr 51 minutes ago, Major_Pain said: Ich hab mir auch die Borg Binary auf dem USB-Stick gepackt und hab dann nur noch die go File angepasst, das ich Borg auch benutzen kann cp /boot/config/borg-linux-glibc228 /usr/local/bin/borg chown root:root /usr/local/bin/borg chmod 755 /usr/local/bin/borg Ich hab mir mit ChatGPT dann noch ein Skript zusammen schustern lassen was ich in die User Skripts importiert habe, es ist denke ich nicht Perfekt aber es tut was soll bis jetzt. borg_backup.sh 5.15 kB · 0 downloads Das Skript sieht doch ganz gut aus. Das mit dem zfs Snapshot ist auch eine gute Idee. Du sicherst aber das Snapshot Verzeichnis nur und nicht das appdata Verzeichnis direkt oder ? Was machst du dann wenn der zfs pool defekt ist und nicht wiederherstellbar ? Dann hast du ein Backup der Snapshot aber wie bekommst du das dann wiederhergestellt ? Wenn du dich doch dazu entscheiden solltest das appdata Verzeichnis zu sichern wäre meine Empfehlung vorher die Container zu beenden die Sicherung erstellen und im Anschluß die Container zu starten so hat man immer einen sauberen stand. Noch ein Tipp es gibt ein paar Unraid Befehle für user.skripts wie z.B. #noParity=true -> Das Skript wird dann nicht ausgeführt wenn ParityCheck aktiv ist. Weitere Infos hier -> https://forums.unraid.net/topic/48286-plugin-ca-user-scripts/#findComment-475625 VG Thorsten
February 26, 20251 yr Author 2 hours ago, Thorsten said: Du sicherst aber das Snapshot Verzeichnis nur und nicht das appdata Verzeichnis direkt oder ? Was machst du dann wenn der zfs pool defekt ist und nicht wiederherstellbar ? Dann hast du ein Backup der Snapshot aber wie bekommst du das dann wiederhergestellt ? Ja genau ich Backupe das Snapshot Verzeichnis, das sind doch die gleichen Daten wie unter appdata oder liege ich da Falsch? Mein Ziel war es halt meine Docker zu Backupen ohne diese vorher Herunterzufahren um Down time zu vermeiden. Das mit dem wiederherstellen müsste ich dann mal testen wenn das Backup fertig ist. Danke für den Tipp mit den User Skript, da sind echt paar nützliche Sachen dabei, werd mir denk auch die Unraid Benachrichtigung von dir irgendwie in mein Skript mit einbauen
May 2, 20251 yr Hallo zusammen, ich beschäftige mich gerade (eigentlich seit Monaten) mit der richtigen Backup-Strategie für meinen unraid-server und komme hier nicht so richtig weiter. Nach ersten Ausflügen mit luckybackup, duplicacy oder auch urbackup, die mich nicht so richtig überzeugt haben bzw. ich diese nicht ans Laufen gebracht habe, bin ich auf der Suche nach einem passenden Backup-Tool auf borg-backup aufmerksam geworden. Hier hat mich aber bisher abgehalten, dass ich immer gelesen habe, dass ich zuerst ein 'lokales' Backup erzeugen muss, welches dann (z. B. mittels rsync) auf einen anderen/externen server kopiert wird. Dafür habe ich aber den Plattenplatz nicht. Ich möchte doch einfach nur ein dedupliziertes, verschlüsseltes und inkrementelles Backup auf einem Backup-Server erstellen 😇. Auf diesem läuft Minio und soll als Ziel dienen. Wenn ich nun hier richtig lese, dann ist es möglich, das Borg-binäry direkt unter unraid laufen zu lassen. Da es wohl auch möglich ist, einen Minio-basket als Ziel einzurichten, wären meine 'Ansprüche' erfüllt. Falls mir jemand dieses bestätigen könnte oder sogar eine Quelle für ein howto hat, wäre ich ein dankbarer Abnehmer. Viele Grüße
May 2, 20251 yr Aktuell habe ich Borg in einem Docker-Container laufen, was das Wiederherstellen von Backups etwas umständlicher macht. Ein Hauptproblem ist, dass man bei Borg kein Zielverzeichnis für die Wiederherstellung angeben kann – die Daten werden immer in das Verzeichnis zurückgeschrieben, in dem man sich gerade befindet. Das erfordert zusätzliche Vorsicht und manuelle Schritte. Die Sicherung selbst erfolgt über ein UserScript direkt in Unraid. Dabei wird per SSH auf eine Hetzner Storage Box zugegriffen. Ich nutze zwei dieser Boxen: Eine befindet sich auf einem Server in Deutschland, die andere auf einem Server in Finnland. So habe ich eine gute geografische Redundanz für meine Backups. Borg direkt unter Unraid wäre schon sehr schön.
May 3, 20251 yr Hallo @mikiunraid, ja, eine gute variable(!) Backupmöglichkeit direkt unter unraid wäre schon schön... Wäre doch was für V7.2😅... Ich muss mal schauen wie ich hier jetzt weiter vorgehe. Aber allein die Einrichtung dauert schon viel zu lang und ich habe Zweifel, dass ich - im Fall der Fälle - dann schnell wieder auf ein funktionierendes System zugreifen kann. Da hat unraid einen wunden Punkt - m. E. So gern ich unraid auch nutze - unabhängig davon, dass meine Kenntnisse nicht ausreichen, um unraid für die Nutzung einer guten Backuplösung entsprechend hinzubiegen - verliere ich die Geduld. Einfach aufzusetzende Lösung - gibt es nicht. Anleitungen, wie man es dann vielleicht doch umsetzen kann - gibt es nicht. Da es sich um ein Backup handelt, möchte ich eigentlich nicht etwas hinwurschteln, was dann nur oberflächlich funktioniert. Unraid ist halt ein 'Nischenprodukt' und wird von urbackup, restic, borg etc. nicht (direkt) unterstützt... Habe unraid gerade erst in ein Mini-PC-System verfrachtet, so dass ich auf das booten des Systems per USB-Stick angewiesen bin... Eine Lösung muss somit her... Lösche jetzt zuerst mal alle Docker-Container und Dateien etc., die ich bisher unter unraid und auf dem Backupserver erstellt habe. Zurück auf 'Start'... In jedem Fall wünsche ich ein schönes WE!
May 3, 20251 yr Ist halt die Frage was für ein Backup man so will. (Files vs. Image) Unterm Strich stehen doch alle Möglichkeiten offen. Und wenn du die Windoof VM startest, die Zugriff zu allen Storages hat. Dann hast die freie Wahl an Backup-Software. Nach dem erfolgreichen Backup, lässt das Ding einfach wieder abschalten.
May 3, 20251 yr Bei Unraid gibt es doch die Möglichkeit den gesamten USB Stick zu sichern. Sollte der USB Stick mal explodieren kannst du einen neuen ganz schnell wiederherstellen. Auch alle User Scripte inkl. der Docker Container kann man sichern. Das mit Borg Backup erfordert etwas Kenntnis in Docker die ich ebenfalls nicht hatte und es läuft. Wichtig ist das du bei Borg den folgenden Parameter mitgibst. --files-cache=mtime,size da sonst auch Dateien noch einmal gesichert werden die eigentlich nicht gesichert werde müssten. Das liegt an meiner Recherche daran das Unraid irgendwie die inode der Dateien ständig anfasst und Borg dann meint es hätte sich was geändert. Dazu musst du mal GOOGLE nutzen oder ChatGP Ich habe mir noch Scripte geschrieben damit ich den Status stehe und das ich sehe was gesichert wurde usw. Jetzt läuft Borg im Hintergrund und macht seine Arbeit. Edited May 3, 20251 yr by mikiunraid
May 3, 20251 yr 46 minutes ago, Sacred said: Ist halt die Frage was für ein Backup man so will. (Files vs. Image) Unterm Strich stehen doch alle Möglichkeiten offen. Und wenn du die Windoof VM startest, die Zugriff zu allen Storages hat. Dann hast die freie Wahl an Backup-Software. Nach dem erfolgreichen Backup, lässt das Ding einfach wieder abschalten. Hallo @Sacred Wenn ich die Backuplösung in eine VM auslagere - mal abgesehen davon, dass ich von M$ komplett weg will und auch meine PCs und Notebooks auf Linux umstelle - dann stelle ich das Backup wie wieder her, wenn gerade der zfs-pool mit den VMs wiederhergestellt werden muss? Die Daten liegen verschlüsselt auf dem Backup-Server - ein einfaches kopieren auf den neu erstellen zfs-pool für die VMs wird da doch nicht funktionieren!? Bitte nicht falsch verstehen, ich versuche nur die Lösung für mich nachzuvollziehen. In meinen Augen muss das Backup auf dem unraid-Stick liegen und von dort aufrufbar sein. Diesen USB-Stick kann ich regelmäßig - ohne großen Aufwand - wieder herstellen und dann damit auch das Backup-Tool (inkl. Konfiguration, Passwörter etc.) wieder aufrufen. Alles, was Teil des 'eigentlichen' Backups ist, kann nicht Bestandteil des Backup-Tools sein. Liege ich hier falsch?
May 3, 20251 yr 42 minutes ago, mikiunraid said: Bei Unraid gibt es doch die Möglichkeit den gesamten USB Stick zu sichern. Sollte der USB Stick mal explodieren kannst du einen neuen ganz schnell wiederherstellen. Auch alle User Scripte inkl. der Docker Container kann man sichern. Das mit Borg Backup erfordert etwas Kenntnis in Docker die ich ebenfalls nicht hatte und es läuft. Wichtig ist das du bei Borg den folgenden Parameter mitgibst. --files-cache=mtime,size da sonst auch Dateien noch einmal gesichert werden die eigentlich nicht gesichert werde müssten. Das liegt an meiner Recherche daran das Unraid irgendwie die inode der Dateien ständig anfasst und Borg dann meint es hätte sich was geändert. Dazu musst du mal GOOGLE nutzen oder ChatGP Ich habe mir noch Scripte geschrieben damit ich den Status stehe und das ich sehe was gesichert wurde usw. Jetzt läuft Borg im Hintergrund und macht seine Arbeit. Danke für die Info. Sind Deine Scripte öffentlich verfübar, dass ich da mal einen Blick drauf werfen kann? Welchen Container nutzt Du? Borgmatic?
May 3, 20251 yr Habe mir mal die für slackware auf SlackBuilds.org verfübaren Pakete angesehen... Sind leider nicht auf dem aktuellen/letzten Stand (borg oder restic) oder nicht verfügbar (urbackup). Hat jemand schon mal versucht auf unraid ein Paket aus den Quellen zu erstellen? Einfach oder eher große Gefahr sich das System zu zerschießen?
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.