Corrupción de datos


La corrupción de datos se refiere a errores en los datos de la computadora que ocurren durante la escritura, lectura, almacenamiento, transmisión o procesamiento, que introducen cambios no intencionales en los datos originales. Los sistemas informáticos, de transmisión y de almacenamiento utilizan una serie de medidas para proporcionar integridad de los datos de un extremo a otro o la ausencia de errores.

Corrupción de datos fotográficos; en este caso, como resultado de una recuperación de datos fallida de una unidad de disco duro
Foto de un Atari 2600 con RAM corrupta.
Daño en la imagen PNG como resultado de un bit alterado

En general, cuando se producen daños en los datos, un archivo que contiene esos datos producirá resultados inesperados cuando el sistema o la aplicación relacionada acceda a ellos. Los resultados pueden variar desde una pérdida menor de datos hasta un bloqueo del sistema. Por ejemplo, si un archivo de documento está dañado, cuando una persona intenta abrir ese archivo con un editor de documentos, puede recibir un mensaje de error , por lo que es posible que el archivo no se abra o se abra con algunos de los datos dañados (o, en algunos casos, , completamente corrupto, dejando el documento ininteligible). La imagen adyacente es un archivo de imagen dañado en el que se ha perdido la mayor parte de la información.

Algunos tipos de malware pueden dañar intencionalmente archivos como parte de sus cargas útiles , generalmente sobrescribiéndolos con código no operativo o basura, mientras que un virus no malicioso también puede dañar archivos involuntariamente cuando accede a ellos. Si un virus o un troyano con este método de carga útil logra alterar archivos críticos para el funcionamiento del software del sistema operativo o del hardware físico de la computadora, todo el sistema puede quedar inutilizable.

Algunos programas pueden dar una sugerencia para reparar el archivo automáticamente (después del error) y algunos programas no pueden repararlo. Depende del nivel de corrupción y la funcionalidad incorporada de la aplicación para manejar el error. Hay varias causas de corrupción.

Un video que se ha dañado. Advertencia: este video contiene imágenes brillantes y parpadeantes.

Hay dos tipos de corrupción de datos asociados con los sistemas informáticos: no detectados y detectados. La corrupción de datos no detectada, también conocida como corrupción de datos silenciosa , da como resultado los errores más peligrosos, ya que no hay indicios de que los datos sean incorrectos. La corrupción de datos detectada puede ser permanente con la pérdida de datos, o puede ser temporal cuando alguna parte del sistema puede detectar y corregir el error; no hay corrupción de datos en el último caso.

La corrupción de datos puede ocurrir en cualquier nivel de un sistema, desde el host hasta el medio de almacenamiento. Los sistemas modernos intentan detectar la corrupción en muchas capas y luego recuperar o corregir la corrupción; esto casi siempre tiene éxito, pero muy raramente la información que llega a la memoria del sistema está dañada y puede causar resultados impredecibles.

La corrupción de datos durante la transmisión tiene varias causas. La interrupción de la transmisión de datos provoca la pérdida de información . Las condiciones ambientales pueden interferir con la transmisión de datos, especialmente cuando se trata de métodos de transmisión inalámbrica. Las nubes pesadas pueden bloquear las transmisiones por satélite. Las redes inalámbricas son susceptibles a la interferencia de dispositivos como hornos microondas.

Las fallas de hardware y software son las dos causas principales de la pérdida de datos . La radiación de fondo , los golpes de cabeza y el envejecimiento o el desgaste del dispositivo de almacenamiento se incluyen en la primera categoría, mientras que las fallas del software generalmente ocurren debido a errores en el código. Los rayos cósmicos causan la mayoría de errores leves en DRAM. [1]

Algunos errores pasan desapercibidos, sin ser detectados por el firmware del disco o el sistema operativo del host; estos errores se conocen como corrupción de datos silenciosa .

