Login
Newsletter
Werbung

Mo, 16. März 2009, 14:16

Software::Systemverwaltung

Dateisysteme, Datensicherheit und Energieverbrauch

Anwendungen dürfen sich nicht darauf verlassen, dass das System geänderte Dateien sofort auf die Festplatte schreibt, wie Ted Ts'o, der Entwickler des ext4-Dateisystems, deutlich macht.

Seit einigen Tagen ist eine Diskussion unter den Linux-Entwicklern darüber im Gang, dass das Caching der Dateisysteme das Risiko eines Datenverlustes bei einem Stromausfall erhöht. Auslöser war ein Fehlerbericht zum noch nicht veröffentlichten Ubuntu 9.04, in dem ein Benutzer das neue Dateisystem ext4 einsetzte. Nach einem Absturz, der durch ein Herumspielen mit BIOS-Einstellungen verursacht wurde, waren einige KDE-Konfigurationsdateien auf Länge 0 gekürzt. Der Absturz ereignete sich direkt nach dem Start des Desktops.

Ts'o analysierte das Problem und wies die Schuld schlecht geschriebenen Anwendungen zu. Das Dateisystem verhalte sich korrekt, wie von POSIX gefordert. Wenn eine Anwendung eine Datei geändert hat und sie schließt, dann kann das Dateisystem die Daten noch beliebig lange im Cache halten, ohne sie auf die Platte zu schreiben. Bei ext4 ist diese Frist 60 Sekunden. Fällt in diesem Zeitintervall der Strom aus, sieht der Benutzer nach dem Neustart entweder den alten Inhalt der Datei, oder die Datei ist leer. Während die Benutzer mit ersterem oft leben können, ist bei ext4 wegen der »Delayed Allocation» und der gegenüber ext3 längeren Cache-Zeit letzteres wahrscheinlicher. Andere Dateisysteme wie XFS zeigen schon immer dieses Verhalten.

Anwendungen, die sicherstellen wollen, dass ihre Änderungen auf die Festplatte geschrieben werden, müssen vor dem Schließen der Datei fsync aufrufen - und wenn sie sicherstellen wollen, dass ein Benutzer die neue und nicht die alte Version der Daten sieht, müssen sie fsync auch für das Verzeichnis aufrufen, in dem die Datei liegt. Anwendungen, die das nicht tun, sind nach Ansicht von Ts'o fehlerhaft und nicht POSIX-konform. Ob POSIX in dieser Hinsicht anwendungsfreundlich ist, steht auf einem anderen Blatt.

Auch wenn Ted Ts'o den Schwarzen Peter bei den Anwendungen sieht, will er dennoch einige Änderungen in ext4 einbringen, die die Folgen eines Ausfalls mit ext4 abmildern sollen. Diese werden jedoch erst in Linux 2.6.30 erscheinen, mit dem in etwa drei Monaten gerechnet werden kann. Für die Übergangszeit sind verschiedene Workarounds möglich, darunter die Mount-Option »nodelalloc«. Während Ts'o in seinem ersten Blog-Eintrag noch die Frage stellt, welche weiteren Maßnahmen getroffen werden sollten, ist er sich im neuesten Eintrag sicher: Die Anwendungen sollten POSIX-konform arbeiten und fsync verwenden.

Dies wirft allerdings zwei praktische Probleme auf. Zum einen gilt fsync als langsam - laut Ts'o ein Märchen, das hauptsächlich auf ein Fehlverhalten von Firefox zurückzuführen ist. Tatsächlich erhöht fsync nicht die Zahl der Ein/Ausgabe-Operationen, aber der häufige Gebrauch von fsync kann die Gesamtleistung des Systems etwas reduzieren, da weniger Gelegenheit zur Optimierung der Plattenzugriffe besteht. Außerdem können für die Anwender spürbare Verzögerungen entstehen. Laut Ts'o ist die Lösung, dass die Anwendungen so optimiert werden, dass sie möglichst selten fsync verwenden - also beispielsweise keine Konfigurationsdateien neu schreiben, wenn sie nicht geändert wurden. Bei interaktiven Anwendungen sollte für fsync ein separater Thread gestartet werden.

Das zweite, von Matthew Garret ins Spiel gebrachte Problem ist der Energieverbrauch. Wenn Anwendungen zu häufig fsync aufrufen, ist die Festplatte dauernd beschäftigt und es gibt keine Gelegenheit, Energie zu sparen. Dies würde bei Laptops zu kürzeren Akkulaufzeiten führen. Eine Lösung könnte sein, den bereits bestehenden Laptop-Modus zu erweitern. In diesem Modus wird fsync weitgehend außer Kraft gesetzt und die Festplatte wird in den Schlafmodus gebracht und dort so lange belassen, wie möglich. Dabei kann der Benutzer konfigurieren, wieviele Minuten Arbeit im Falle eines Ausfalls maximal verloren gehen dürfen. Möglicherweise müsste man für einige Systemprogramme die Möglichkeit schaffen, den Laptop-Modus zu umgehen, meint Ts'o. Doch eine solche Änderung bedarf wohl noch einiger Diskussion.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung