Migration auf Cloud Services

Die Backups müssen umziehen, da ich meinen dedicated Server gekündigt habe. 10 Jahre alte RAID1-Platten, nein danke. Da kann ich auch 10€ an einen Service wie Dropbox zahlen, wie das normale Endanwender auch tun und habe weniger Aufwand.

Bisher habe ich Borg Backup verwendet, was sich bereits bewährt hat: Zweigleisige Backupstrategie: Borg & dd

Leider braucht es als Backend Borg sowie ssh Zugriff. Zeit für ein neues Tool also.

Für Cloud Services gibt es auf der Kommandozeile rclone und restic. Wer GUI braucht, nimmt Cyberduck, auch für MacOS verfügbar. Rclone ist praktisch rsync für Clouddienste, um einfach eine Kopie der Daten zu machen. Wichtig ist da, sich die aktuelle Version zu ziehen, da sonst u.U. alte APIs, die es nicht mehr gibt, verwendet werden. Optional kann rclone sogar jede Datei auf Dateiebene verschlüsseln.

Restic ist wie borg, dedupliziert in chunks, Historie mit Versionsständen und immer verschlüsselt. Der entscheidende Unterschied: Restic unterstützt selbst einige Cloud-Services wie z.B. Google Drive sowie ein SFTP Backend - Man muss Restic also nicht auf Serverseite installieren oder SSH Zugriff haben. Weiterhin ist die Konfiguration einfacher, Keys und Config werden im Repo im Backend selbst verschlüsselt abgelegt, einzig das Passwort muss man irgendwo speichern. Es läuft auch schneller durch als Borg, was wohl an der vollständigen Implementierung in GO sowie Multithreading liegen mag. Da es recht neu ist, sollte man auch hier darauf achten, eine aktuelle Version zu benutzen (nicht Debian Stable).

Als erster Test Stand an, ein paar Dateien in die Cloud mit rclone zu kopieren. Dropbox v2 api error too_many_write_operations

Nach ca. 10.000 Dateien wird man von Dropbox für 5 Minuten gesperrt. Google Drive ist noch schlimmer, die erlauben nur 2 Dateien pro Sekunde. Das kann es doch echt nicht sein, da zahlt man an einen Service für Endanwender und dann gehen nicht mal die einfachsten Dinge. Wie machen denn DAUs Backup? Richtig, gar nicht. 😂

Installation auf MacOS

david@macbook ~ % port installed | egrep 'rclone|restic'
  rclone @1.45_0 (active)
  restic @0.9.4_0 (active)

Bei Macports gibts die neusten Versionen.

Prinzipiell gibt es zwei Anwendungszenarien:

  • Online Festplatte, wo die Daten nicht lokal gespeichert sind
  • Cloud Sync mit dem Desktop Client, wo die Daten lokal gespeichert sind.

Backups sollen natürlich nicht noch zusätzlich lokal rumliegen und Platz verbrauchen.

Restic erzeugt weniger Dateien, da diese in 4 MB? Chunks zusammengefasst werden. Leider gibt es dort keinen eingebauten Dropbox Support. Mit dem rclone Backend ist aber auch das kein Problem:

restic --repo rclone:dropbox:my_backup backup $HOME

Hier Backup von $HOME.

restic --repo rclone:dropbox:my_backup snapshots

So werden alle Snapshots/Versionsstände/Backups aufgelistet.

Cloudverschlüsselung

Das von Heise propagierte Cryptomator habe ich mir auch angeschaut, endlich mal ein OpenSource Programm mit einer hübschen Java-GUI. “Vaults” werden als Netzlaufwerke gemounted, die Android App hat nur 5k Downloads, ich traue dem Teil kein Stück.

Hier aus Karlsruhe vom KIT hätten wir noch CryFS, sieht vom Konzept und Bedienung sehr ansprechend aus, leider (noch) nicht cross-plattform. Es hat auch explizit eine Dropbox Anleitung. So könnte man direkt den ganzen $HOME als verschlüsseltes Overlay in den lokalen Dropbox Ordner (Client) rein mounten, der ja ohne API Limits läuft, um Versionierung kümmert sich Dropbox ja schon. Da es auch “Chunks” erstellt und nicht jede Datei einzeln verschlüsselt, leakt es damit auch keine Metainformationen wie Dateigröße / Ordnerstruktur.

Cloud Alternative

Alternativen sind IAAS Angebote, wie z.B. die Hetzner “Storage Box”, wo man einfach wie bei z.B. Webhosting SFTP Zugang zum Onlinespeicher bekommt. Die Daten liegen dort auf einem ZFS RAID, damit wird sogar Bit Rot ausgeschlossen.