Hay muchas fuentes de error más allá del propio subsistema de almacenamiento en disco. Por ejemplo, los cables pueden estar ligeramente sueltos, la fuente de alimentación puede no ser confiable, [2] vibraciones externas como un sonido fuerte, [3] la red puede introducir daños no detectados, [4] radiación cósmica y muchas otras causas de errores de memoria blanda. , etc. En 39.000 sistemas de almacenamiento que se analizaron, los errores de firmware representaron entre el 5 y el 10% de las fallas de almacenamiento. [5] En general, las tasas de error observadas por un estudio del CERN sobre corrupción silenciosa son mucho más altas que uno de cada 10 16 bits. [6] Tienda online Amazon.com ha reconocido tasas similares de corrupción de datos en sus sistemas. [7]

Un problema es que la capacidad de las unidades de disco duro ha aumentado sustancialmente, pero sus tasas de error permanecen sin cambios. La tasa de corrupción de datos siempre ha sido aproximadamente constante en el tiempo, lo que significa que los discos modernos no son mucho más seguros que los discos antiguos. En los discos antiguos, la probabilidad de corrupción de datos era muy pequeña porque almacenaban pequeñas cantidades de datos. En los discos modernos, la probabilidad es mucho mayor porque almacenan muchos más datos, aunque no son más seguros. De esa manera, la corrupción silenciosa de datos no ha sido una preocupación seria, mientras que los dispositivos de almacenamiento permanecieron relativamente pequeños y lentos. En los tiempos modernos y con la llegada de unidades más grandes y configuraciones RAID muy rápidas, los usuarios pueden transferir 10 16 bits en un tiempo razonablemente corto, alcanzando así fácilmente los umbrales de corrupción de datos. [8]

A modo de ejemplo, el creador de ZFS , Jeff Bonwick, afirmó que la base de datos rápida de Greenplum , que es una empresa de software de base de datos especializada en análisis y almacenamiento de datos a gran escala, se enfrenta a una corrupción silenciosa cada 15 minutos. [9] Como otro ejemplo, un estudio de la vida real realizado por NetApp en más de 1,5 millones de HDD durante 41 meses encontró más de 400.000 corrupciones de datos silenciosas, de las cuales más de 30.000 no fueron detectadas por el controlador RAID de hardware. Otro estudio, realizado por el CERN durante seis meses y que involucró alrededor de 97  petabytes de datos, encontró que alrededor de 128  megabytes de datos se corrompieron permanentemente. [10] [11]

La corrupción de datos silenciosa puede resultar en fallas en cascada , en las que el sistema puede funcionar durante un período de tiempo con un error inicial no detectado que causa cada vez más problemas hasta que finalmente se detecta. [12] Por ejemplo, una falla que afecte a los metadatos del sistema de archivos puede resultar en que varios archivos se dañen parcialmente o se vuelvan completamente inaccesibles ya que el sistema de archivos se usa en su estado dañado.

Cuando la corrupción de datos se comporta como un proceso de Poisson , donde cada bit de datos tiene una probabilidad baja independientemente de ser cambiado, la corrupción de datos generalmente se puede detectar mediante el uso de sumas de verificación y, a menudo, se puede corregir mediante el uso de códigos de corrección de errores .

Si se detecta una corrupción de datos incorregible, se pueden aplicar procedimientos como la retransmisión automática o la restauración de copias de seguridad . Ciertos niveles de matrices de discos RAID tienen la capacidad de almacenar y evaluar bits de paridad para datos en un conjunto de discos duros y pueden reconstruir datos corruptos en caso de falla de uno o varios discos, según el nivel de RAID implementado. Algunas arquitecturas de CPU emplean varias comprobaciones transparentes para detectar y mitigar la corrupción de datos en cachés de CPU , búfer de CPU y canalizaciones de instrucciones ; un ejemplo es la tecnología Intel Instruction Replay , que está disponible en los procesadores Intel Itanium . [13]

Muchos errores son detectados y corregidos por las unidades de disco duro utilizando los códigos ECC [14] que se almacenan en el disco para cada sector. Si la unidad de disco detecta varios errores de lectura en un sector, puede hacer una copia del sector defectuoso en otra parte del disco, reasignando el sector defectuoso del disco a un sector de reserva sin la participación del sistema operativo (aunque esto puede se retrasará hasta la próxima escritura en el sector). Esta "corrección silenciosa" se puede monitorear usando SMART y las herramientas disponibles para la mayoría de los sistemas operativos para verificar automáticamente la unidad de disco en busca de fallas inminentes al observar el deterioro de los parámetros SMART.

