Implementación de caché SSD no sistema de almacenamento QSAN XCubeSAN
As tecnoloxías para mellorar o rendemento baseadas no uso de SSD e amplamente utilizadas nos sistemas de almacenamento foron inventadas dende hai tempo. En primeiro lugar, é o uso de SSD como espazo de almacenamento, que é 100% efectivo, pero caro. Polo tanto, utilízanse tecnoloxías agotadoras e de caché, onde os SSD só se usan para os datos ("quentes") máis populares. A clasificación é boa para escenarios de uso a longo prazo (días-semanas) de datos "quentes". A caché, pola contra, é para uso a curto prazo (minutos-horas). Ambas opcións están implementadas no sistema de almacenamento QSAN XCubeSAN. Neste artigo analizaremos a implementación do segundo algoritmo: Almacenamento en caché SSD.
A esencia da tecnoloxía de caché SSD é o uso de SSD como caché intermedia entre os discos duros e a memoria RAM do controlador. O rendemento do SSD é, por suposto, inferior ao rendemento da propia caché do controlador, pero o volume é unha orde de magnitude superior. Polo tanto, obtemos un certo compromiso entre velocidade e volume.
Indicacións para usar a caché SSD para ler:
O predominio das operacións de lectura sobre as operacións de escritura (a maioría das veces típicas de bases de datos e aplicacións web);
A presenza dun pescozo de botella en forma de rendemento da matriz de discos duros;
A cantidade de datos necesarios é menor que o tamaño da caché SSD.
As indicacións para usar unha caché SSD de lectura+escritura son as mesmas, excepto pola natureza das operacións: tipo mixto (por exemplo, servidor de ficheiros).
A maioría dos provedores de almacenamento usan caché SSD de só lectura nos seus produtos. A diferenza fundamental QSAN Ofrecen a capacidade de usar a caché tamén para escribir. Para activar a funcionalidade de almacenamento en caché SSD nos sistemas de almacenamento QSAN, debes mercar unha licenza separada (suministrada electrónicamente).
A caché SSD en XCubeSAN está fisicamente implementada en forma de conxuntos de caché SSD separados. Pode haber ata catro deles no sistema. Cada grupo, por suposto, usa o seu propio conxunto de SSD. E xa nas propiedades do disco virtual determinamos se utilizará un pool de caché e cal. Activar e desactivar o uso da caché para volumes pódese facer en liña sen deter as E/S. Tamén podes engadir SSD á piscina e eliminalos de alí. Ao crear unha caché de grupo SSD, debes escoller en que modo funcionará: só lectura ou lectura+escritura. Diso depende a súa organización física. Dado que pode haber varias agrupacións de caché, a súa funcionalidade pode ser diferente (é dicir, o sistema pode ter grupos de caché de lectura e escritura ao mesmo tempo).
Se se utiliza un conxunto de caché de só lectura, pode constar de 1 a 8 SSD. Os discos non teñen que ter a mesma capacidade e o mesmo provedor, xa que se combinan nunha estrutura NRAID+. Todas as unidades SSD do grupo son compartidas. O sistema tenta paralelizar de forma independente as solicitudes entrantes entre todos os SSD para acadar o máximo rendemento. Se un dos SSD falla, non pasará nada malo: despois de todo, a caché só contén unha copia dos datos almacenados na matriz de discos duros. É só que a cantidade de caché SSD dispoñible diminuirá (ou pasará a ser cero se se usa a caché SSD orixinal dunha unidade).
Se a caché se usa para operacións de lectura + escritura, entón o número de SSD no grupo debería ser un múltiplo de dous, xa que o contido reflíctese en pares de unidades (utilízase a estrutura NRAID 1+). É necesario duplicar a caché porque pode conter datos que aínda non se escribiron nos discos duros. E neste caso, o fallo do SSD do grupo de caché levaría á perda de información. No caso de NRAID 1+, un fallo do SSD simplemente levará a que a caché se transfira a un estado de só lectura, con datos non escritos que se volcarán na matriz de discos duros. Despois de substituír o SSD defectuoso, a caché volverá ao seu modo de funcionamento orixinal. Por certo, para unha maior seguridade, podes asignar recambios dedicados a unha caché de lectura + escritura.
Cando se utiliza a función de almacenamento en caché SSD en XCubeSAN, hai unha serie de requisitos para a cantidade de memoria dos controladores de almacenamento: canta máis memoria do sistema, maior será o conxunto de caché dispoñible.
A diferenza da maioría dos fabricantes de sistemas de almacenamento, que só ofrecen unha opción para activar/desactivar a caché SSD, QSAN ofrece máis opcións. En particular, pode seleccionar o modo de funcionamento da caché dependendo da natureza da carga. Existen tres modelos preestablecidos que se aproximan no seu funcionamento aos servizos correspondentes: base de datos, sistema de ficheiros, servizo web. Ademais, o administrador pode crear o seu propio perfil configurando os valores dos parámetros necesarios:
Tamaño do bloque (Tamaño do bloque da caché): 1/2/4 MB
Número de solicitudes para ler un bloque para que se copie na caché (Limiar de enchemento en lectura) - 1..4
Número de solicitudes para escribir un bloque para que se copie na caché (Limiar de enchemento en escritura) - 0..4
Os perfís pódense cambiar sobre a marcha, pero, por suposto, co contido da caché restablecida e o seu novo "quecemento".
Tendo en conta o principio de funcionamento da caché SSD, podemos destacar as principais operacións ao traballar con ela:
Dado que os solicitados non están na caché SSD, lense desde os discos duros;
Os datos lidos envíanse ao host. Ao mesmo tempo, faise unha comprobación para ver se estes bloques están "quentes";
Se si, cópiase na caché SSD para o seu uso posterior.
Ler os datos cando están presentes na caché
Unha solicitude do host chega ao controlador;
Dado que os datos solicitados están na caché SSD, léase desde alí;
Os datos lidos envíanse ao host.
Escribindo datos ao usar a caché de lectura
Unha solicitude de escritura do host chega ao controlador;
Os datos escríbense nos discos duros;
Devólvese ao host unha resposta que indica a gravación correcta;
Ao mesmo tempo, compróbase se o bloque está "quente" (compárase o parámetro Populate-on-Write Threshold). Se si, cópiase na caché SSD para o seu uso posterior.
Escribindo datos cando se utiliza unha caché de lectura+escritura
Unha solicitude de escritura do host chega ao controlador;
Os datos escríbense na caché SSD;
Devólvese ao host unha resposta que indica a gravación correcta;
Os datos da caché SSD escríbense en discos duros en segundo plano;
Cheque en acción
Banco de probas
2 servidores (CPU: 2 x Xeon E5-2620v3 2.4 Hz / RAM: 32 GB) están conectados por dous portos a través de Fibre Channel 16G directamente ao sistema de almacenamento XCubeSAN XS5224D (16 GB de RAM/controlador).
Usamos 16 Seagate Constellation ES, ST500NM0001, 500 GB, SAS 6 Gb/s, combinados en RAID5 (15+1), para a matriz de datos e 8 x HGST Ultrastar SSD800MH.B, HUSMH8010BSS200, 100 GB, SASs como caché 12Gb
Creáronse 2 volumes: un para cada servidor.
Proba 1. Caché SSD de só lectura de 1 a 8 SSD
Caché SSD
Tipo de E/S: Personalización
Tamaño do bloque da caché: 4 MB
Limiar de poboación en lectura: 1
Limiar de enchemento na escritura: 0
Patrón de E/S
Ferramenta: IOmeter V1.1.0
Traballadores: 1
Sobresaliente (profundidade da fila): 128
Especificacións de acceso: 4KB, 100% de lectura, 100% aleatorio
En teoría, cantos máis SSD hai no grupo de caché, maior será o rendemento. Na práctica, isto foi confirmado. O único aumento significativo no número de SSD cun pequeno número de volumes non leva a un efecto explosivo.
Proba 2. Caché SSD en modo lectura + escritura con 2-8 SSD
Caché SSD
Tipo de E/S: Personalización
Tamaño do bloque da caché: 4 MB
Limiar de poboación en lectura: 1
Limiar de enchemento na escritura: 1
Patrón de E/S
Ferramenta: IOmeter V1.1.0
Traballadores: 1
Sobresaliente (profundidade da fila): 128
Especificacións de acceso: 4KB, 100% de escritura, 100% aleatorio
O mesmo resultado: crecemento explosivo do rendemento e escalado a medida que aumenta o número de SSD.
En ambas as probas, a cantidade de datos de traballo foi menor que o tamaño total da caché. Polo tanto, co paso do tempo, todos os bloques foron copiados na caché. E o traballo, de feito, xa se levou a cabo con SSD, practicamente sen afectar aos discos duros. O propósito destas probas era demostrar claramente a eficacia de quentar a caché e escalar o seu rendemento dependendo da cantidade de SSD.
Agora volvamos á terra e comprobemos unha situación máis realista, cando a cantidade de datos é maior que o tamaño da caché. Para que a proba pase nun tempo razoable (o período de "quecemento" da caché aumenta moito a medida que aumenta o tamaño do volume), limitaremos o tamaño do volume a 120 GB.
Proba 3. Emulación de bases de datos
Caché SSD
Tipo de E/S: Base de datos
Tamaño do bloque da caché: 1 MB
Limiar de poboación en lectura: 2
Limiar de enchemento na escritura: 1
Patrón de E/S
Ferramenta: IOmeter V1.1.0
Traballadores: 1
Sobresaliente (profundidade da fila): 128
Especificacións de acceso: 8KB, 67% de lectura, 100% aleatorio
Veredicto
A conclusión obvia, por suposto, é a boa eficiencia de usar unha caché SSD para mellorar o rendemento de calquera sistema de almacenamento. Aplicado a QSAN XCubeSAN Esta afirmación aplícase plenamente: a función de caché SSD está implementada perfectamente. Isto refírese ao soporte para os modos de lectura e lectura + escritura, a configuración flexible para calquera escenario de uso, así como ao rendemento xeral do sistema no seu conxunto. Polo tanto, por un custo moi razoable (o prezo da licenza é comparable ao custo de 1-2 SSD), pode aumentar significativamente o rendemento xeral.