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

Hace tiempo que se inventan tecnologías para mejorar el rendimiento basadas en el uso de SSD y ampliamente utilizadas en sistemas de almacenamiento. En primer lugar, está el uso de SSD como espacio de almacenamiento, que es 100% efectivo, pero costoso. Por lo tanto, se utilizan tecnologías agotadoras y de almacenamiento en caché, donde los SSD se utilizan solo para los datos más populares (“calientes”). La estratificación es buena para escenarios de uso a largo plazo (días-semanas) de datos "calientes". El almacenamiento en caché, por el contrario, es para uso a corto plazo (minutos-horas). Ambas opciones se implementan en el sistema de almacenamiento. QSAN XCubeSAN. En este artículo veremos la implementación del segundo algoritmo: Almacenamiento en caché SSD.

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

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

Indicaciones para usar caché SSD para lectura:

  • El predominio de las operaciones de lectura sobre las de escritura (más a menudo típicas de bases de datos y aplicaciones web);
  • La presencia de un cuello de botella en forma de rendimiento de la matriz de discos duros;
  • La cantidad de datos necesarios es menor que el tamaño de la caché SSD.

Las indicaciones para utilizar una caché SSD de lectura+escritura son las mismas, excepto por la naturaleza de las operaciones: 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 QSAN También brindan la posibilidad de utilizar el caché para escribir. Para activar la funcionalidad de almacenamiento en caché SSD en los sistemas de almacenamiento QSAN, debe comprar una licencia por separado (suministrada electrónicamente).

La caché SSD en XCubeSAN se implementa físicamente en forma de grupos de caché SSD separados. Puede haber hasta cuatro de ellos en el sistema. Cada grupo, por supuesto, utiliza su propio conjunto de SSD. Y ya en las propiedades del disco virtual determinamos si utilizará un grupo de caché y cuál. La habilitación y deshabilitación del uso de caché para volúmenes se puede realizar en línea sin detener la E/S. También puede agregar SSD en caliente al grupo y eliminarlos de allí. Al crear una caché de grupo SSD, debe elegir en qué modo funcionará: solo lectura o lectura+escritura. De esto depende su organización física. Dado que puede haber varios grupos de caché, su funcionalidad puede ser diferente (es decir, el sistema puede tener grupos de caché de lectura y lectura+escritura al mismo tiempo).

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

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

Si el caché se usa para operaciones de lectura + escritura, entonces la cantidad de SSD en el grupo debe ser múltiplo de dos, ya que los contenidos se reflejan en pares de unidades (se usa la estructura NRAID 1+). Es necesario duplicar el caché porque puede contener datos que aún no se han escrito en los discos duros. Y en este caso, un fallo del SSD del grupo de caché provocaría la pérdida de información. En el caso de NRAID 1+, una falla del SSD simplemente hará que la caché se transfiera a un estado de solo lectura, y los datos no escritos se volcarán en la matriz de discos duros. Después de reemplazar el SSD defectuoso, el caché volverá a su modo de funcionamiento original. Por cierto, para mayor seguridad, puede asignar repuestos dinámicos dedicados a una caché de lectura + escritura.

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

Cuando se utiliza la función de almacenamiento en caché SSD en XCubeSAN, existen varios requisitos para la cantidad de memoria de los controladores de almacenamiento: cuanta más memoria del sistema, mayor será el grupo de caché disponible.

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

A diferencia de la mayoría de los fabricantes de sistemas de almacenamiento, que sólo ofrecen la opción de activar/desactivar la caché SSD, QSAN ofrece más opciones. En particular, puede seleccionar el modo de funcionamiento de la caché según la naturaleza de la carga. Hay tres plantillas preestablecidas que se acercan en su funcionamiento a los servicios correspondientes: base de datos, sistema de archivos y servicio web. Además, el administrador puede crear su propio perfil configurando los valores de parámetros requeridos:

  • Tamaño de bloque (tamaño de bloque de caché): 1/2/4 MB
  • Número de solicitudes para leer un bloque para que se copie en la caché (umbral de llenado en lectura) – 1..4
  • Número de solicitudes para escribir un bloque para que se copie en la caché (umbral de llenado al escribir): 0..4

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

