Möglicher Datenverlust bei Ext4

Mit dem kommenden Standard-Dateisystem Ext4, das bereits in ersten Distributionen zum Einsatz kommt, können bei einem Systemabsturz Daten verloren gehen.

In Pocket speichern vorlesen Druckansicht 1144 Kommentare lesen
Lesezeit: 3 Min.
Von
  • Dr. Oliver Diedrich

Ein Bug-Report im Bug-Tracker für die kommende Version 9.04 von Ubuntu (Jaunty Jackalope) beschreibt einen massiven Datenverlust beim Einsatz von Ext4, dem zukünftigen Standard-Dateisystem von Linux, das Ubuntu 9.04 bei der Installation anbieten soll. Dabei gingen bei einem Systemabsturz kurz nach dem Laden des KDE-4-Desktops die Daten aller Dateien verloren, in die beim Booten geschrieben wurde – darunter auch zahlreiche KDE-Konfigurationsdateien.

In seiner Antwort erläutert Ext4-Entwickler Ted Ts'o die Hintergründe für dieses Problem. Wie andere moderne Dateisysteme, etwa XFS, implementiert Ext4 delayed allocation – der zum Schreiben neuer Daten erforderliche Platz wird erst mit bis zu 60 Sekunden Verzögerung festgelegt. Das steigert die Performance und erlaubt Optimierungen der Datenorganisation auf der Platte.

Wenn nun eine Anwendung, wie es offenbar die Desktops KDE und Gnome tun, in kurzer Zeit eine große Zahl kleiner Dateien (nämlich die Konfigurationsdateien für die persönlichen Einstellungen) einlesen und neu schreiben und danach das System abstürzt, kann es sein, dass zu diesem Zeitpunkt für die Daten noch gar kein Platz auf der Platte alloziert wurde – die Dateien sind dann alle leer. Dabei hilft auch das Journal nicht, das die Konsistenz der Metadaten sicherstellt: Die Inodes referenzieren ganz korrekt und konsistent keinerlei Datenblöcke. Die genauen technischen Details (entscheidend sind die Systemcalls ftruncate() und rename()) finden sich in Teds Antwort.

Ted Ts'o beschreibt einen Workaround, der versucht, genau diesen Fall zu erkennen und in diesem Fall auf die delayed allocation zu verzichten, weist aber darauf hin, dass auch andere moderne Dateisystem wie XFS und das neue Btrfs von dem Problem betroffen sind. Die Patches werden aber wohl erst in den Kernel 2.6.30 einziehen – in den nächsten Wochen steht erst einmal die Veröffentlichung von 2.6.29 an.

Eigentlich, so der Dateisystementwickler, müsste man allerdings die betroffenen Anwendungen fixen: Die Programmierer hätten sich daran gewöhnt, dass mit Ext3 die Zeit bis zum tatsächlichen Schreiben der Daten höchstens fünf Sekunden beträgt und dass Änderungen an den Metadaten mit der Ext3-Standardoption "data=ordered" erst dann als bestätigt gelten, wenn die Daten tatsächlich auf die Platte geschrieben sind. Diese Annahmen würden mit modernen Dateisystemen nicht mehr gelten.

Siehe dazu auch:

(odi)