Algunos sistemas de archivos , como Btrfs , HAMMER , ReFS y ZFS , utilizan datos internos y sumas de comprobación de metadatos para detectar daños silenciosos en los datos. Además, si se detecta una corrupción y el sistema de archivos utiliza mecanismos RAID integrados que proporcionan redundancia de datos , dichos sistemas de archivos también pueden reconstruir los datos corruptos de forma transparente. [15] Este enfoque permite una protección mejorada de la integridad de los datos que cubre todas las rutas de datos, lo que generalmente se conoce como protección de datos de un extremo a otro, en comparación con otros enfoques de integridad de datos que no abarcan diferentes capas en la pila de almacenamiento y permiten que los datos se dañen. ocurren mientras los datos traspasan los límites entre las diferentes capas. [dieciséis]

La depuración de datos es otro método para reducir la probabilidad de corrupción de datos, ya que los errores de disco se detectan y recuperan antes de que se acumulen varios errores y superen el número de bits de paridad. En lugar de verificar la paridad en cada lectura, la paridad se verifica durante un escaneo regular del disco, a menudo realizado como un proceso en segundo plano de baja prioridad. Tenga en cuenta que la operación de "limpieza de datos" activa una verificación de paridad. Si un usuario simplemente ejecuta un programa normal que lee datos del disco, entonces la paridad no se verificará a menos que la verificación de paridad en la lectura sea compatible y habilitada en el subsistema del disco.

