31Jul

¿Pueden los datos en los discos duros degradar sin una advertencia sobre el daño?

Todos nos preocupamos por mantener nuestros datos y archivos a salvo e intactos, pero ¿es posible que los datos se dañen y que un usuario los acceda sin que se notifique o advierta de ningún tipo sobre el problema? La publicación SuperUser Q & A de hoy tiene la respuesta a la pregunta de un lector preocupado.

Pregunta de hoy &La sesión de respuesta nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, una agrupación de sitios web Q & A dirigida por la comunidad.

Foto cortesía de generalising( Flickr).

La pregunta

SuperUser reader topo morto quiere saber si los datos en los discos duros pueden degradarse y accederse sin una advertencia sobre el daño:

¿Es posible que la degradación física de un disco duro haga que los bits "se vuelquen" en los contenidos de un archivosin que el sistema operativo note el cambio y notifique al usuario al leer el archivo? Por ejemplo, ¿podría una "p"( 01110000 binaria) en un archivo de texto ASCII cambiar a "q"( 01110001 binario), y luego cuando un usuario abre el archivo, ellos ven "q" sin darse cuenta de que ha ocurrido una falla?

Estoy interesado en respuestas relacionadas con FAT, NTFS o ReFS( si hace una diferencia).Quiero saber si los sistemas operativos protegen a los usuarios de esto, o si deberíamos verificar nuestros datos para detectar variaciones entre las copias a lo largo del tiempo.

¿Pueden los datos en los discos duros degradarse y accederse sin una advertencia sobre el daño?

La respuesta

SuperUser contribuidor Guntram Blohm tiene la respuesta para nosotros:

Sí, hay algo llamado bit rot. Pero no, no afectará a un usuario desapercibido.

Cuando un disco duro escribe un sector en los platos, no solo escribe los bits de la misma manera 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 algunos bits y detectar errores que afectan a más de unos pocos bits.

Cuando el disco duro lee el sector, verifica estos códigos ECC y repara los datos si es necesario( y si es posible).Lo que sucede 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 de código ECC, se transfiere al sistema operativo.
  • Si un sector se puede reparar fácilmente, la versión reparada puede escribirse en el disco, volverse a leer, luego verificarse 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 con los medios, reasigna el sector.
  • Si un sector no se puede leer ni corregir después de unos pocos intentos de lectura( en un disco duro designado como disco duro RAID), el disco duro se dará por vencido, reasignará el sector y le dirá al controlador que hubo unaproblema. Se basa en el controlador RAID para reconstruir el sector de los otros miembros RAID y escribirlo de nuevo en el disco duro fallido, que luego lo almacena en el sector reasignado( que afortunadamente no tiene ningún problema).
  • Si un sector no se puede leer o corregir en el disco duro de un escritorio, entonces el disco duro realizará más intentos de leerlo. Dependiendo de la calidad del disco duro, esto puede implicar reposicionar el cabezal, verificar si hay bits que se vuelven a leer repetidamente, verificar qué bits son los más débiles y algunas otras cosas más. Si alguno 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 unidades de disco duro "de escritorio", "NAS / RAID" o "videovigilancia".Un disco duro RAID puede simplemente darse por vencido rápidamente y hacer que el controlador repare el sector para evitar la latencia del lado del usuario. Un disco duro de escritorio continuará intentándolo una y otra vez porque es probable que esperar al usuario unos segundos sea mejor que decirles que se han perdido los datos. Y un disco duro de video valora las velocidades 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 se ha descompuesto un bit, generalmente se recuperará de él, y si no puede, se lo indicará al controlador, que a su vez le avisará al controlador, que luego le avisará al sistema operativo. Luego, corresponde al sistema operativo presentar el error al usuario y actuar sobre él. Es por eso que Cybernard dice:

  • Nunca he sido testigo de un solo error de bit, pero he visto muchos discos duros donde sectores enteros han fallado.

El disco duro sabrá si hay algún problema con un sector, pero no sabrá qué bits han fallado. Un único bit que ha fallado siempre será capturado por ECC.

Tenga en cuenta que los sistemas chkdsk y de archivos que se reparan automáticamente no abordan la reparación de datos dentro de los archivos. Estos están dirigidos a la corrupción dentro de la estructura del sistema de archivos en sí, 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 autocuración de NTFS detectará el daño estructural y evitará que afecte más sus datos, pero no reparará ningún dato que ya esté dañado.

Existen, por supuesto, otras razones por las que los datos pueden dañarse. Por ejemplo, una memoria RAM defectuosa en un controlador puede alterar los datos incluso antes de que se envíen 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 cuales la estructura de un sistema de archivos está dañada. Otras razones incluyen errores de software, apagones mientras se escribe en el disco duro( aunque esto es abordado por el diario del sistema de archivos), o controladores de sistema de archivos incorrectos( el controlador NTFS en Linux dejó de leer por mucho tiempo desde que NTFS fue sometido a ingeniería inversa,no documentado, y los desarrolladores no confiaron en su propio código).

  • Tuve este escenario una vez en el que una aplicación guardará todos sus archivos en dos servidores diferentes en dos centros de datos diferentes a fin de mantener una copia de trabajo de los datos disponible en todas las circunstancias. Después de unos meses, notamos que aproximadamente el 0.1 por ciento de todos los archivos copiados no coincidía 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 explican por qué algunos sistemas de archivos, como ZFS, guardan información de verificación adicional para detectar errores. Están diseñados para protegerte de muchas más cosas que pueden salir mal que simplemente la putrefacción.

¿Tiene algo que agregar a la explicación? Suena apagado en los comentarios.¿Desea leer más respuestas de otros usuarios de Stack Exchange expertos en tecnología? Mira el hilo de discusión completo aquí.