Articulo de referencia

Corrupción de datos

Corrupción de datos fotográficos; en este caso, resultado de una recuperación de datos fallida de un disco duro. La corrupción de datos es la alteración no deseada de los datos ...

Corrupción de datos fotográficos; en este caso, resultado de una recuperación de datos fallida de un disco duro.

La corrupción de datos es la alteración no deseada de los datos informáticos que se produce durante la escritura, la lectura, el almacenamiento, la transmisión o el procesamiento. Los sistemas informáticos utilizan diversas medidas para garantizar la integridad de los datos de extremo a extremo , es decir, la ausencia de errores.

En general, cuando se produce una corrupción de datos, un archivo que contiene dichos datos generará resultados inesperados al ser accedido por el sistema o la aplicación correspondiente. Los resultados pueden variar desde una pérdida menor de datos hasta un fallo del sistema. Por ejemplo, si un archivo de documento está dañado, al intentar abrirlo con un editor de documentos, es posible que aparezca un mensaje de error ; por lo tanto, el archivo podría no abrirse o abrirse con algunos datos dañados (o, en algunos casos, completamente dañados, lo que haría que el documento fuera ilegible). La imagen adjunta 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 archivos intencionadamente como parte de su carga útil , generalmente sobrescribiéndolos con código inoperante o basura, mientras que un virus no malicioso también puede dañar archivos de forma involuntaria al acceder a ellos. Si un virus o troyano con este método de carga útil logra alterar archivos críticos para el funcionamiento del sistema operativo o el hardware del equipo, todo el sistema puede quedar inutilizable.

Algunos programas sugieren reparar el archivo automáticamente (tras el error), mientras que otros no pueden hacerlo. Depende del grado de corrupción y de la funcionalidad integrada de la aplicación para gestionar el error. Existen diversas causas de corrupción.

Descripción general

Imagen de pantalla de un Atari 2600 con la memoria RAM dañada.
Un video que ha sido corrompido, mostrando luz brillante intermitente y color

Existen dos tipos de corrupción de datos en los sistemas informáticos: la no detectada y la detectada. La corrupción de datos no detectada, también conocida como corrupción silenciosa , provoca 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 consiguiente pérdida de datos, o temporal, cuando alguna parte del sistema es capaz de detectar y corregir el error; en este último caso, no hay corrupción de datos.

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 múltiples capas y luego recuperarla o corregirla; esto casi siempre tiene éxito, pero en raras ocasiones la información que llega a la memoria del sistema está corrupta y puede causar resultados impredecibles.

La corrupción de datos durante la transmisión tiene diversas 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 en el caso de métodos de transmisión inalámbrica. Las nubes densas pueden bloquear las transmisiones satelitales. Las redes inalámbricas son susceptibles a la interferencia de dispositivos como los hornos microondas.

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

Silencioso

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 silenciosa de datos . [ 2 ]

Hay muchas fuentes de error más allá del propio subsistema de almacenamiento en disco. Por ejemplo, los cables podrían estar ligeramente sueltos, la fuente de alimentación podría ser poco fiable, [ 3 ] vibraciones externas como un ruido fuerte, [ 4 ] la red podría introducir corrupción no detectada, [ 5 ] radiación cósmica y muchas otras causas de errores de memoria leves , etc. En 39.000 sistemas de almacenamiento que se analizaron, los errores de firmware representaron entre el 5 y el 10 % de los fallos de almacenamiento. [ 6 ] Las tasas de error observadas por un estudio del CERN sobre corrupción silenciosa son mucho más altas que una en cada 10¹⁶ bits. [ 7 ] Amazon Web Services reconoció que la corrupción de datos fue la causa de una interrupción generalizada de su red de almacenamiento Amazon S3 en 2008. [ 8 ] En 2021, se identificaron núcleos de procesador defectuosos como una causa adicional en publicaciones de Google y Facebook; se encontró que los núcleos eran defectuosos a una tasa de varios en miles de núcleos. [ 9 ] [ 10 ]

