Wir machen uns im Alltag wenig Gedanken über Dateisysteme, sie sind einfach da und funktionieren, bis sie es nicht mehr tun. Alle Dateisysteme sind anfällig für Ausfälle aus verschiedenen Gründen. Die Folgen reichen von unbenutzbaren Systemen bis zu partiellem oder komplettem Datenverlust.
Deshalb bieten Dateisysteme üblicherweise einen Satz von Tools, um den Zustand des Dateisystems zu überprüfen und, wenn möglich, zu reparieren. Diese Tools werden an das fsck-Frontend durchgereicht. Journaling Dateisysteme wie Ext3, Ext4 oder XFS sorgen darüber hinaus mit dem Aufzeichnen aller Änderungen in einem separaten Speicherbereich, bevor diese geschrieben werden, für eine möglichst hohe Konsistenz.
fsck eilt zu Hilfe
Dennoch kommt es zu Situationen, in denen ein Dateisystem korrumpiert wird und repariert werden muss. Um Probleme frühzeitig aufzudecken, lassen viele Distributionen Dateisystem-Checks per fsck
nach einer gewissen Anzahl von Reboots automatisch laufen oder wenn fsck
das Dateisystem als dirty
markiert. Was fsck
nicht leisten kann, ist eine Überwachung des Zustands des Dateisystems in Echtzeit. In kritischen Umgebungen ist es aber essenziell, dass der Administrator so schnell wie möglich von sich anbahnenden Problemen hinsichtlich des Dateisystems erfährt.
Bereits im Kernel
Hier hat jetzt die Firma Collabora angesetzt und einen Mechanismus erschaffen, der besser über sich anbahnende Probleme informiert. Das Problem ist laut Collabora, dass Linux keine wirklich brauchbare Schnittstelle zur Verfügung stellt, um Anwendungen über den nackten Fehlercode hinaus zu informieren, wenn ein Dateisystemfehler auftritt. Der neue Mechanismus soll die Volumes von Massenspeichern überwachen und sowohl Recovery-Tools als auch die Sysadmins in Echtzeit benachrichtigen, wenn ein Fehler aufgetreten ist. Die Funktion bedient sich des fanotify
-Moduls des Kernels und ist bereits in Linux 5.16 integriert. [wiki title=”Fanotify”]Fanotify[/wiki] erlaubt die Überwachung von Zugriffen auf Dateien und Ordner und ermöglicht eine rekursive Überwachung eines gesamten Dateisystems.
Fanotify aufgebohrt
Die neue Funktion verhindert zwar nicht, dass Fehler auftreten, trägt aber dazu bei, die Auswirkungen solcher Fehler zu mindern, indem sie garantiert, dass jede eventuell betroffene Anwendung die Nachricht erhält und somit eine frühzeitigere Reaktion ermöglicht. Die Entwickler haben dazu den neuen Ereignistyp FAN_FS_ERROR
hinzugefügt, der vom Dateisystemcode selbst ausgegeben wird, sobald ein Fehler erkannt wird. Durch die Nutzung von fanotify
wird das Ereignis nun in einer eigenen Ereignis-Warteschlange für den lauschenden Tools verfolgt und kann nicht durch weitere Fehler überschrieben werden. Selbst bei knappem Speicher wird sichergestellt, dass die Meldung ausgegeben wird.