5Sep

Wie können unvorhergesehene Herunterfahren einem Linux-Computer schaden?

click fraud protection

Sind unerwartete Abschaltungen so schädlich für Linux wie für andere Betriebssysteme? Lesen Sie weiter, während wir die Auswirkungen von katastrophalen Systemausfällen auf Linux-Dateisystemen untersuchen.

Die heutige Frage &Die Antwortsitzung kommt dank SuperUser, einer Unterteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q & A-Websites, zu uns.

Die Frage

SuperUser reader User208554 ist neugierig auf Linux-Dateistrukturen und besorgt über eine App / Installation, an der er arbeitet:

Ich entwickle eine Anwendung auf einer Linux Embedded-Karte( läuft Debian), z. Raspberry Pi, Beagle Board / Knochen oder Olimex. Die Boards funktionieren in einer Umgebung, in der der Strom unerwartet unterbrochen wird( es ist viel zu kompliziert, PSU zu platzieren, usw.) und es würde jeden Tag ein paar Mal passieren. Ich frage mich, ob die unerwarteten Stromausfälle Probleme auf dem Linux-Betriebssystem verursachen könnten. Wenn Sie sich etwas Sorgen machen sollten, was würden Sie vorschlagen, um die Schäden an OS vor den unerwarteten Stromausfällen zu verhindern?

instagram viewer

PS.Die Anwendung muss einige Daten auf das Speichermedium( SD-Karte) schreiben, ich denke, es wäre nicht geeignet, es als schreibgeschützt zu mounten.

Also, was ist das Urteil?

Der Answer

SuperUser-Mitwirkender l0b0 bietet einige Einblicke in Journaling- / Nicht-Journaling-Dateisysteme:

Dies hängt von

  1. ab, ob Sie ein Journaling-Dateisystem und
  2. verwenden, wie gut die Anwendungen die abgebrochene Verarbeitung verarbeiten können.

Betrachten Sie zum Beispiel eine Anwendung, die eine Datei verarbeitet und die Ergebnisse so schreibt, wie sie berechnet werden( eine Ausgabezeile pro Eingabezeile), in eine andere Datei. Wenn die Stromversorgung während der Verarbeitung unterbrochen wird und dieselbe Anwendung nach dem Neustart ausgeführt wird, kann sie nicht einfach vom Anfang der Eingabedatei aus neu gestartet werden. Das würde bedeuten, dass die Ausgabedatei doppelte Informationen enthalten würde.

Es könnte sehr schwierig sein, etwas Bestimmtes über ein hypothetisches komplexes System zu sagen, aber die stabilste Linux-Software scheint in der Lage zu sein, Abstürze recht gut zu behandeln.

Stu schlägt vor, das Betriebssystem und die Daten zu trennen sowie ein Batterie-Backup hinzuzufügen:

Um die Möglichkeit einer Beschädigung des Betriebssystems zu minimieren, ist es wahrscheinlich am besten, getrennte "System" - und "Daten" -Partitionen auf der SD-Karte zu haben. Auf diese Weise können Sie die "System" -Partition schreibgeschützt bereitstellen und einen hochausfallsicheren FS auf der "Daten" -Partition verwenden.

Zusätzlich haben die meisten dieser Boards einen sehr geringen Energiebedarf, so dass eine Batterie-Backup möglich ist. Das "LiPo Rider" Board für den Raspberry Pi kann als Basis-USV verwendet werden, um eine saubere Abschaltung bei Stromausfall zu gewährleisten.

Schließlich erweitert Jenny D den Vorschlag des Journaling-Dateisystems:

Unerwartete Stromausfälle können zur Beschädigung von Dateisystemdaten führen - z. Wenn ein Prozess begonnen hat, in eine Datei zu schreiben, aber noch nicht fertig ist, wird die Datei möglicherweise nur zur Hälfte geschrieben. Stellen Sie sich nun vor, dass der Stromausfall auftritt, wenn Sie zur Hälfte ein Kernel-Upgrade durchgeführt haben. ..

Wie l0b0 geschrieben hat, wird die Verwendung eines Journaling-Dateisystems helfen, da es in der Lage ist zu verfolgen, was tatsächlich getan wurde. Zusätzlich zu den Wikipedia-Informationen, die mit l0b0 verlinkt sind, könnten Sie auch Interesse an Do Journaling Filesystems Guarantee Against Corruption nach einem Stromausfall haben.

Sie als Programmierer müssen natürlich sorgfältig darüber nachdenken, wie Sie mit dem Schreiben von Dateien umgehen, so dass es zu einem atomaren Prozess wird( d. H. Es ist entweder vollständig erledigt oder überhaupt nicht gemacht, aber nie zur Hälfte gemacht).Es ist ein ziemlich komplexes Problem.

Haben Sie etwas zur Erklärung hinzuzufügen? Ton in den Kommentaren ab. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange Benutzern lesen? Sehen Sie sich den vollständigen Diskussionsfaden hier an.