Prueba de la tecnología de caché RAID Adaptec

Las soluciones para trabajar con matrices RAID desde discos duros se han utilizado durante mucho tiempo. En general, continúan siendo populares en muchas áreas donde se requiere una matriz de alto volumen relativamente tolerante a fallas. Dado el tamaño de los discos duros modernos, su velocidad y otras razones, el mayor interés práctico son las matrices de RAID6 (o RAID60, si hay muchos discos). Pero este tipo de matrices tiene un bajo rendimiento en operaciones de escritura aleatorias y no es fácil hacer nada con él.

Por supuesto, en este caso estamos hablando de la velocidad del "volumen bruto". En la vida real, el sistema de archivos, el sistema operativo, las aplicaciones y todo lo que se le agrega. De hecho, no todo es tan malo. Sin embargo, también existen métodos de hardware y software para aumentar la productividad que son independientes de estos subsistemas. Estamos hablando de tecnologías de almacenamiento en caché cuando se agrega una unidad de memoria flash significativamente más rápida a una variedad de discos duros.

En particular, en los controladores RAID Adaptec, esta tecnología se llama maxCache y su versión 3.0 se implementa en los modelos ASR-8885Q y ASR-81605ZQ. Al usarlo, se deben tener en cuenta varias características: solo se permite un volumen maxCache por controlador, el volumen máximo del volumen maxCache es de 1 TB, para que el almacenamiento en caché de escritura funcione, debe tener una configuración tolerante a fallas del volumen maxCache (por ejemplo, un espejo). Al mismo tiempo, el usuario puede especificar independientemente para cada volumen lógico cómo trabajará exactamente con maxCache, para leer y / o escribir y en qué modo.
Para las pruebas, utilizamos un servidor basado en una placa base Supermicro X10SLM-F, un procesador Intel Xeon E3-1225 v3 (4C / 8T, 3.2 GHz), 32 GB de RAM funcionando bajo Debian 9.

imagen

El controlador ASR-81605ZQ probado tiene una unidad de protección de memoria y, cuando trabaja con una gran variedad de discos duros, tiene cachés de lectura y escritura activos. Recuerde que la memoria interna de este modelo es de 1 GB. Se creó una matriz RAID6 con un bloque de 256 KB a partir de seis discos duros SATA Seagate ST10000NM0086 con una capacidad de 10 TB. El volumen total del volumen fue de aproximadamente 36 TB.

Dos pares de dispositivos actuaron como SSD para el volumen maxCache: dos Samsung 850 EVO de segunda generación de 1 TB cada uno con interfaz SATA y dos Seagate 1200 SSD (ST400FM0053) de 400 GB cada uno con interfaz SAS a partir de la cual se crearon matrices RAID1. Por supuesto, el primer modelo ya puede considerarse obsoleto y no solo moralmente. Pero para ilustrar el escenario presupuestario, lo hará. El segundo se ajusta formalmente mejor a la categoría "corporativa", pero también es difícil considerarlo moderno. En la configuración de la matriz maxCache, solo existe la opción Flush and Fetch Rate, que se mantuvo en el valor predeterminado (Medio). No hay forma de seleccionar una prioridad para operaciones o volúmenes de disco. Tenga en cuenta que las unidades no estaban en un nuevo estado y TRIM no se utiliza en esta configuración.

Después de crear el volumen maxCache, debe habilitar los parámetros para usarlo en las propiedades del volumen lógico. Hay tres opciones en total: habilitar caché de lectura, habilitar caché de escritura y tipo de caché de escritura.

