Implementación de caché SSD en el sistema de almacenamiento QSAN XCubeSAN

Las tecnologías de mejora del rendimiento basadas en el uso de SSD y ampliamente utilizadas en sistemas de almacenamiento han sido inventadas desde hace tiempo. En primer lugar, se trata de utilizar SSD como espacio de almacenamiento, lo que es 100% eficiente, pero costoso. Por lo tanto, se utilizan tecnologías de tiering y caching, donde los SSD se utilizan solo para los datos más solicitados (“calientes”). El tiering es bueno para escenarios de uso a largo plazo (días-semanas) de datos “calientes”. Y el caching, por el contrario, es para uso a corto plazo (minutos-horas). Ambas variantes están implementadas en el sistema de almacenamiento. QSAN XCubeSAN. En este artículo, examinaremos la implementación del segundo algoritmo – caching SSD.

Implementación de caché SSD en el sistema de almacenamiento QSAN XCubeSAN

La esencia de la tecnología de caching SSD es el uso de SSD como un caché intermedio entre los discos duros y la memoria RAM del controlador. El rendimiento de los SSD, por supuesto, es inferior al rendimiento de la caché propia del controlador, pero su capacidad es significativamente mayor. Por lo tanto, se obtiene una especie de compromiso entre velocidad y capacidad.

Indicaciones para el uso del caché SSD para lectura:

  • Predominio de operaciones de lectura sobre operaciones de escritura (característico en su mayor parte para bases de datos y aplicaciones web);
  • Existencia de un cuello de botella en el rendimiento del conjunto de discos duros;
  • El volumen de datos requeridos es menor que el volumen del caché SSD.

Las indicaciones para el uso del caché SSD para lectura+escritura son las mismas razones, exceptuando el tipo de operaciones – tipo mixto (por ejemplo, servidor de archivos).

La mayoría de los proveedores de sistemas de almacenamiento utilizan SSD en sus productos solo para operaciones de lectura. La diferencia fundamental QSAN entre ellos es la capacidad de usar la caché también para escritura. Para activar la funcionalidad de caching SSD en el sistema de almacenamiento QSAN, se requiere adquirir una licencia adicional (se proporciona en formato electrónico).

La caché SSD en XCubeSAN se implementa físicamente como grupos de caché SSD separados. En el sistema puede haber hasta cuatro. Cada grupo, por supuesto, utiliza su propio conjunto de SSD. En las propiedades del disco virtual, definimos si utilizará el grupo de caché y cuál específicamente. La inclusión y exclusión del uso de la caché para los volúmenes se puede realizar en modo online sin detener la entrada/salida. También se pueden agregar SSD al grupo y retirarlos de él de forma "caliente". Al crear un grupo de caché SSD, es necesario elegir en qué modo funcionará: solo lectura o lectura + escritura. Esto afecta su organización física. Dado que puede haber varios grupos de caché, sus funcionalidades pueden ser diferentes (es decir, puede haber grupos de caché para lectura y para lectura + escritura simultáneamente en el sistema).

Si se utiliza un grupo de caché solo para lectura, puede constar de 1 a 8 SSD. Los discos no necesariamente deben ser del mismo tamaño ni del mismo proveedor, ya que se agrupan en una estructura NRAID+. Todos los SSD en el grupo se utilizan de manera conjunta. El sistema se esfuerza por 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 grave: la caché solo contiene una copia de los datos almacenados en el arreglo de discos duros. Simplemente, el volumen de la caché SSD disponible disminuirá (o se volverá nulo en caso de utilizar una caché SSD inicial de un solo dispositivo).

Implementación de caché SSD en el sistema de almacenamiento QSAN XCubeSAN

Si la caché se utiliza para operaciones de lectura + escritura, el número de SSD en el grupo debe ser par, ya que el contenido se refleja en pares de dispositivos (se utiliza la estructura NRAID 1+). La duplicación de la caché es necesaria porque puede contener datos que aún no se han grabado en los discos duros. En este caso, la falla de un SSD en el grupo de caché resultaría en la pérdida de información. En el caso de NRAID 1+, la falla de un SSD simplemente conducirá el caché a un estado de operación "solo lectura" con el restablecimiento de los datos no grabados en el arreglo de discos duros. Después de reemplazar el SSD defectuoso, la caché volverá a su modo de operación original. Por cierto, para mayor seguridad, a la caché que funciona en lectura + escritura se le puede asignar un hot spare dedicado.

Implementación de caché SSD en el sistema de almacenamiento QSAN XCubeSAN

Al utilizar la función de almacenamiento en caché SSD en XCubeSAN, hay una serie de requisitos en cuanto a la cantidad de memoria de los controladores de la unidad de almacenamiento: cuanto más memoria del sistema hay, mayor es el volumen del pool de caché que estará disponible.

Implementación de caché SSD en el sistema de almacenamiento QSAN XCubeSAN

A diferencia de la mayoría de los fabricantes de unidades de almacenamiento, que solo ofrecen una opción de activar/desactivar el almacenamiento en caché SSD, QSAN proporciona muchas más posibilidades. En particular, se puede elegir el modo de funcionamiento de la caché según la naturaleza de la carga. Hay tres plantillas preestablecidas, que son las más cercanas a los servicios correspondientes: base de datos, sistema de archivos, servicio web. Además, el administrador puede crear su propio perfil, estableciendo los valores requeridos de los parámetros:

  • Tamaño del bloque (Cache Block Size) – 1/2/4 MB
  • Número de solicitudes de lectura de un bloque para que sea copiado en la caché (Populate-on-Read Threshold) – 1..4
  • Número de solicitudes de escritura de un bloque para que sea copiado en la caché (Populate-on-Write Threshold) – 0..4

