ZFS: ¿RAIDZ-1 es realmente tan malo?

18

Tengo un servidor NAS con unidades de 4x 2TB WD RE4-GP en una configuración RAID10 (4TB utilizables). Me estoy quedando sin espacio (quedan <1 TB de espacio útil). Tengo $ 0 para gastar en unidades / gabinetes más grandes / más.

Me gusta lo que he leído sobre las características de integridad de datos de ZFS, que, por sí solas, son suficientes para que pueda cambiar mi RAID10 (software) XFS existente. Luego leí sobre la implementación superior de RAID5 de ZFS, así que pensé que incluso podría obtener hasta 2TB más de espacio utilizable en el negocio usando RAIDZ-1.

Sin embargo, sigo leyendo más y más publicaciones que dicen que simplemente nunca use RAIDZ-1. Solo RAIDZ-2 + es lo suficientemente confiable como para manejar fallas de disco del "mundo real". Por supuesto, en mi caso, RAIDZ-2 no tiene ningún sentido. Sería mucho mejor usar dos vdevs duplicados en un solo grupo (RAID10).

¿Estoy loco por querer usar RAIDZ-1 para unidades de 4x 2TB?

¿Debo usar un grupo de dos vdevs duplicados (esencialmente RAID10) y esperar que la compresión me dé suficiente espacio extra?

De cualquier manera, planeo usar compresión. Solo tengo 8 GB de RAM (máxima), por lo que dedup no es una opción.

Esto estará en un servidor FreeNAS (a punto de reemplazar el sistema operativo Ubuntu actual) para evitar los problemas de estabilidad de ZFS-on-Linux.

Andrew Ensley
fuente
No estoy seguro de cómo esto está fuera de tema. Estoy pidiendo consejo sobre la configuración adecuada del sistema de archivos para un servidor.
Andrew Ensley
También la velocidad de escritura RAIDZ1or2 apesta en comparación con RAID10
JamesRyan
2
Si tiene suficiente CPU para calcular la paridad sin ralentización, RAIDZ debería ser tan rápido o más rápido que RAID10 para la mayoría de las escrituras. RAIDZ escribe todo en una franja RAID completa, no hay ciclo de lectura-modificación-escritura como con RAID5. Por lo tanto, obtendrá más ancho de banda de disco (más datos, menos sobrecarga) y las escrituras deberían ser más rápidas que RAID10. Sin embargo, esto tiene la desventaja de que las lecturas a menudo terminan más lentamente. "Escribir una franja completa cada vez" conduce a la fragmentación y no le da el beneficio de leer solo un subconjunto de los discos para muchas lecturas pequeñas. Esta fue una decisión de diseño consciente.
Dan Pritts
Lo que dije arriba es solo parcialmente cierto. RAID10 será mucho más rápido si tiene pequeñas escrituras concurrentes, por ejemplo, un servidor de base de datos. En RAIDZ todos los discos están activos para todas las escrituras; RAID10 los divide. El punto que intentaba comunicar era que RAIDZ elimina el ciclo de lectura-modificación-escritura potencialmente peligroso de RAID5.
Dan Pritts
RAIDZ2 es más confiable que RAID10. Con RAIDZ2, cualquiera de los dos discos puede fallar y aún tendrá sus datos. Con RAID10, dos discos fallidos (en una matriz de cuatro discos) pueden causar pérdida de datos.
Klaws

Respuestas:

21

Antes de entrar en detalles, considere su caso de uso. ¿Estás almacenando fotos, MP3 y DVD? Si es así, es posible que no le importe si pierde permanentemente un solo bloque de la matriz. Por otro lado, si se trata de datos importantes, esto podría ser un desastre.

La afirmación de que RAIDZ-1 "no es lo suficientemente bueno para fallas del mundo real" se debe a que es probable que tenga un error de medios latente en uno de sus discos supervivientes cuando llegue el momento de la reconstrucción. La misma lógica se aplica a RAID5.

ZFS mitiga esta falla hasta cierto punto. Si un dispositivo RAID5 no se puede reconstruir, no tienes suerte; copie sus datos (restantes) y reconstruya desde cero. Con ZFS, por otro lado, reconstruirá todo menos el fragmento defectuoso y permitirá al administrador "borrar" los errores. Perderá un archivo / porción de un archivo, pero no perderá toda la matriz. Y, por supuesto, la verificación de paridad de ZFS significa que se le informará de manera confiable que hay un error. De lo contrario, creo que es posible (aunque poco probable) que múltiples errores resulten en una reconstrucción aparentemente exitosa, pero que le devuelva datos incorrectos.

