¿La putrefacción de los discos duros es un problema real? ¿Qué se puede hacer al respecto?


32

Un amigo está hablando conmigo sobre el problema de la descomposición de bits: bits en unidades que cambian aleatoriamente y corrompen datos. Increíblemente raro, pero con suficiente tiempo podría ser un problema y es imposible de detectar.

La unidad no lo consideraría un sector defectuoso, y las copias de seguridad simplemente pensarían que el archivo ha cambiado. No hay suma de verificación involucrada para validar la integridad. Incluso en una configuración RAID, se detectaría la diferencia, pero no habría forma de saber qué copia espejo es la correcta.

¿Es esto un problema real? Y si es así, ¿qué se puede hacer al respecto? Mi amigo está recomendando zfs como solución, pero no me puedo imaginar aplanar nuestros servidores de archivos en el trabajo, colocando Solaris y zfs.



Acabo de tener un buen error SMART en un viejo disco Seagate de 200GB. Los bits, que se han podrido demasiado :-( Es seis meses por debajo de la garantía de 5 años, así que probablemente tendrá una sustitución sin mucho alboroto.
ThatGraemeGuy

Respuestas:


24

En primer lugar: es posible que su sistema de archivos no tenga sumas de verificación, pero su disco duro sí las tiene. Hay SMART, por ejemplo. Una vez que se volcó un poco, el error no se puede corregir, por supuesto. Y si realmente tienes mala suerte, los bits pueden cambiar de tal manera que la suma de comprobación no se vuelva inválida; entonces el error ni siquiera será detectado. Entonces, pueden pasar cosas desagradables ; pero la afirmación de que un cambio aleatorio de bits al instante corromperá sus datos es falsa.

Sin embargo, sí, cuando pones billones de bits en un disco duro, no se quedarán así para siempre; eso es un problema real! ZFS puede verificar la integridad cada vez que se leen datos; Esto es similar a lo que su disco duro ya hace por sí mismo, pero es otra protección por la que está sacrificando algo de espacio, por lo que está aumentando la resistencia contra la corrupción de datos.

Cuando su sistema de archivos es lo suficientemente bueno, la probabilidad de que ocurra un error sin ser detectado es tan baja que ya no tendrá que preocuparse por eso y podría decidir que tener sumas de verificación integradas en el formato de almacenamiento de datos que está utilizando es innecesario.

De cualquier manera: no, no es imposible de detectar .

Pero un sistema de archivos, por sí solo, nunca puede ser una garantía de que se pueda recuperar cada falla; No es una bala de plata. Aún debe tener copias de seguridad y un plan / algoritmo para saber qué hacer cuando se detecta un error.


Ok, de acuerdo con wikipedia ( en.wikipedia.org/wiki/Error_detection_and_correction ) los discos duros modernos usan CRC para detectar errores e intentan recuperarse usando la recuperación de errores de estilo de disco compacto. Eso es lo suficientemente bueno para mí.
scobi

1
Pero si el CRC se almacena en la misma ubicación (sector) que los datos, esto no ayudará en todos los casos de error. Por ejemplo, si hay un error de posicionamiento de la cabeza, los datos podrían escribirse en un sector incorrecto, pero con una suma de verificación correcta => no podría detectar el problema. Es por eso que las sumas de verificación en ZFS se almacenan por separado de los datos que protegen.
knweiss el

¿ZFS tiene un mantenimiento como el de Windows ahora? Eso básicamente reescribe los datos regularmente para actualizar la codificación magnética.
TomTom

Los discos duros modernos no usan CRC, usan el código Hamming que es muy diferente. Es lo mismo que usa la memoria ECC. Los errores de volteo de un bit pueden corregirse, los errores de volteo de dos bits pueden detectarse pero no corregirse, el volteo de tres o más bits y los datos están realmente dañados. En cualquier caso, no hay reemplazo para las copias de seguridad de datos. ZFS y otros sistemas de archivos no proporcionan una mejor protección que el código Hamming en los platos de una unidad. Si los datos están dañados, ZFS no lo salvará.
Jody Lee Bruchon

@JodyLeeBruchon ¿Tienes una fuente sobre el código de Hamming que se usa predominantemente ahora? La recopilación de información que he estado haciendo últimamente indica que los fabricantes de unidades todavía están utilizando CRC-RS. 1 2
Ian Schoonover

16

Sí, es un problema, principalmente a medida que aumentan los tamaños de las unidades. La mayoría de las unidades SATA tienen una tasa de URE (error de lectura no corregible) de 10 ^ 14. O por cada 12 TB de datos leídos estadísticamente, el proveedor de la unidad dice que la unidad devolverá un error de lectura (normalmente puede buscarlos en las hojas de especificaciones de la unidad). La unidad continuará funcionando bien para todas las demás partes de la unidad. Las unidades Enterprise FC y SCSI generalmente tienen una tasa de URE de 10 ^ 15 (120 TB) junto con una pequeña cantidad de unidades SATA que ayudan a reducirla.

Nunca he visto que los discos dejen de girar exactamente al mismo tiempo, pero he tenido un problema de volumen de incursión5 (hace 5 años con unidades PATA de consumo de 5400 RPM). La unidad falla, se marca como muerta y se produce una reconstrucción en la unidad de repuesto. El problema es que durante la reconstrucción una segunda unidad no puede leer ese pequeño bloque de datos. Dependiendo de quién realice la incursión, todo el volumen puede estar muerto o solo ese pequeño bloque puede estar muerto. Suponiendo que es solo que un bloque está muerto, si intenta leerlo, obtendrá un error, pero si escribe en él, la unidad lo reasignará a otra ubicación.

Hay varios métodos para protegerse contra: raid6 (o equivalente) que protege contra la falla del doble disco es mejor, los adicionales son un sistema de archivos compatible con URE como ZFS, que utiliza grupos de ataque más pequeños para que estadísticamente tenga menos posibilidades de golpear la unidad URE límites (duplicar unidades grandes o raid5 unidades más pequeñas), el fregado de disco y SMART también ayuda, pero en realidad no es una protección en sí misma, sino que se usa además de uno de los métodos anteriores.

Administro cerca de 3000 husos en matrices, y las matrices están fregando constantemente las unidades en busca de URE latentes. Y recibo un flujo bastante constante de ellos (cada vez que encuentra uno, lo soluciona antes del fallo de la unidad y me alerta), si estaba usando raid5 en lugar de raid6 y una de las unidades se apaga por completo ... estar en problemas si llega a ciertos lugares.


2
¿En qué unidades estás hablando? "10 ^ 14" no es una "tasa".
Jay Sullivan

2
La unidad sería, por ejemplo, "10 ^ 14 bits leídos por error", lo que equivale a 12 TB de lectura por error.
Jo Liss

2
Y, por supuesto, teniendo en cuenta que la tasa de error normalmente se cita en términos de errores de sector completo por bit leído. Entonces, cuando un fabricante declara tasas de URE en 10 ^ -14, lo que realmente quieren decir es que la probabilidad de que cualquier lectura aleatoria del sector golpee una URE es 10 ^ -14 y, si lo hace, todo el sector vuelve a ser ilegible. Eso y el hecho de que esto es estadística; En el mundo real, los URE tienden a venir en lotes.
un CVn

9

Los discos duros generalmente no codifican los bits de datos como dominios magnéticos únicos: los fabricantes de discos duros siempre han sido conscientes de que los dominios magnéticos podrían voltearse y generar detección y corrección de errores en las unidades.

Si un bit se voltea, la unidad contiene suficientes datos redundantes que puede y se corregirá la próxima vez que se lea ese sector. Puede ver esto si verifica las estadísticas SMART en la unidad, como la 'Tasa de error corregible'.

Dependiendo de los detalles de la unidad, incluso debería poder recuperarse de más de un bit invertido en un sector. Habrá un límite para la cantidad de bits invertidos que se pueden corregir silenciosamente, y probablemente otro límite para la cantidad de bits invertidos que se pueden detectar como un error (incluso si ya no hay suficientes datos confiables para corregirlo)

Todo esto se suma al hecho de que los discos duros pueden corregir automáticamente la mayoría de los errores a medida que ocurren, y pueden detectar de manera confiable la mayoría del resto. Tendría que tener una gran cantidad de errores de bit en un solo sector, todo ocurrió antes de que ese sector se volviera a leer, y los errores tendrían que ser tales que los códigos de detección de errores internos lo vean como datos válidos nuevamente, antes de que usted alguna vez tendría un fracaso silencioso. No es imposible, y estoy seguro de que las empresas que operan centros de datos muy grandes lo ven suceder (o más bien, ocurre y no lo ven suceder), pero ciertamente no es un problema tan grande como podría pensar.


2
En realidad, regularmente tengo errores de rotura de bits (en partes que no leo mucho), de las cuales el sistema se recupera silenciosamente (incorrectamente). Si al menos me notificara que había una descomposición de bits, podría volver a leer los datos para recuperarlos antes de que se volvieran irrecuperables; y si no se puede recuperar, podría compararlo con el otro disco duro.
Alex

Alex, comprueba tus datos HDD SMART y la RAM del sistema para verificar que no haya otro problema que cause la corrupción. La corrupción de bits / corrupción aleatoria es extremadamente rara, por lo que puede estar sucediendo algo más con su máquina.
Brian D.

@BrianD. Un problema era que mantenía los discos duros dentro de su material de embalaje (aislado); esto causaba que los discos duros se calentaran a más de 60 ° C mientras trabajaban, durante días y días. ¿Suena eso como una razón legítima por la que podría haberse producido la putrefacción?
Alex

Definitivamente no es recomendable, ya que la mayoría de los discos duros tienen pequeños orificios de aire que no deben cubrirse para funcionar correctamente. Ya sea que su problema fuera la descomposición de bits o alguna otra cosa, ejecutaría un diagnóstico completo en la PC para verificar que todo funcione correctamente.
Brian D.

4

Los discos duros modernos (desde 199x) no solo tienen sumas de comprobación, sino también ECC, que puede detectar y corregir una putrefacción de bits bastante "aleatoria". Ver: http://en.wikipedia.org/wiki/SMART .

Por otro lado, ciertos errores en el firmware y los controladores de dispositivos también pueden corromper los datos en raras ocasiones (de lo contrario, el control de calidad podría detectar los errores) en ocasiones que serían difíciles de detectar si no tiene sumas de control de nivel superior. Los primeros controladores de dispositivos para SATA y NIC tenían datos corruptos en Linux y Solaris.

Las sumas de comprobación de ZFS apuntan principalmente a los errores en el software de nivel inferior. El nuevo sistema de almacenamiento / base de datos como Hypertable también tiene sumas de verificación para cada actualización para proteger contra errores en los sistemas de archivos :)


