Frage

Wir haben eine Reihe von Embedded-Systemen r / w Zugriff auf das Dateisystem erfordern, die mit Block-Device Emulation auf Flash-Speicher befindet. Unsere älteste Plattform läuft auf Compact-Flash und diese Systeme sind seit mehr als 3 Jahren ohne einen einzigen fsck im Einsatz während des Bootens ausgeführt werden, und bisher haben wir keine Ausfälle auf das Dateisystem oder CF zugeschrieben wird.

Auf unserer neuesten Plattform haben wir USB-Flash für die anfängliche Produktion und migrieren nun auf Disk-on-Module für r / w Lagerung. Vor einiger Zeit hatten wir einige Probleme mit dem Dateisystem auf viele der Geräte auf USB-Speicherlauf so ich aktivieren, um e2fsck zu sehen, ob das helfen würde. Wie sich herausstellte hatten wir eine Lieferung von schlechten Flash-Speicher aufgenommen, so einmal diejenigen das Problem wegging ersetzt wurden. Ich habe da behinderte e2fsck da wir keinen Hinweis darauf hatten, dass sie das System aus mehr zuverlässigen und historisch waren wir ohne es in Ordnung.

Nun, da wir in Disk-on-Module-Einheiten setzen haben damit begonnen, beginne ich habe wieder Dateisystem zu sehen Fehler. Plötzlich ist das System nicht in der Lage, bestimmte Dateien zu lesen / schreiben und wenn ich versuche, die Datei von der Notfall-Konsole zuzugreifen bekomme ich nur „ Eingabe / Ausgabe-Fehler “. Ich ermöglichte e2fsck wieder und alle Dateien wurden korrigiert.

O'Reillys „ Gebäude Embedded Linux Systeme “ empfiehlt e2fsck auf ext2-Dateisysteme läuft, aber es in Bezug auf ext3 nicht erwähnt, so ich ein wenig verwirrt bin, ob ich es ihr ermöglichen soll oder nicht.

Was sind Ihre fsck auf läuft auf einem Embedded-System nimmt? Wir erwägen Binärdateien auf ar / o Partition setzen und nur die Dateien, die auf ar / w-Partition auf dem gleichen Flash-Gerät modifiziert werden muss, so dass fsck nie versehentlich wichtige Systemdateien löschen kann, hat jemand Erfahrung mit dieser Art von Setup (gut / schlecht)?

War es hilfreich?

Lösung

Ich denke, die Antwort auf Ihre Frage betrifft Sie Anwendung, welche Arten von Kohärenzanforderungen in Bezug auf seine Daten hat. Das heißt, was zu gewährleistet, wenn Leistung ohne formale Abschalten des Systems verloren geht? Im Allgemeinen keine der Desktop-Betriebssystem-Typ-Dateisystemen umgehen dieses alles gut ohne spezielle Anwendung Schließen / Synchronisierung von Dateien und Spülung der Platten-Caches usw. an den wichtigsten Transaktionspunkte in der Anwendung, um sicherzustellen, was Sie pflegen müssen in Tatsache engagiert sich für die Medien.

Ausführen von fsck behebt das Datei-System, jedoch ohne die oben Pflege gibt es keine Garantien, welche Änderungen vorgenommen werden Sie tatsächlich gehalten werden. dh: Es ist nicht genau das, was Sie deterministisch als Folge des Stromausfalls verlieren werden

.

Ich bin damit einverstanden, dass Ihre Binärdateien oder andere wichtige Nur-Lese-Daten auf einer separaten Partition schreibgeschützt setzen sicherstellen hilft, dass sie nicht irrtümlich aufgrund einer fsck Korrektur geworfen bekommen kann auf Dateisystemstrukturen. Als Minimum sie in einem anderen Unterverzeichnis aus der Wurzel setzen als dort, wo die R / W-Daten werden dazu beitragen, statt. Aber in beiden Fällen, wenn Sie Software-Updates unterstützen, müssen Sie noch Schema haben ohnehin mit Schreiben der „read-only“ Bereiche zu behandeln.

In unserer Anwendung haben wir tatsächlich ein Paar von Verzeichnissen für Dinge wie Binärdateien halten und die System-Setup zu booten entweder einer der beiden Bereiche. Während Software-Updates aktualisieren wir das erste Verzeichnis, alles synchronisieren an die Medien und die MD5-Prüfsummen auf der Festplatte überprüfen, bevor sie auf die zweite Kopie des Update zu bewegen. Während des Startvorgangs werden verwendet, sie nur dann, wenn die MD5-Prüfsumme gut ist. Dadurch wird sichergestellt, dass Sie immer ein kohärentes Bild booten.

Andere Tipps

Dave,

ich immer empfehlen, die fsck nach einer Anzahl von Neustarts ausgeführt wird, aber nicht jedes Mal.

Der Grund dafür ist, dass die ext3-Journal-ed ist. Also, wenn Sie die Writeback (Journal-weniger) ermöglichen, dann die meiste Zeit, Ihre Metadaten / file-Systemtabelle synchron mit Ihren Daten (Dateien) sein sollte.

Aber wie Jeff erwähnt, ist es nicht die Schicht über dem Dateisystem garantieren. Es bedeutet, Sie immer noch „beschädigt“ Dateien bekommen, weil einige der Aufzeichnungen wahrscheinlich nicht auf das Dateisystem geschrieben bekommen.

Ich bin mir nicht sicher, was Embedded-Gerät Sie laufen, aber wie oft kommt es neu gestartet werden? Wenn es Neustart gesteuert ist, können Sie immer tun „sync; sync; sync“. Vor dem Neustart

Ich habe die CF mich seit Jahren mit, und sehr selten Gelegenheit bekam ich Dateisystemfehler. fsck auf diesem Fall nicht helfen.

Und über Ihre Partition zu trennen, bezweifle ich den Vorteil davon. Für alle Daten / Dateien auf dem Dateisystem, gibt es eine Metadaten zugeordnet. Die meiste Zeit, wenn Sie die Dateien nicht ändern, zB. Binär / Systemdateien, ändern Sie dann diese Metadaten nicht. Es sei denn, Sie eine fehlerhafte Hardware, wie Übersprechen Schreib & lesen, diese schreibgeschützte Dateien sollten sicher sein.

Die meisten Probleme entstehen, wenn Sie etwas beschreibbaren haben, und unabhängig davon, wo Sie diese setzen, kann es zu Problemen führen, wenn die Anwendung nicht behandelt es gut.

Ich hoffe, das hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top