¿RAID 1 protege contra la corrupción?

14

¿Raid 1 protege contra la corrupción de datos? Por ejemplo, supongamos que guardo todos mis archivos importantes en un NAS que usa 2 discos en un RAID 1. Si un disco duro tiene algún tipo de problema interno y los datos se corrompen, ¿el RAID lo reconoce automáticamente y lo corrige? Está utilizando datos del otro disco bueno?

¿Podría incluso saber qué copia es la buena?

¿RAID 5 protege contra la corrupción?

Sé que RAID no es una solución de respaldo. ¡Estoy tratando de descubrir cómo asegurarme de que no estoy haciendo una copia de seguridad de los datos corruptos!

Reg Editar
fuente

Respuestas:

13

RAID-1 protege contra la falla completa de una de las dos unidades. Si la unidad no está marcada como fallida, se supone que su contenido es exacto. Pero si, por alguna razón, una de las dos unidades devolviera datos inconsistentes, el sistema RAID no detectaría ese error y la aplicación obtendría datos incorrectos.

Muchos controladores tienen un proceso de verificación que se ejecuta periódicamente, pero el propósito de esto es probar la falla del disco, no la integridad de los datos. Los discos duros implementan sus propias pruebas de integridad de datos y sumas de comprobación que utilizan para detectar sectores defectuosos, pero el algoritmo está diseñado para ser rápido y compacto, no exhaustivo, de modo que los errores puedan filtrarse.

Si bien la corrupción de datos es la excepción y no la regla, tampoco es desconocida. Un miembro del equipo de ZFS, por ejemplo, informó en una entrevista que su dispositivo RAID-5 de alta gama les entregó datos corruptos que detectaron en virtud del hecho de que ZFS implementa sumas de verificación a ese nivel de sistema de archivos.

tylerl
fuente
5

Depende de dónde proviene la corrupción. Si una unidad en un espejo RAID 1 es incorrecta y no tiene sentido, entonces el espejo RAID se degradará y la buena unidad estará en uso y tendrá los buenos archivos. En el caso de RAID 5, esto se hace con 2 unidades de datos y una unidad de paridad (en la forma más simple) y si una de las 3 unidades no puede escribir los archivos adecuados, fallará y quedará con 2 datos unidades o 1 unidad de datos y una unidad de paridad.

Ahora veamos qué sucede si la corrupción es causada por un virus o un error en un programa. En RAID 1 y RAID 5, ninguna unidad quedará fuera de servicio porque las unidades están escribiendo correctamente. Nada ha fallado. Sin embargo, los archivos se destruirán porque el virus o error está escribiendo basura, y lo escribirá tanto en sus unidades en un espejo RAID 1 como en las 3 unidades en un sistema RAID 5.

Es por eso que RAID no es una copia de seguridad. Previene la falla más probable, que es una falla del disco, pero no tiene en cuenta muchos otros escenarios.

Joshua Levitsky
fuente
44
+1 "Esta es la razón por la cual RAID no es una copia de seguridad" Dios sabe cuántas veces he escuchado "Estoy bien, tengo mi copia de seguridad cubierta con una RAID"
Urda
2
¿Cómo puede el RAID distinguir entre qué datos son buenos y cuáles son malos?
1
Shaun ... si un virus come sus datos o los elimina accidentalmente, el RAID nunca puede distinguirlos como buenos o malos. Todo lo que RAID está a cargo es asegurarse de que (en un RAID 1) que ambos discos sean iguales. Si un sector falla una suma de verificación, el controlador RAID compensa la reparación o desencadena una reconstrucción. En un RAID 5, si un sector falla una verificación de paridad, se activa una reconstrucción. RAID protege las unidades físicas contra fallas y como resultado de la pérdida de datos. No pueden proteger contra la pérdida de datos por fallas o virus del programa.
Urda
66
Su caracterización de RAID 5 es inexacta. No hay una unidad de paridad separada, en su lugar, la paridad se distribuye en todas las unidades. Terminas con un espacio total disponible de n-1, pero no hay una unidad dedicada a la paridad.
MDMarra
2
Tengo que rechazar esto. RAID 1 no no hacer la suma de comprobación, que sólo se protege contra el fallo de una unidad completa. Si una unidad comienza a devolver basura, no tiene forma de saber cuál es la correcta, y felizmente devolverá datos basura. RAID5 No estoy seguro, debido a los controles de paridad. Esta es exactamente la razón por la cual se inventaron sistemas de archivos como ZFS y BTRFS, para que obtenga un sistema similar a RAID 'consciente de los datos', que puede corregir los datos basura de manera adecuada utilizando sumas de verificación para verificar bloques de datos.
Alex
5

