5 min read

TrueNAS Pools mit Backblaze B2 Bucket synchronisieren

Nachdem ich das Video von LTT gesehen habe, indem es um einen erneuten Datenausfall in der Firma geht, entschloss ich mich nun auch auf Backblaze B2 für wichtige Daten zu setzen. Unter wichtige Daten zählt hier auch meinen photo Pool, in dem ich Familienbilder, die bis ins Jahr 2000 zurückreichen und der eine ungefähre Größe von ~400 GB hat. Dazu kommen noch weitere Pools, wie z.B. für Dokumente etc. In diesem Artikel beschreibe ich also, wie ich das ganze eingerichtet habe.

Meine Entscheidung fiel hier für auf den Anbieter Backblaze, einerseits wegen des skalierenden Preis (0,005 €/GB und 0,01 €/GB im Download) aber ebenso dem professionellen Ruf des Anbieters. Zunächst habe ich einen Account bei Backblaze angelegt und die 2 Faktor Authentifizierung aktiviert.

Credential anlegen

Zuerst muss ein Credential des Cloud-Providers hinterlegt werden. Dies erfolgt unter Credentials > Backup Credentials > Cloud Credentials.

Ihr vergebt einen Namen, und wählt euren Provider aus.

Um den Application Key zu erhalten, erstellt ihr nun einen neuen Master Application Key in Backblaze unter dem Punkt My Account > Account > App Keys und kopiert ihn in das Cloud Credential:

Achtung: Nur jetzt könnt ihr den Key ansehen! Später ist dies nicht erneut möglich! Legt ihn daher an einem sicheren Ort ab! Was aber möglich ist, ist jederzeit einen neuen Key für alle oder einzelne Buckets zu erstellen. Es ist also nicht ultra dramatisch, wenn der Key wegkommen sollte.

Die Key ID des Master Keys findet ihr ebenfalls dort. Mit einem Klick auf Verify Credential wird das angelegte Credential überprüft und ihr erhaltet im besten Fall diese Meldung:

Bucket erstellen

Als nächstes erstellt ihr auf Backblaze einen Bucket, indem ihr die Dateien ablegt. Dies macht ihr unter My Account > B2 Cloud Storage > Buckets mit einem Klick auf Create a Bucket. Den Bucket erstelle ich mit den folgenden Optionen:

Create a Bucket

Die Default Encryption lasse ich bewusst ausgeschaltet, da wir dafür gleich die in TrueNAS eingebaute Encryption nutzen werden.

Bucket Lifecycle Rules

Für meine Buckets habe ich dann noch unter B2 Cloud Storage > Buckets > Lifecycle Settings die folgende Regel angelegt:

   {
       "daysFromHidingToDeleting": 30,
       "daysFromUploadingToHiding": null,
       "fileNamePrefix": "backup/"
   }

daysFromHidingToDeleting bewirkt, dass beim Löschen der Dateien und anschließendem Sync das Gegenstück der gelöschten Datei nach 30 Tage auch aus der Cloud entfernt wird, wenn der Transfer Mode des Cloud Sync Task in TrueNAS auf SYNC steht:

Cloud Sync Task

Im Anschluss erstellt ihr unter Data Protection > Cloud Sync Task einen neuen Task. Hier wählt man das bereits erstellte Credential, den Bucket, sowie Quell - und Zielverzeichnisse aus.

In den Advanced Options könnt ihr nun ein Encryption Password festlegen. Ich habe die Encryption bei den Filenamen absichtlich ausgeschaltet, da ich es so nicht hinbekommen habe von einem anderen Rechner aus darauf zuzugreifen.

Zugriff auf die Dateien vom Desktop

Nun gehe ich noch darauf ein, wie man auf die Daten von einem anderen Gerät aus zugreift. Man erstellt 2 Rclone Configs, einmal normal zum Bucket bei Backblaze und dann ein neues Ziel welches die bereits vorhandene Config ver - und entschlüsselt. Meine rclone.config:

[b2-photo]
type = b2
account = ###
key = ###

[photo-crypt]
type = crypt
filename_encryption = off
password = ###
remote = b2-photo:/

