Prof. Dr. Detlef Stern

Restic

Möchte man Daten, die durch ein IT-System verarbeitet werden, nicht aufgrund von Fehlern verlieren, müssen diese Daten geeignet gesichert werden. Man erhält so eine gewisse Sicherheit gegenüber Fehlbedienungen („Huch, da habe ich die Festplatte aus Versehen neu formatiert!“) oder bei Fehlern der Hardware. So sind bei mir vor kurzem mehrere Router und ein zentraler Server ausgefallen und mussten ersetzt werden.

Natürlich hat jeder ein anderes Sicherheitsbedürfnis. Während es für Unternehmen Mindeststandards gibt, schmerzt mancher Privatperson vielleicht nur der Verlust der digital gespeicherten Fotos. Es gibt Personen, die begreifen Datenverluste als Mechanismen, um endlich mal auszumisten. Studenten, die gerade ihre Seminar-, Semester- oder Abschlussarbeit abgeben wollen, sind dagegen über einen Datenverlust wenig erfreut.

Ich selbst versuche Datenverluste, so gut es geht, zu vermeiden, um geleistete Arbeit nicht aufwendig rekonstruieren zu müssen. Nicht nur in diesem Sinne sehe ich mich als WfM, als „Wirklich faulen Menschen“.

Anforderungen

Es gibt unterschiedliche Szenarien für eine Datensicherung:

  1. Man möchte Daten lange aufbewahren. Dies geht in Richtung Archivierung.
  2. Man möchte auf einen früheren (Arbeits-) Stand der Daten zugreifen. Dies wird häufig als Versionierung bezeichnet.
  3. Man möchte Daten wieder verfügbar machen. Dis ist die hier besprochene Datensicherung im engeren Sinne.

In der Praxis überschneiden sich die Szenarien.

Ich selbst betreibe eine Vielzahl von IT-Systemen unterschiedlichster Charakteristik. Als da sind: Smartphones, iPads, Laptops, Router, Server; Betriebssysteme sind Linux (diverse Distributionen: Fedora, Debian, Ubuntu, CentOS, Raspbian, OpenWrt, …), macOS, iOS, Windows; sowohl extern gehostet als auch bei mir lokal. Teilweise soll die Datensicherung automatisch und unbeaufsichtigt ablaufen, teilweise möchte ich diese selbst initiieren. Und als „Wirklich fauler Mensch“ möchte ich die unterschiedlichen System nur mit einer Software sichern, um mir die Administration zu vereinfachen.

Bei den heutigen Größen für Festplatten (inkl. SSDs) kommt es auch darauf an, wie lange eine Datensicherung dauert. Ich betreibe auf einigen IT-Systemen mehrere virtuelle Computer. Da kommen, besonders unter Windows, schnell 100 GiB zusammen, pro virtuellem Computer. Würden die Daten immer vollständig neu gesichert, würde die Datensicherung Stunden dauern.

Duplicity

Unter teilweiser Auslassung der Windows-Systeme (und iOS, aber das ist ein anderes Thema) verwendete ich bis vor einigen Jahren zur Datensicherung die Software Duplicity. Dort wird das Problem der Dauer einer Datensicherung angegangen, indem beim ersten Mal eine vollständige Sicherung angelegt wird und anschließend nur darauf aufbauende, inkrementelle Sicherungen.

Dies hilft zwar, die Dauer einer Datensicherung zu verringern, allerdings auf Kosten einer wesentlich aufwendigeren Wiederherstellung der Daten im Fall des Falles. Dazu muss zunächst die erste, vollständige Datensicherung (virtuell) wiederhergestellt werden, und dann jede darauf aufbauende, inkrementelle Datensicherung, bis zur gewünschten Version. Da auch eine Datensicherung selbst wieder durch Fehler unbrauchbar werden kann, ist es nicht ratsam, zu viele inkrementelle Datensicherungen zu haben. Allerdings sollte eine neue, vollständige Datensicherung die bisherigen Datensicherungen nicht überschreiben. Denn wenn während der Datensicherung ein Fehler passiert, … Ja, Datensicherung ist nicht trivial.

Medien zur Datensicherung

Traditionell wurden (und werden) Daten auf Magnetbänder gesichert. Diese besitzen eine gut definierbare Haltbarkeit, sind aber weniger im privaten Umfeld anzutreffen, da zu aufwendig und teuer. Als Alternativen kommen externe Festplatten in Betracht, im Notfall sicher auch der eine oder andere USB-Stick. Archivieren könnte man auf optische Medien, wie CD, DVD, BD, allerdings geht da auf Grund der relativ geringen Speicherkapazitäten nur manuell, kaum automatisiert.

Sofern die Datenanbindung gut genug ist, kommen Cloud-Dienste in Betracht. Dann ist allerdings Verschlüsselung der Daten durch die Sicherungssoftware Pflicht. Duplicity unterstützt das gut.

Der Feind des Guten

