Cloud-Backup für Windows und Linux

Zuhause bin ich auch für das Backup der Windowsrechner zuständig. Nun habe ich ein Backup-Programm gefunden, das mich für Windows überzeugt: Kopia.

Es gibt eine handvoll Funktionen, die moderne Backup-Software mitbringen sollte:

  • Verschlüsselung direkt auf dem Endgerät. So kann man die Daten beruhigt in einer fremden Cloud lassen.
  • Inkrementelle Backups erlauben, dass man nicht immer wieder alles hochladen muss. Gerade mit langsamen DSL-Verbindungen ein Muss.
  • Snapshots erlauben es effizient viele Zeitpunkte zu speichern ohne deutlich mehr Speicherplatz zu benötigen.
  • Der Repository-Ansatz ermöglicht es die Snapshots später auszudünnen.
  • Kompression der Daten reduziert die Übertragungsmenge sowie den benötigten Speicherplatz.
  • Nutzbar auf mehreren Plattformen. Ich kann Backups unter Windows erstellen und sie über einen Linux-Rechner wiederherstellen.
  • Als Speicherort kann man einen SFTP- oder S3- Onlinespeicher nutzen.
  • Dateien werden über ihren Inhalt identifiziert. Verschiebt man eine Datei, so wird sie nicht erneut kopiert.
  • Dateien werden in Blöcken gespeichert. Verändert sich ein Teil einer Datei, dann werden nur die veränderten Blöcke hochgeladen.

Nun gibt es einige Kandidaten. Ich gehe die einmal in der Reihenfolge durch, wie ich sie kennengelernt habe. Dann ist auch immer klar, warum ich noch weiter gesucht habe.

Back in Time

Mit Back in Time kann man Snapshots auf externe Festplatten erstellen. Dabei werden gleiche Dateien mit Hardlinks verknüpft. Somit werden diese Daten nicht doppelt kopiert.

Der Vorteil dieser Lösung ist, dass die Snapshots einfach nur Order mit Dateien sind. Die kann man einfach wiederherstellen ohne zusätzliche Werkzeuge.

Die Nachteile sind aber recht vielfältig. So geht das nur sinnvoll auf externen Festplatten mit EXT oder BTRFS Dateisystem. Außerdem werden verschobene Dateien erneut kopiert. Werden nur Teile einer Datei verändert, wird die ganze Datei kopiert. Unter Windows geht das gar nicht.

Duplicity

Ich hatte im Mai 2020 über Duplicity geschrieben. Duplicity kann inkrementell und verschlüsselt. Allerdings hat es keine Repository-Ansatz und baut immer weiter Differenzen zum bisherigen Backup auf. Das ist für das Backup ganz nett. Für das Restore ist es allerdings die Hölle, weil dann diese ganzen Differenzen ab dem letzten kompletten Backup aufgelöst werden müssen. Ein Ausdünnen der Backups ist auch nicht vorgesehen. Somit fällt das ganze System irgendwann in sich zusammen.

Borg

Über die Arbeit habe ich Borg Backup kennen und schätzen gelernt. Es ist mein erstes richtig modernes Backup-Programm.

Es hat einen Repository-Ansatz der es ermöglicht die Snapshots beliebig auszudünnen. Es hat blockweise Hashes der Daten und kann somit auch nur zum Teil veränderte Daten effizient sichern. Es ist verschlüsselt und komprimiert.

Ein Nachteil ist, dass es nur unter Linux läuft. Außerdem braucht es einen Gegenpart auf dem Server, einfach nur SFTP oder S3 reicht nicht aus. Glücklicherweise gibt es bei Hetzner Storage Box oder Borgbase auch den Borg Server im Angebot, das ist also kein großes Problem.

Mit Vorta gibt es noch eine schicke GUI, allerdings auch wieder nur für Linux.

Unter Linux ist Borg mein absoluter Favorit.

Restic

Dann gibt es noch Restic, das sich nicht viel nimmt mit Borg. Es läuft allerdings unter Windows und ist mit einem reinen SFTP-Server zufrieden. Das macht es deutlich breiter einsetzbar.

Ich hatte im Juni 2022 über Restic unter Windows geschrieben. Da hatte ich das mit ein paar Power Shell Skripten zurechtgefrickelt. Das Problem ist allerdings, dass das am Ende nicht zuverlässig lief. Restic hat ständig ein Repository Lock angelegt und konnte dann keine Backups mehr machen. Es ist für ein Laptop, das immer wieder zugeklappt wird, nicht zu empfehlen. Außerdem gibt es keine grafische Oberfläche.

Kopia

Mein Favorit für Windows ist Kopia. Das erfüllt alle Kriterien und hat eine grafische Oberfläche für Windows. Damit habe ich das Windows-Laptop jetzt eingerichtet und es macht brav die Backups.

Unter Linux kann ich mich dann mit dem Repository verbinden:

❯ go/bin/kopia repository connect sftp --host=….your-storagebox.de --username=… --path=kopia --sftp-password=… --known-hosts=$HOME/.ssh/known_hosts
Enter password to open repository: 

Connected to repository.

Und mir dann anzeigen lassen, ob die Backups auch brav gemacht worden sind:

❯ go/bin/kopia snapshot list --all
…@laptop-…:C:\Users\…
  2023-12-29 15:26:27 CET k7c3c2b7cdd8c7763b54cb6c46e112541 133.9 GB drwxrwxrwx files:101921 dirs:9395 (latest-4,hourly-3,daily-2)
  2023-12-30 12:46:27 CET k3875e39cddc9bf126e4646e90d5e1dde 135.3 GB drwxrwxrwx files:101064 dirs:9388 (latest-3)
  2023-12-30 12:48:37 CET kf191499679266c8deb1d1b1f95fc29e8 135.3 GB drwxrwxrwx files:101064 dirs:9388 (latest-2,hourly-2)
  2023-12-30 13:00:00 CET ka5f4fd0ddc96b24a8656b6a477881816 135.3 GB drwxrwxrwx files:101067 dirs:9388 (latest-1,hourly-1,daily-1,weekly-1,monthly-1,annual-1)

Das ist sehr praktisch, so kann ich von meinem Linuxrechner aus kontrollieren, ob die Backups kommen.

Duplicati

Ich hatte auch noch Duplicati evaluiert. Das ist älter als Kopia und letztlich das gleiche. Allerdings wirkt es auf mich ziemlich unausgereift und fragil. Das Datenformat ist zwar auch ein Repository-Ansatz, aber in ZIP-Dateien. Und somit wird das Ausdünnen der Snapshots schon schwerer.

Um sicherzugehen, dass es läuft, habe ich versucht ein paar Daten wiederherzustellen. Das hat auch geklappt, es war allerdings extrem langsam. Das hat keinen Spaß gemacht und auch nicht sonderlich viel Vertrauen geschürt.