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 proporcionar integridad de datos de extremo a extremo o ausencia de errores.
En general, cuando se produce corrupción de 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 una falla 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 corrupto 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 basura o inoperativo, 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 del hardware físico de la computadora, todo el sistema puede quedar inutilizable.
Algunos programas pueden sugerir reparar el archivo automáticamente (después del error) y otros no pueden repararlo. Depende del nivel de corrupción y de la funcionalidad integrada de la aplicación para manejar el error. Hay varias causas de la corrupción.
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 , produce 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 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 muchos niveles 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 provocar resultados impredecibles.
La corrupción de datos durante la transmisión tiene una variedad de 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 por satélite. Las redes inalámbricas son susceptibles a interferencias 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 choques de cabeza y el envejecimiento o desgaste del dispositivo de almacenamiento entran 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 los errores leves en la DRAM. [1]
Algunos errores pasan desapercibidos y no son detectados por el firmware del disco ni por el sistema operativo 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 pueden estar ligeramente sueltos, el suministro de energía puede no ser confiable, [3] vibraciones externas como un sonido fuerte, [4] la red puede introducir daños no detectados, [5] 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. [6] En total, las tasas de error observadas por un estudio del CERN sobre la corrupción silenciosa son muy superiores a uno de cada 10 16 bits. [7] La tienda web Amazon.com ha reconocido tasas altas de corrupción de datos similares en sus sistemas. [8] En 2021, se identificaron núcleos de procesador defectuosos como una causa adicional en publicaciones de Google y Facebook; Se descubrió que los núcleos estaban defectuosos a un ritmo de varios entre miles de núcleos. [9] [10]
Un problema es que las capacidades de las unidades de disco duro han 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 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 los datos no ha sido una preocupación grave mientras los dispositivos de almacenamiento siguieran siendo 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 son capaces de transferir de 10 a 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 HDD durante 41 meses encontró más de 400.000 daños silenciosos en los datos, de los cuales más de 30.000 no fueron detectados por el controlador RAID de hardware (sólo detectados durante fregado ). [13] 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 y silenciosamente en algún lugar del camino desde la red al disco. [14]
La corrupción silenciosa de los datos puede provocar fallos en cascada , en los que el sistema puede funcionar durante un período de tiempo sin detectar un error inicial, lo que provoca cada vez más problemas hasta que finalmente se detecta. [15] Por ejemplo, una falla que afecte los metadatos del sistema de archivos puede provocar que varios archivos se dañen parcialmente o se vuelvan completamente inaccesibles ya que el sistema de archivos se utiliza en su estado corrupto.
Cuando la corrupción de datos se comporta como un proceso de Poisson , donde cada bit de datos tiene una baja probabilidad 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 incorregible, 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 las cachés de la CPU , los buffers de la CPU y los canales de instrucciones ; un ejemplo es la tecnología Intel Instrucciones Replay , que está disponible en los procesadores Intel Itanium . [dieciséis]
Las unidades de disco duro detectan y corrigen muchos errores utilizando 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 hacer una copia del sector defectuoso en otra parte del disco, reasignando el sector fallido del disco a un sector de repuesto sin la participación del sistema operativo (aunque esto puede retrasarse hasta la próxima escritura al sector). Esta "corrección silenciosa" se puede monitorear usando SMART y 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 sumas de comprobación de datos y metadatos internos 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 datos corruptos de forma transparente. [18] Este enfoque permite una protección de integridad de datos mejorada 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 la corrupción de datos ocurren 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 del disco se detectan y recuperan antes de que se acumulen múltiples errores y superen la cantidad de bits de paridad. En lugar de verificar la paridad en cada lectura, la paridad se verifica 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, entonces la paridad no se verificará a menos que la verificación de paridad en lectura sea compatible y habilitada en el subsistema del disco.
Si se emplean mecanismos apropiados 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 cifrados o comprimidos , donde un pequeño error puede causar un gran daño. conjunto de datos inutilizable. [7]
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 protegidos durante mucho tiempo, sino también a las CPU de las computadoras.