So funktioniert dann das Anzeigen der Dateien mit rclone ls photo-crypt: -vv. Achtet darauf, ob die Dateien mit der Endung .bin angezeigt werden. Sollte dies der Fall sein, hat die Entschlüsselung nicht funktioniert.

Auch mit rclone rcd --rc-web-gui (Webgui für rclone) ist es mir dann gelungen mit dem Explorer auch auf verschlüsselte Dateien zuzugreifen.

Komischerweise ging der Zugriff nicht mit eingeschalteter Filename Encryption, da erhielt ich immer einen solchen Fehler:

2022/01/31 20:25:02 DEBUG : truenas-gerhards-local-photo/3c3m9pf84j75r97bhmd1hc6cq8: Skipping undecryptable file name: illegal base32 data at input byte 7

Ich kann daher nicht sagen, ob es mit Filename Encryption genau so funktioniert.

Duplicate Detection mit Czawka

Das Programm mit dem polnischen Namen Czawka ist in der Lage, durch das Vergleichen von Hashwerten aller Dateien Duplikate zu finden. Dies ist hier ziemlich sinnvoll, da man so seinen in der Cloud benutzten Speicher verringern kann. Zudem ist das in Rust geschriebene Programm beim Finden der Duplikate ziemlich schnell.

Kleiner Tipp: Führt die Initiale Sicherung VOR! dem Löschen der Duplikate vollständig durch. Sollte euch ein Fehler in der Konfiguration beim Löschen passieren, könnt ihr die Dateien einfach aus dem Bucket synchronisieren. Ich habe dies zum Glück in dieser Reihenfolge erfahren dürfen :)

Fazit

An dieser Stelle möchte ich noch eine Art Fazit zu dem Prozess geben. Es wird an vielen Stellen dazu geraten, unter keinen Umständen unverschlüsselte Daten in irgendeiner Cloud abzulegen. Dies ist mit rclone einfach realisierbar. Da TrueNAS ebenfalls rclone für den Prozess des Cloud-Backups verwendet, lohnt es sich, dies genauer anzuschauen.
Ich habe mich entschieden, das Cloud Backup nur unter Verwendung der Remote Encryption zu tun. Leider musste ich auf die Filename Encryption verzichten, aber der mögliche Angriffsvektor ist hierbei mit ein paar Daten, Namen und Orten in den Dateinamen nicht so groß.

Auch zu empfehlen ist es, zu testen, ob die Wiederherstellung der Daten im Notfall funktionieren würde. Hierzu kann man einfach eine neue Datei erstellen, die Cloud Sicherung durchführen und dann die Datei lokal entfernen und den Task von Direction: Push auf Direction: Pull umstellen, bevor man die Lifecycle Rule aktiviert. Wenn nun die entfernte, lokale Datei wieder auftaucht, nachdem man einmal den Task ausgeführt hat, ist dies erfolgreich verlaufen. Noch ein Hinweis: ein Reverse Task lässt sich auch einfach mit diesem Button erstellen:

Cloud Sync Restore

Insgesamt aber lässt sich ein ungemein positives Fazit ziehen, die Cloud Sync Task mittels rclone überzeugen im kompletten. Auch die Preise halten sich im Rahmen, ich zahle ca. 1,83 € also 2,10 $ monatlich für ca. 420 GB.

Zum Schluss weise ich nochmal auf die 3-2-1 Strategie hin, 3 Kopien eurer Daten auf 2 verschiedenen Medien wovon sich eine Offsite befindet. Ich erfülle diese Methode tadellos, bei mir ist es eine 4-2-1 Strategie für kritische Daten.

So, damit ist dieses ziemlich komplexe Thema nun endlich beschrieben. Damit ist das auch der mit Abstand längste Artikel, den ich bisher geschrieben habe. Stay Tuned: Ich habe schon lange ein komplexeres Thema im Ärmel. Nur geschrieben habe ich dazu noch nichts :)

Quellen

TrueNAS - How to Back Up with Cloud Sync
TrueNAS Backup To BackBlaze
Beide Videos erklären ziemlich gut, wie die Einrichtung funktioniert. Jedoch wird nur im zweiten auf die Encryption eingegangen.

Außerdem bietet TrueNAS hierfür eine Dokumentationsseite, auf der es um dieses Thema geht.

Author: peterge