Hola habr En este artículo le diremos si vale la pena organizar matrices RAID basadas en soluciones de estado sólido SATA SSD y NVMe SSD, y ¿habrá un beneficio importante de esto? Decidimos entender este problema considerando los tipos y tipos de controladores que lo permiten, así como el alcance de la aplicación de tales configuraciones.

De una forma u otra, cada uno de nosotros, al menos una vez en mi vida, escuchó definiciones como "RAID", "matriz RAID", "controlador RAID", pero era poco probable que le diera una gran importancia a esto, porque para el PC-boyar ordinario todo esto es poco probable interesante Pero todos quieren que todos disfruten de las altas velocidades de las unidades internas y la confiabilidad de su trabajo. Después de todo, no importa cuán poderoso sea el llenado de la computadora, la velocidad de la unidad se convierte en un cuello de botella, si hablamos de la velocidad combinada de la PC y el servidor.
Eso fue exactamente hasta el momento en que los SSD NVMe tradicionales con una capacidad comparable de 1 TB o más reemplazaron el HDD tradicional. Y si antes en la PC los paquetes de SSD SATA + un par de HDD de gran capacidad eran más comunes, entonces hoy comienzan a ser reemplazados por otra solución: SSD NVMe + un par de SSD SATA de gran capacidad. Si hablamos de servidores corporativos y "nubes", muchos ya se han trasladado con éxito a SSD SATA, simplemente porque son más rápidos que los "contenedores" comunes y pueden procesar más operaciones de E / S al mismo tiempo.

Sin embargo, la tolerancia a fallas del sistema todavía está en un nivel bastante bajo: no podemos predecir, como en la "Batalla de psíquicos", incluso con una precisión de hasta una semana, cuando una u otra unidad de estado sólido ordena vivir mucho tiempo. Y si el HDD "muere" gradualmente, lo que le permite detectar los síntomas y tomar medidas, entonces el SSD "muere" inmediatamente y sin previo aviso. ¿Y ahora es tiempo de entender por qué se necesita todo esto? ¿Vale la pena organizar matrices RAID basadas en soluciones de estado sólido SATA SSD y NVMe SSD, y habrá un beneficio importante de esto?
¿Por qué necesito una matriz RAID?
La palabra "matriz" ya implica que se utilizan varias unidades (HDD y SSD) para crearla, que se combinan mediante un controlador RAID y el sistema operativo las reconoce como un único almacenamiento de datos. La tarea global que pueden resolver las matrices RAID es minimizar el tiempo de acceso a los datos, aumentar la velocidad de lectura / escritura y la confiabilidad, lo que se logra gracias a la capacidad de recuperarse rápidamente en caso de falla. Por cierto, no es necesario usar RAID para las copias de seguridad del hogar. Pero si tiene su propio servidor doméstico, que requiere acceso constante las 24 horas, los 7 días de la semana, entonces este es otro asunto.
Hay más de una docena de niveles de matrices RAID, cada una de las cuales difiere en la cantidad de unidades utilizadas y tiene sus pros y contras: por ejemplo, RAID 0 le permite obtener un alto rendimiento sin tolerancia a fallas, RAID 1 le permite duplicar automáticamente los datos sin aumentar la velocidad, y RAID 10 combina en sí mismo las posibilidades de lo anterior. RAID 0 y 1 son los más simples (ya que no requieren cálculos de software) y, como resultado, son los más populares. En última instancia, la elección a favor de un nivel RAID particular depende de las tareas asignadas a la matriz de discos y las capacidades del controlador RAID.
RAID doméstico y empresarial: ¿Cuál es la diferencia?
La base de cualquier negocio moderno son grandes cantidades de datos que deben almacenarse de forma segura en los servidores de la empresa. Y también, como señalamos anteriormente, se les debe proporcionar acceso constante las 24 horas, los 7 días de la semana. Está claro que, a la par del hardware, la parte del software también es importante, pero en este caso todavía estamos hablando de equipos que proporcionan almacenamiento y procesamiento de información confiables. Ningún software salvará a la empresa de la ruina si el hardware "hardware" no cumple con las tareas asignadas.