Un problema es que la capacidad de los discos duros ha aumentado sustancialmente, pero sus tasas de error permanecen inalteradas. La tasa de corrupción de datos siempre ha sido prácticamente constante, lo que significa que los discos modernos no son mucho más seguros que los antiguos. En los discos antiguos, la probabilidad de corrupción de datos era muy baja porque almacenaban cantidades ínfimas de datos. En los discos modernos, la probabilidad es mucho mayor porque almacenan muchos más datos, sin que ello implique una mayor seguridad. De este modo, la corrupción silenciosa de datos no ha sido una preocupación grave mientras los dispositivos de almacenamiento se mantuvieron relativamente pequeños y lentos. En la actualidad, con la llegada de discos de mayor capacidad y configuraciones RAID muy rápidas, los usuarios pueden transferir 10¹⁶ bits en un tiempo razonablemente corto, alcanzando así fácilmente los umbrales de corrupción de datos. [ 11 ]

Como ejemplo, Jeff Bonwick, creador de ZFS, afirmó que la base de datos rápida de Greenplum , una empresa de software de bases de datos especializada en almacenamiento y análisis de datos a gran escala, sufre corrupción silenciosa cada 15 minutos. [ 12 ] Otro ejemplo es un estudio real realizado por NetApp en más de 1,5 millones de discos duros durante 41 meses, que detectó más de 400 000 casos de corrupción silenciosa de datos, de los cuales más de 30 000 no fueron detectados por el controlador RAID de hardware (solo se detectaron durante la limpieza ). [ 13 ] Otro estudio, realizado por el CERN durante seis meses e involucrando aproximadamente 97 petabytes de datos, reveló que alrededor de 128 megabytes de datos se corrompieron de forma permanente y silenciosa en algún punto de la ruta desde la red hasta el disco. [ 14 ]  

La corrupción silenciosa de datos puede provocar fallos en cascada , en los que el sistema puede funcionar durante un tiempo con un error inicial no detectado, causando cada vez más problemas hasta que finalmente se detecta. [ 15 ] Por ejemplo, un fallo que afecte a los metadatos del sistema de archivos puede provocar que varios archivos resulten parcialmente dañados o completamente inaccesibles, ya que el sistema de archivos se utiliza en su estado corrupto.

Contramedidas

Cuando la corrupción de datos se comporta como un proceso de Poisson , donde cada bit de datos tiene una probabilidad baja e independiente de ser modificado, 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 (ECC).

Si se detecta una corrupción de datos irrecuperable, se pueden aplicar procedimientos como la retransmisión automática o la restauración a partir 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 fallo de uno o varios discos, según el nivel de RAID implementado. Algunas arquitecturas de CPU emplean diversas comprobaciones transparentes para detectar y mitigar la corrupción de datos en las cachés de la CPU , los búferes de la CPU y las canalizaciones de instrucciones ; un ejemplo es la tecnología Intel Instruction Replay , disponible en los procesadores Intel Itanium . [ 16 ]

Muchos errores son detectados y corregidos por las unidades de disco duro mediante los códigos ECC [ 17 ] , que se almacenan en el disco para cada sector. Si la unidad de disco detecta múltiples errores de lectura en un sector, puede crear una copia del sector defectuoso en otra parte del disco, reasignando el sector defectuoso a un sector de reserva sin la intervención del sistema operativo (aunque esto puede retrasarse hasta la siguiente escritura en el sector). Esta "corrección silenciosa" puede ser supervisada mediante SMART y herramientas disponibles para la mayoría de los sistemas operativos que comprueban automáticamente la unidad de disco en busca de fallos inminentes, observando el deterioro de los parámetros SMART.

