¿Se pueden degradar los datos de los discos duros sin advertir sobre el daño?
Todos nos preocupamos por mantener nuestros datos y archivos seguros e intactos, pero ¿es posible que los datos se dañen y puedan ser accedidos por un usuario sin notificación o advertencia de ningún tipo sobre el problema? La publicación de preguntas y respuestas de SuperUser de hoy tiene la respuesta a la pregunta de un lector preocupado.
La sesión de Preguntas y Respuestas de hoy nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, un grupo de sitios web de preguntas y respuestas impulsado por la comunidad..
Foto cortesía de generalización (Flickr)..
La pregunta
El lector Superusuario topo morto quiere saber si los datos en los discos duros se pueden degradar y acceder sin previo aviso sobre el daño:
¿Es posible que la degradación física de un disco duro pueda causar que los bits se "vuelquen" en el contenido de un archivo sin que el sistema operativo note el cambio y notifique al usuario sobre él cuando lea el archivo? Por ejemplo, ¿podría una "p" (01110000 binario) en un archivo de texto ASCII cambiar a "q" (01110001 binario), luego, cuando un usuario abre el archivo, verá "q" sin saber que se ha producido un error??
Me interesan las respuestas relacionadas con FAT, NTFS o ReFS (si esto marca una diferencia). Quiero saber si los sistemas operativos protegen a los usuarios de esto, o si deberíamos revisar nuestros datos para detectar variaciones entre las copias a lo largo del tiempo..
¿Se pueden degradar los datos en los discos duros y se puede acceder a ellos sin una advertencia sobre el daño??
La respuesta
El colaborador de Superusuario Guntram Blohm tiene la respuesta para nosotros:
Sí, hay una cosa llamada bit rot. Pero no, no afectará a un usuario inadvertido..
Cuando un disco duro escribe un sector en los discos, no solo escribe los bits de la misma forma en que están almacenados en la RAM, sino que utiliza una codificación para asegurarse de que no haya secuencias del mismo bit que sean demasiado largas. También agrega códigos ECC que le permiten reparar errores que afectan a unos pocos bits y detectar errores que afectan a más de unos pocos bits..
Cuando el disco duro lee el sector, comprueba estos códigos ECC y repara los datos si es necesario (y si es posible). Lo que suceda a continuación depende de las circunstancias y el firmware del disco duro, que está influenciado por la designación de la unidad.
- Si un sector se puede leer y no tiene problemas con el código ECC, se pasa al sistema operativo.
- Si un sector se puede reparar fácilmente, la versión reparada se puede escribir en el disco, volver a leer y luego verificar para determinar si el error fue aleatorio (es decir, rayos cósmicos, etc.) o si hay un error sistemático con los medios.
- Si el disco duro determina que hay un error en los medios, se reasigna el sector.
- Si un sector no puede leerse ni corregirse después de unos pocos intentos de lectura (en un disco duro designado como disco duro RAID), entonces el disco duro se rendirá, reasignará el sector y le dirá al controlador que hubo un problema. . Se basa en el controlador RAID para reconstruir el sector de los otros miembros de RAID y volver a escribirlo en el disco duro defectuoso, que luego lo almacena en el sector reasignado (que, con suerte, no tiene ningún problema).
- Si un sector no puede leerse o corregirse en el disco duro de una computadora de escritorio, entonces el disco duro realizará más intentos de leerlo. Dependiendo de la calidad del disco duro, esto podría implicar volver a colocar el cabezal, verificando si hay algunos bits que se voltean cuando se leen repetidamente, ver qué bits son los más débiles y algunas otras cosas. Si cualquiera de estos intentos tiene éxito, el disco duro reasignará el sector y volverá a escribir los datos reparados.
Esta es una de las principales diferencias entre los discos duros que se venden como discos duros de “escritorio”, “NAS / RAID” o “video vigilancia”. Un disco duro RAID puede darse por vencido rápidamente y hacer que el controlador repare el sector para evitar la latencia en el lado del usuario. Un disco duro de escritorio continuará intentando una y otra vez porque hacer que el usuario espere unos segundos es probablemente mejor que decirles que se perdió la información. Y un disco duro de video valora las tasas de datos constantes más que la recuperación de errores, ya que un marco dañado generalmente ni siquiera se notará.
En cualquier caso, el disco duro sabrá si ha habido un poco de pudrición, normalmente se recuperará de él, y si no puede, le dirá al controlador que a su vez le dirá al controlador que luego le dirá al sistema operativo. Luego, depende del sistema operativo presentar el error al usuario y actuar sobre él. Por eso Cybernard dice:
- Yo nunca he presenciado un solo error de bit, pero he visto muchos discos duros donde sectores completos han fallado.
El disco duro sabrá si hay algún problema con un sector, pero no sabrá qué bits han fallado. Un solo bit que ha fallado siempre será capturado por ECC.
Tenga en cuenta que los sistemas de archivos y chkdsk que se reparan automáticamente no tratan la reparación de datos dentro de los archivos. Estos están dirigidos a la corrupción dentro de la estructura del propio sistema de archivos, como una diferencia en el tamaño de un archivo entre la entrada del directorio y la cantidad de bloques asignados. La función de recuperación automática de NTFS detectará daños estructurales y evitará que afecte aún más a sus datos, pero no reparará ningún dato que ya esté dañado.
Por supuesto, hay otras razones por las que los datos pueden dañarse. Por ejemplo, una mala memoria RAM en un controlador puede alterar los datos antes de que incluso se envíe al disco duro. En ese caso, ningún mecanismo en el disco duro detectará o reparará los datos, y esta puede ser una de las razones por las que la estructura de un sistema de archivos está dañada. Otras razones incluyen errores de software, apagones al escribir en el disco duro (aunque esto se resuelve mediante el registro por diario del sistema de archivos), o controladores del sistema de archivos defectuosos (el controlador NTFS en Linux tiene como valor predeterminado solo la lectura por un largo tiempo desde que NTFS se diseñó a la inversa, no documentado, y los desarrolladores no confiaron en su propio código).
- Una vez tuve este escenario en el que una aplicación guardaría todos sus archivos en dos servidores diferentes en dos centros de datos diferentes para mantener una copia de trabajo de los datos disponibles en todas las circunstancias. Después de unos meses, notamos que aproximadamente el 0,1 por ciento de todos los archivos copiados no coincidían con la suma de verificación MD5 que la aplicación almacenaba en su base de datos. Resultó ser un cable de fibra defectuoso entre el servidor y la SAN.
Estas otras razones son la razón por la cual algunos sistemas de archivos, como ZFS, mantienen información adicional sobre la suma de verificación para detectar errores. Están diseñados para protegerlo de muchas más cosas que pueden salir mal que solo la podredumbre..
¿Tienes algo que agregar a la explicación? Apaga el sonido en los comentarios. ¿Quieres leer más respuestas de otros usuarios de Stack Exchange con experiencia en tecnología? Echa un vistazo a la discusión completa aquí.