Implementación de caché SSD en el sistema de almacenamiento QSAN XCubeSAN

Los perfiles se pueden cambiar 'sobre la marcha', pero, por supuesto, esto requiere reiniciar el contenido de la caché y 'calentarlo' nuevamente.

Al considerar el principio de funcionamiento del almacenamiento en caché SSD, se pueden identificar las principales operaciones al trabajar con él:

Implementación de caché SSD en el sistema de almacenamiento QSAN XCubeSAN

Lectura de datos cuando no están presentes en la caché

  1. La solicitud del host llega al controlador;
  2. Dado que los datos solicitados no están en la caché SSD, se leen desde los discos duros;
  3. Los datos leídos se envían al host. Al mismo tiempo, se verifica si estos bloques son 'calientes';
  4. Si es así, se copian a la caché SSD para su uso posterior.

Implementación de caché SSD en el sistema de almacenamiento QSAN XCubeSAN

Lectura de datos cuando están presentes en la caché

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

Implementación de caché SSD en el sistema de almacenamiento QSAN XCubeSAN

Escritura de datos al utilizar la caché de lectura

  1. La solicitud de escritura del host llega al controlador;
  2. Los datos se escriben en los discos duros;
  3. Se devuelve una respuesta al host confirmando la escritura exitosa;
  4. Al mismo tiempo, se verifica si el bloque es 'caliente' (se compara con el parámetro Populate-on-Write Threshold). Si es así, se copia a la caché SSD para su uso posterior.

Implementación de caché SSD en el sistema de almacenamiento QSAN XCubeSAN

Escritura de datos al utilizar la caché de lectura+escritura

  1. La solicitud de escritura del host llega al controlador;
  2. Los datos se escriben en la caché SSD;
  3. Se devuelve una respuesta al host confirmando la escritura exitosa;
  4. Los datos del caché SSD se graban en segundo plano en los discos duros;

Verificación en el caso

Comenzamos las pruebas del esquema de HA con el desarrollo de un

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

Se utilizaron 16 x Seagate Constellation ES, ST500NM0001, 500GB, SAS 6Gb/s, combinados en RAID5 (15+1), para el arreglo 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é SSD solo de lectura con 1-8 SSD

Caché SSD

  • Tipo de I/O: Personalización
  • Tamaño de bloque de caché: 4MB
  • Umbral de carga bajo demanda: 1
  • Umbral de carga al escribir: 0

Patrón de I/O

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

Implementación de caché SSD en el sistema de almacenamiento QSAN XCubeSAN

Implementación de caché SSD en el sistema de almacenamiento QSAN XCubeSAN

En teoría, cuanto más SSD haya en el grupo de caché, mayor será el rendimiento. En la práctica, esto también fue confirmado. La única observación es que un aumento significativo en el número de SSD con un bajo número de volúmenes no produce un efecto explosivo.

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

Caché SSD

  • Tipo de I/O: Personalización
  • Tamaño de bloque de caché: 4MB
  • Umbral de carga bajo demanda: 1
  • Umbral de carga al escribir: 1

Patrón de I/O

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

Implementación de caché SSD en el sistema de almacenamiento QSAN XCubeSAN

Implementación de caché SSD en el sistema de almacenamiento QSAN XCubeSAN

El mismo resultado: crecimiento explosivo de rendimiento y escalabilidad al aumentar la cantidad de SSD.

En ambas pruebas, el volumen de los datos de trabajo fue menor que el volumen total de caché. Por lo tanto, con el tiempo, todos los bloques se copian en caché. Y el trabajo se realizó, en esencia, desde el SSD, afectando prácticamente no a los discos duros. El objetivo de estas pruebas fue mostrar visualmente la eficacia del calentamiento en caché y la escalabilidad de su rendimiento en función de la cantidad de SSD.

Ahora volvamos a la realidad y probemos una situación más realista, donde el volumen de datos es mayor que el tamaño de caché. Para que la prueba se realice en un tiempo razonable (el tiempo de ‘calentamiento’ de la caché aumenta significativamente con el tamaño del volumen), nos limitaremos a un tamaño de volumen de 120GB.

Prueba 3. Emulación del trabajo de una base de datos

Caché SSD

  • Tipo de I/O: Base de datos
  • Tamaño de bloque de caché: 1MB
  • Umbral de carga bajo demanda: 2
  • Umbral de carga al escribir: 1

Patrón de I/O

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

Implementación de caché SSD en el sistema de almacenamiento QSAN XCubeSAN

Veredicto

Como conclusión evidente, se sugiere una buena eficiencia en el uso del caché SSD para mejorar el rendimiento de cualquier sistema de almacenamiento. QSAN XCubeSAN Esta afirmación se aplica plenamente: la función de caché SSD está implementada de manera excelente. Esto incluye el soporte para modos de lectura y lectura + escritura, la configuración flexible para cualquier escenario de uso, así como el rendimiento general del sistema. Por lo tanto, por un costo muy razonable (el precio de la licencia es comparable al costo de 1-2 SSD), se puede aumentar notablemente el rendimiento general.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster