Serverbackup

Dies ist nur eine vorläufige Version

Was soll gesichert werden?

In der FFDO-Infrastruktur gibt es ein paar Dienste die State erzeugen. Geht dieser verloren, gehen eventuell wertvolle Informationen verloren, die sich auf anderem Wege nicht rekonstruieren lassen. State wie der Inhalt unseres Wikis wird über ein verteiltes SCM gehalten und liegt daher bei den meisten Leuten, die das Wiki editieren in einem halbwegs aktuellen Stand vor. Allerdings lässt sich dies nicht für alle Datenbestände so realisieren. Das Wiki z.B. hat eine eigene Nutzerverwaltung, die nicht im git liegt. Diese muss gesichert werden, da sonst nach einem Ausfall des Wiki-Servers Web-Benutzer sich nicht mehr einloggen können.

Aktuell sichern wir den folgenden State:

  • Gogs (git server)
  • SQLite Datenbank mit Nutzern etc.
  • Repository-Verzeichnis mit den Repositories und evtl. erzeugten git hooks

  • gitit (Wiki)
  • Benutzerdatenbank in Form einer Datei

Wie soll gesichert werden?

Aktuell wird der Einsatz von restic evaluiert. Die Vorteile sind, dass es ohne Abhängigkeiten installierbar ist und bisher schnell und einfach funktioniert.

Wohin soll gesichert werden?

Der Ort wo wir gesicherte Daten ablegen sollte zum einen eine gewissen minimale Verfügbarkeit aufweisen und zum anderen nicht auf den Server laufen, die wir sichern wollen.

Aus diesem Grund soll der Speicher zur Sicherung der Daten von Freiwilligen außerhalb der Freifunk-Infrastruktur bewerkstelligt werden. Die Software die diesen Speicher bereitstellt soll Ausfälle einzelner Instanzen bis zu einem gewissen Grad tolerieren können und möglichst lange zumindest lesenden Zugriff bereitstellen können. Aktuell wird daher minio getestet. minio stellt einen Dataobject-Store bereit, der API-kompatible zu Amazon S3 ist und daher eine breite Toolingunterstützung hat.

Wie stelle ich eine minio-Instanz für Freifunk bereit?

minio hat den Nachteil, dass bei einem verteilten betrieb im vornherein alle Instanzen bekannt sein müssen. Um sinnvoll zur Backupinfrastruktur von Freifunk beitragen zu können sollten folgende Punkte beachtet werden.

  • minio sollte per HTTPS auf dem Standardport für HTTPS (443) erreichbar sein
  • Das verwendete Zertifikat sollte von gängigen Betriebssystemen, Browsern etc. akzeptiert. Daher am besten von Let’s Encrypt o.ä. signiert sein und nicht selbstsigniert.
  • Die minio-Instanz sollte idealerweise an einem Breitbandigen Anschluss (d.h. in der Regel nicht zu Hause) gehostet werden.
  • Die minio-Instanz sollte in der Regel verfügbar sein.

Der Betrieb einer minio-Instanz kann also vorbereitet werden, muss dann aber mit Infrastruktur-Team abgesprochen werden, da Access Key und Secret Access Key ebenso wie die Liste der verbundenen Instanzen gleich sein müssen.

Aktuell benötigen wir mindestens 4 Instanzen die außerhalb der Freifunk-Infrastruktur laufen.

Aktuelle minio-Instanz-Betreiber

Name des Betreibers URL der Instanz
Till https://minio.akuz.de/export