Entiendo el argumento con respecto a la mayor probabilidad de que las unidades más grandes experimenten un URE durante una reconstrucción, sin embargo, no estoy seguro de cuáles son las implicaciones reales para esto. Esta respuesta dice que la reconstrucción completa falla, pero ¿significa esto que todos los datos son inaccesibles? ¿Por qué sería eso? Seguramente, un solo URE de un solo sector en la unidad solo afectaría los datos relacionados con algunos archivos, como máximo. ¿No se reconstruiría la matriz, solo con una pequeña corrupción en algunos archivos?
(Aquí estoy específicamente interesado en la implementación de RAID5 de ZFS, pero la lógica parece la misma para cualquier implementación de RAID5).
raid
zfs
zfsonlinux
proceso91
fuente
fuente
Respuestas:
Realmente depende de la implementación RAID específica:
la mayoría de los RAID de hardware abortarán la reconstrucción y algunos también marcarán la matriz como fallida y la desactivarán. La razón es que si ocurre un URE durante una reconstrucción RAID5 significa que se pierden algunos datos , por lo que es mejor detener completamente la matriz en lugar de arriesgarse a la corrupción silenciosa de datos. Nota: algunos RAID de hardware (principalmente basados en LSI) perforarán la matriz, permitiendo que la reconstrucción continúe mientras se marca el sector afectado como ilegible (similar a cómo se comporta el RAID de software de Linux).
El software RAID de Linux puede recibir instrucciones de a) detener la reconstrucción de la matriz (el único comportamiento de las compilaciones "antiguas" MDRAID / kernels) o b) continuar con el proceso de reconstrucción marcando algunos LBA como defectuosos / inaccesibles. La razón es que es mejor dejar que el usuario haga su elección: después de todo, un único URE puede estar en el espacio libre, sin afectar los datos (o afectando solo los archivos sin importancia);
ZRAID mostrará algunos archivos como corruptos, pero continuará con el proceso de reconstrucción (vea aquí un ejemplo). Una vez más, la razón es que es mejor continuar e informar al usuario, lo que le permite tomar una decisión informada.
fuente
Si ocurre URE, experimentará cierta corrupción de datos en el bloque, que generalmente tiene un tamaño de 256 KB-1 MB, pero esto no significa que TODOS los datos en su volumen se perderían. Lo que no es tan bueno de RAID5 es algo totalmente diferente: la reconstrucción en sí misma es estresante y hay muchas posibilidades de que se produzca una segunda falla consecutiva en el disco. En tal caso, todos los datos se perderían.
fuente
Lo explicaría al revés;
Si el controlador RAID no se detiene en URE, ¿qué podría pasar?
Lo viví en un servidor, el RAID nunca notó el URE y después de la reconstrucción comenzó a acumularse un daño en todo el volumen RAID.
El disco comenzó a tener más sectores defectuosos después de la reconstrucción y los datos comenzaron a estar corruptos.
El disco nunca se arrancó del volumen RAID, el error del controlador es un trabajo para proteger la integridad de los datos.
Ese ejemplo está escrito para hacerle pensar que un controlador no puede empujar un volumen con URE en absoluto, es por la integridad de los datos, ya que el volumen no está destinado a ser una copia de seguridad sino una resistencia a una falla de disco
fuente
Sugeriría leer esta pregunta y respuestas para obtener un poco más de información. Luego ve y vuelve a leer la pregunta que vinculaste nuevamente.
Cuando alguien dice acerca de esta situación que "el RAID falló", significa que perdió el beneficio del RAID: perdió el acceso continuo a los datos que fue la razón por la que configuró la matriz RAID en primer lugar.
No ha perdido todos los datos, pero la forma más común de recuperarse de una unidad muerta más (algunas) URE en (algunas de) las unidades restantes sería reconstruir completamente la matriz desde cero, lo que significará restaurar todos sus datos de respaldo.
fuente