
Ich entwickle gerade den Prototyp eines neuen eingebetteten Systems, das ext4 auf Flash-Speicher verwendet. Diese Systeme werden remote ohne lokalen Systemadministrator bereitgestellt, daher müssen alle Diagnosen auch remote über ein Netzwerk durchgeführt werden.
Die Standard-Mount-Option für ext4 besteht darin, das FS so einzustellen, dass es nur gelesen wird, wenn ein Fehler auftritt. Ich denke, das ist für meinen Fall zu streng, da es dazu führen kann, dass viele Vorgänge nicht mehr funktionieren und Remote-Logins nicht mehr möglich sind.
Ich würde es vorziehen, das System am Laufen zu halten (und einige FS-Fehler zu tolerieren). In meinem Fall scheint die Mount-Option „errors=continue“ also angemessener. Allerdings möchte ich, dass meine Anwendung benachrichtigt wird, wenn FS-Fehler auftreten, damit sie diese als Probleme mit hoher Priorität protokollieren und diese Informationen an unsere Server zurücksenden kann.
Weiß jemand, ob dies mit dem Standard-Linux-Kernel (4.8.1 auf x86_64) möglich ist?
Antwort1
Ich würde es vorziehen, das System am Laufen zu halten (und einige FS-Fehler zu tolerieren)
Das ist ein Widerspruch in sich selbst. Wenn Sie FS-Fehler bekommen, läuft Ihr System nicht mehr lange. Tatsächlich errors=continue
ist es sehr wahrscheinlich, dass ein beschädigtes Dateisystem durch die Ausführung von noch mehr Schaden nimmt, bis nicht einmal mehr Hoffnung auf eine sinnvolle Wiederherstellung besteht.
Wenn Sie möchten, dass Ihre Anwendung auch bei FS-Fehlern den Betrieb möglichst fortsetzt, sollte sie über ein Skript verfügen, das erkennt, wenn der /
schreibgeschützte Zustand hergestellt ist, und mit einem erzwungenen FSSK einen Neustart ausführt.
Irgendwann geht alles kaputt. Das ist das Gesetz der zunehmenden Entropie. Dagegen kann man eigentlich nichts tun, außer sich an solide Konstruktionsprinzipien zu halten und für unternehmenskritische Anwendungsfälle hochwertige Teile zu besorgen.