3

Teóricamente, esto es motivo de preocupación. Hablando en términos prácticos, esto es parte de la razón por la que mantenemos copias de seguridad de niños / padres / abuelos. Las copias de seguridad anuales deben mantenerse durante al menos 5 años, en mi opinión, y si tiene un caso de esto que va más allá de eso, el archivo obviamente no es tan importante.

A menos que esté lidiando con trozos que podrían licuar el cerebro de alguien , no estoy seguro de que el riesgo frente a la recompensa esté al punto de cambiar los sistemas de archivos.


1
No veo cómo ayudan las copias de seguridad de niños / padres / abuelos. No hay forma de saber con ese sistema si un bit se volcó porque un usuario tenía la intención de cambiarlo o si la unidad lo hizo por su cuenta. No sin una suma de verificación de algún tipo.
scobi

Tener múltiples copias de seguridad no ayudará si no sabe que los datos en ellas son buenos. Puede verificar manualmente sus archivos, pero ZFS hace mucho más automáticamente y facilita la administración del sistema de archivos.
Amok

1
Tener copias de seguridad que se remontan a más de una semana / mes aumenta sus posibilidades de tener una buena copia del archivo. Probablemente podría haber sido más claro al respecto.
Kara Marfia el

1
El problema es: ¿cómo sabes que tienes una copia incorrecta? ¿Y cómo sabes qué copia de seguridad es la buena? De forma automatizada.
scobi