Los perfiles se pueden cambiar sobre la marcha, pero, por supuesto, con el reinicio del contenido de la caché y su nuevo “calentamiento”.

Teniendo en cuenta el principio de funcionamiento de la caché SSD, podemos destacar las principales operaciones a la hora de trabajar con ella:

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

Leer datos cuando no están en el caché

  1. Una solicitud del host llega al controlador;
  2. Como los solicitados no están en la caché del SSD, se leen desde los discos duros;
  3. Los datos leídos se envían al host. Al mismo tiempo, se comprueba si estos bloques están “calientes”;
  4. En caso afirmativo, se copian en la caché SSD para su uso posterior.

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

Leer datos cuando están presentes en el caché

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

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

Escribir datos al usar caché de lectura

  1. Una solicitud de escritura del host llega al controlador;
  2. Los datos se escriben en discos duros;
  3. Se devuelve al anfitrión una respuesta que indica que la grabación se realizó correctamente;
  4. Al mismo tiempo, se verifica si el bloque está "activo" (se compara el parámetro Umbral de llenado en escritura). En caso afirmativo, se copia en la caché del SSD para su uso posterior.

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

Escribir datos cuando se utiliza un caché de lectura+escritura

  1. Una solicitud de escritura del host llega al controlador;
  2. Los datos se escriben en la caché SSD;
  3. Se devuelve al anfitrión una respuesta que indica que la grabación se realizó correctamente;
  4. Los datos de la caché SSD se escriben en los discos duros en segundo plano;

Verificar en acción

Banco de pruebas

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).

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

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

Prueba 1. Caché SSD de solo lectura de 1 a 8 SSD

Caché SSD

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

Patrón de E/S

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

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

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

En teoría, cuantos más SSD haya en el grupo de caché, mayor será el rendimiento. En la práctica esto se ha confirmado. El único aumento significativo en el número de SSD con un pequeño 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 E/S: Personalización
  • Tamaño del bloque de caché: 4 MB
  • Umbral de llenado en lectura: 1
  • Umbral de llenado al escribir: 1

Patrón de E/S

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

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

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

El mismo resultado: crecimiento y escalamiento explosivos del rendimiento a medida que aumenta la cantidad de SSD.

En ambas pruebas, la cantidad de datos de trabajo fue menor que el tamaño total de la caché. Por lo tanto, con el tiempo, todos los bloques se copiaron al caché. Y el trabajo, de hecho, ya se hacía con SSD, prácticamente sin afectar a los discos duros. El objetivo de estas pruebas era demostrar claramente la eficacia de calentar el caché y escalar su rendimiento en función de la cantidad de SSD.

Ahora volvamos a la tierra y verifiquemos una situación más realista, cuando la cantidad de datos es mayor que el tamaño de la caché. Para que la prueba pase en un período de tiempo razonable (el período de "calentamiento" de la caché aumenta considerablemente a medida que aumenta el tamaño del volumen), limitaremos el tamaño del volumen a 120 GB.

Prueba 3. Emulación de base de datos

Caché SSD

  • Tipo de E/S: Base de datos
  • Tamaño del bloque de caché: 1 MB
  • Umbral de llenado en lectura: 2
  • Umbral de llenado al escribir: 1

Patrón de E/S

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

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

Veredicto

La conclusión obvia, por supuesto, es la buena eficiencia que supone utilizar una caché SSD para mejorar el rendimiento de cualquier sistema de almacenamiento. Aplicado a QSAN XCubeSAN Esta afirmación es plenamente válida: la función de almacenamiento en caché SSD se implementa perfectamente. Se trata de soporte para modos de lectura y lectura + escritura, configuraciones flexibles para cualquier escenario de uso, así como el rendimiento general del sistema en su conjunto. Por lo tanto, por un costo muy razonable (el precio de la licencia es comparable al costo de 1 o 2 SSD), puede aumentar significativamente el rendimiento general.

Fuente: habr.com

Añadir un comentario