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.
fuente
Respuestas:
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.
fuente
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.
fuente
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.
fuente
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 :)
fuente
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.
fuente
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.
fuente
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.
fuente
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.
fuente