Algunos sistemas de archivos , como Btrfs , HAMMER , ReFS y ZFS , utilizan comprobaciones internas de datos y metadatos para detectar la corrupción silenciosa de 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. [ 18 ] Este enfoque permite una mejor protección de la integridad de los datos que abarca todas las rutas de datos, lo que se conoce como protección de datos de extremo a extremo , en comparación con otros enfoques de integridad de datos que no abarcan diferentes capas en la pila de almacenamiento y permiten que se produzca la corrupción de datos mientras los datos pasan por los límites entre las diferentes capas. [ 19 ]

La limpieza de datos es otro método para reducir la probabilidad de corrupción de datos, ya que los errores del disco se detectan y se corrigen antes de que se acumulen y sobrepasen la cantidad de bits de paridad. En lugar de comprobar la paridad en cada lectura, se comprueba durante un escaneo regular del disco, que suele realizarse como un proceso en segundo plano de baja prioridad. La operación de "limpieza de datos" activa la comprobación de paridad. Si un usuario simplemente ejecuta un programa normal que lee datos del disco, la paridad no se comprobará a menos que la comprobación de paridad en lectura esté habilitada y sea compatible con el subsistema del disco.

Si se emplean mecanismos adecuados para detectar y corregir la corrupción de datos, se puede mantener la integridad de los mismos. Esto es particularmente importante en aplicaciones comerciales (por ejemplo, en el sector bancario ), donde un error no detectado podría corromper un índice de base de datos o modificar los datos de forma drástica, afectando el saldo de una cuenta, y en el uso de datos cifrados o comprimidos , donde un pequeño error puede hacer que un conjunto de datos extenso resulte inutilizable. [ 7 ]

Véase también

