Mejores prácticas de ZFS con RAID de hardware

30

Si uno tiene algún hardware de nivel de servidor a su disposición, ¿alguna vez es aconsejable ejecutar ZFS sobre un RAID1 basado en hardware o algo así? ¿Debería uno apagar el RAID basado en hardware y ejecutar ZFS en una mirroro en su raidz zpoollugar?

Con la funcionalidad RAID de hardware desactivada, ¿son los controladores SATA2 y SAS basados ​​en RAID basados ​​en hardware más o menos propensos a ocultar errores de lectura y escritura que los controladores RAID que no son de hardware?

En términos de servidores no personalizables, si uno tiene una situación en la que un controlador RAID de hardware es efectivamente rentable (o incluso reduce el costo de la oferta de servidor preconstruido, ya que su presencia mejora la probabilidad de que la empresa de alojamiento proporcione IPMI complementario acceso), ¿debería evitarse en absoluto? ¿Pero debe buscarse?

cnst
fuente
2
posible duplicado de ZFS en la parte superior de la
Shane Madden
2
@ShaneMadden, las preguntas son similares, sin embargo, mi pregunta ya proviene de la perspectiva de que el ataque de hardware es malo en términos de zfs, y estoy preguntando qué tan malo es; también, considere que la respuesta aceptada a su pregunta vinculada no aborda mi pregunta en absoluto; mi pregunta es más como una pregunta de seguimiento a la pregunta que ha vinculado.
cnst
"¿ZFS encima de la duplicación de hardware, o simplemente duplicar en ZFS?" y esta pregunta son dos temas diferentes. Ese otro tema tiene un alcance más limitado que este tema.
Stefan Lasiewski
@ewwhite, ¿no preguntaste esto ya?
cnst
@cnst Bueno, no hay una respuesta marcada, y la gente sigue rechazando mi respuesta. Por lo tanto, sería bueno que hubiera algún cierre a la pregunta planteada. ( es lo responsable de hacer )
ewwhite

Respuestas:

17

La idea con ZFS es hacer saber lo más posible cómo se comportan los discos. Entonces, de peor a mejor:

  • Incursión de hardware (ZFS no tiene absolutamente ninguna pista sobre el hardware real),
  • Modo JBOD (el problema es más sobre cualquier posible expansor: menos ancho de banda),
  • El modo HBA es el ideal (ZFS sabe todo sobre los discos)

Como ZFS es bastante paranoico sobre el hardware, cuanto menos se oculta, más puede hacer frente a cualquier problema de hardware. Y como señaló Sammitch , las configuraciones de Controlador RAID y ZFS pueden ser muy difíciles de restaurar o reconfigurar cuando falla (es decir, falla de hardware).

Sobre el problema del hardware estandarizado con algún controlador RAID de hardware, solo tenga cuidado de que el controlador de hardware tenga un modo real de transferencia o JBOD.

Ouki
fuente
10
También vale la pena señalar que si está utilizando HW RAID y su controlador muere [sucede más de lo que pensaría] si no puede obtener un reemplazo que sea idéntico o totalmente compatible, está enganchado. Por otro lado, si entregó los discos en bruto a ZFS, puede volver a conectar esos discos a cualquier controlador en cualquier máquina y ZFS puede reconstruir la matriz y continuar como si nada hubiera pasado.
Sammitch
1
Los servidores de gama alta suelen tener controladores RAID integrados. Por ejemplo, nunca tuve que reemplazar un controlador en un sistema HP o Dell.
ewwhite
2
Esta respuesta no responde nada. Expresa solo la opinión parcial, que el proveedor del hardware del servidor y el programador ZFS han hecho un mejor trabajo que el proveedor del controlador RAID y el programador del firmware RAID. La comunidad FreeNAS está llena de tipos que mataron a sus Zpools con un mal funcionamiento de la memoria del servidor o fuentes de alimentación inadecuadas. La posibilidad de que algo grande falle es mayor que algo pequeño.
ceving
14