La utilidad fio se utilizó como herramienta de prueba, y el conjunto de scripts incluía operaciones secuenciales y aleatorias con un número diferente de hilos. Vale la pena señalar que el estudio del rendimiento de los productos con tecnologías de almacenamiento en caché de tecnología sintética es difícil de reconocer como la mejor opción. Es mejor evaluar adecuadamente el efecto en tareas reales, ya que la carga sintética en cierta medida contradice la idea misma de almacenamiento en caché. Además, en este caso consideramos operaciones de bajo nivel, y de hecho el usuario generalmente maneja archivos y, como dijimos anteriormente, el sistema de archivos del volumen, el sistema operativo y el software en sí están incluidos en el trabajo con ellos. Por lo tanto, son sintéticos, atractivos por su simplicidad y repetibilidad, lo que no tiene sentido por sí solo, sino principalmente para comparar "cómo fue y cómo se convirtió" en escenarios difíciles para los algoritmos de almacenamiento en caché y una estimación bastante aproximada del efecto.

Veamos primero de lo que nuestra matriz es capaz por sí sola. Recuerde que en operaciones secuenciales, la velocidad en MB / sy retrasos (en una escala logarítmica) son interesantes, y en operaciones aleatorias, IOPS y retrasos también son interesantes.

imagen

imagen

La velocidad de las operaciones de transmisión con una matriz de esta configuración está en el nivel de 900 MB / s. Al mismo tiempo, los retrasos no superan los 70 ms, incluso con una gran cantidad de subprocesos.

imagen

imagen

Para los discos duros, las operaciones aleatorias son la carga más difícil, como se puede ver en los resultados. Si establece el umbral de latencia en 100 ms, puede obtener aproximadamente 1100 IOPS en la lectura, y en el registro, independientemente de la carga, la matriz puede proporcionar aproximadamente 300 IOPS. Tenga en cuenta que con una matriz RAID60 de 36 discos en el mismo controlador, puede obtener números más interesantes, gracias a la configuración de tres bloques de 12 discos duros. Esto le permite agregar rotación y aumentar las velocidades a 3500 y 1200 IOPS en lectura y escritura aleatorias, respectivamente (en esta configuración había discos duros SAS bastante antiguos de HGST a 2 TB). El lado negativo de esta opción es el costo adicional del volumen, ya que no se “pierden” dos discos por volumen, sino dos por grupo.

Entonces, sin almacenamiento en caché, nuestra matriz se ve lo suficientemente triste como para operaciones aleatorias. Por supuesto, esta es la velocidad "en bruto" del volumen, y los programas rara vez dan una carga exclusivamente aleatoria (recuerde que aquí todavía tenemos una matriz para almacenar archivos grandes, no la base de datos).

imagen

Veamos cómo los SSD pueden ayudar en esta situación. En las pruebas, se utilizarán cuatro opciones de configuración disponibles: solo leer, leer y escribir Escribir a través, leer y escribir Escribir de nuevo, leer y escribir Instant Write Back:

  • WB: reescritura habilitada. maxCache almacenará los datos en el SSD y los volverá a escribir en los discos duros cuando haya poco o ningún impacto en el rendimiento. Esta es la política predeterminada.
  • INSTWB: reescritura instantánea habilitada. Además de la política predeterminada, maxCache creará páginas sucias sobre la marcha para escrituras de banda completa si hay espacio en el SSD y el número de páginas sucias está por debajo del umbral.
  • WT: escritura activada. Similar a la escritura instantánea, pero las escrituras de banda completa van tanto al caché como al disco duro y no se crean páginas sucias sobre la marcha.

Comencemos con las unidades SATA, que son bastante grandes. Los gráficos esta vez serán separados: velocidad y demoras para cada uno de los cuatro escenarios de prueba.

imagen

imagen

En operaciones de lectura secuencial, la matriz muestra resultados estables independientemente del tipo de caché utilizado, que es de esperar. Al mismo tiempo, difieren poco de una matriz sin caché, todos los mismos 900 MB / sy retrasos de aproximadamente 70 ms.

imagen

imagen

Hay dos grupos en escritura secuencial: solo para lectura y con Write Back muestran resultados similares a una matriz sin caché: aproximadamente 900 MB / sy hasta 100 ms, y Write Through y Instant Write Back pueden extraer no más de 100 MB / sy con un tamaño significativamente mayor retrasos

