Implemente el almacenamiento en caché SSD en el almacenamiento QSAN XCubeSAN

Las tecnologías de mejora del rendimiento basadas en SSD que se utilizan ampliamente en los sistemas de almacenamiento se han inventado durante mucho tiempo. En primer lugar, este es el uso de SSD como espacio de almacenamiento, que es 100% eficiente pero costoso. Por lo tanto, se utilizan tecnologías de emparejamiento y almacenamiento en caché, donde los SSD se usan solo para los datos más populares ("activos"). El rasgado es bueno para escenarios de uso a largo plazo (días-semanas) de datos "candentes". Y el almacenamiento en caché, por el contrario, es para uso a corto plazo (minutos-horas). Ambas opciones se implementan en el almacenamiento QSAN XCubeSAN . En este artículo, consideraremos la implementación del segundo algoritmo: almacenamiento en caché SSD .




La esencia de la tecnología de almacenamiento en caché SSD es el uso de SSD como caché intermedia entre los discos duros y la memoria del controlador. El rendimiento de los SSD, por supuesto, es menor que el rendimiento de la memoria caché del controlador, pero el volumen es un orden de magnitud mayor. Por lo tanto, obtenemos un compromiso entre velocidad y volumen.


Indicaciones para usar el caché de lectura SSD:


  • El predominio de las operaciones de lectura sobre las operaciones de escritura (a menudo características de bases de datos y aplicaciones web);
  • La presencia de un cuello de botella en forma de rendimiento de una variedad de discos duros;
  • La cantidad de datos solicitados es menor que el tamaño de la caché SSD.

Las indicaciones para usar el caché SSD de lectura / escritura son las mismas razones, con la excepción de la naturaleza de las operaciones: un tipo mixto (por ejemplo, servidor de archivos).


La mayoría de los proveedores de almacenamiento utilizan caché SSD de solo lectura en sus productos. La diferencia fundamental entre QSAN y ellos es la capacidad de usar el caché también para escribir. Para activar la funcionalidad de almacenamiento en caché SSD en el almacenamiento QSAN, se requiere una licencia por separado (entregada en forma electrónica).


La caché SSD en XCubeSAN se implementa físicamente como agrupaciones de caché SSD separadas. Puede haber hasta cuatro en el sistema. Cada grupo, por supuesto, usa su propio conjunto de SSD. Y ya en las propiedades de un disco virtual, determinamos si usará el grupo de caché y cuál. La activación y desactivación del uso de caché para volúmenes se puede hacer en línea sin detener la E / S. También en el "hot" puede agregar SSD a la agrupación y eliminarlos desde allí. Al crear un caché de grupo SSD, debe elegir en qué modo funcionará: solo lectura o lectura + escritura. Su organización física depende de ello. Dado que el caché de los grupos puede ser varios, la funcionalidad puede ser diferente (es decir, el sistema puede tener grupos de caché para leer y leer + escribir al mismo tiempo).


Si usa un caché de grupo de solo lectura, puede constar de 1-8 SSD. Los discos no tienen que ser del mismo volumen y de un solo proveedor, ya que se combinan en una estructura NRAID +. Todos los SSD en el grupo son compartidos. El sistema intenta de forma independiente paralelizar las solicitudes entrantes entre todos los SSD para lograr el máximo rendimiento. En caso de falla de uno de los SSD, no ocurrirá nada terrible: después de todo, el caché contiene solo una copia de los datos almacenados en una matriz de discos duros. Es solo que la cantidad de caché SSD disponible disminuirá (o cero si usa el caché SSD original de una unidad).



Si el caché se usa para operaciones de lectura + escritura, entonces el número de SSD en el grupo debe ser un múltiplo de dos, ya que el contenido se refleja en pares de unidades (usando la estructura NRAID 1+). La duplicación de la memoria caché es necesaria debido al hecho de que puede contener datos que aún no se han escrito en los discos duros. Y en este caso, la falla del SSD del grupo de caché conduciría a la pérdida de información. En el caso de NRAID 1+, una falla de SSD simplemente conducirá a una transición de caché a un estado de solo lectura con el volcado de datos no grabados a una matriz desde discos duros. Después de reemplazar el SSD fallido, el caché volverá a su modo de operación original. Por cierto, para una mayor seguridad, se puede asignar un repuesto dinámico dedicado a un caché que funciona para lectura + escritura.



Cuando se utiliza la función de almacenamiento en caché SSD en XCubeSAN, hay una serie de requisitos para la capacidad de almacenamiento de los controladores de almacenamiento: cuanta más memoria del sistema, mayor será el conjunto de caché disponible.



A diferencia de la mayoría de los fabricantes de almacenamiento, que ofrecen solo la opción de encendido / apagado como la configuración de caché SSD, QSAN ofrece más opciones. En particular, puede seleccionar el modo operativo de caché dependiendo de la naturaleza de la carga. Hay tres plantillas predefinidas que son las más cercanas en su trabajo a los servicios correspondientes: base de datos, sistema de archivos, servicio web. Además, el administrador puede crear su propio perfil estableciendo los valores de parámetros necesarios:


  • Tamaño de bloque (tamaño de bloque de caché) - 1/2/4 MB
  • El número de solicitudes para leer un bloque para que se copie en la memoria caché (umbral de llenado en lectura) es 1..4
  • El número de solicitudes para escribir un bloque para que se copie en la memoria caché (umbral de relleno en escritura) es 0..4