P. Si se tiene algún hardware de nivel de servidor a disposición, ¿alguna vez es aconsejable ejecutar ZFS sobre un RAID1 basado en hardware o algo así?

R. Es altamente preferible ejecutar ZFS directamente en el disco, y no utilizar ninguna forma de RAID en el medio. Si un sistema que efectivamente requiere el uso de la tarjeta RAID impide que el uso de ZFS tenga más que ver con los OTROS beneficios de ZFS que con la capacidad de recuperación de datos. De plano, si hay una tarjeta RAID subyacente responsable de proporcionar un único LUN a ZFS, ZFS no va a mejorar la resistencia de los datos. Si su única razón para optar por ZFS en primer lugar es la mejora de la capacidad de recuperación de datos, entonces perdió toda razón para usarla. Sin embargo, ZFS también proporciona ARC / L2ARC, compresión, instantáneas, clones y varias otras mejoras que también puede desear, y en ese caso, tal vez aún sea su sistema de archivos de elección.

P. ¿Debería uno apagar el RAID basado en hardware y ejecutar ZFS en un espejo o en un raidz zpool?

R. Sí, si es posible. Algunas tarjetas RAID permiten el modo de transferencia. Si lo tiene, esto es lo preferible.

P. Con la funcionalidad RAID de hardware desactivada, ¿son los controladores SATA2 y SAS basados ​​en RAID basados ​​en hardware más o menos propensos a ocultar errores de lectura y escritura que los controladores RAID que no son de hardware?

R. Esto depende completamente de la tarjeta RAID en cuestión. Tendrá que estudiar detenidamente el manual o contactar al fabricante / vendedor de la tarjeta RAID para averiguarlo. Algunos lo hacen, sí, especialmente si 'desactivar' la funcionalidad RAID en realidad no la desactiva por completo.

P. En términos de servidores no personalizables, si uno tiene una situación en la que un controlador RAID de hardware es efectivamente neutral en cuanto a costos (o incluso reduce el costo de la oferta de servidor preconstruido, ya que su presencia mejora la probabilidad de que la empresa de alojamiento proporcione acceso IPMI complementario), ¿debería evitarse en absoluto? ¿Pero debe buscarse?

R. Esta es la misma pregunta que la primera. Nuevamente, si su único deseo de usar ZFS es una mejora en la resistencia de los datos, y su plataforma de hardware elegida requiere una tarjeta RAID que proporcione un único LUN a ZFS (o varios LUN, pero tiene una franja ZFS en ellos), entonces está haciendo nada para mejorar la resistencia de los datos y, por lo tanto, su elección de ZFS puede no ser adecuada. Sin embargo, si encuentra útil alguna de las otras características de ZFS, aún puede serlo.

Quiero agregar una preocupación adicional: las respuestas anteriores se basan en la idea de que el uso de una tarjeta RAID de hardware debajo de ZFS no hace nada para dañar a ZFS más allá de eliminar su capacidad para mejorar la capacidad de recuperación de datos. La verdad es que es más un área gris. Hay varios sintonizables y suposiciones dentro de ZFS que no necesariamente funcionan tan bien cuando se entregan LUN multidisco en lugar de discos sin formato. La mayor parte de esto se puede negar con la sintonización adecuada, pero listo para usar, no será tan eficiente en ZFS sobre grandes LUN RAID como lo hubiera sido sobre los husillos individuales.

Además, hay alguna evidencia que sugiere que la manera muy diferente en la que ZFS habla con los sistemas LUN en lugar de los sistemas de archivos más tradicionales a menudo invoca rutas de código en el controlador RAID y cargas de trabajo a las que no están acostumbrados, lo que puede conducir a rarezas. En particular, es probable que se haga un favor al deshabilitar la funcionalidad ZIL por completo en cualquier grupo que coloque encima de un único LUN si no está proporcionando un dispositivo de registro separado, aunque, por supuesto, le recomiendo encarecidamente SÍ proporcione al grupo un dispositivo de registro sin procesar (que no sea un LUN de la tarjeta RAID, si es posible).

Nex7
fuente
9