imagen

imagen

Recuerde que al leer la matriz de discos duros mostró un máximo de aproximadamente 1100 IOPS, pero en este límite los retrasos ya comenzaron a superar los 100 ms. Con el almacenamiento en caché de SSD SATA, puede lograr resultados ligeramente mejores: aproximadamente 1,500 IOPS y con los mismos retrasos.

imagen

imagen

En las operaciones de grabación aleatoria, vemos el mayor efecto: un aumento en los indicadores de dos veces y media con un aumento simultáneo en la capacidad de carga. Al usar el caché, puede tener retrasos de hasta 100 ms con dos o tres veces más subprocesos.

La conclusión general sobre esta configuración es: no interfiere con la lectura secuencial, no interfiere con la escritura secuencial en algunas configuraciones, agrega alrededor del 35% en lecturas aleatorias y aumenta el rendimiento un par de veces en escrituras aleatorias.

Ahora veamos una variante del volumen de almacenamiento en caché del segundo par de unidades SSD. Tenga en cuenta que en nuestro caso tenían un volumen significativamente menor, una interfaz SAS de 12 Gb / sy características de mayor velocidad (declarada por el fabricante).

imagen

imagen

En la lectura secuencial, los resultados no difieren de los dados anteriormente, lo cual es bastante esperado.

imagen

imagen

En la grabación secuencial, ahora tenemos tres grupos: la configuración con escritura a través de la memoria caché de escritura se queda atrás, aproximadamente la Escritura instantánea muestra aproximadamente la mitad de la velocidad máxima y solo la Escritura posterior no es diferente de una matriz sin caché. La misma situación con el tiempo de espera.

imagen

imagen

Pero en lectura aleatoria, Instant Write Back demostró ser la mejor, alcanzando 2500 IOPS, mientras que el resto de las configuraciones solo pueden extenderse hasta 1800 IOPS. Tenga en cuenta que todas las opciones con almacenamiento en caché de escritura son notablemente más rápidas que una matriz "limpia". Al mismo tiempo, el tiempo de espera no supera los 100 ms, incluso con una gran cantidad de subprocesos.

imagen

imagen

En operaciones de lectura aleatorias, Instant Write Back vuelve a aparecer, mostrando casi 2,000 IOPS. El segundo grupo contiene las configuraciones Write Through y Write Back con 1000 IOPS.

El último participante, que no usa el caché para operaciones de escritura, muestra alrededor de 300 IOPS, así como solo una variedad de discos duros.

Quizás la opción más interesante para este volumen de caché es Instant Write Back. Es cierto que es más lento en las operaciones de lectura de transmisión. Es posible arreglar esto usando la configuración RAID10 para el volumen maxCache, pero ya costará cuatro bahías en el gabinete de almacenamiento.

En general, podemos decir que el uso de la tecnología maxCache puede ser realmente útil para aumentar el rendimiento de las matrices de los discos duros, especialmente si hay muchas operaciones aleatorias en la carga. Sin embargo, todavía es imposible considerar que es tan efectivo como reemplazar el disco duro con un SSD en una computadora de escritorio o estación de trabajo.

El mayor efecto que se observó en las pruebas es un aumento en la velocidad de las operaciones aleatorias en 2-3 veces. Por supuesto, no se utilizaron los SSD más rápidos, lo que se reflejó claramente en algunas pruebas (por ejemplo, grabación secuencial en modo Write Through). Además, me gustaría volver a llamar la atención sobre el hecho de que la elección de la configuración de almacenamiento en caché afecta significativamente los resultados. Dado que es posible cambiar la configuración "sobre la marcha" sin pérdida de datos, vale la pena verificar todas las opciones en sus tareas usted mismo y elegir la mejor opción.

Source: https://habr.com/ru/post/es419053/


All Articles