Les données sur les disques durs peuvent-elles se dégrader sans un avertissement concernant les dommages?
Nous nous soucions tous de préserver la sécurité et l'intégrité de nos données et de nos fichiers, mais est-il possible que des données soient endommagées et qu'un utilisateur y accède sans notification ni avertissement d'aucune sorte concernant le problème? Le message Q & R du SuperUser d'aujourd'hui répond à la question d'un lecteur inquiet.
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é..
Photo gracieuseté de généraliser (Flickr).
La question
Le lecteur superutilisateur topo morto souhaite savoir si les données stockées sur les disques durs peuvent se dégrader et être consultées sans prévenir des dommages:
Est-il possible que la dégradation physique d'un disque dur provoque le basculement des bits dans le contenu d'un fichier sans que le système d'exploitation ne remarque le changement et ne le notifie pas à l'utilisateur lors de la lecture du fichier? Par exemple, un «p» (01110000 binaire) dans un fichier texte ASCII peut-il être remplacé par un «q» (01110001 binaire), puis lorsqu'un utilisateur ouvre le fichier, il voit «q» sans se rendre compte qu'un échec s'est produit?
Je suis intéressé par les réponses relatives à FAT, NTFS ou ReFS (si cela fait une différence). Je veux savoir si les systèmes d'exploitation protègent les utilisateurs de cette situation ou si nous devrions vérifier dans nos données les écarts entre les copies au fil du temps..
Les données sur les disques durs peuvent-elles se dégrader et être accessibles sans prévenir des dommages??
La réponse
Guntram Blohm, contributeur à SuperUser, a la solution pour nous:
Oui, il y a une chose appelée bit pourriture. Mais non, cela n'affectera pas un utilisateur inaperçu.
Lorsqu'un disque dur écrit un secteur sur les plateaux, il n'écrit pas simplement les bits de la même manière qu'ils sont stockés dans la RAM, il utilise un codage pour s'assurer qu'il n'y a pas de séquences du même bit trop longues. Il ajoute également des codes ECC qui lui permettent de réparer les erreurs qui affectent quelques bits et de détecter les erreurs qui affectent plus de quelques bits..
Lorsque le disque dur lit le secteur, il vérifie ces codes ECC et répare les données si nécessaire (et si possible). Ce qui se passe ensuite dépend des circonstances et du microprogramme du disque dur, qui est influencé par la désignation du lecteur..
- Si un secteur peut être lu et ne présente pas de problème de code ECC, il est transmis au système d'exploitation..
- Si un secteur peut être réparé facilement, la version réparée peut être écrite sur le disque, relue puis vérifiée pour déterminer si l'erreur était aléatoire (par exemple, les rayons cosmiques, etc.) ou s'il y a une erreur systématique avec le support..
- Si le disque dur détermine qu’il ya une erreur avec le support, il réaffecte le secteur..
- Si un secteur ne peut être ni lu ni corrigé après quelques tentatives de lecture (sur un disque dur désigné comme disque dur RAID), le disque dur va abandonner, réaffecter le secteur et informer le contrôleur qu'il y a un problème. . Il repose sur le contrôleur RAID pour reconstruire le secteur à partir des autres membres RAID et l'écrire sur le disque dur défaillant, qui le stocke ensuite dans le secteur réaffecté (cela ne devrait pas poser de problème)..
- Si un secteur ne peut pas être lu ou corrigé sur le disque dur d'un ordinateur de bureau, le disque dur tentera davantage de le lire. En fonction de la qualité du disque dur, cela peut impliquer de repositionner la tête, de vérifier s'il y a des bits qui basculent lors de la lecture répétée, de déterminer quels sont les bits les plus faibles et quelques autres choses. Si l’une de ces tentatives aboutit, le disque dur réaffectera le secteur et écrira les données réparées..
C'est l'une des principales différences entre les disques durs vendus comme disques de «bureau», «NAS / RAID» ou «surveillance vidéo». Un disque dur RAID peut simplement abandonner rapidement et obliger le contrôleur à réparer le secteur pour éviter une latence de la part de l'utilisateur. Un disque dur de bureau continuera d’essayer encore et encore car il est probablement préférable d’attendre quelques secondes que de leur dire que les données sont perdues. Et un disque dur vidéo valorise davantage la vitesse de transmission des données que la récupération sur erreur, car une image endommagée ne sera généralement même pas remarquée.
Quoi qu'il en soit, le disque dur saura s'il y a eu de la pourriture des bits, le récupérera normalement, et s'il ne le pourra pas, il indiquera au contrôleur qui à son tour dira au pilote qui le fera ensuite savoir au système d'exploitation. Ensuite, il appartient au système d’exploitation de présenter l’erreur à l’utilisateur et d’agir en conséquence. C'est pourquoi cybernard dit:
- Je n'ai jamais été témoin d'une seule erreur, mais j'ai vu beaucoup de disques durs où des secteurs entiers ont échoué..
Le disque dur saura s'il y a un problème avec un secteur, mais il ne saura pas quels bits ont échoué. Un seul bit qui a échoué sera toujours attrapé par ECC.
Veuillez noter que chkdsk et les systèmes de fichiers qui se réparent automatiquement ne traitent pas de la réparation des données dans les fichiers. Celles-ci visent la corruption au sein de la structure même du système de fichiers, comme une différence dans la taille du fichier entre l'entrée de répertoire et le nombre de blocs alloués. La fonctionnalité d'auto-réparation de NTFS détectera les dommages structurels et l'empêchera d'affecter davantage vos données, mais ne réparera aucune donnée déjà endommagée..
Il y a bien sûr d'autres raisons pour lesquelles les données peuvent être endommagées. Par exemple, une RAM défectueuse sur un contrôleur peut modifier les données avant même qu'elles ne soient envoyées au disque dur. Dans ce cas, aucun mécanisme sur le disque dur ne détectera ou ne réparera les données, ce qui peut expliquer en partie la structure endommagée du système de fichiers. D'autres raisons incluent des bugs logiciels, des coupures de courant lors de l'écriture sur le disque dur (bien que cela soit résolu par la journalisation du système de fichiers), ou des pilotes de système de fichiers incorrects (le pilote NTFS sous Linux est par défaut en lecture seule depuis longtemps car NTFS a été désossé, non documenté, et les développeurs n'ont pas confiance en leur propre code).
- Une fois, j’ai eu ce scénario dans lequel une application sauvegardait tous ses fichiers sur deux serveurs différents dans deux centres de données différents afin de conserver une copie de travail des données disponible dans toutes les circonstances. Après quelques mois, nous avons constaté qu'environ 0,1% de tous les fichiers copiés ne correspondaient pas à la somme de contrôle MD5 stockée par l'application dans sa base de données. Il s’est avéré qu’il s’agissait d’un câble à fibre optique défectueux entre le serveur et le réseau de stockage..
Ces autres raisons expliquent pourquoi certains systèmes de fichiers, tels que ZFS, conservent des informations de somme de contrôle supplémentaires afin de détecter les erreurs. Ils sont conçus pour vous protéger de beaucoup plus de choses qui peuvent mal tourner que juste pourrir un peu.
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.