Ejecuto ZFS sobre configuraciones de HP ProLiant Smart Array RAID con bastante frecuencia.

¿Por qué?

  • Porque me gusta ZFS para particiones de datos, no para particiones de arranque.
  • Debido a que el arranque de Linux y ZFS probablemente no sea lo suficientemente infalible para mí en este momento.
  • Debido a que los controladores HP RAID no permiten el paso de dispositivos RAW . Configurar múltiples volúmenes RAID 0 no es lo mismo que los discos RAW.
  • Debido a que los backplanes del servidor no suelen ser lo suficientemente flexibles como para dedicar bahías de unidades a un controlador específico o dividir tareas entre dos controladores. En estos días, se ven configuraciones de 8 y 16 bahías con mayor frecuencia. No siempre es suficiente para segmentar la forma en que deberían ser las cosas.
  • Pero todavía me gustan las capacidades de gestión de volumen de ZFS. El zpool me permite dividir las cosas dinámicamente y aprovechar al máximo el espacio disponible en disco.
  • ¡Compresión, ARC y L2ARC son características increíbles!
  • Una configuración ZFS diseñada correctamente sobre RAID de hardware todavía ofrece buenas advertencias y alertas de falla, pero supera la solución solo de hardware.

Un ejemplo:

Configuración del controlador RAID.

[root@Hapco ~]# hpacucli ctrl all show config

Smart Array P410i in Slot 0 (Embedded)    (sn: 50014380233859A0)

   array B (Solid State SATA, Unused Space: 250016  MB)
      logicaldrive 3 (325.0 GB, RAID 1+0, OK)

      physicaldrive 1I:1:3 (port 1I:box 1:bay 3, Solid State SATA, 240.0 GB, OK)
      physicaldrive 1I:1:4 (port 1I:box 1:bay 4, Solid State SATA, 240.0 GB, OK)
      physicaldrive 2I:1:7 (port 2I:box 1:bay 7, Solid State SATA, 240.0 GB, OK)
      physicaldrive 2I:1:8 (port 2I:box 1:bay 8, Solid State SATA, 240.0 GB, OK)

bloquear la lista de dispositivos

[root@Hapco ~]# fdisk  -l /dev/sdc

Disk /dev/sdc: 349.0 GB, 348967140864 bytes
256 heads, 63 sectors/track, 42260 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1       42261   340788223   ee  GPT

configuración de zpool

[root@Hapco ~]# zpool  list
NAME   SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
vol1   324G  84.8G   239G    26%  1.00x  ONLINE  -

detalle de zpool

  pool: vol1
 state: ONLINE
  scan: scrub repaired 0 in 0h4m with 0 errors on Sun May 19 08:47:46 2013
config:

        NAME                                      STATE     READ WRITE CKSUM
        vol1                                      ONLINE       0     0     0
          wwn-0x600508b1001cc25fb5d48e3e7c918950  ONLINE       0     0     0

listado del sistema de archivos zfs

[root@Hapco ~]# zfs list
NAME             USED  AVAIL  REFER  MOUNTPOINT
vol1            84.8G   234G    30K  /vol1
vol1/pprovol    84.5G   234G  84.5G  -
ewwhite
fuente
Entonces, con respecto a la pregunta cerrada a la que se ha vinculado, ¿es para decir que si quiero usar ZFS, será mejor que evite, por ejemplo, Dell PERC H200 y HP P410? ¿Todavía no tienen una forma de deshabilitar el modo RAID de hardware, ya sea RAID0 o RAID1?
cnst
Entonces, parece que dell.com/learn/us/en/04/campaigns/dell-raid-controllers afirma que H200 "admite no RAID", aunque h18004.www1.hp.com/products/servers/proliantstorage/ ... no está del todo claro si la funcionalidad de incursión de P410 puede o no desactivarse.
Cnst
@cnst No puede deshabilitar la funcionalidad RAID de una HP Smart Array P410.
ewwhite
¿Sigue siendo correcto? ¿Estás diciendo que no hay ningún ZFS peligroso en ataques de hardware?
escaso
Correcto. No es peligroso
Ewwhite
5

