Todos nos preocupamos por mantener nuestros datos y archivos seguros e intactos, pero ¿es posible que los datos se dañen y un usuario pueda acceder a ellos sin una notificación o advertencia de ningún tipo sobre el problema? La publicación de preguntas y respuestas del superusuario 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 generalizar (Flickr) .
La pregunta
El lector de superusuario topo morto quiere saber si los datos de los discos duros se pueden degradar y se puede acceder a ellos sin una advertencia sobre el daño:
¿Es posible que la degradación física de un disco duro pueda hacer que los bits “volteen” en el contenido de un archivo sin que el sistema operativo se dé cuenta del cambio y notifique al usuario al leer el archivo? Por ejemplo, ¿podría una «p» (binario 01110000) en un archivo de texto ASCII cambiar a una «q» (binario 01110001), luego, cuando un usuario abre el archivo, ve «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 revisar nuestros datos para ver si hay variaciones entre copias a lo largo del tiempo.
¿Se pueden degradar los datos de los discos duros y acceder a ellos sin una advertencia sobre los daños?
La respuesta
El colaborador de superusuario Guntram Blohm tiene la respuesta para nosotros:
Sí, hay una cosa llamada putrefacción. 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 se almacenan 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, verifica 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 del disco.
- Si un sector se puede leer y no tiene problemas con el código ECC, entonces se pasa al sistema operativo.
- Si un sector se puede reparar fácilmente, la versión reparada puede escribirse en el disco, leerse y 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 el medio, reasigna el sector.
- Si un sector no se puede leer ni corregir después de algunos intentos de lectura (en un disco duro que está 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 a partir de los otros miembros 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 se puede leer o corregir 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 reposicionar el cabezal, verificar si hay bits que se voltean cuando se leen repetidamente, verificar qué bits son los más débiles y algunas otras cosas. Si alguno de estos intentos tiene éxito, el disco duro reasignará el sector y volverá a escribir los datos reparados.
Ésta es una de las principales diferencias entre los discos duros que se venden como discos duros de “escritorio”, “NAS / RAID” o de “videovigilancia”. Un disco duro RAID puede rendirse 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 hacer que el usuario espere unos segundos probablemente sea mejor que decirle que los datos se han perdido. 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, normalmente se recuperará 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 en consecuencia. Es por eso que Cybernard dice:
- Yo nunca he presenciado un error de un solo bit, pero he visto muchos discos duros en los que sectores enteros 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 chkdsk y los sistemas 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 el número de bloques asignados. La función de autocuración de NTFS detectará daños estructurales y evitará que afecte aún más sus datos, pero no reparará ningún dato que ya esté dañado.
Por supuesto, existen otras razones por las que los datos pueden resultar dañados. Por ejemplo, una mala RAM en un controlador puede alterar los datos incluso antes de que se envíen al disco duro. En ese caso, ningún mecanismo del 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 soluciona mediante el registro en el diario del sistema de archivos) o controladores defectuosos del sistema de archivos (el controlador NTFS en Linux se configuró de manera predeterminada en solo lectura durante mucho tiempo desde que NTFS fue modificado por ingeniería inversa, no documentado y los desarrolladores no confiaban en su propio código).
- Una vez tuve este escenario en el que una aplicación guardaba todos sus archivos en dos servidores diferentes en dos centros de datos diferentes para 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í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 las razones por las que algunos sistemas de archivos, como ZFS, mantienen información adicional de suma de verificación para detectar errores. Están diseñados para protegerlo de muchas más cosas que pueden salir mal además de la putrefacción.
¿Tiene algo que agregar a la explicación? Habla en los comentarios. ¿Quieres leer más respuestas de otros usuarios de Stack Exchange expertos en tecnología? Consulte el hilo de discusión completo aquí .