He estado leyendo mucho sobre controladores / configuraciones RAID y una cosa que surge mucho es cómo los controladores de hardware sin caché ofrecen el mismo rendimiento que el software RAID. ¿Es este realmente el caso?
Siempre pensé que las tarjetas RAID de hardware ofrecerían un mejor rendimiento incluso sin caché. Quiero decir, tienes hardware dedicado para realizar las tareas. Si ese es el caso, ¿cuál es el beneficio de obtener una tarjeta RAID que no tiene caché, algo como un LSI 9341-4i que no es exactamente barato?
Además, si una ganancia de rendimiento solo es posible con la memoria caché, ¿hay una configuración de memoria caché que escriba en el disco de inmediato pero mantenga los datos en la memoria caché para las operaciones de lectura, lo que hace que una BBU no sea una prioridad?
fuente
Respuestas:
En resumen: si usa una tarjeta RAID de gama baja (sin caché), hágase un favor y cambie a RAID de software. Si usa una tarjeta de gama media a alta (con BBU o NVRAM), entonces el hardware es a menudo (¡pero no siempre!) A continuación, una buena opción.
Respuesta larga: cuando el poder de cómputo era limitado, las tarjetas RAID de hardware tenían la ventaja significativa de descargar el cálculo de paridad / síndrome para los esquemas RAID que las involucraban (RAID 3/4/5, RAID6, ecc).
Sin embargo, con el rendimiento cada vez mayor de la CPU, esta ventaja básicamente desapareció: incluso la CPU antigua de mi computadora portátil (Core i5 M 520, generación Westmere) tiene un rendimiento XOR de más de 4 GB / sy un rendimiento del síndrome RAID-6 de más de 3 GB / s en un núcleo de ejecución única .
La ventaja que mantiene RAID de hardware hoy en día es la presencia de una memoria caché DRAM protegida contra pérdida de energía, en forma de BBU o NVRAM. Esta memoria caché protegida proporciona una latencia muy baja para el acceso de escritura aleatorio (y las lecturas acertadas) y básicamente transforma las escrituras aleatorias en escrituras secuenciales. Un controlador RAID sin tal caché es casi inútil . Además, algunos controladores RAID de gama baja no solo vienen sin un caché, sino que deshabilitan por la fuerza el caché DRAM privado del disco, lo que conduce a un rendimiento más lento que sin la tarjeta RAID. Un ejemplo son las tarjetas PERC H200 y H300 de DELL: si el firmware más reciente no ha cambiado eso, deshabilitan totalmente la caché privada del disco (y no se puede volver a habilitar mientras los discos están conectados al controlador RAID). Hazte un favor y hazlonunca, nunca, compre tales controladores. Si bien incluso los controladores de gama alta a menudo deshabilitan la caché privada del disco, al menos tienen su propia caché protegida, lo que hace que la caché privada de HDD (¡pero no SSD!) Sea algo redundante.
Sin embargo, este no es el final. Incluso los controladores capaces (el que tiene caché BBU o NVRAM) pueden dar resultados inconsistentes cuando se usan con SSD, básicamente porque los SSD realmente necesitan un caché privado rápido para la programación / borrado eficiente de páginas FLASH. Y aunque algunos controladores (¿la mayoría?) Le permiten volver a habilitar la memoria caché privada del disco (por ejemplo: PERC H700 / 710 / 710P permite que el usuario lo vuelva a habilitar), si esa memoria caché privada no está protegida contra escritura, corre el riesgo de perder datos en caso de que de pérdida de potencia. El comportamiento exacto realmente es controlador y firmware dependiente (por ejemplo: en un Dell S6 / i con 256 MB de caché BM y caché de disco habilitado , tuve no hay pérdidas durante las pruebas múltiples, prevista pérdida de potencia), dando incertidumbre y mucha preocupación.
Los RAID de software de código abierto, por otro lado, son bestias mucho más controlables: su software no está incluido dentro de un firmware patentado y tiene patrones y comportamientos de metadatos bien definidos. El software RAID asume (correctamente) que el caché DRAM privado del disco no está protegido, pero al mismo tiempo es crítico para un rendimiento aceptable, por lo que generalmente no lo deshabilitan, sino que usan los comandos ATA FLUSH / FUA para asegurarse de que es crítico los datos aterrizan en almacenamiento estable. Como a menudo se ejecutan desde los puertos SATA conectados al conjunto de chips SB, su ancho de banda es muy bueno y el soporte del controlador es excelente.
Sin embargo, si se usa con discos duros mecánicos, el patrón de acceso de escritura aleatorio sincronizado (por ejemplo, bases de datos, máquinas virtuales) sufrirá mucho en comparación con un controlador RAID de hardware con caché WB. Por otro lado, cuando se usa con SSD empresariales (es decir, con un caché de escritura protegido por pérdida de potencia), el RAID de software a menudo se destaca y ofrece resultados aún más altos que los que se pueden lograr con las tarjetas RAID de hardware. Dicho esto, debe recordar que los SSD de los consumidores (léase: con caché de escritura no protegida), aunque son muy buenos para leer y escribir asíncronamente, ofrecen IOPS muy bajas en cargas de trabajo de escritura sincronizada.
También tenga en cuenta que los RAID de software no se crean todos de la misma manera. El software RAID de Windows tiene una mala reputación, en cuanto al rendimiento, e incluso Storage Space no parece muy diferente. Linux MD Raid es excepcionalmente rápido y versátil, pero la pila de E / S de Linux se compone de múltiples piezas independientes que debe comprender cuidadosamente para extraer el máximo rendimiento. RAID de paridad ZFS (ZRAID) es extremadamente avanzado pero, si no está configurado correctamente, puede proporcionarle IOP muy pobres; espejo + rayas, por otro lado, funciona bastante bien. De todos modos, necesita un dispositivo SLOG rápido para el manejo de escritura sincrónica (ZIL).
Línea de fondo:
fuente
fsync()
. Consulte este artículo , que muestra que un SSD Samsung NVMe sin condensador solo hace ~ 250 fsyncs por segundo (yo también lo he medido). Los SSD con condensador proporcionan ~ 30 veces más fsyncs / s, un controlador RAID de hardware con batería 100 veces más.Querrá una batería o una solución de caché con respaldo flash para cualquier controlador de hardware que compre. La mayoría lamenta no haberlo hecho .
Pero para responder a su pregunta, la mayoría de los controladores tienen relaciones de caché configurables ... por lo que el 100% de caché de lectura y el 0% de caché de escritura niega la necesidad de protección BBU. Su rendimiento de escritura simplemente apestará.
No puedo abordar su pregunta RAID de software porque depende. Linux MD RAID es diferente del RAID de software de Windows, que es diferente de algo como ZFS . Las soluciones como ZFS pueden funcionar mejor que el hardware porque aprovechan los recursos de RAM y CPU del servidor.
fuente
El controlador RAID que tiene en mente es barato y es básicamente falso. Incluso depende de su placa base para proporcionar algunas funciones como memoria y no muchas placas principales tienen soporte para ello, lo que resulta en que no puede cargar el controlador.
Acerca de HW vs SW-RAID en sí. Ya no uso HW-RAID a menos que sea una caja con un logotipo de EMC, por ejemplo. Por todo lo demás, acabo de cambiar a SW-RAID muchas lunas nuevamente por algunas razones muy simples.
Necesita hardware adicional y debe combinarlos. También debe hacer coincidir el firmware y mantenerlo sincronizado. Muchos discos no funcionarán correctamente y tendrás picos en tu latencia de E / S sin una razón clara.
El hardware adicional es costoso, por lo que puede usar esos $ 1000 adicionales (controlador decente con dos / tres discos) para una solución pequeña mejor. Invierta en más discos y controladores estándar, memoria ECC, CPU más rápida. Y un disco de repuesto en el sitio tal vez si planea ejecutarlo por más tiempo que el período de garantía o no desea pagar las tarifas expresas por envío nocturno.
La actualización es una tarea difícil ya que necesita realizar un seguimiento de los parches del sistema operativo y el firmware tanto para el disco como para el controlador. Puede dar lugar a una situación en la que la actualización / actualización ya no sea posible.
En formatos de disco. Suficientes proveedores utilizan un diseño interno para almacenar datos vinculados a una revisión de su combinación de hardware y firmware. Esto puede dar lugar a una situación en la que una pieza de repuesto hace que sea imposible acceder a sus datos.
Es un SPOF y un cuello de botella. Tener solo un controlador detrás de un solo puente PCI no le brinda el rendimiento y la redundancia que realmente necesita. Con esto también viene a que no exista una ruta de migración para migrar datos a otro conjunto de discos fuera del alcance de los controladores.
La mayoría de estos puntos se han solucionado con las nuevas generaciones de software o soluciones SW-RAID como ZFS y BtrFS. Tenga en cuenta que al final desea proteger sus datos y no acceder rápidamente, sino basura redundante.
fuente
Pasé el último año (de vez en cuando hasta 2014-2015) probando varias configuraciones paralelas de CentOS 6.6 RAID 1 (duplicadas) usando 2 controladores LSI 9300 HBA y 2 controladores RAID LSI 9361-8i con sistemas basados en lo siguiente: 2U Supermicro CSE- Chasis 826BAC4-R920LPB, placa base ASUS Z9PE-D16, 2 procesadores Intel Xeon E5-2687W v2 de ocho núcleos a 3,4 GHz, Seagate ST6000NM0014 duplicado SAS de 6 TB, 12 Gbs, 512 GB de RAM. Tenga en cuenta que esta es una configuración totalmente compatible con SAS3 (12 Gbps).
He revisado artículos escritos sobre software de ajuste y he usado el software RAID de Linux durante más de 10 años. Al ejecutar pruebas de E / S básicas (dd-oflag = direct 5k a archivos 100G, hdparam -t, etc.), el RAID de software parece apilarse favorablemente a la incursión de hardware. El RAID de software se refleja a través de HBA separados. He ido tan lejos como para hacer pruebas con las configuraciones estándar de kernel CentOS 6, kernel-lt y kernel-ml. También probé varios ajustes de mdadm, sistema de archivos, subsistema de disco y o / s sugeridos por una variedad de artículos en línea escritos sobre RAID de software de Linux. A pesar del ajuste, las pruebas, el ajuste y las pruebas, cuando se ejecuta en un mundo de lectura, el sistema de procesamiento de transacciones (que tiene una base de datos MySQL u Oracle), descubrí que ejecutar un controlador RAID de hardware produce un aumento de 50 veces en el rendimiento.
Durante muchos, muchos meses no estaba convencido de que RAID de hardware podría ser mucho mejor, sin embargo, después de una exhaustiva investigación sobre RAID de software Linux, pruebas y ajustes, esos fueron mis resultados.
fuente
La mayoría de los escritores aquí ignoran el " agujero de escritura ". Esta es la base que permite clamar por unidades de respaldo de batería de RAID de hardware frente a la ausencia de tal para RAID de software. Bueno, por ejemplo, la implementación de RAID de software de Linux admite mapas de bits de operaciones de escritura o vuelve a calcular la "paridad" en caso de apagado no limpio. ZFS siempre se esfuerza por escribir con franjas completas para evitar esta inconsistencia o posponer su revisión. Entonces, como resumen, el RAID de software lo suficientemente inteligente hoy en día es a menudo lo suficientemente bueno como para usarse en lugar de "quién sabe qué hay dentro" llamado "RAID de hardware".
En cuanto a la parte de la pregunta sobre el caché, realmente no importa tanto, porque el sistema operativo en sí mismo puede ser mucho más grande que el adaptador "hardware".
fuente
Yo trabajo esto todo el tiempo. Depende en gran medida de lo que estés haciendo y del nivel de ataque que apoyes. Un controlador SW que ejecuta un Raid 0 o 1 para el sistema operativo y nada especial está bien. ¡Ejecutar un controlador SW con un Raid 5 en una base de datos es un problema! ALGUNOS controladores de hardware le brindan un mejor rendimiento, pero depende de si puede almacenar en caché y el chipset del procesador de la tarjeta RAID. Además, no todos los controladores de software son compatibles con todos los sistemas operativos. Entonces, a veces puede que tenga que comprar un HW para ejecutar ESXi ... A menos que use conexiones sata.
fuente