Dado que ZFS es una " Violación de capas desenfrenadas ", también sabe qué áreas no tienen datos sobre ellas y puede omitirlas en la reconstrucción. Entonces, si su matriz está medio vacía, es probable que tenga un error de reconstrucción.

Puede reducir la probabilidad de este tipo de errores de reconstrucción en cualquier nivel de RAID haciendo "scrubs zpool" o "comprobaciones mdadm" regulares de su matriz. Hay comandos / procesos similares para otros RAID; por ejemplo, las tarjetas de incursión LSI / dell PERC llaman a esto "lectura de patrulla". Estos van a leer todo, lo que puede ayudar a las unidades de disco a encontrar sectores defectuosos y reasignarlos, antes de que se vuelvan permanentes. Si son permanentes, el sistema RAID (ZFS / md / raid card / lo que sea) puede reconstruir los datos desde la paridad.

Incluso si usa RAIDZ2 o RAID6, los exfoliantes regulares son importantes.

Una nota final: RAID de cualquier tipo no es un sustituto de las copias de seguridad: no lo protegerá contra la eliminación accidental, el ransomware, etc. Aunque las instantáneas regulares de ZFS pueden ser parte de una estrategia de copia de seguridad.

Dan Pritts
fuente
Gracias por esa explicación Eso tiene mucho sentido y coincide con lo que he aprendido sobre ZFS hasta ahora. De hecho, ya he recargado mi servidor con FreeNAS y utilicé la configuración RAIDZ-1. Lo tengo configurado para fregar una vez al mes. ¿Crees que eso es suficiente o recomendarías matorrales más frecuentes? La violación de capas desenfrenada es mi característica favorita de ZFS :-)
Andrew Ensley
1
Tengo un raidz1 ejecutándose en 7 unidades de consumo de varias edades. Lo tengo fregar cada 2 semanas. A menudo encuentra un error y lo corrige. Recientemente perdí una unidad y perdí un archivo que tenía un error latente. Afortunadamente, era un archivo multimedia que puedo reemplazar fácilmente. Para mis datos importantes todavía, por supuesto, tengo copias de seguridad.
Dan Pritts
Señalaré: las unidades 'home' tienen 2 órdenes de magnitud peor tasa de error de bit irrecuperable cuando se compara con el grado 'Enterprise'. Todavía estoy bastante contento de que la tasa de falla compuesta en RAID-5 sea aceptable en unidades FC / SAS decentes. Sin embargo, no lo haría en SATA.
Sobrique
1
Solo un orden de magnitud que compara dos unidades de Seagate: Seagate ST2000DM001: 1 en 10E14. ST2000NM0033: 1 en 10E15. Sin embargo, es realmente difícil decir con certeza si los mecanismos de accionamiento son diferentes. He escuchado que fuentes creíbles dan respuestas opuestas.
Dan Pritts
2
Descubrí un cable SATA defectuoso en mi sistema; desde que fue reemplazado, mis scrubs no encontraron errores.
Dan Pritts
4

Hay un pequeño concepto erróneo en el trabajo aquí. Muchos de los consejos que está viendo se basan en una suposición que puede no ser cierta. Específicamente, la tasa de error de bit irrecuperable de su unidad.

Un disco barato de "usuario doméstico" tiene una tasa de error irrecuperable de 1 por 10 ^ 14.

http://www.seagate.com/gb/en/internal-hard-drives/desktop-hard-drives/desktop-hdd/#specs

Esto está en un nivel en el que estás hablando de una probabilidad significativa de un error irrecuperable durante una reconstrucción RAID, por lo que no debes hacerlo. (Un cálculo rápido y sucio sugiere que 5x discos de 2TB RAID-5 realmente tendrán alrededor de un 60% de posibilidades de esto)

Sin embargo, esto no es cierto para unidades más caras: http://www.seagate.com/gb/en/internal-hard-drives/enterprise-hard-drives/hdd/enterprise-performance-15k-hdd/#specs