Das eine Problem von Duplicity, die ggf. lange, fehleranfällige Kette von inkrementellen Datensicherungen hatte ich schon erwähnt. Ein anderes Problem bekam ich zu spüren, als ich die recht großen Dateien meiner virtuellen Computer sichern wollte. Trotz inkrementeller Sicherung dauerte diese gerne 90 Minuten und mehr. Pro virtuellem Computer.

Der Grund liegt in der internen Arbeitsweise begründet, wie Duplicity Änderungen erkennt. Dabei wird jede Datei in eine Sequenz von Prüfsummen aufgeteilt, zum Sicherungspunkt gesendet und dort mit den dort berechneten Prüfsummen verglichen. Bei kleinen Dateien ist das unproblematisch, aber nicht mit den großen Dateien der virtuellen Computer. Ab 20 GiB brach auf meinen Systemen die Geschwindigkeit massiv ein. Der eigentliche Grund war die relativ langsame CPU des Sicherungsrechners, zu dem die Daten gesendet wurden. Das Berechnen der Prüfsumme verursachte eine erhebliche Last.

Mir wäre geholfen, würden alle Berechnungen nur auf dem lokalen System, dessen Daten sich sichern will, durchgeführt werden. Und zu diesem Zeitpunkt entdeckte ich Restic. Vereinfachend dargestellt berechnet auch Restic diese Prüfsummen, speichert diese aber zusätzlich in der Datensicherung. So braucht der eher langsame Rechner, der die Datensicherung aufnimmt, keine Prüfsummen zu berechnen.

Verbesserungen

Allein diese Änderung verringerte die Dauer der Datensicherung für die virtuellen Computer von 90 Minuten auf 5 - 20 Minuten, je nach Umfang der geänderten Daten.

Durch die Art der Prüfsummenbildung und -verwendung kann Restic einfach doppelte Daten erkennen und nur einmal speichern. Dies bedeutet auch eine Abkehr vom Prinzip der vollständigen und der inkrementellen Sicherung. Jede Datensicherung sichert (logisch) wirklich alle Daten, transportiert und speichert aber nur die geänderten Daten. Das hält die Dauer einer Datensicherung gering.

Damit sind Datensicherungen bei Restic so etwas wie Schnappschüsse des jeweiligen Standes. Restic kann beliebig viele dieser Schnappschüsse speichern (begrenzt durch den Speicherplatz), bietet aber auch Strategien an, wie die Schnappschüsse (logisch) entfernt werden können. Damit lassen sich die oben angesprochenen Szenarien gut umsetzen. Restic sichert die Daten in jeweils unabhängige Repositories. Ich nutze unterschiedliche Repositories für unterschiedliche Strategien.

Natürlich sichert Restic die Daten auch auf Cloud-Dienste und wie Duplicity verschlüsselt es die Daten vorher. Zusätzlich erlaubt Restic es gut, die gesicherten Daten zu prüfen. Im Vergleich zu Duplicity läuft diese Prüfung wesentlich kürzer ab. Auch dies ist eine Folge der anderen Prüfsummenbildung.

Darüber hinaus ist es mit Restic einfach, die in Repositories organisierten Datensicherungen selbst wieder zu sichern. Es reicht völlig, wenn man ein Restic-Repository z.B. per rsync auf weitere Sicherungssysteme zu kopieren. Dabei werden dank rsync nur Änderungen kopiert. Der zu Beginn angesprochene ausgefallene Server war tatsächlich mein Hauptsicherungssystem. Ich konnte die relevanten Daten aber schnell aus einer Kopie des Restic-Repositories rekonstruieren.

Der Ablauf des Wiederherstellens von Daten ist mit Restic etwas einfacher als mit Duplicity, besonders unter Linux und macOS. Man kann ein Repository in den Verzeichnisbaum einbinden und Daten via normalen Dateioperationen wiederherstellen.

Fazit

Restic ist für meine Bedürfnisse eine ziemlich gute Wahl zur Datensicherung. Am Ende eines Arbeitstages kann ich schnell eine Datensicherung anstoßen, die auch zügig abläuft. Dank der Schnappschüsse kann ich auch mal schnell, „sicherheitshalber“ den aktuellen Stand der Daten sichern, ohne dass ich zu sehr auf verfügbaren Speicherplatz oder andere Probleme achten muss.

Die Handhabung von Restic ist einfach, es ist einfach zu installieren und zu aktualisieren. Bisher hatte ich keine Datenverluste im engeren Sinne zu beklagen. Allerdings musste ich ein Repository löschen, da Restic zum Verkleinern des Repositories selbst wieder Speicherplatz benötigt, der durch das große Repository nicht mehr zur Verfügung stand. Catch-22. Dieses Problem steht nun auf der Liste der Restic-Entwickler.

Für Mausschupser, Trackpad- oder Bildschirmwischer gibt es einen Wermutstropfen: eine graphische Oberfläche ist erst in der Entwicklung. Restic ist über die Kommandozeile / Eingabeaufforderung zu bedienen. Dadurch kann es auch unbeaufsichtigt ablaufen.

Dafür ist Restic auf fast allen (meinen) Systemen verfügbar. Selbst auf meinem Android-Smartphone. Dazu ein andern Mal mehr.