Neues von der Backup-Front: restic

Nach dem Umstieg von rdiff-backup sichere ich die Daten auf meinem Rechner nun schon seit 10 Jahren mit Back in Time. Das hatte sich auch ganz gut bewährt, nun habe ich aber letztes Jahr restic entdeckt über die Präsentation beim Open Chaos Köln von 2016. Schon die Kurzbeschreibung machte mich neugierig:

Die Designziele orientieren sich dabei an praktischen Gegebenheiten und sollen Backups für Benutzer komfortabel machen. Dies schließt ein, dass Backups einfach, schnell und effizient erstellt werden können, und der Wiederherstellungsprozess unkompliziert und schnell geht. Weiterhin soll es möglich sein, regelmäßig mit wenig Benutzerinteraktion zu überprüfen, ob die gespeicherten Daten vollständig und fehlerfrei abgerufen werden können.

Es kann auch sein, dass meine erste Begegnung mit restic ein Artikel im Blog von Detlef Stern war. Nein, kann natürlich nicht sein, der Artikel ist von Ende August. Ich habe ihn offenbar entdeckt, nachdem ich restic schon erfolgreich im Einsatz hatte.

Jedenfalls habe ich am 31. Juli 2019 angefangen, meine /home-Partition mit restic zu sichern; das restliche System backupe ich weiterhin mit Back in Time.

Warum diese Aufteilung? Das liegt daran, dass restic grundlegend anders arbeitet als Back in Time. Letzteres ist dateibasiert; sobald sich auch nur ein Bit in einer Datei ändert, legt Back in Time in der Sicherung eine komplette Kopie dieser Datei an und rotiert die vorherige Version per Hardlinks nach hinten durch. Das hatte ich im Artikel von 2009 schon beschrieben.

restic wiederum arbeitet mit Blöcken & kann dadurch Änderungen an kleinen Teilen einer Datei viel kompakter erfassen, indem es nur die geänderten Blöcke neu sichert.

Das führt dazu, dass die Sicherung wirklich wesentlich schneller vonstatten geht. Das war eines der zentralen Anliegen des Entwicklers: Das Backup soll so schnell gehen, dass man es mal eben zwischendurch machen kann. Außerdem spart es Speicherplatz auf dem Ziel.

Das Ganze geht komplett verschlüsselt vor sich, wobei der Entwickler einen schlauen Kniff angewendet hat: Die Dateinamen der gesicherten Blöcke entsprechen ihrem jeweiligen Hash-Wert. Das Stichwort dazu nennt sich Content-Addressed Storage.

Wiederherstellen kann man Dateien auf zweierlei Art, einmal direkt mit einem restic-Befehl (bisher gibt es keine GUI dafür) und zum anderen, indem man eine Sicherung per FUSE ins Dateisystem einbindet. Darin kann man sich dann wie im sonstigen Dateisystem bewegen und z.B. eine Datei mit ihrer letzten gesicherten Version vergleichen.

Das geht mit Back in Time direkter, was auch der Grund ist, warum ich mein System weiterhin damit sichere – falls das mal so geschrottet sein sollte, dass es nicht mehr hochfährt, will ich mich nicht auch noch mit restic-Befehlen oder FUSE mounts rumschlagen, sondern möglichst einfach Dateien kopieren. Dafür dauert die Sicherung ein Vielfaches der Zeit, die restic für das wesentlich umfangreichere home braucht.

Ein weiterer Pluspunkt für restic: Es ist in Go geschrieben. Dessen Hauptvorteil bringt wiederum Detlef Stern auf den Punkt:

Der Standard-Go-Übersetzer erstellt direkt ausführbare Programme, ohne weitere Abhängigkeiten und für andere Zielsysteme.

Diese Programme sind nicht von externer, dynamisch (nach)- geladener Software abhängig, sondern können durch ganz normales Kopieren einfachst installiert werden. Dies ist ein großer Unterschied zu den üblichen Sprachimplementierungen von Python, Java, JavaScript, Erlang & Co. Bei anderen Sprachen ist es häufig nicht möglich, ein unter Ubuntu erstelltes Programm unter Fedora auszuführen, obwohl beides Linux-Distributionen sind.

Anders ausgedrückt, bei Go-Programmen gibt es keine Dependency Hell. Sehr angenehm!

Bei meinen Recherchen zu diesem Beitrag fand ich einen iX-Artikel von November, Firmen-Backups mit dem Kommandozeilen-Tools restic. Auch im Business-Bereich scheint es sich also rumzusprechen.

Bei unserem kleinen Gemeinschafts-Business ist restic ebenfalls seit ein paar Monaten im Einsatz und sichert unsere wichtigsten Daten noch mal redundant zum lokalen Backup in die Cloud. Die Einrichtung auf unserem NAS war recht einfach.

Übrigens trinke ich meinen Kaffee seit ein paar Monaten bevorzugt aus dieser Tasse. ;-)

Nachtrag vom 03.02.: Gerade habe ich erfahren, dass das CERN seit nem knappen Jahr dabei ist, restic für ihre Backups zu evaluieren. Das ist so was wie der Ritterschlag für ein Backup-Tool. ;-)