1 por 10 ^ 16 es 100 veces mejor, lo que significa que 5x 2 TB es <1% de probabilidad de reconstrucción fallida. (Probablemente menos, porque para uso empresarial, los husillos de 600 GB son generalmente más útiles).

Personalmente, creo que tanto RAID-5 como RAID-4 siguen siendo eminentemente utilizables, por todas las razones RAID-0 sigue siendo bastante común. No se olvide: el problema con RAID-6 es su fuerte penalización de escritura. Puede mitigar esto parcialmente con mucho almacenamiento en caché, pero aún tiene algo de dolor incorporado, especialmente cuando está trabajando con unidades lentas en primer lugar.

Y más fundamentalmente: NUNCA confíe nunca en su RAID para brindarle una capacidad de recuperación total. Perderá los datos con mayor frecuencia debido a un error que causa un fallo de la unidad, por lo que NECESITA una estrategia de respaldo decente si de todos modos se preocupa por sus datos.

Sobrique
fuente
Estoy usando 4 unidades WD RE4-GP, que tienen <1 en 10 ^ 15 errores de lectura no recuperables.
Andrew Ensley
La penalización de escritura RAID6 es muy real. Sin embargo, RAID-Z2 no lo padece; zfs hace que todas las escrituras sean franjas completas. Sin embargo, esto tiene otros efectos negativos: tiende a reducir el rendimiento de lectura por varias razones.
Dan Pritts el
3

Hmmm, alguna mala información aquí. Para 4 discos, realmente no hay nada malo con XFS. Tiendo a evitar ZFS RAIDZ por razones de rendimiento y capacidad de expansión (bajas lecturas / escrituras, no se pueden expandir). Use espejos ZFS si puede. Sin embargo, con 4 discos y ningún lugar para colocar su sistema operativo, perderá mucha capacidad o tendrá que pasar por juegos de partición extraños para ajustar su sistema operativo y datos en los mismos cuatro discos.

Probablemente no recomendaría ZFS para su caso de uso. No hay nada malo con XFS aquí.

ewwhite
fuente
2
Olvidé mencionar que el sistema operativo vive en una unidad separada. Lo siento. Lo que quiero de ZFS que el XFS RAID10 no tiene es la verificación de datos de suma de control que puede detectar (y corregir de manera transparente) errores de datos silenciosos (un poco volteado en el disco, y el HDD no tiene idea). No creo que XFS pueda hacer esto.
Andrew Ensley
Para cuatro discos, use espejos ZFS si hay alguna posibilidad de que necesite expandirse o si el rendimiento es importante. También evitaría FreeNAS y solo usaría ZFS directo en Linux.
ewwhite
1
Soy un chico terminal, así que definitivamente no voy a cambiar por la GUI. Principalmente, solo necesito un sistema de archivos estable que (en la medida de lo posible) garantice la integridad de los archivos almacenados en él. Y esperaba ganar algo de espacio en el proceso. He visto muchos problemas reportados para ZoL, muchos de ellos relacionados con las actualizaciones del sistema operativo Ubuntu. groups.google.com/a/zfsonlinux.org/forum/#!searchin/zfs-discuss/… No trato de ser una molestia. Solo explicando por qué pienso lo que pienso. Ciertamente estoy abierto a la corrección.
Andrew Ensley
1
Esta bien. He visto muchos más problemas con FreeNAS (no FreeBSD), por lo que va en ambos sentidos. Hay información por ahí. No uso Ubuntu, pero sé ZFS . Mi ZFS en Linux generalmente es con RHEL o CentOS. Aquí hay un flujo de trabajo de muestra .
Ewwhite
1
Uso ZFS en Linux y Centos 6. No permito actualizaciones automáticas del kernel o de ZFS. He tenido problemas con el borking ZFS / SCL, pero nunca he tenido pérdida de datos. Para el registro, por cierto, FreeBSD tiene un conjunto similar de rutinas de compatibilidad solaris, pero ellos y ZFS están completamente integrados en la distribución, lo que hace que sea mucho más simple hacer que todas las cosas funcionen juntas. Si solo quisiera ZFS y el servicio de archivos, probablemente ejecutaría FreeBSD. De hecho, eso es lo que solía hacer, pero uso el cuadro para otras cosas aleatorias, lo que hizo que ZoL fuera más atractivo.
Dan Pritts