Si se emplean los mecanismos adecuados para detectar y remediar la corrupción de datos, se puede mantener la integridad de los datos. Esto es particularmente importante en aplicaciones comerciales (por ejemplo, banca ), donde un error no detectado podría corromper el índice de una base de datos o cambiar los datos para afectar drásticamente el saldo de una cuenta, y en el uso de datos encriptados o comprimidos , donde un pequeño error puede causar un gran impacto. conjunto de datos inutilizable. [6]

  • Varios recursos:
    • Degradación de datos , también llamada podredumbre de datos
    • Ciencias de la Computación
    • Integridad de los datos
    • Integridad de la base de datos
    • Endurecimiento por radiación
    • Podredumbre de software , también llamado bit rot
  • Contramedidas:
    • Campo de integridad de datos
    • Memoria ECC
    • Corrección de errores hacia adelante
    • Lista de software de recuperación de datos
    • Parchive
    • REDADA
    • Corrección de errores de Reed-Solomon

  1. ^ Scientific American (21 de julio de 2008). "Tormentas solares: hechos rápidos" . Nature Publishing Group . Archivado desde el original el 26 de diciembre de 2010 . Consultado el 8 de diciembre de 2009 .
  2. ^ Eric Lowe (16 de noviembre de 2005). "¡ZFS salva el día (-ta)!" . Oracle - Volcados del núcleo del cerebro de un hacker de kernel - Blog de Eric Lowe . Oráculo. Archivado desde el original (Blog) el 5 de febrero de 2012 . Consultado el 9 de junio de 2012 .
  3. ^ bcantrill (31 de diciembre de 2008). "Gritando en el centro de datos" (archivo de video) . YouTube . Archivado desde el original el 3 de julio de 2012 . Consultado el 9 de junio de 2012 .
  4. ^ jforonda (31 de enero de 2007). "El puerto FC defectuoso cumple con ZFS" (Blog) . Blogger: fuera de la caja . Archivado desde el original el 26 de abril de 2012 . Consultado el 9 de junio de 2012 .
  5. ^ "¿Son los discos el contribuyente dominante de las fallas de almacenamiento? Un estudio completo de las características de fallas del subsistema de almacenamiento" (PDF) . USENIX . Consultado el 18 de enero de 2014 .
  6. ^ a b Bernd Panzer-Steindel (8 de abril de 2007). "Borrador 1.3" . Integridad de los datos . CERN. Archivado desde el original el 13 de octubre de 2012 . Consultado el 9 de junio de 2012 .
  7. ^ "Observaciones sobre errores, correcciones y confianza de sistemas dependientes" . Archivado desde el original el 29 de octubre de 2013.
  8. ^ "Corrupción de datos silenciosa en matrices de discos: una solución" . COMITÉ EJECUTIVO NACIONAL. 2009. Archivado desde el original (PDF) el 29 de octubre de 2013 . Consultado el 14 de diciembre de 2020 .
  9. ^ "Una conversación con Jeff Bonwick y Bill Moore" . Asociación para Maquinaria de Computación. 15 de noviembre de 2007. Archivado desde el original el 16 de julio de 2011 . Consultado el 14 de diciembre de 2020 .
  10. ^ David SH Rosenthal (1 de octubre de 2010). "Mantener las brocas seguras: ¿Qué tan difícil puede ser?" . Cola de ACM . Archivado desde el original el 17 de diciembre de 2013 . Consultado el 2 de enero de 2014 .
  11. ^ Lakshmi N. Bairavasundaram; Garth R. Goodson; Pasupatía Shankar; Jiri Schindler (junio de 2007). Un análisis de los errores del sector latente en las unidades de disco . Actas de la Conferencia Internacional sobre Medidas y Modelado de Sistemas Computacionales (SIGMETRICS'07) . San Diego, California, Estados Unidos: ACM. págs. 289–300. CiteSeerX  10.1.1.63.1412 . doi : 10.1145 / 1254882.1254917 . ISBN 9781595936394. S2CID  14164251 . Consultado el 9 de junio de 2012 .
  12. ^ David Fiala; Frank Mueller; Christian Engelmann; Rolf Riesen; Kurt Ferreira; Ron Brightwell (noviembre de 2012). "Detección y corrección de la corrupción silenciosa de datos para la informática de alto rendimiento a gran escala" (PDF) . fiala.me . IEEE . Archivado (PDF) desde el original el 7 de noviembre de 2014 . Consultado el 26 de enero de 2015 .
  13. ^ Steve Bostian (2012). "Aumente la confiabilidad para aplicaciones de misión crítica: tecnología Intel de reproducción de instrucciones" (PDF) . Intel . Archivado (PDF) desde el original el 2 de febrero de 2016 . Consultado el 27 de enero de 2016 .
  14. ^ "Leer la gravedad de los errores y la lógica de gestión de errores" . Archivado desde el original el 7 de abril de 2012 . Consultado el 4 de abril de 2012 .
  15. ^ Margaret Bierman; Lenz Grimmer (agosto de 2012). "Cómo utilizo las capacidades avanzadas de Btrfs" . Oracle Corporation . Archivado desde el original el 2 de enero de 2014 . Consultado el 2 de enero de 2014 .
  16. ^ Yupu Zhang; Abhishek Rajimwale; Andrea C. Arpaci-Dusseau; Remzi H. Arpaci-Dusseau (4 de febrero de 2010). "Integridad de datos de un extremo a otro para sistemas de archivos: un estudio de caso de ZFS" (PDF) . Departamento de Ciencias de la Computación, Universidad de Wisconsin. Archivado (PDF) desde el original el 26 de junio de 2011 . Consultado el 12 de agosto de 2014 .

  • SoftECC: un sistema para la verificación de la integridad de la memoria del software
  • Una biblioteca de corrección y detección de errores DRAM basada en software y sintonizable para HPC
  • Detección y corrección de la corrupción silenciosa de datos para computación de alto rendimiento a gran escala
  • Integridad de datos de un extremo a otro para sistemas de archivos: un caso de estudio de ZFS
  • Errores de DRAM en la naturaleza: un estudio de campo a gran escala
  • Un estudio sobre corrupciones silenciosas y un documento asociado sobre la integridad de los datos (CERN, 2007)
  • Protección de datos de extremo a extremo en unidades de disco duro SAS y de canal de fibra (HGST)