Para estas tareas, cualquier fabricante de hardware ofrece los llamados dispositivos corporativos. Kingston tiene potentes soluciones de estado sólido en forma de modelos SATA
Kingston 450R (DC450R) y
series DC500 , así como modelos DC1000M U.2 NVMe NVMe, modelos DCU1000 U.2 NVMe y DCP-1000 PCI-e destinados a su uso en centros de datos (centros de datos) y supercomputadoras. Las matrices de tales unidades generalmente se usan junto con controladores de hardware.

Para el mercado de consumo (es decir, para PC domésticas y servidores NAS), están disponibles unidades como
Kingston KC2000 NVMe PCIe, pero en este caso no es necesario comprar un controlador de hardware. Puede limitarse a una PC o servidor NAS integrado en la placa base, a menos que, por supuesto, planee construir su propio servidor doméstico para tareas atípicas (por ejemplo, haga un pequeño servidor doméstico para amigos). Además, las matrices RAID domésticas, por regla general, no implican la presencia de cientos o miles de unidades, limitándose a dos, cuatro y ocho dispositivos (generalmente SATA).
Tipos y tipos de controladores RAID
Existen tres tipos de controladores RAID basados en los principios de implementación RAID:
1. Software, en el que el control de la matriz recae en la CPU y la DRAM (es decir, la ejecución del código del programa ocurre en el procesador).
2. Integrado, es decir, integrado en la placa base de una PC o servidor NAS.
3. Hardware (modular), que son tarjetas de expansión discretas para conectores PCI / PCIe motherboards.
¿Cuál es su diferencia fundamental entre sí? Los controladores RAID de software son inferiores a los integrados y al hardware en cuanto a rendimiento y tolerancia a fallas, pero no requieren equipos especiales para su funcionamiento. Sin embargo, es importante asegurarse de que el procesador host sea lo suficientemente potente como para ejecutar el software RAID sin afectar negativamente el rendimiento de las aplicaciones que también se ejecutan en el host. Los controladores integrados, por regla general, están equipados con su propia memoria caché y utilizan una cierta cantidad de recursos de la CPU.
Pero el hardware tiene su propia memoria caché y un procesador integrado para ejecutar algoritmos de software. Por lo general, le permiten implementar todo tipo de niveles RAID y admiten varios tipos de unidades a la vez. Por ejemplo, puede conectar simultáneamente dispositivos SATA, SAS y NVMe a los controladores de hardware Broadcom modernos, lo que le permite no cambiar el controlador al actualizar servidores: en particular, al pasar de un SSD SATA a un SSD NVMe, no tiene que cambiar los controladores.