Por lo general, nunca debe ejecutar ZFS sobre discos configurados en una matriz RAID. Tenga en cuenta que ZFS no tiene que ejecutarse en modo RAID. Solo puede usar discos individuales. Sin embargo, prácticamente el 99% de las personas ejecutan ZFS para la parte RAID del mismo. Simplemente podría ejecutar sus discos en modo de rayas, pero eso es un mal uso de ZFS. Como otros carteles han dicho, ZFS quiere saber mucho sobre el hardware. ZFS solo debe estar conectado a una tarjeta RAID que se puede configurar en modo JBOD, o preferiblemente conectado a un HBA. Salta al canal IRC Freenode #openindiana; cualquiera de los expertos de ZFS en el canal le dirá lo mismo. Pídale a su proveedor de alojamiento que proporcione el modo JBOD si no le darán un HBA.

Chris
fuente
1
Si estoy de acuerdo. Pero también es una cuestión de lo que está disponible en stock con la configuración que se ajusta a la factura y las especificaciones. Si un servidor tiene una gran CPU, mucha RAM ECC, gran ancho de banda y mucho, pero tiene que venir con un RAID basado en hardware, puede que no sea rentable buscar alternativas, que pueden ser varias veces más caras, debido a que en una categoría diferente o menos, o faltan algunos de la empresa características como la memoria RAM ECC, etc.
cnst
2

En resumen: usar RAID debajo de ZFS simplemente mata la idea de usar ZFS. ¿Por qué? - Porque está diseñado para funcionar en discos puros, no en RAID.

poige
fuente
1
No necesariamente. ¿Qué pasa si me importa más la flexibilidad de administración de volumen que la optimización en torno a tener acceso en bruto a dispositivos físicos? ZFS funciona bastante bien para mi caso de uso.
ewwhite
3
@ewwhite, bueno, alguien puede conducir bicicleta caminando cerca de él, diciendo que le gusta caminar y que ama las bicicletas en general, pero la verdad es que las bicicletas están hechas para andar en ellas. )
poige
2

Para todos ustedes ... ¡ZFS sobre cualquier Raid es un DOLOR total y solo lo hacen personas MAD! ... como usar ZFS con memoria no ECC.

Con muestras entenderás mejor:

  • ZFS sobre Raid1, un disco ha cambiado un poco cuando no estaba apagado ... haga palanca, todo lo que sabe, ZFS verá algún daño o no dependiendo de qué disco se haya leído (el controlador Raid no vio ese bit cambiado y piensa que ambos discos están bien ) ... si la falla está en la parte VDEV ... toda la ZPOOL pierde todos sus datos para siempre.
  • ZFS sobre Raid0, un disco ha cambiado un poco cuando no estaba apagado ... palanca todo lo que sabes, (el controlador Raid no vio ese bit cambiado y piensa que ambos discos están bien) ... ZFS verá ese daño pero si el fail está en la parte VDEV ... todo el ZPOOL pierde todos sus datos para siempre.

Donde ZFS es bueno es en la detección de bits que cambian cuando el disco no tiene energía (los controladores RAID no pueden hacer eso), también cuando algo cambia sin que se le pida, etc.

Es el mismo problema que cuando un bit en un módulo RAM cambia espontáneamente sin que se le pida ... si la memoria es ECC, la memoria se corrige sola; si no, esos datos habían cambiado, por lo que los datos se enviarán a los discos modificados; compruebe que el cambio no está en la parte de UDEV, si el error está en la parte de VDEV ... todo el ZPOOL pierde todos sus datos para siempre.

Esa es una debilidad en ZFS ... Los errores de VDEV implican que todos los datos se pierden para siempre.

Hardware Raid y Software Raid no pueden detectar cambios espontáneos de bits, no tienen sumas de verificación, lo peor en los niveles de Raid1 (mirros), no leen todas las partes y las comparan, suponen que todas las partes siempre tendrán los mismos datos, SIEMPRE (digo en voz alta) Raid supone que los datos no han cambiado de ninguna otra forma / cosa ... pero los discos (como memoria) son propensos a cambios de bits espontáneos.