Los perfiles se pueden cambiar sobre la marcha, pero, por supuesto, con poner a cero el contenido de la memoria caché y su nuevo "calentamiento".


Teniendo en cuenta el principio de funcionamiento del caché SSD, podemos distinguir las operaciones principales cuando trabajamos con él:







Leer datos cuando no está en el caché


  1. La solicitud del host va al controlador;
  2. Como los solicitados no están en el caché SSD, se leen desde los discos duros;
  3. Los datos leídos se envían al host. Al mismo tiempo, se está realizando una verificación para ver si estos bloques están "calientes";
  4. Si es así, se copian a la caché SSD para referencia futura.





Leer datos cuando está presente en el caché


  1. La solicitud del host va al controlador;
  2. Como los datos solicitados están en la caché SSD, se leen desde allí;
  3. Los datos leídos se envían al host.





Escribir datos al usar caché de lectura


  1. Una solicitud de escritura del host va al controlador;
  2. Los datos se escriben en discos duros;
  3. El anfitrión devuelve una respuesta sobre la grabación exitosa;
  4. Al mismo tiempo, se verifica si el bloque está "activo" (se compara el parámetro Umbral de relleno en escritura). Si es así, se copia a la caché SSD para uso futuro.





Escribir datos cuando se usa lectura / escritura de caché


  1. Una solicitud de escritura del host va al controlador;
  2. Los datos se escriben en el caché SSD;
  3. El anfitrión devuelve una respuesta sobre la grabación exitosa;
  4. Los datos del caché SSD en segundo plano se escriben en los discos duros;



Verificación en negocios


Banco de pruebas

2 servidores (CPU: 2 x Xeon E5-2620v3 2.4Hz / RAM: 32GB) están conectados por dos puertos a través del Fibre Channel 16G directamente al sistema de almacenamiento XCubeSAN XS5224D (16GB RAM / controlador).


Usó 16 x Seagate Constellation ES, ST500NM0001, 500GB, SAS 6Gb / s, combinado en RAID5 (15 + 1), para matriz de datos y 8 x HGST Ultrastar SSD800MH.B, HUSMH8010BSS200, 100GB, SAS 12Gb / s como caché


Se crearon 2 volúmenes: uno para cada servidor.



Prueba 1. Caché de solo lectura SSD con 1-8 SSD


Caché SSD


  • Tipo de E / S: personalización
  • Tamaño del bloque de caché: 4 MB
  • Umbral de población en lectura: 1
  • Umbral de llenado en escritura: 0

Patrón de E / S


  • Herramienta: IOmeter V1.1.0
  • Trabajadores: 1
  • Excepcional (Profundidad de la cola): 128
  • Especificaciones de acceso: 4KB, 100% de lectura, 100% aleatorio



En teoría, cuantos más SSD haya en el grupo de caché, mayor será el rendimiento. En la práctica, esto se confirmó. El único aumento significativo en el número de SSD con un pequeño número de volúmenes no conduce a un efecto explosivo.


Prueba 2. Caché SSD en modo lectura + escritura con 2-8 SSD


Caché SSD


  • Tipo de E / S: personalización
  • Tamaño del bloque de caché: 4 MB
  • Umbral de población en lectura: 1
  • Umbral de población en escritura: 1

Patrón de E / S


  • Herramienta: IOmeter V1.1.0
  • Trabajadores: 1
  • Excepcional (Profundidad de la cola): 128
  • Especificaciones de acceso: 4KB, 100% de escritura, 100% aleatorio



El mismo resultado: crecimiento y escala explosivos del rendimiento con un aumento en la cantidad de SSD.


En ambas pruebas, la cantidad de datos operativos fue menor que el tamaño total de la memoria caché. Por lo tanto, con el tiempo, todos los bloques se copiaron en la memoria caché. Y el trabajo, de hecho, se realizó con un SSD, prácticamente sin afectar los discos duros. El propósito de estas pruebas era demostrar claramente la efectividad de calentar el caché y escalar su rendimiento dependiendo de la cantidad de SSD.


Ahora, regresemos del cielo a la tierra y verifiquemos una situación más vital cuando la cantidad de datos es mayor que el tamaño del caché. Para que la prueba pase en un tiempo razonable (el término de "calentamiento" del caché aumenta significativamente al aumentar el tamaño del volumen), nos restringimos al tamaño de volumen de 120 GB.


Prueba 3. Emulación de la base de datos.


Caché SSD


  • Tipo de E / S: base de datos
  • Tamaño del bloque de caché: 1 MB
  • Umbral de población en lectura: 2
  • Umbral de población en escritura: 1

Patrón de E / S


  • Herramienta: IOmeter V1.1.0
  • Trabajadores: 1
  • Excepcional (Profundidad de la cola): 128
  • Especificaciones de acceso: 8 KB, 67% de lectura, 100% aleatorio


El veredicto


Como conclusión obvia, por supuesto, una buena eficiencia del uso de la caché SSD sugiere aumentar el rendimiento de cualquier sistema de almacenamiento. Con respecto a QSAN XCubeSAN, esta declaración es totalmente aplicable: la función de almacenamiento en caché SSD se implementa perfectamente. Esto se aplica al soporte para lectura y lectura + escritura, configuraciones de trabajo flexibles para cualquier caso de uso, así como el rendimiento final del sistema en su conjunto. Por lo tanto, por un costo muy razonable (el precio de una licencia es comparable con el costo de 1-2 SSD), puede aumentar significativamente el rendimiento general.

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


All Articles