En realidad, en esta nota llegamos a la tipología de los controladores mismos. Si hay tres modos, ¿debería haber alguno más? En este caso, la respuesta a esta pregunta será afirmativa. Dependiendo de las funciones y capacidades, los controladores RAID se pueden dividir en varios tipos:
1. Controladores RAID ordinariosEn toda la jerarquía, este es el controlador más simple que le permite combinar HDD y SSD en matrices RAID de niveles "0", "1" o "0 + 1". Software esto se implementa a nivel de firmware. Sin embargo, tales dispositivos difícilmente se pueden recomendar para su uso en el segmento corporativo, porque carecen de caché y no admiten matrices de niveles "5", "3", etc. Pero para un servidor doméstico de nivel de entrada, son bastante adecuados.
2. Controladores que están emparejados con otros controladores RAIDEste tipo de controlador se puede combinar con controladores integrados de placa base. Esto se implementa de acuerdo con el siguiente principio: un controlador RAID discreto se encarga de la solución de problemas "lógicos" y del intercambio de datos integrado entre unidades. Pero hay un matiz: la operación paralela de tales controladores solo es posible en placas base compatibles, lo que significa que su alcance se está reduciendo considerablemente.
3. Controladores RAID independientesEstas soluciones discretas contienen a bordo todos los chips necesarios para trabajar con servidores de clase empresarial, que tienen su propio BIOS, memoria caché y un procesador para la corrección rápida de errores y el cálculo de sumas de verificación. Además, cumplen con altos estándares de confiabilidad en términos de fabricación y tienen módulos de memoria de alta calidad.
4. Controladores RAID externosEs fácil adivinar que todos los controladores anteriores son internos y reciben energía a través del conector PCIe de la placa base. ¿De qué está hablando esto? Y el hecho de que una falla de la placa base puede conducir a errores en el funcionamiento de la matriz RAID y la pérdida de datos. Los controladores externos están libres de este malentendido, ya que están alojados en una carcasa separada con una fuente de alimentación independiente. En términos de confiabilidad, tales controladores proporcionan el más alto nivel de almacenamiento de datos.
Broadcom , Microsemi Adaptec, Intel, IBM, Dell y Cisco son solo algunas de las compañías que actualmente ofrecen controladores RAID de hardware.
Modos de controladora RAID SAS / SATA / NVMe
La tarea principal de los controladores tri-mode HBA y RAID (o controladores con función Tri-Mode) es crear RAID de hardware basado en NVMe. En Broadcom, los controladores de la serie 9400 pueden hacer esto: por ejemplo, el
MegaRAID 9460-16i . Pertenece a un tipo independiente de controladores RAID, está equipado con cuatro conectores SFF-8643 y, gracias a la compatibilidad con Tri-Mode, le permite conectar unidades SATA / SAS y NVMe simultáneamente. Además, también es uno de los controladores con mayor eficiencia energética del mercado (consume solo 17 vatios de energía, mientras que menos de 1.1 vatios para cada uno de los 16 puertos).

La interfaz de conexión es PCI Express x8 versión 3.1, que le permite implementar un ancho de banda de 64 Gb / s (en 2020, se espera que aparezcan los controladores para PCI Express 4.0). El controlador de 16 puertos se basa en el chip
SAS3516 de 2 núcleos y la SDRAM DDR4-2133 de 72 bits (4 GB), así como la capacidad de conectar hasta 240 unidades SATA / SAS, o hasta 24 dispositivos NVMe. En cuanto a la organización de las matrices RAID, se admiten los niveles "0", "1", "5" y "6", así como "10", "50" y "60". Por cierto, la memoria caché del
MegaRAID 9460-16i y otros controladores de la serie 9400 está protegida contra fallas de voltaje por el módulo opcional CacheVault CVPM05.
La tecnología de tres modos se basa en la función de conversión de datos SerDes: convertir la representación de datos en serie en interfaces SAS / SATA en forma paralela en PCIe NVMe y viceversa. Es decir, el controlador negocia velocidades y protocolos para trabajar sin problemas con cualquiera de los tres tipos de dispositivos de almacenamiento. Esto proporciona una forma ininterrumpida de escalar las infraestructuras del centro de datos: los usuarios pueden usar NVMe sin cambios significativos en otras configuraciones del sistema.

Sin embargo, cuando se planifican configuraciones con unidades NVMe, vale la pena considerar que las soluciones NVMe usan 4 líneas PCIe para conectarse, lo que significa que cada unidad usa todas las líneas de puerto SFF-8643. Resulta que solo se pueden conectar cuatro unidades NVMe directamente al controlador MegaRAID 9460-16i. O limítese a dos soluciones NVMe mientras conecta ocho unidades SAS al mismo tiempo (consulte el diagrama de conexión a continuación).

La figura muestra el uso del conector “0” (C0 / Conector 0) y el conector “1” para conexiones NVMe, así como los conectores “2” y “3” para conexiones SAS. Esta disposición se puede revertir, pero cada unidad x4 NVMe debe conectarse mediante líneas adyacentes. Los modos de funcionamiento del controlador se configuran mediante las herramientas de configuración StorCLI o la Infraestructura de interfaz humana (HII), que se ejecuta en un entorno UEFI.