Nunca use un ZFS en una RAM que no sea ECC y nunca use ZFS en discos con incursiones, deje que ZFS vea todos los discos, no agregue una capa que pueda arruinar su VDEV y POOL.

Cómo simular tal falla ... apague la PC, saque un disco de ese Raid1 y modifique solo un bit ... reconecte y vea cómo el controlador Raid no puede saber que ha cambiado ... ZFS puede porque todas las lecturas se prueban contra la suma de comprobación y, si no coincide, lea de otra parte ... Raid nunca vuelve a leer porque falla (excepto el hardware, la lectura imposible falla) ... si Raid puede leer, piensa que los datos están bien (pero no es así en tales casos ) ... Raid solo intenta leer desde otro disco si donde lee dice "oye, no puedo leer desde allí, falla el hardware" ... ZFS lee desde otro disco si la suma de comprobación no coincide como si fuera donde lee dice "oye, no puedo leer desde allí, falla el hardware".

Espero dejarlo muy claro ... ¡ZFS sobre cualquier nivel de Raid es un dolor total y un riesgo total para sus datos! así como ZFS en memorias no ECC.

Pero lo que nadie dice (excepto yo) es:

  • No use discos con caché interna (no solo los que tienen SHDD, también algunos que tienen 8Mib a 32MiB de caché, etc.) ... algunos de ellos usan memoria no ECC para dicha caché
  • No use SATA NCQ (una forma de escribir en queu) porque puede arruinar ZFS si se pierde energía

Entonces, ¿qué discos usar?

  • Cualquier disco con batería interna que garantice que toda la cola se grabe en el disco en casos de falla de energía y use memoria ECC en su interior (lo siento, hay muy pocos con todo eso y son caros).

Pero, oye, la mayoría de la gente no sabe todo esto y nunca tuvo un problema ... les digo: wow, qué suerte tienes, compra algunos boletos de lotería, antes de que la suerte se vaya.

Los riesgos están ahí ... tales fallas pueden ocurrir con frecuencia ... así que la mejor respuesta es:

  • Intente no poner ninguna capa entre ZFS y donde los datos realmente están almacenados (RAM, Raid, NCQ, caché de disco interno, etc.) ... tanto como pueda permitirse.

¿Qué hago personalmente?

  • Ponga algunas capas más ... uso cada disco SATA III de 7200 rpm de 2.5 "en un gabinete USB 3.1 Gen2 tipo C, conecto algunos gabinetes a un concentrador USB 3.1 Gen 2 Tipo A que conecto a la PC; otro a otro concentrador que conecto a otro puerto raíz en la PC, etc.
  • Para el sistema, uso conectores sata internos en un ZFS (nivel Raid0) porque uso un sistema Linux inmutable (como un LiveCD), cada arranque arranca contenido idéntico en discos internos ... y tengo una imagen de clonación del sistema que puedo restaurar (sistema de menos de 1GiB) ... también utilizo el truco para tener el sistema contenido en un archivo y uso la unidad asignada de RAM donde lo clono en el arranque, por lo que después del arranque todo el sistema se ejecuta en la RAM ... poniendo ese archivo en un DVD también puedo arrancar de la misma manera, por lo que en caso de falla de los discos internos, solo arranco con el DVD y el sistema está en línea nuevamente ... truco similar al SystemRescueCD pero un poco más complejo porque el archivo ISO puede estar en el ZFS interno o simplemente ser el DVD real y no quiero dos versiones diferentes.

Espero que pueda dar un poco de luz sobre ZFS contra Raid, ¡es realmente un dolor cuando las cosas van mal!

Claudio
fuente
Entonces, ¿estás diciendo que ZFS es tan poco confiable que si cambia un solo bit puedes perder todo el sistema de archivos? ¿Cómo causa la pérdida de datos SATA NCQ cuando la unidad todavía notifica al host solo cuando los sectores se han escrito correctamente (aunque en un orden diferente)?
Malvineous