He visto quizás un archivo cada pocos años caer en la corrupción que puede ser el resultado de la podredumbre, pero puedo estar sufriendo de Síndrome de peces pequeños. Podría entender que hablar de copias de seguridad es inútil, y lo eliminaré si es ofensivo. Era tiempo bien empleado leyendo las otras respuestas, independientemente. ;)
Kara Marfia el

2

Si, es un problema.

Esta es una de las razones por las que RAID6 ahora está de moda (así como el aumento de los tamaños de HD aumenta el tiempo para reconstruir una matriz). Tener dos bloques de paridad permite una copia de seguridad adicional.

Los sistemas RAID ahora también realizan un RAID Scrubbing que lee periódicamente bloques de disco, comprueba las paridades y lo reemplaza si encuentra que un bloque es malo.


Tenga cuidado, la integridad de los datos no es una característica de todos los sistemas RAID.
duffbeer703

1
Con las unidades de terabyte, hay tantos bits que comparten el destino, y el área de almacenamiento físico de un bit es tan pequeña que este problema se vuelve más importante. Al mismo tiempo, la probabilidad de falla aumenta tanto con las unidades de terabyte que RAID6 no es suficiente a menos que esté colocando muchas unidades en el grupo, digamos 8 o más. Con un menor número de unidades, es mejor usar una banda de espejos, también conocida como RAID 10. Tanto RAID 6 (raidz2) como RAID 10 (zpool create mypool mirror c0t1d0 c0t2d0 mirror c0t3d0 c0t4d0) son posibles en ZFS.
Michael Dillon el