Referencias

  1. Scientific American (21 de julio de 2008). "Tormentas solares: datos clave" . Nature Publishing Group . Archivado del original el 26 de diciembre de 2010. Consultado el 8 de diciembre de 2009 .
  2. "Corrupción silenciosa de datos" . Google Inc. 2023. Consultado el 30 de enero de 2023. La corrupción silenciosa de datos (SDC), a veces denominada error silencioso de datos (SDE), es un problema generalizado en la industria que afecta no solo a la memoria, el almacenamiento y las redes protegidas durante mucho tiempo, sino también a las CPU de las computadoras.
  3. Eric Lowe (16 de noviembre de 2005). "¡ZFS salva el día (-ta)!" . Oracle – Volcados de memoria del cerebro de un hacker del kernel – Blog de Eric Lowe . Oracle. Archivado del original (Blog) el 5 de febrero de 2012 . Recuperado el 9 de junio de 2012 .
  4. bcantrill (31 de diciembre de 2008). "Gritando en el centro de datos" (archivo de vídeo) . YouTube . Archivado del original el 3 de julio de 2012. Recuperado el 9 de junio de 2012 .
  5. jforonda (31 de enero de 2007). "Un puerto FC defectuoso se encuentra con ZFS" (Blog) . Blogger – Outside the Box . Archivado del original el 26 de abril de 2012. Recuperado el 9 de junio de 2012 .
  6. "¿Son los discos el principal factor que contribuye a las fallas de almacenamiento? Un estudio exhaustivo de las características de falla del subsistema de almacenamiento" (PDF) . USENIX. Archivado (PDF) del original el 25/01/2022 . Consultado el 18/01/2014 .
  7. 1 2 Bernd Panzer-Steindel (8 de abril de 2007). "Borrador 1.3" . Integridad de los datos . CERN. Archivado del original el 27 de octubre de 2012. Recuperado el 9 de junio de 2012 .
  8. "Disponibilidad del servicio de AWS" . status.aws.amazon.com . Archivado del original el 25 de diciembre de 2008. Consultado el 11 de julio de 2025 .
  9. Hochschild, Peter H.; Turner, Paul Jack; Mogul, Jeffrey C.; Govindaraju, Rama Krishna; Ranganathan, Parthasarathy; Culler, David E.; Vahdat, Amin (2021). «Núcleos que no cuentan» (PDF) . Actas del Taller sobre Temas Candentes en Sistemas Operativos . págs. 9–16 . doi : 10.1145/3458336.3465297 . ISBN  9781450384384. S2CID 235311320 . Archivado (PDF) del original el 03-06-2021 . Recuperado el 02-06-2021 . 
  10. HotOS 2021: Núcleos que no cuentan (Hardware divertido) , 27 de mayo de 2021, archivado del original el 22 de diciembre de 2021 , recuperado el 2 de junio de 2021.
  11. "Corrupción silenciosa de datos en matrices de discos: una solución" . NEC. 2009. Archivado del original (PDF) el 29 de octubre de 2013. Recuperado el 14 de diciembre de 2020 .
  12. "Una conversación con Jeff Bonwick y Bill Moore" . Association for Computing Machinery. 15 de noviembre de 2007. Archivado del original el 16 de julio de 2011. Consultado el 14 de diciembre de 2020 .
  13. David SH Rosenthal (1 de octubre de 2010). "Mantener los bits seguros: ¿Qué tan difícil puede ser?" . ACM Queue . Archivado del original el 17 de diciembre de 2013. Recuperado el 2 de enero de 2014 .; Bairavasundaram, L., Goodson, G., Schroeder, B., Arpaci-Dusseau, AC, Arpaci-Dusseau, RH 2008. Un análisis de la corrupción de datos en la pila de almacenamiento. En Actas de la 6.ª Conferencia Usenix sobre Tecnologías de Archivos y Almacenamiento.
  14. Kelemen, P. Corrupciones silenciosas (PDF) . 8.º Taller anual sobre clústeres Linux para supercomputación.
  15. David Fiala; Frank Mueller; Christian Engelmann; Rolf Riesen; Kurt Ferreira; Ron Brightwell (noviembre de 2012). "Detección y corrección de corrupción silenciosa de datos para computación de alto rendimiento a gran escala" (PDF) . fiala.me . IEEE . Archivado (PDF) del original el 7 de noviembre de 2014. Recuperado el 26 de enero de 2015 .
  16. Steve Bostian (2012). "Aumente la confiabilidad para aplicaciones de misión crítica: tecnología de reproducción de instrucciones de Intel" (PDF) . Intel . Archivado (PDF) del original el 2 de febrero de 2016. Recuperado el 27 de enero de 2016 .
  17. "Leer sobre la gravedad de los errores y la lógica de gestión de errores" . Archivado del original el 7 de abril de 2012. Consultado el 4 de abril de 2012 .
  18. Margaret Bierman; Lenz Grimmer (agosto de 2012). "Cómo utilizo las capacidades avanzadas de Btrfs" . Oracle Corporation . Archivado del original el 2 de enero de 2014. Recuperado el 2 de enero de 2014 .
  19. Yupu Zhang; Abhishek Rajimwale; Andrea Arpaci-Dusseau ; Remzi H. Arpaci-Dusseau (2010). "Integridad de datos de extremo a extremo para sistemas de archivos: un estudio de caso de ZFS" (PDF) . Conferencia USENIX sobre tecnologías de archivos y almacenamiento . CiteSeerX 10.1.1.154.3979 . S2CID 5722163. Wikidata Q111972797 . Recuperado el 12 de agosto de 2014 .   
  • SoftECC: Un sistema para la comprobación de la integridad de la memoria del software
  • Biblioteca de detección y corrección de errores de DRAM configurable y basada en software para computación de alto rendimiento (HPC).
  • Detección y corrección de la corrupción silenciosa de datos para la computación de alto rendimiento a gran escala.
  • Integridad de datos de extremo a extremo para sistemas de archivos: un estudio de caso de ZFS
  • Errores de DRAM en entornos reales: un estudio de campo a gran escala.
  • Un estudio sobre la corrupción silenciosa y un documento relacionado sobre la integridad de los datos (CERN, 2007).
  • Protección de datos de extremo a extremo en discos duros SAS y Fibre Channel (HGST)