Zum Hauptinhalt springen

Neues aus dem ZfN

Informationen zu Seafile

Der Sync'n'Share-Dienst der Universität ist aufgrund eines technischen Problems von Datenverlusten betroffen. Im folgenden erläutern wir die Situation und geben Hinweise zur Vorgehensweise.

Hintergrund

Als indirekte Folge eines größeren Upgrades des Seafile Syn'n'Share-Angebots, das Ende August durchgeführt wurde, ist es leider zu einem schwerwiegenden Fehler mit Datenverlusten gekommen.

In den Wochen nach dem Upgrade erhielten wir zunächst sehr vereinzelt, dann immer häufiger, Fehlermeldungen über kaputte Bibliotheken bzw. nicht mehr zugreifbare Dateien. Aufgrund des diffusen Fehlerbilds und der komplexen Funktionsweise von Seafile gelang es uns zunächst nicht, das Problem einzugrenzen oder zu reproduzieren. Zwar konnten kleinere Probleme im Zusammenhang mit dem Upgrade identifiziert werden, keines davon konnte jedoch die Datenverluste plausibel erklären.

Der Fehler

Am Mittwoch, den 13.10., bemerkte ein Mitarbeiter während der Fehleranalyse einen auf dem alten System fehlerhafterweise noch aktiven Hintergrundjob, der nächtlich eine  sog. Garbage Collection durchführt - quasi ein Aufräumen und Löschen nicht mehr benötigter Daten. Dieser Job verwendete eine auf dem alten System nicht mehr aktuelle und daher mit dem Backend--Speichersystem inkonsistente lokale Datenbank, um zu ermitteln, was weggeworfen werden kann. Die Garbage Collection hat also anhand der veralteten Datenbank Daten aus dem Backend-Storage entfernt, die sie nicht hätte entfernen dürfen.

Eine Garbage Collection über die Gesamtdaten würde Wochen dauern (Seafile enthält derzeit über 18 Milliarden Objekte), daher wird jede Nacht nur ein kleiner Bruchteil der Bibliotheken bearbeitet. Die jeweils bearbeiteten Bibliotheken sind dabei unter Umständen beschädigt worden.

Was bedeutet das für Sie? Lassen sich Daten wiederherstellen?

Aufgrund der Vielzahl möglicher Nutzungsszenarien und der Vielfältigkeit der Probleme, die durch die gelöschten Daten verursacht werden können, ist es schwierig, eine allgemeingültige Vorgehensweise vorzuschlagen.

Nutzen Sie den Seafile-Client und haben Sie eine betroffene Bibliothek auf Ihre lokale Festplatte synchronisiert, sollte diese lokale Kopie unserem derzeitigen Kenntnisstand nach nicht beeinträchtigt sein. Im Allgemeinen hat Seafile ein Problem erkannt und die Synchronisation ausgesetzt. In diesem Fall ist es am sichersten, wenn Sie alle Daten in der betroffenen Bibliothek zunächst lokal sichern und dann in eine neu anzulegende Bibliothek kopieren. Anschließend können Sie die defekte alte Bibliothek mittels des Seafile-Webinterface löschen. In Fällen, in denen die Synchronisation nicht ausgesetzt hat, sollte Seafile einen Konflikt erkannt haben und Sie finden zwei Versionen der betroffenen Datei in Ihrer Bibliothek (eine davon mit einem 'SFConflict' im Namen). Schauen Sie nach, welche der Versionen unbeschädigt ist.

Nutzen Sie Seafile nur über das Webinterface ist die Lage leider problematischer. In diesem Fall können Sie versuchen, über die Versionshistorie einer betroffenen Datei eine funktionierende Version wieder herzustellen. Hier hilft nur probieren, ob bzw. welche Dateiversion wiederherstellbar ist. Am einfachsten ist, im 'Dreipunktmenü' einer Version 'Download' zu wählen. Klappt das Herunterladen ist die Version in Ordnung und Sie können sie zur aktuellen Version machen. Leider ist in manchen Fällen die Versionshistorie selbst beschädigt und kann nicht mehr aufgerufen werden. In diesem Fall ist eine Wiederherstellung der Datei nicht möglich.

Warum gibt es kein Backup?

Seafile verwendet ein komplexes Datenformat und erzeugt eine enorme Anzahl von Objekten. Vereinfacht gesagt wird jede Datei in kleine Blöcke zerschnitten, um eine effektive Versionierung und eine Deduplikation durchführen zu können. Die Objekte werden nicht einfach als Dateien auf einem Dateisystem abgelegt, sondern aus Effizienzgründen in einem sogenannten Objektspeicher. Zusätzlich werden Metadaten zum schnelleren Zugriff in einer Datenbank gehalten. Ein konsistentes Backup eines derart großen Objektspeichers und einer Datenbank ist nicht realisierbar.

Sowohl Objektspeicher als auch Datenbank sind hochverfügbar und redundant., der Ausfall von Hardwarekomponenten führt also im Allgemeinen nicht zu Ausfallzeiten und erst recht nicht zu Datenverlusten. Das hilft aber nicht gegen ein Problem auf einer höheren Ebene, wie wir es in diesem Fall erleben.

Um anekdotenhaft die Größenordnung der Backup-Problematik zu verdeutlichen: Der letzte Umzug von Seafile von einem älteren Speichersystem auf ein neues erforderte intensive Vorbereitung und einiges Getrickse. Der Nachts im Hintergrund laufende Kopierprozess dauerte etwa ein halbes Jahr.

Kann ich Seafile wieder guten Gewissens nutzen oder sind zukünftig weitere Probleme zu erwarten?

Wir werden zusätzliche Sicherheitsmaßnahmen implementieren, die Fehler dieser Art zukünftig ausschließen. Aber natürlich kann niemand jede Art technischer oder menschlicher Fehler bei komplexen technischen Systemen komplett ausschließen. Wir empfehlen daher (und haben das auch in der Vergangenheit getan) Dateien immer mittels des Seafile-Clients auf Ihre lokale Festplatte zu synchronisieren und die synchronisierten Verzeichnisse lokal zusätzlich zu sichern.

Grundsätzlich gehen wir davon aus, dass die Nutzung von Seafile bei adäquater lokaler Sicherung wichtiger Daten unproblematisch ist und nutzen Seafile in der täglichen Arbeit auch selbst intensiv.

Was planen wir langfristig?

Wir denken aus verschiedenen Gründen darüber nach, Seafile durch eine andere Lösung (Nextcloud) abzulösen. Nextcloud bietet eine Reihe von Vorteilen, darunter auch eine deutlich einfachere (allerdings auch ineffizientere) interne Datenablage und eine realistische Möglichkeit für ein praktikabeles Backup. Leider ist es schwierig, den Ressourcenbedarf von Nextcloud bei vielen tausend Nutzern seriös zu schätzen - einer der großen Vorteile von Seafile sind vergleichsweise sehr moderate Anforderungen an die Hardware.

Sollte es zu einer Ablösung kommen ist dies ein langfristiger Prozess mit einem wenigstens monatelangen Parallelbetrieb. Wir werden darüber selbstverständlich rechtzeitig informieren und Hinweise zur Migration geben.