Syncthing – Backup das einfach passiert

2016-04-24_syncting_intro

Backup ist nichts für mich, wenn ich selbst dran denken muss es zu starten. Darüber schrieb ich schon einmal in meinem Blog über QNAP und Rsync. Auch die dort erklärte Rsync-Methode verlangt noch, dass mein Rechner zur richtigen Zeit eingeschaltet ist und nicht zu schnell wieder ausgeschaltet wird. Außerdem habe ich nur über die Shell Kontrolle darüber. Das muss einfacher gehen, eben einfach so passieren, ohne das ich irgendwas machen muss. So wie bei Syncthing. Darüber las ich durch Zufall in einem Tweet und habe es gleich mal probiert.

Syncthing ist Open Source, plattformübergreifend, dezentral und einfach. Ich wurde über einen Tweet darauf aufmerksam und habe es gleich mal ausprobiert.

Meine Systemumgebung

Zu sichern ist mein Notebook, dass eigentlich immer dort ist wo ich bin. Dazu kommt noch mein Smartphone und vielleicht die Rechner der einzelnen Familienmitglieder. Bei mir zu Hause laufen ein kleiner Banana Pi und ein QNAP-NAS. Der Banana Pi hat nur eine Festplatte angebunden und eignet sich somit nur zur Synchronisation. Das QNAP-NAS wiederum hat- wie in meinem diesbezüglichen Blog geschrieben – nicht so die komfortablen Funktionen für alle Plattformen. Es macht aber tolle Backups von meinem Banana Pi ;-).

Mein erklärtes Ziel ist es nun, meine/unsere Daten – auf welchem Wege auch immer – mit einer Änderungshistorie auf das NAS zu bekommen, ohne an ein Backup denken zu müssen. Der von mir auserkorene Weg ist die ständige Synchronisation per Syncthing auf den Banana Pi. Dieser wird dann regelmäßig per RSync auf mein NAS gesichert, welches wiederum die Änderungshistorie anlegt.

Installation von Syncthing

Von Syncthing gibt es fertige Debian/Ubuntu-Pakete. Die Installation von dort aus ist überaus einfach ;-). Syncthing geht allerdings in seinen Dokumentationen davon aus, dass der geneigte Anwender modern genug ist, überall ein systemd einzusetzen. Mein Banana Pi setzt allerdings noch auf die altbewährten Methoden der init.d-Skripte. Unter [1] fand ich dazu passende Vorlagen, die ich mit meinem Gesammelten Wissen noch verfeinert habe.

Standardmäßig lauscht Syncthing nur auf dem localhost, um sich per Web-Interface bedienen zu lassen. Zumindest für den Banana Pi muss hier noch kurz Hand angelegt werden. Dazu öffnet man die Konfigurationsdatei /etc/syncthing/config.xml, sucht den folgenden Bereich und ändert den Eintrag bei address entsprechend ab:

<gui enabled=“true“ tls=“true“ debugging=“false“>
<address>0.0.0.0:8384</address>
[…]
</gui>

Damit ist es auch vorbei mit dem Kommandozeilen-Voodoo und beide Geräte lassen sich im Browser unter http://<Server>:8384 erreichen.

Syncthing einrichten

Syncthing Web-Interface

Ich finde, dass das Syncthing Web-Interface sehr aufgeräumt daher kommt. Auf der linken Seite sieht man alle auf diesem Gerät zur Synchronisation eingerichteten Ordner. Rechts stehen unter ein paar Statusinformationen die Geräte, mit denen ein Abgleich vorgenommen werden kann. Oben rechts gibt es den Button „Aktionen“, über den diverse Einstellungen möglich sind.

Wichtig: Da ich das Syncthing Web-Interface auf meinem Banana Pi auf allen Netzwerkinterfaces, also nicht nur auf localhost, anbiete, habe ich unter Aktionen -> Einstellungen einen Nutzernamen und ein Passwort für den Zugang zur Benutzeroberfläche vergeben.

Um die verschiedenen Geräte miteinander bekannt zu machen, wählt man auf dem Web-Interface des einen Gerätes Aktionen -> ID anzeigen. Dort findet sich eine microsoft-lizenzcode-artige Zahlenkette aus 8 mal 7 alphanumerischen Zeichen. Diese ist zu kopieren und im Web-Interface des anderen Gerätes unter Remote-Gerät hinzufügen (rechts unten) -> Geräte ID einzutragen.  Alternativ kann hierzu auch ein Barcode gescannt werden. Ein Klick auf Speichern startet den Pairing-Prozess. Auf dem ersten Gerät wird nun gefragt, ob man denn wirklich so will. Sagt man hier ‚Ja‘, so werden die Metadaten beider Systeme abgeglichen.

Ordner synchronisieren

Der Button „Verzeichnis hinzufügen“ in der linken Hälfte der Benutzeroberfläche macht genau das, was er auch verspricht. Auf meinem Notebook habe ich hier den Verzeichnispfad zu meinen Bildern eingetragen. Auch wenn dieser Eintrag in einem normalen Textfeld erfolgt, so wird dieses doch mit den tatsächlich vorhandenen Verzeichnissen vervollständigt. Als Verzeichnisbezeichnung ist ein nachvollziehbarer Name einzutragen. Hier ist „Android (Andreas): Pictures“ später leichter zuzuordnen als „Bilder“ – aber man lernt ja immer was dazu ;-).

Direkt in diesem Dialog lässt sich das Synchronisationsziel unter der Überschrift „Teilen mit diesen Geräten“ auswählen. Ein Klick auf Speichern fragt auf dem Zielgerät wieder einmal nach und beginnt dann sofort mit dem Abgleich.

Je nach Gusto lassen sich weitere Einstellungen unter den „Erweiterten Einstellungen“ tätigen. Hier empfiehlt es sich in jedem Fall, das Scanintervall anzupassen. Im Standard steht dieser Wert auf 60 Sekunden, was im Falle eines 180GB-großen Bilderordners zumindest anstrengend werden kann.

Ich habe auch einmal mit dem Verzeichnistyp experimentiert und diesen auf „Master“ gesetzt. Das soll verhindern, dass auf meinem Notebook Daten überschrieben werden. Irgendwie ändern sich aber dennoch ständig Metadaten, so dass ich immer wieder Ausnahmen bestätigen musste. Letztendlich habe ich alle Ordner wieder auf „Normal“ gestellt.

Finetuning fürs Ubuntu-Notebook

Der microsoft-lizenzcode-artige Schlüssel wird scheinbar auf einem globalen Server hinterlegt. Unter Aktionen -> Einstellungen habe ich Haken bei „NAT-Durchdringung“ und „Globale Gerätesuche“ gesetzt und somit dafür gesorgt, dass sich mein Notebook (bei entsprechend toleranter Firewall) auch aus Hotelzimmern heraus auf meinen Heimserver sichert.

Syncthing Ubuntu Extension

Da ich mit der Gnome Shell arbeite, habe ich gleich noch ein weiteres Gimmicks entdeckt: Es finden sich gleich zwei Extensions für Syncthing und zumindest die Eine hat sich für mich als sehr sinnvoll herausgestellt. Wenn das Netzwerk einmal zu lahm ist, kann ich nun ganz einfach den Dienst abschalten.

[1] https://forum.syncthing.net/t/keeping-syncthing-running-systemd-regular-etc-init-d/402/12

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.