El modo predeterminado es el perfil "PD64" (solo admite SAS / SATA). Como dijimos anteriormente, hay tres perfiles en total: modo solo SAS / SATA (PD240 / PD64 / PD 16), modo solo NVMe (PCIe4) y modo mixto, en el que pueden funcionar todos los tipos de unidades: PD64 -PCIe4 "(soporte para 64 discos físicos y virtuales con 4 unidades NVMe). En modo mixto, el valor del perfil especificado debería ser así: "ProfileID = 13". Por cierto, el perfil seleccionado se guarda como maestro y no se restablece, incluso cuando retrocede a la configuración de fábrica a través del comando Establecer valores predeterminados de fábrica. Será posible cambiarlo solo manualmente.
¿Debo crear una matriz RAID en un SSD?
Entonces, ya nos dimos cuenta de que las matrices RAID son la clave del alto rendimiento. ¿Pero vale la pena construir RAID a partir de unidades de estado sólido para uso doméstico y corporativo? Muchos escépticos dicen que el aumento de la velocidad no es tan significativo como para quebrar en las unidades NVMe. ¿Pero es realmente así? Apenas La mayor limitación para usar SSD en RAID (tanto en el hogar como a nivel corporativo) solo puede ser el precio. Independientemente de lo que se pueda decir, el costo de un gigabyte de espacio en un HDD es mucho más barato.
La conexión de múltiples "unidades" de estado sólido a un controlador RAID para crear una matriz de SSD en ciertas configuraciones puede tener un gran impacto en el rendimiento. Sin embargo, no olvide que el rendimiento máximo está limitado por el ancho de banda del controlador RAID. El nivel RAID que ofrece el mejor rendimiento es RAID 0.

La organización de un RAID 0 regular con dos unidades SSD, que utiliza el método de división de datos en bloques fijos y su alternancia entre el almacenamiento de estado sólido, conducirá a una duplicación del rendimiento (en comparación con las velocidades que produce un SSD). En este caso, una matriz RAID 0 con cuatro unidades de estado sólido será cuatro veces más rápida que la SSD más lenta de la matriz (dependiendo del límite de ancho de banda al nivel del controlador SSD RAID).
Basado en aritmética simple, un SSD SATA es aproximadamente 3 veces más rápido que un HDD SATA tradicional. Las soluciones NVMe son aún más efectivas: 10 veces o más. Siempre que dos discos duros en el nivel cero de RAID muestren un rendimiento doble, incrementándolo en un 50%, dos SSD SATA serán 6 veces más rápidos y dos SSD NVMe serán 20 veces más rápidos. En particular, una unidad Kingston KC2000 NVMe PCIe puede alcanzar velocidades de lectura y escritura secuenciales de hasta 3200 MB / s, que en formato RAID 0 alcanzarán unos impresionantes 6 GB / s. Y la velocidad de lectura / escritura de bloques aleatorios de 4 KB pasará de 350,000 IOPS a 700,000 IOPS. Pero ... al mismo tiempo, el RAID "cero" no nos proporciona redundancia.
Podemos decir que en casa, por lo general, no se requiere redundancia de almacenamiento, por lo que RAID 0 es realmente la configuración RAID más adecuada para RAID 0. Esta es una forma confiable de obtener un aumento significativo en el rendimiento como alternativa al uso de tecnologías como los SSD Intel Optane. Pero cómo se comportarán las soluciones SSD en los tipos más populares de RAID ("1", "5", "10", "50"), hablaremos en nuestro próximo artículo.
Este artículo fue preparado con el apoyo de nuestros colegas de Broadcom, quienes proporcionan sus controladores a los ingenieros de Kingston para que los prueben con unidades SATA / SAS / NVMe de clase empresarial. Gracias a esta simbiosis amigable, los clientes no tienen que dudar de la confiabilidad y estabilidad de las unidades Kingston con los controladores HBA y RAID de Broadcom.
Puede encontrar información adicional sobre los productos Kingston
en el sitio web oficial de la compañía.