RAID no puede determinar qué datos son buenos y cuáles no, por lo que no puede corregir los errores, solo puede detectarlos.
Amok

Amuck: No como parte del "Estándar RAID", per se, pero los sistemas RAID avanzados (firmwares, etc.) hacen eso
Matt Rogish

@ Michael Dillion: la confiabilidad de RAID6 no aumenta a medida que aumenta el número de unidades. Para todos los datos solo hay datos originales + 2 paridad. El aumento del número de unidades es peor para la confiabilidad, ya que aumenta la posible tasa de falla de la unidad sin aumentar la redundancia de ningún dato. La única razón para aumentar el número de unidades es aumentar el tamaño de almacenamiento disponible.
Brian D.

1

En lo que respecta a la declaración del OP sobre RAID que no comprende qué datos son buenos o malos.

Los controladores RAID utilizan al menos bits de paridad (par / impar) en cada banda de datos. Esto es para todo; las franjas de datos en disco y las franjas de datos de paridad (copia de seguridad).

Esto significa que para cualquier tipo de RAID que tenga bandas para redundancia (RAID 5/6), el controlador puede determinar con precisión si la banda de datos original ha cambiado, así como si la banda de datos de redundancia ha cambiado.

Si introduce una segunda banda redundante como RAID6, debe tener 3 bandas de datos, en tres unidades diferentes se corrompen, y todas corresponden a los mismos datos de archivo reales. Recuerde que la mayoría de los sistemas RAID utilizan franjas de datos relativamente pequeñas (128 kb o menos), por lo que las posibilidades de que la "descomposición de bits" se alinee a los mismos 128 kb, del mismo archivo, es prácticamente imposible.


0

Es un problema del mundo real, sí, pero la pregunta es si debe preocuparse o no.

Si solo tiene un disco duro lleno de imágenes, puede que no valga la pena el esfuerzo. Está lleno de datos científicos importantes, podría ser otro tipo de historia, tienes la idea.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.