Code

Bessere Dateisystemüberwachung für Linux

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. Fanotify 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.

Teilt den Beitrag, falls ihr mögt

Vielleicht gefällt Dir auch

1 Kommentar
Newest
Oldest Most Voted
Inline Feedbacks
View all comments