5Sep

Comment les fermetures imprévues peuvent-elles nuire à un ordinateur Linux?

Les arrêts inattendus sont-ils aussi nuisibles à Linux qu'aux autres systèmes d'exploitation? Lisez la suite pendant que nous étudions les effets des arrêts système catastrophiques sur les systèmes de fichiers Linux.

Question d'aujourd'hui &La session de réponse nous est offerte par SuperUser, une subdivision de Stack Exchange, un regroupement communautaire de sites Web Q & A.

La question

SuperUser lecteur User208554 est curieux au sujet des structures de fichiers Linux et préoccupé par une application / installation, il travaille sur:

Je développe une application sur une carte embarquée Linux( Debian), par exemple. Raspberry Pi, Beagle Board / Bone, ou olimex. Les tableaux fonctionnent sur un environnement où l'électricité est coupée de manière inattendue( il est beaucoup trop compliqué de placer des PSU, etc.) et cela arriverait tous les jours quelques fois. Je me demande si les coupures de courant inattendues causeraient des problèmes sur le système d'exploitation Linux? Si c'est quelque chose que je devrais s'inquiéter, que suggérez-vous pour empêcher les dommages sur OS contre les coupures de courant inattendues?

PS.L'application doit écrire certaines données sur le support de stockage( carte SD), je pense qu'il ne serait pas approprié de le monter en lecture seule.

Alors, quel est le verdict?

La réponse

SuperUser contributeur l0b0 offre un aperçu des systèmes de fichiers de journalisation / non-journalisation:

Cela dépendrait de

  1. si vous utilisez un système de fichiers de journalisation et
  2. comment bien les applications sont capables de gérer le traitement avorté.

Considérons par exemple une application qui traite un fichier et écrit les résultats tels qu'ils sont calculés( une ligne de sortie par ligne d'entrée) dans un autre fichier. Si l'alimentation est coupée pendant le traitement et que la même application est exécutée après le redémarrage, elle ne peut pas simplement redémarrer le traitement à partir du début du fichier d'entrée - cela signifierait que le fichier de sortie contiendrait des informations en double.

Il peut être très difficile de dire quelque chose de précis sur un système hypothétique complexe, mais le logiciel Linux le plus stable semble être capable de gérer les crashs plutôt bien.

Stu suggère de séparer le système d'exploitation et les données, ainsi que d'ajouter une batterie de secours:

Pour minimiser les risques de corruption du système d'exploitation, il est préférable d'avoir des partitions "système" et "données" séparées sur la carte SD.De cette façon, vous pouvez monter la partition "système" en lecture seule et utiliser un FS hautement résilient sur la partition "data".

En outre, la plupart de ces cartes ont une très faible consommation d'énergie, donc une batterie de secours est possible. La carte "LiPo rider" pour le Raspberry Pi peut être utilisée comme onduleur de base pour assurer un arrêt net de la perte de puissance.

Enfin, Jenny D développe la suggestion du système de fichiers de journalisation:

Des coupures de courant inattendues peuvent provoquer une altération des données du système de fichiers - par ex. Si un processus a commencé à écrire dans un fichier, mais qu'il n'a pas encore fini de l'écrire, le fichier peut se retrouver à moitié écrit. Maintenant, imaginez si la coupure de courant se produit quand vous êtes à mi-chemin d'une mise à niveau du noyau. ..

Comme l0b0 l'a écrit, l'utilisation d'un système de fichiers de journalisation aidera, car il sera capable de suivre ce qui s'est vraiment passé.En plus de l'information wikipedia que l0b0 a liée, vous pourriez être intéressé à faire la garantie de la sécurité des systèmes de fichiers contre la corruption après une panne de courant.

En tant que programmeur, il est évident que vous devez considérer soigneusement comment gérer l'écriture dans des fichiers de façon à ce qu'elle devienne un processus atomique( c'est-à-dire entièrement fait ou pas du tout, mais jamais à moitié fait).C'est une question assez complexe.

Avoir quelque chose à ajouter à l'explication? Sonnez dans les commentaires. Vous voulez lire plus de réponses d'autres utilisateurs de Stack Exchange? Découvrez le fil de discussion complet ici.