stringtranslate.com

Corrupción de datos

Corrupción de datos de fotografías; en este caso, resultado de una recuperación fallida de datos de una unidad de disco duro

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

En general, cuando se produce una corrupción de datos, un archivo que contiene esos datos producirá resultados inesperados cuando el sistema o la aplicación relacionada acceda a él. Los resultados pueden variar desde una pequeña pérdida 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 el archivo podría no abrirse o podría abrirse con algunos de los datos dañados (o en algunos casos, completamente dañados, 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 archivos intencionalmente 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 involuntariamente cuando accede a ellos. Si un virus o troyano con este método de carga útil logra alterar archivos críticos para el funcionamiento del software del sistema operativo o el hardware físico de la computadora, todo el sistema puede quedar inutilizable.

Algunos programas pueden sugerir la reparación automática del archivo (después del error), mientras que otros no pueden hacerlo. Esto depende del nivel de corrupción y de la funcionalidad integrada de la aplicación para gestionar el error. Existen varias causas de la corrupción.

Descripción general

Foto de un Atari 2600 con RAM corrupta.
Un video que ha sido dañado. Advertencia de epilepsia: este video contiene imágenes brillantes y parpadeantes.

Existen dos tipos de corrupción de datos asociados con los sistemas informáticos: no detectada y detectada. La corrupción de datos no detectada, también conocida como corrupción de datos silenciosa , da lugar a los errores más peligrosos, ya que no hay ninguna indicación 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 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 muchas capas y luego recuperarla o corregirla; 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 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 cuando se trata 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.

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

Silencioso

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

Existen 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 fiable, [3] vibraciones externas como un sonido fuerte, [4] la red puede introducir corrupción no detectada, [5] radiación cósmica y muchas otras causas de errores de memoria blanda , etc. En 39.000 sistemas de almacenamiento analizados, los errores de firmware representaron entre el 5 y el 10 % de los fallos de almacenamiento. [6] En total, 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. [7] La ​​tienda web Amazon.com ha reconocido tasas de corrupción de datos altas similares en sus sistemas. [8] En 2021, los núcleos de procesador defectuosos se identificaron como una causa adicional en publicaciones de Google y Facebook; se encontró que los núcleos estaban defectuosos a una tasa de varios miles de núcleos. [9] [10]

Un problema es que las capacidades de los discos duros han aumentado sustancialmente, pero sus tasas de error permanecen invariables. 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 cantidades minúsculas 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 grave mientras que los dispositivos de almacenamiento se mantuvieron 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. [11]

Como ejemplo, el creador de ZFS , Jeff Bonwick, afirmó que la base de datos rápida de Greenplum , que es una empresa de software de bases de datos especializada en almacenamiento y análisis de datos a gran escala, se enfrenta a una corrupción silenciosa cada 15 minutos. [12] Como otro ejemplo, un estudio de la vida real realizado por NetApp en más de 1,5 millones de discos duros 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 (solo se detectaron durante el depurador ). [13] Otro estudio, realizado por CERN durante seis meses y que involucró alrededor de 97  petabytes de datos, encontró que alrededor de 128  megabytes de datos se corrompieron permanentemente de manera silenciosa en algún lugar de la ruta de la red al disco. [14]

La corrupción silenciosa de datos puede dar lugar a fallos en cascada , en los 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. [15] Por ejemplo, un fallo que afecta a los metadatos del sistema de archivos puede provocar que varios archivos se dañen parcialmente o se vuelvan completamente inaccesibles mientras el sistema de archivos se utiliza en su estado dañado.

Contramedidas

Cuando la corrupción de datos se comporta como un proceso de Poisson , donde cada bit de datos tiene una probabilidad independientemente baja de ser modificado, la corrupción de datos generalmente se puede detectar mediante el uso de sumas de comprobació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 que no se puede corregir, 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 dañados 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úferes de CPU y canales de instrucciones ; un ejemplo es la tecnología Intel Instruction Replay , que está disponible en los procesadores Intel Itanium . [16]

Los discos duros detectan y corrigen muchos errores mediante los códigos ECC [17] que se almacenan en el disco para cada sector. Si el 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 repuesto sin la intervención del sistema operativo (aunque esto puede demorarse hasta la siguiente escritura en el sector). Esta "corrección silenciosa" se puede supervisar mediante SMART y las herramientas disponibles para la mayoría de los sistemas operativos para comprobar automáticamente si el disco tiene fallos inminentes observando el deterioro de los parámetros SMART.

Algunos sistemas de archivos , como Btrfs , HAMMER , ReFS y ZFS , utilizan la suma de comprobación de datos y metadatos internos 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 datos dañados de forma transparente. [18] Este enfoque permite una mejor protección de la integridad de los datos que cubre todas las rutas de datos, lo que generalmente 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 los límites entre las diferentes capas. [19]

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 se recuperan antes de que se acumulen varios errores y superen la cantidad de bits de paridad. En lugar de comprobar la paridad en cada lectura, la paridad se comprueba durante un análisis regular del disco, que a menudo se realiza como un proceso en segundo plano de baja prioridad. La operación de "depuración de datos" activa una comprobación de paridad. Si un usuario simplemente ejecuta un programa normal que lee datos del disco, no se comprobará la paridad a menos que la comprobación de paridad en la lectura sea compatible y esté habilitada en el subsistema del disco.

Si se emplean mecanismos adecuados para detectar y remediar la corrupción de datos, se puede mantener la integridad de los mismos. Esto es particularmente importante en aplicaciones comerciales (por ejemplo, banca ), donde un error no detectado podría corromper un índice de base de datos o cambiar los datos para afectar drásticamente 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 quede inutilizable. [7]

Véase también

Referencias

  1. ^ Scientific American (21 de julio de 2008). «Tormentas solares: datos breves». Nature Publishing Group . Archivado desde el 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 que afecta a toda la industria y 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!". Oracle: volcados de memoria del cerebro de un hacker del núcleo: blog de Eric Lowe . Oracle. Archivado desde el original (blog) el 5 de febrero de 2012. Consultado el 9 de junio de 2012 .
  4. ^ bcantrill (31 de diciembre de 2008). "Gritos en el centro de datos" (archivo de vídeo) . YouTube . Archivado desde el original el 3 de julio de 2012. Consultado el 9 de junio de 2012 .
  5. ^ jforonda (31 de enero de 2007). "Un puerto FC defectuoso cumple con ZFS" (Blog) . Blogger – Outside the Box . Archivado desde el original el 26 de abril de 2012. Consultado el 9 de junio de 2012 .
  6. ^ "¿Son los discos el principal contribuyente a las fallas de almacenamiento? Un estudio exhaustivo de las características de falla del subsistema de almacenamiento" (PDF) . USENIX. Archivado (PDF) desde el original el 2022-01-25 . Consultado el 2014-01-18 .
  7. ^ por Bernd Panzer-Steindel (8 de abril de 2007). «Borrador 1.3». Integridad de los datos . CERN. Archivado desde el original el 27 de octubre de 2012 . Consultado el 9 de junio de 2012 .
  8. ^ "Observaciones sobre errores, correcciones y confianza en sistemas dependientes". Archivado desde el original el 29 de octubre de 2013.
  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 de actualidad en sistemas operativos . págs. 9–16. doi :10.1145/3458336.3465297. ISBN 9781450384384. S2CID  235311320. Archivado (PDF) del original el 2021-06-03 . Consultado el 2021-06-02 .
  10. ^ HotOS 2021: núcleos que no cuentan (Fun Hardware), archivado desde el original el 22 de diciembre de 2021 , consultado el 2 de junio de 2021
  11. ^ "Corrupción silenciosa de datos en matrices de discos: una solución". NEC. 2009. Archivado desde el original (PDF) el 29 de octubre de 2013. Consultado 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 desde el original el 16 de julio de 2011. Consultado el 14 de diciembre de 2020 .
  13. ^ David SH Rosenthal (1 de octubre de 2010). "Keeping Bits Safe: How Hard Can It Be?". Cola de ACM . Archivado desde el original el 17 de diciembre de 2013. Consultado 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 de Usenix sobre tecnologías de archivos y almacenamiento.
  14. ^ Kelemen, P. Corrupciones silenciosas (PDF) . Octavo Taller Anual sobre Clusters 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 la corrupción silenciosa de datos para computación de alto rendimiento a gran escala" (PDF) . fiala.me . IEEE . Archivado (PDF) desde el original el 2014-11-07 . Consultado el 2015-01-26 .
  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) desde el original el 2016-02-02 . Consultado el 2016-01-27 .
  17. ^ "Lectura de la gravedad de los errores y lógica de gestión de errores". Archivado desde el 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 desde el original el 2 de enero de 2014. Consultado 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 . Consultado el 12 de agosto de 2014 . 

Enlaces externos