Page d'accueil » comment » Comment des arrêts inattendus peuvent-ils nuire à un ordinateur Linux?

    Comment des arrêts inattendus peuvent-ils nuire à un ordinateur Linux?

    Les arrêts inattendus sont-ils aussi dommageables pour Linux que pour les autres systèmes d'exploitation? Continuez à lire pendant que nous étudions les effets d'arrêts de système catastrophiques sur les systèmes de fichiers Linux..

    La séance de questions et réponses d'aujourd'hui nous est offerte par SuperUser, une sous-division de Stack Exchange, un groupe de sites Web de questions-réponses dirigé par la communauté..

    La question

    Le lecteur superutilisateur User208554 est curieux de connaître la structure de fichiers Linux et s'inquiète d'une application / installation sur laquelle il travaille:

    Je développe une application sur une carte embarquée Linux (sous Debian), par exemple. Raspberry Pi, Beagle Board / Bone ou olimex. Les cartes fonctionnent dans un environnement où l'électricité est coupée de manière inattendue (il est beaucoup trop compliqué de placer une alimentation, etc.) et cela se produirait tous les jours plusieurs fois. Je me demande si les coupures de courant inattendues pourraient poser problème sur le système d'exploitation Linux? Si c’est quelque chose qui devrait me préoccuper, que suggéreriez-vous pour éviter les dommages sur le système d’exploitation contre les coupures de courant inattendues??

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

    Alors, quel est le verdict?

    La réponse

    SuperUser contributor l0b0 offre un aperçu des systèmes de fichiers journalisés / non journalisés:

    Cela dépendrait de

    1. si vous utilisez un système de fichiers de journalisation et
    2. dans quelle mesure les applications sont capables de gérer un traitement interrompu.

    Prenons par exemple une application qui traite un fichier et écrit les résultats au fur et à mesure 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, le traitement ne peut pas simplement redémarrer à partir du début du fichier d'entrée. Cela signifie que le fichier de sortie contiendrait des informations en double..

    Il peut être très difficile de dire quoi que ce soit de précis sur un système hypothétique complexe, mais la plupart des logiciels Linux stables semblent être capables de gérer les pannes assez bien..

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

    Pour minimiser les risques de corruption du système d'exploitation, il est probablement préférable de disposer de partitions «système» et «données» distinctes sur la carte SD. De cette façon, vous pouvez monter la partition «système» en lecture seule et utiliser un système de stockage hautement résilient sur la partition «de données»..

    De plus, la plupart de ces cartes ont une consommation d'énergie très faible, ce qui permet une sauvegarde sur batterie. La carte «Pilote LiPo» du Raspberry Pi peut être utilisée comme onduleur de base pour fournir un arrêt net en cas de coupure de courant..

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

    Des coupures de courant inattendues peuvent endommager les données du système de fichiers - par exemple, Si un processus a commencé à écrire dans un fichier, mais n'a pas encore fini de l'écrire, il est possible que le fichier ne soit qu'à moitié écrit. Maintenant, imaginez si la coupure de courant se produit à la moitié de la mise à niveau du noyau…

    Comme l'a écrit l0b0, l'utilisation d'un système de fichiers journalisé sera utile, car il sera en mesure de garder une trace de ce qui a réellement été fait. En plus des infos wikipedia liées au l0b0, vous pouvez également être intéressé par la garantie de journalisation des systèmes de fichiers contre la corruption après une panne de courant..

    En tant que programmeur, vous devez évidemment bien réfléchir à la manière de gérer l’écriture dans les fichiers pour qu’elle devienne un processus atomique (c’est-à-dire qu’elle est complètement terminée ou pas du tout, mais jamais à moitié terminée). C'est une question assez complexe.


    Avez-vous quelque chose à ajouter à l'explication? Sound off dans les commentaires. Voulez-vous lire plus de réponses d'autres utilisateurs de Stack Exchange doués en technologie? Découvrez le fil de discussion complet ici.