# Depuración de datos

Federico Reynoso
La depuración de datos es una técnica de corrección de errores que utiliza una tarea en segundo plano para inspeccionar periódicamente la memoria principal o el almacenamiento en busca de errores, y luego corregir los errores detectados utilizando datos redundantes en forma de diferentes sumas de comprobación o copias de datos. La limpieza de datos reduce la probabilidad de que se acumulen errores corregibles únicos, lo que reduce los riesgos de errores incorregibles.
La integridad de los datos es una preocupación prioritaria en la escritura, lectura, almacenamiento, transmisión o procesamiento de los datos informáticos en los sistemas operativos informáticos y en los sistemas de almacenamiento y transmisión de datos informáticos. Sin embargo, solo algunos de los sistemas de archivos existentes y utilizados actualmente ofrecen suficiente protección contra la corrupción de datos.
Para solucionar este problema, la limpieza de datos proporciona comprobaciones de rutina de todas las inconsistencias en los datos y, en general, la prevención de fallos de hardware o software. Esta función de "fregado" ocurre comúnmente en la memoria, arreglos de discos, sistemas de archivos o FPGA como un mecanismo de detección y corrección de errores.

## RAID

Con la búsqueda de datos, un controlador RAID puede leer periódicamente todas las unidades de disco duro en una matriz RAID y verificar si hay bloques defectuosos antes de que las aplicaciones puedan acceder a ellos. Esto reduce la probabilidad de corrupción silenciosa de datos y la pérdida de datos debido a errores de nivel de bits..
En los entornos RAID de Dell PowerEdge, una función llamada "lectura de patrullaje" puede realizar la limpieza de datos y el mantenimiento preventivo.
Linux MD RAID, como implementación de software RAID, hace que las comprobaciones de consistencia de los datos estén disponibles y proporciona una reparación automática de las inconsistencias detectadas en los datos. Dichos procedimientos se realizan generalmente configurando un trabajo cron semanal. El mantenimiento se realiza mediante la verificación de las operaciones, la reparación o la inactividad de cada uno de los dispositivos MD examinados. Los estados de todas las operaciones realizadas, así como los estados generales de RAID, están siempre disponibles

## Sistemas de archivo
### Btrfs

Como un sistema de archivos de copia en escritura (CoW) para Linux, Btrfs proporciona aislamiento de fallas, detección y corrección de daños, y limpieza del sistema de archivos. Si el sistema de archivos detecta una discrepancia en la suma de comprobación al leer un bloque, primero intenta obtener (o crear) una buena copia de este bloque desde otro dispositivo, si se están utilizando sus técnicas de duplicación interna o RAID.
Btrfs puede iniciar una verificación en línea de todo el sistema de archivos al iniciar un trabajo de limpieza del sistema de archivos que se realiza en segundo plano. El trabajo de limpieza explora todo el sistema de archivos en busca de integridad e intenta automáticamente informar y reparar cualquier bloque defectuoso que encuentre en el camino.

### ZFS

Las características de ZFS, que es un sistema de archivos combinado y un administrador de volúmenes lógicos, incluyen la verificación contra los modos de corrupción de datos, la verificación continua de la integridad y la reparación automática. Sun Microsystems diseñó ZFS desde cero con un enfoque en la integridad de los datos y para proteger los datos en discos contra problemas como los errores de firmware del disco y las escrituras fantasma.
ZFS Proporciona una utilidad de reparación llamada scrub que examina y repara la corrupción del proceso de silenciamiento causada por podredumbre de datos y otros problemas..

## Memoria

Debido a la alta densidad de integración de los chips de memoria de computadora contemporáneos, las estructuras celulares de memoria individuales se volvieron lo suficientemente pequeñas como para ser vulnerables a los rayos cósmicos y / o la emisión de partículas alfa. Los errores causados por estos fenómenos se llaman errores blandos. Esto puede ser un problema para las memorias basadas en DRAM y SRAM.
La búsqueda de memoria realiza la detección de errores y la corrección de errores de bits en la RAM de la computadora mediante el uso de la memoria ECC, otras copias de los datos u otros códigos de detección de errores.

## FPGA

El scrubbing es una técnica utilizada para reprogramar un FPGA. Se puede usar periódicamente para evitar la acumulación de errores sin la necesidad de encontrar uno en el flujo de bits de configuración, simplificando así el diseño.
Se pueden tomar numerosos enfoques con respecto a la limpieza, desde la simple reprogramación del FPGA hasta la reconfiguración parcial. El método más simple de depuración es reprogramar completamente el FPGA a una cierta frecuencia periódica (por lo general, 1/10 de la tasa de alteración calculada). Sin embargo, el FPGA no está operativo durante ese tiempo de reprogramación, del orden de micro a milisegundos. Para situaciones que no pueden tolerar ese tipo de interrupción, la reconfiguración parcial está disponible. Esta técnica permite que el FPGA se reprograme mientras está operativo