Como otros han señalado, un sistema raid1 no tiene forma de saber cuál de los dos sectores es malo.

Los sistemas de incursión de extremo superior ejecutan una operación de limpieza en segundo plano para comparar ambas copias y marcar las diferencias. Mejor aún es un sistema que lee ambos bloques del disco cada vez y los compara en el momento de la lectura. Sin embargo, resolver esas diferencias es imposible para el controlador de banda.

En sistemas Unix con mdadm, se puede iniciar una comprobación de depuración con "sync_action":

Las matrices md se pueden eliminar escribiendo check o reparando en el archivo md / sync_action en el directorio sysfs del dispositivo.

Solicitar un exfoliante hará que md lea cada bloque en cada dispositivo de la matriz y verifique que los datos sean consistentes. Para RAID1 y RAID10, esto significa verificar que las copias sean idénticas. Para RAID4, RAID5, RAID6 esto significa verificar que el bloque de paridad es (o los bloques son) correctos.

raid1 se trata de proteger de una falla total repentina de la unidad. Busque en otro lugar protección contra la corrupción. Más allá de eso, Raid1 no ofrece "historial", por lo que no puede recuperarse de un error humano o de software. Busque sistemas de archivos como ZFS o un sistema de archivos que conserve el historial como Hammer para protegerse contra la corrupción.

Bryce
fuente
3

En la práctica, sí. La gran mayoría de las fallas del disco duro ocurren de forma total o nula. O bien (a) el cable está desenchufado o el microcontrolador de la unidad ha fallado, por lo que el controlador RAID no obtiene ninguna respuesta, obviamente, la unidad ha fallado. O (b) El cable y el microcontrolador de la unidad son buenos, pero cuando intenta leer un sector, el microcontrolador de la unidad interna detecta la corrupción de los datos porque la suma de comprobación de ECC interna falló y repetidos intentos de leer ese sector (en caso de que sea un error de lectura temporal ) finalmente se agota el tiempo de espera, por lo que el controlador RAID obtiene una respuesta cortés de "perdón": disco obvio que falla. De cualquier manera, es obvio para el controlador RAID-1 o RAID-5 que la unidad ha fallado.

En principio, no. Si algo ha salido tan mal que un disco duro no tiene sentido y, de alguna manera, funciona lo suficientemente bien como para escribir el código ECC interno correcto para ese sinsentido, entonces RAID-1 no puede determinar qué unidad es correcta. El sistema RAID-1 probablemente sobrescribirá los datos correctos con los datos corruptos en una resincronización. RAID-5 no es mejor. La falla de energía del "agujero de escritura RAID-5" durante la escritura activa es un caso particular, raro pero no imposible.

Hasta donde sé, la única forma de evitar dicha corrupción es usar sumas de verificación de extremo a extremo además de la duplicación de archivos, ya sea automáticamente como parte del sistema de archivos (ZFS o Btrfs) o periódicamente o manualmente (recalculando las sumas de verificación rsync, verificación simple de archivos, conjuntos de archivos Parchive, etc.); idealmente con un hash criptográfico como SHA-256.

David Cary
fuente
Cualquier posibilidad de que pueda dar una respuesta para este ... superuser.com/questions/736612/…
Mick