¿Es estúpido RAID-Z en una sola unidad de disco duro?

18

Obviamente, si toda la unidad muere, entonces RAID-Z en un solo disco no ayudará. Pero, ¿qué pasa con otros tipos de errores?

Desde mi experiencia, a veces tengo un archivo que no puedo leer. En Mac OS X, el sistema se bloqueará por un período de tiempo y luego regresará con un error. Muevo el archivo en algún lugar fuera del camino, y supongo que ese archivo tiene un sector defectuoso o un bloque defectuoso o tal vez incluso una pista defectuosa completa.

Me remonto a los días de los disquetes, donde administrar sus fallas de disco a mano era solo una actividad común. Por supuesto, reemplazaría el disquete defectuoso lo antes posible, pero a veces no podría hacerlo de inmediato, por lo que la práctica consistía en encontrar el área defectuosa, asignarla a un archivo y luego nunca eliminar ese archivo.

La primera pregunta es ¿cómo fallan los discos duros? ¿Son válidos mis supuestos anteriores? ¿Es cierto que un bloque defectuoso falla pero toda la unidad todavía es usable? Si ese es el caso, entonces parece que RAID-Z podría reparar el bloque defectuoso o el área defectuosa del disco utilizando la paridad de los otros bloques (áreas).

El caso de uso es para copia de seguridad. Si transfiero los datos a un disco de 8 TB una vez a la semana, ¿tendría sentido considerarlo como un disco de datos de 7 TB más 1 TB de paridad con la esperanza de que la paridad adicional me ayude a recuperar la putrefacción de bits, sectores defectuosos o otras fallas localizadas del disco?

Si la teoría no tiene fallas técnicas, ¿se puede configurar ZFS para hacer esto?

Editar: vi la otra pregunta antes de publicar esta pregunta. Dividir en particiones separadas donde cada partición se agrupa es una opción. Pero en concepto, podría ser posible tener el mapa de bloques para las N particiones entrelazadas entre sí para que una franja, mientras que lógicamente estaría a través de N, las particiones estarían físicamente muy juntas. Esta fue la esencia de mi pregunta "¿se puede configurar ZFS para hacer esto?" es decir, solo ZFS ... no ZFS con trucos de particiones.

pedz
fuente
77
Si desea redundancia de un solo disco, considere hacer archivos par2 . Con ZFS, puede configurar copies=2, pero incurrirá en una penalización de almacenamiento del 50% al hacerlo. Además, no soy un experto en ZFS, pero mi intuición (que puede estar equivocada) me dice que ZFS no estaría contento con su solución propuesta. PAR2 es una tecnología madura y flexible. Usarlo no solo satisfaría su requisito de paridad, sino que también le permitiría establecer la cantidad de paridad por archivo si lo desea.
EEAA
77
¿Posible duplicado de inconvenientes de una sola unidad dividida en particiones y particiones unidas en un ZFS raidz1, frente a una sola unidad ZFS con duplicación de datos? - Al menos la respuesta allí incluye todo lo que debes saber.
Esa Jokinen
Las pistas en HDD se denominan cilindros (ya que puede haber más de un plato).
LawrenceC
1
Cuando las unidades se estropean, tiende a ser un proceso acelerado: la tasa de sectores defectuosos aumenta hasta que toda la unidad queda inutilizable. Si la unidad comienza a fallar y RAID-Z lo compensa silenciosamente, podría tener una copia de seguridad escrita con éxito, pero cuando se recupera de ella, ya no se puede usar. Prefiero que mi dispositivo de copia de seguridad falle ruidosamente mientras estoy haciendo una copia de seguridad, tan pronto como empiece a fallar, para poder reemplazarlo y seguir confiando en que lo que se escribe con éxito es legible con confianza.
Anthony X
@EEAA: suena como lo que usaré. Gracias. Y gracias a todos los que comentaron.
pedz

Respuestas:

23

Dado que la paridad RAID-Z funciona al tener el bloque de paridad en otro dispositivo en el grupo, debe dividir su dispositivo en N + 1, N + 2 o N + 3 particiones de igual tamaño, donde N particiones contienen los datos y 1/2 contener los bits de paridad.

Además de estas particiones, crearía un zpool, con RAID-Z que haya seleccionado, y luego crearía un sistema de archivos en el zpool.

Entonces, en teoría esto funciona. En la práctica, esto haría que el rendimiento del sistema de archivos fuera terrible, ya que los consiguientes bloques en los archivos se ubicarían en diferentes dispositivos ZPool, que están en diferentes particiones. Entonces, después de leer un bloque, el HDD debe moverse a un área diferente de los platos del HDD, leer el siguiente bloque, etc.

La respuesta es: Sí, sería estúpido.

Tero Kilkanen
fuente
2
¿Qué hay de hacer esto en un SSD?
JFL
77
@JFL: NAND flash, que se usa en SSD tiene exactamente el problema que estas soluciones intentan resolver, es decir, la muerte de bloques individuales. De hecho, con NAND es un problema tan grande que todos los controladores SSD lo manejan explícitamente por usted. Como resultado, la falla visible más común con los SSD es una pérdida total de todo el dispositivo, probablemente seguida de una falla de solo lectura del dispositivo. Ningún problema se beneficia de la solución evitada aquí.
MSalters
66
Además, los SSD reordenan bloques. Una de las optimizaciones de nivelación de desgaste aplicadas es agrupar las escrituras juntas. Las escrituras consecutivas en diferentes particiones terminarían en el mismo bloque de borrado, por lo que en caso de falla de un bloque de borrado, perderá exactamente el beneficio de almacenar los mismos datos varias veces.
liori