Corruption des données
From Wikipedia, the free encyclopedia
La corruption des données est l'accumulation d'erreurs dans les données informatiques pendant les opérations d'écriture, lecture, stockage, transmission ou traitement, et que doivent anticiper les systèmes informatiques pour assurer une intégrité des données constante.
En général, lorsqu'une corruption de données se produit, un fichier contenant ces données produira des résultats inattendus lorsqu'il est accédé par le système ou l'application concernée. Les résultats peuvent aller d'une perte mineure de données à un plantage du système. Par exemple, si un formats de document est corrompu, lorsqu'une personne essaie d'ouvrir ce fichier avec un éditeur de documents, elle peut recevoir un message d'erreur, de sorte que le fichier pourrait ne pas s'ouvrir ou s'ouvrir avec certaines des données corrompues (ou, dans certains cas, complètement corrompues, rendant le document inintelligible). L'image adjacente montre un fichier image corrompu dans lequel la plupart des informations ont été perdues.
Certains types de malware peuvent corrompre intentionnellement des fichiers dans le cadre de leur charge utile, généralement en les écrivant avec du code inopérant ou des données indésirables, tandis qu'un virus non malveillant peut également corrompre involontairement des fichiers lorsqu'il y accède. Si un virus ou un cheval de Troie avec cette méthode de charge utile parvient à altérer des fichiers critiques pour le fonctionnement du logiciel du système d'exploitation ou du matériel physique de l'ordinateur, le système entier peut devenir inutilisable.
Certains programmes peuvent proposer une réparation automatique du fichier après l'erreur, tandis que d'autres ne le peuvent pas. Cela dépend du niveau de corruption et des fonctionnalités intégrées de l'application pour gérer l'erreur. Il existe diverses causes de la corruption.

Il existe deux types de corruption des données associées aux systèmes informatiques : non détectée et détectée. La corruption des données non détectée, également connue sous le nom de corruption silencieuse des données, entraîne les erreurs les plus dangereuses car il n'y a aucune indication que les données sont incorrectes. La corruption des données détectée peut être permanente avec perte de données, ou peut être temporaire lorsque certaines parties du système sont capables de détecter et de corriger l'erreur ; il n'y a pas de corruption des données dans ce dernier cas.
La corruption des données peut se produire à n'importe quel niveau d'un système, de l'hôte au support de stockage. Les systèmes modernes tentent de détecter la corruption à de nombreux niveaux, puis de récupérer ou de corriger la corruption ; cela réussit presque toujours, mais très rarement, les informations arrivant dans la mémoire du système sont corrompues et peuvent entraîner des résultats imprévisibles.
La corruption des données pendant la transmission a diverses causes. L'interruption de la transmission de données entraîne une perte de données. Les conditions environnementales peuvent interférer avec la transmission de données, en particulier lorsqu'il s'agit de méthodes de transmission sans fil. De lourds nuages peuvent bloquer les transmissions satellitaires. Les réseaux sans fil sont sensibles aux interférences de dispositifs tels que les fours à micro-ondes.
Les défaillances matérielles et logicielles sont les deux principales causes de perte de données. Les rayonnements de fond, les crashs de tête, et le vieillissement ou l'usure du dispositif de stockage entrent dans la première catégorie, tandis que les défaillances logicielles se produisent généralement en raison de bogues dans le code. Les rayons cosmiques causent la plupart des erreurs molles dans la DRAM[1].
Silencieuse
Certaines erreurs passent inaperçues, sans être détectées par le firmware du disque ou le système d'exploitation de l'hôte ; ces erreurs sont connues sous le nom de corruption silencieuse des données[2].
Il existe de nombreuses sources d'erreurs au-delà du sous-système de stockage du disque lui-même. Par exemple, les câbles peuvent être légèrement desserrés, l'alimentation électrique peut être peu fiable[3], des vibrations externes telles qu'un bruit fort[4], le réseau peut introduire une corruption non détectée[5], les rayons cosmiques et bien d'autres causes de soft errors, etc. Dans 39 000 systèmes de stockage qui ont été analysés, les bogues de firmware représentaient 5 à 10 % des défaillances de stockage[6]. Dans l'ensemble, les taux d'erreur observés par une étude du CERN sur la corruption silencieuse sont bien supérieurs à un sur chaque 1016 bits[7]. Le magasin en ligne Amazon.com a reconnu des taux de corruption de données similaires élevés dans leurs systèmes[8]. En 2021, des cœurs de processeur défectueux ont été identifiés comme une cause supplémentaire dans des publications de Google et Facebook ; des cœurs ont été trouvés défectueux à un taux de plusieurs sur des milliers de cœurs[9],[10].
Un problème est que les capacités des disques durs ont augmenté de manière substantielle, mais leurs taux d'erreur sont restés inchangés. Le taux de corruption des données est toujours resté à peu près constant dans le temps, ce qui signifie que les disques modernes ne sont pas beaucoup plus sûrs que les anciens disques. Dans les anciens disques, la probabilité de corruption des données était très faible parce qu'ils stockaient de petites quantités de données. Dans les disques modernes, la probabilité est beaucoup plus grande parce qu'ils stockent beaucoup plus de données, sans être plus sûrs. De cette manière, la corruption silencieuse des données n'a pas été une préoccupation sérieuse tant que les dispositifs de stockage sont restés relativement petits et lents. De nos jours, avec l'avènement des disques de grande capacité et des configurations RAID très rapides, les utilisateurs sont capables de transférer 1016 bits en un temps raisonnablement court, atteignant ainsi facilement les seuils de corruption des données[11].
À titre d'exemple, Jeff Bonwick, créateur de ZFS, a déclaré que la base de données rapide chez Greenplum, une société de logiciels de bases de données spécialisée dans l'entreposage de données à grande échelle et l'analytique, rencontre une corruption silencieuse toutes les 15 minutes[12]. Un autre exemple, une étude réalisée par NetApp sur plus de 1,5 million de disques durs pendant 41 mois a trouvé plus de 400 000 corruptions silencieuses des données, dont plus de 30 000 n'ont pas été détectées par le contrôleur RAID matériel (seulement détectées lors du nettoyage des données)[13]. Une autre étude, réalisée par CERN sur six mois et impliquant environ 97 pétaoctets de données, a révélé qu'environ 128 mégaoctets de données sont devenus définitivement corrompus silencieusement quelque part dans le chemin du réseau au disque[14].
La corruption silencieuse des données peut entraîner des pannes en cascade, où le système peut fonctionner pendant un certain temps avec une erreur initiale non détectée causant de plus en plus de problèmes jusqu'à ce qu'elle soit finalement détectée[15]. Par exemple, une panne affectant les métadonnées du système de fichiers peut entraîner l'endommagement partiel ou complet de plusieurs fichiers à mesure que le système de fichiers est utilisé dans son état corrompu.