Bogdan Gribincea hat einen Fehler in Ubuntu 9.04 berichtet, bei dem Dateien eines als Ext4 angelegten Dateisystems verloren gehen.
Hintergrund ist die Verzögerung beim Schreiben auf die Festplatte, wodurch nach einem Absturz Daten verloren gehen können, die zu diesem Zeitpunkt in Bearbeitung waren. Hintergrund dieser Verzögerung sind Bestrebungen, die Schreibvorgänge auf die Festplatten zu minimieren um beim Einsatz von Notebooks Strom zu sparen und die Datenkanäle für andere Daten freizuhalten. Daneben beugt dieses Verhalten auch der Fragmentierung der Daten auf dem Datenträger vor. Effektiv bedeutet dies, dass Daten, die eine Anwendung speichert, tatsächlich erst einige Sekunden (bis zu 60 Sekunden bei Ext4) auf den Datenträger geschrieben werden und solange nur im Hauptspeicher vorliegen. Diese Technik ("Delayed Allocation" oder "Allocate-on-flush") ist allerdings nicht wirklich neu und wird von vielen Dateisystemen genutzt, darunter auch zfs und xfs.
Ext4 wird zwar seit Kernel 2.6.28 als stabil bezeichnet, aber Erfahrungen wurden im breiten Einsatz bislang kaum gemacht, da die gängigen Distributionen - mit Ausnahme von ArchLinux - noch keinen Kernel 2.6.28 oder neuer mitliefern. Insofern ist das erste Auftauchen von derlei Fehlern in Jaunty, der momentanen Entwicklerversion von Ubuntu, zwar bedauerlich, es hilft jedoch dabei, solche Mängel beseitigen zu können. Umso mehr, da die hohe Anzahl an verloren gegangenen Daten nach einem Absturz laut Kernel-Entwickler Ted T'so eher unerwartet und wohl darauf zurückzuführen ist, dass bestimmte Anwendungen, wie zum Beispiel KDE oder GNOME, eine große Anzahl an Dateien gleichzeitig beschreiben, die dann nach einem Crash einfach leer erscheinen. Somit liegt der Fehler wohl eher in der Interaktion von verschiedenen Bestandteilen einer Linux-Distribution und nicht nur an einem einzigen Dateisystem.
Abhilfe sollen einige Patches schaffen, die jedoch wohl erst in den Kernel 2.6.30 aufgenommen werden:
Bis dorthin steht für vorsichtige Gemüter ja noch Ext3 zur Verfügung. Ansonsten müssten sich die Entwickler von Applikationen in nächster Zeit Gedanken machen, wie sie Schreibvorgänge auf Speichermedien so gestalten können, damit gespeicherte Daten auch wirklich auf dem Datenträger landen. T'so bietet hier auch gleich Vorschläge wie die Nutzung der in vielen Programmiersprachen vorhandenen Funktion fsync() oder fdatasync() sowie das Speichern in eine neue Datei und deren daran anschließende Umbenennung unter Beibehaltung der Vorgängerversion (Kommentar von Ted T'so).
Quelle: Launchpad Bugtracker, Heise online
Ext4 mit Jaunty
Ich hatte bis letzte Woche die Jaunty Jackalope Alpha auf ner Ext4 Partition in Testung.
Bis letzte Woche deshalb, weil dann hab ich das neue [Alt]+[S-Abf]+[K] gedrückt (neue Tastenkombination für Strg+Alt+Back) und dann war Ende.
Die drei LEDs auf der Tastatur haben geblinkt und ansonsten alles eingefroren und Totalabsturz von Gnome.
Naja, nen Reset gemacht aber jetzt startet mein Jaunty 9.04 nicht mehr Gdm/Gnome, sonden fällt zurück ins Terminal.
Ich vermute, der Fehler begründet sich auf dem oben beschriebene Ext4-Effekt. Jetzt arbeite ich wieder mit meiner 8.10er-Partition.
Meine Home-Partition formatiere ich besser auch später nicht mit Ext4, bevor ganz sicher ist, dass solche Fehler nicht auftreten können. Weil wenn nach nem Absturz irgendwelche Daten aus meiner Home-Partition weg wären, dann fände ich das aber richtig blöd.
Den Verlust der Jaunty Alpha kann ich dagegen verschmerzen, auch wenn das soo schön schnell gebootet und funktioniert hat.
Nun, mit diesem Thema wird
Nun, mit diesem Thema wird man sich zukünftig wohl mehr auseinandersetzen müssen. Vermutlich werden bald alle Dateisysteme Delayed Allocation nutzen, um effizienter zu werden, was Ressourcen und Energiebedarf angeht (btrfs wird diese Technik auch unterstützten). Aber entweder müssen dann auf Seiten der Anwendungen anders programmiert werden oder die Entwickler des Dateisystems müssen Vorkehrungen treffen, damit Datenverluste in diesem Ausmaß ausbleiben (ich müsste aber nicht, welche).
Ich nutze derzeit jfs, Delayed Allocation kommt hier meines Wissens nicht zum Einsatz. jfs legt Wert auf die Datensicherheit, dafür fehlen dann manche leistungssteigernde Funktionen , für die man Kompromisse hätte eingehen müssen. Auch wenn meinem Notebook oftmals der Saft ausgeht, sind mir noch keine Daten abhanden gekommen.
CU Matze
> Die drei LEDs auf der
> Die drei LEDs auf der Tastatur haben geblinkt und ansonsten alles eingefroren und Totalabsturz von Gnome.
Wow, du hast es geschafft mit einer Tastenkombi den Kernel zum Absturz zu bringen.
Nicht nur GNOME.
Ich verstehe nicht dass in
Ich verstehe nicht dass in dem Zusammenhang immer von einem "Fehler" gesprochen wird. Das Feature verlangt es eben, dass Daten länger im flüchtigen Speicher gehalten werden - ob XFS, ext4 oder ZFS, überall das selbe.
Um so wichtiger ist es, stabile Software und Hardware einzusetzen.
Solange sich Hybrid-Platten oder SSDs nicht durchsetzen, wo Hardware die "delayed allocation" übernimmt, dürfte sich daran auch nicht rütteln lassen.
Der Fehler liegt in der Gewohnheit
Tatsächlich ergibt sich der "Fehler" aus den abweichenden Erwartungen der Anwender, die ein anderes Verhalten gewohnt sind. Früher war es üblich, dass nach einem Absturz Daten futsch sind, dank Journal im Dateisystem gehört das Problem der Vergangenheit an. Tatsächlich wären die aufgetretenen Probleme auch weniger gravierend gewesen, hätten nicht GNOME, KDE und Co zum Zeitpunkt des Absturzes oder kurz davor mal alle verfügbaren Konfigurationsdateien geöffnet.
Ich denke, dass durch die weitere Verbreitung von Delayed Allocation zukünftig einfach anders programmiert werden muss, T'so hat ja einen guten Vorschlag gemacht, wie so etwas umgesetzt werden kann: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/317781/comments/54
CU Matze
Oooops
Nun isses auch mir passiert: Notebook fuhr nicht rechtzeitig runter und - schwups - sind alle halbwegs wichtigen Konfig-Dateien leer. So kann's passieren...
CU Matze
das ext4 daten verlihrt kommt
das ext4 daten verlihrt kommt (in meinem Fall) sogar bei ordnungsgemäßem runterfahren zustande, wenn sich dabei ein oder 2 Prozesse nicht richtig killen lasen. allerdings hilft die "Überprüfung" der Partition mittels gparted sehr beim recovern der verlorenen Daten.
Im Zweifel
Im Zweifelsfalls kann man auch fsck nutzen, am beste beim Systemstart, in dem man die Datei forcefsck direkt im Verzeichnis-root anlegt:
CU Matze