Implementazione del caching SSD nel sistema di storage QSAN XCubeSAN

Da tempo sono state inventate tecnologie per migliorare le prestazioni basate sull'uso di SSD e ampiamente utilizzate nei sistemi di archiviazione. Innanzitutto l'utilizzo dell'SSD come spazio di archiviazione, efficace al 100%, ma costoso. Pertanto, vengono utilizzate tecnologie stancanti e di caching, in cui gli SSD vengono utilizzati solo per i dati più popolari ("caldi"). La suddivisione in livelli è utile per scenari di utilizzo a lungo termine (giorni-settimane) di dati “caldi”. La memorizzazione nella cache, al contrario, è per un utilizzo a breve termine (minuti-ore). Entrambe queste opzioni sono implementate nel sistema di storage QSAN XCubeSAN. In questo articolo esamineremo l'implementazione del secondo algoritmo: Cache SSD.

Implementazione del caching SSD nel sistema di storage QSAN XCubeSAN

L’essenza della tecnologia di caching SSD è l’uso degli SSD come cache intermedia tra i dischi rigidi e la RAM del controller. Le prestazioni dell'SSD sono, ovviamente, inferiori alle prestazioni della cache del controller, ma il volume è molto più alto. Pertanto, otteniamo un certo compromesso tra velocità e volume.

Indicazioni per l'utilizzo della cache SSD per la lettura:

  • La predominanza delle operazioni di lettura rispetto alle operazioni di scrittura (molto spesso tipiche di database e applicazioni web);
  • La presenza di un collo di bottiglia sotto forma di prestazioni dell'array del disco rigido;
  • La quantità di dati richiesti è inferiore alla dimensione della cache SSD.

Le indicazioni per l'utilizzo di una cache SSD di lettura+scrittura sono le stesse, fatta eccezione per la natura delle operazioni – di tipo misto (ad esempio file server).

La maggior parte dei fornitori di storage utilizza la cache SSD di sola lettura nei propri prodotti. La differenza fondamentale QSAN Forniscono la possibilità di utilizzare la cache anche per la scrittura. Per attivare la funzionalità di caching SSD nei sistemi di archiviazione QSAN, è necessario acquistare una licenza separata (fornita elettronicamente).

La cache SSD in XCubeSAN è implementata fisicamente sotto forma di pool di cache SSD separati. Possono essercene fino a quattro nel sistema. Ogni pool, ovviamente, utilizza il proprio set di SSD. E già nelle proprietà del disco virtuale determiniamo se utilizzerà un cache pool e quale. L'abilitazione e la disabilitazione dell'utilizzo della cache per i volumi può essere eseguita online senza interrompere l'I/O. Puoi anche aggiungere a caldo gli SSD al pool e rimuoverli da lì. Quando crei una cache del pool SSD, devi scegliere in quale modalità funzionerà: sola lettura o lettura+scrittura. Da questo dipende la sua organizzazione fisica. Poiché possono esserci diversi pool di cache, la loro funzionalità può essere diversa (ovvero, il sistema può avere pool di cache di lettura e lettura+scrittura contemporaneamente).

Se viene utilizzato un pool di cache di sola lettura, può essere costituito da 1-8 SSD. Non è necessario che i dischi abbiano la stessa capacità e lo stesso fornitore, poiché sono combinati in una struttura NRAID+. Tutti gli SSD nel pool sono condivisi. Il sistema tenta in modo indipendente di parallelizzare le richieste in entrata tra tutti gli SSD per ottenere le massime prestazioni. Se uno degli SSD si guasta, non accadrà nulla di male: dopotutto, la cache contiene solo una copia dei dati memorizzati sull'array di dischi rigidi. È solo che la quantità di cache SSD disponibile diminuirà (o diventerà zero se si utilizza la cache SSD originale da un'unità).

Implementazione del caching SSD nel sistema di storage QSAN XCubeSAN

Se la cache viene utilizzata per operazioni di lettura e scrittura, il numero di SSD nel pool deve essere un multiplo di due, poiché i contenuti vengono sottoposti a mirroring su coppie di unità (viene utilizzata la struttura NRAID 1+). La duplicazione della cache è necessaria perché potrebbe contenere dati che non sono stati ancora scritti sui dischi rigidi. E in questo caso, il guasto dell'SSD dal cache pool porterebbe alla perdita di informazioni. Nel caso di NRAID 1+, un guasto dell'SSD porterà semplicemente al trasferimento della cache in uno stato di sola lettura, con i dati non scritti scaricati sull'array del disco rigido. Dopo aver sostituito l'SSD difettoso, la cache tornerà alla modalità operativa originale. A proposito, per maggiore sicurezza, è possibile assegnare hot spare dedicati a una cache di lettura e scrittura.

Implementazione del caching SSD nel sistema di storage QSAN XCubeSAN

Quando si utilizza la funzione di caching SSD in XCubeSAN, esistono una serie di requisiti per la quantità di memoria dei controller di archiviazione: maggiore è la memoria di sistema, maggiore sarà il pool di cache disponibile.

Implementazione del caching SSD nel sistema di storage QSAN XCubeSAN

A differenza della maggior parte dei produttori di sistemi di storage, che offrono solo un'opzione per attivare/disattivare la cache SSD, QSAN offre più opzioni. In particolare è possibile selezionare la modalità operativa della cache a seconda della natura del carico. Esistono tre modelli preimpostati che sono più vicini nel loro funzionamento ai servizi corrispondenti: database, file system, servizio web. Inoltre, l'amministratore può creare il proprio profilo impostando i valori dei parametri richiesti:

  • Dimensione del blocco (dimensione del blocco della cache): 1/2/4 MB
  • Numero di richieste di lettura di un blocco in modo che venga copiato nella cache (soglia di compilazione in lettura) – 1..4
  • Numero di richieste di scrittura di un blocco in modo che venga copiato nella cache (Soglia Populate-on-Write) – 0..4

Implementazione del caching SSD nel sistema di storage QSAN XCubeSAN

I profili possono essere modificati al volo, ma, ovviamente, con il ripristino del contenuto della cache e il suo nuovo "riscaldamento".

Considerando il principio di funzionamento della cache SSD, possiamo evidenziare le operazioni principali quando si lavora con essa:

Implementazione del caching SSD nel sistema di storage QSAN XCubeSAN

Lettura dei dati quando non sono nella cache

  1. Una richiesta dell'host arriva al titolare del trattamento;
  2. Poiché quelli richiesti non sono nella cache dell'SSD, vengono letti dai dischi rigidi;
  3. I dati letti vengono inviati all'host. Contemporaneamente si verifica se questi blocchi sono “caldi”;
  4. Se sì, vengono copiati nella cache SSD per un ulteriore utilizzo.

Implementazione del caching SSD nel sistema di storage QSAN XCubeSAN

Leggere i dati quando sono presenti nella cache

  1. Una richiesta dell'host arriva al titolare del trattamento;
  2. Poiché i dati richiesti si trovano nella cache SSD, vengono letti da lì;
  3. I dati letti vengono inviati all'host.

Implementazione del caching SSD nel sistema di storage QSAN XCubeSAN

Scrittura dei dati quando si utilizza la cache di lettura

  1. Al controller arriva una richiesta di scrittura da parte dell'host;
  2. I dati vengono scritti sui dischi rigidi;
  3. All'host viene restituita una risposta che indica l'avvenuta registrazione;
  4. Allo stesso tempo viene controllato se il blocco è “hot” (viene confrontato il parametro Populate-on-Write Threshold). Se sì, viene copiato nella cache SSD per un utilizzo successivo.

Implementazione del caching SSD nel sistema di storage QSAN XCubeSAN

Scrittura di dati quando si utilizza una cache di lettura+scrittura

  1. Al controller arriva una richiesta di scrittura da parte dell'host;
  2. I dati vengono scritti nella cache SSD;
  3. All'host viene restituita una risposta che indica l'avvenuta registrazione;
  4. I dati della cache SSD vengono scritti sui dischi rigidi in background;

Controlla in azione

banco di prova

2 server (CPU: 2 x Xeon E5-2620v3 2.4 Hz / RAM: 32 GB) sono collegati tramite due porte tramite Fibre Channel 16G direttamente al sistema di archiviazione XCubeSAN XS5224D (16 GB RAM/controller).

Abbiamo utilizzato 16 x Seagate Constellation ES, ST500NM0001, 500GB, SAS 6Gb/s, combinati in RAID5 (15+1), per l'array dati e 8 x HGST Ultrastar SSD800MH.B, HUSMH8010BSS200, 100GB, SAS 12Gb/s come cache

Sono stati creati 2 volumi: uno per ciascun server.

Test 1. Cache SSD di sola lettura da 1-8 SSD

Cache SSD

  • Tipo I/O: Personalizzazione
  • Dimensione blocco cache: 4 MB
  • Soglia popolamento in lettura: 1
  • Soglia popolamento in scrittura: 0

Modello I/O

  • Strumento: IOmeter V1.1.0
  • Operai: 1
  • Eccezionale (profondità coda): 128
  • Specifiche di accesso: 4KB, 100% letto, 100% casuale

Implementazione del caching SSD nel sistema di storage QSAN XCubeSAN

Implementazione del caching SSD nel sistema di storage QSAN XCubeSAN

In teoria, maggiore è il numero di SSD nel cache pool, maggiori saranno le prestazioni. In pratica, ciò è stato confermato. L'unico aumento significativo del numero di SSD con un numero ridotto di volumi non porta ad un effetto esplosivo.

Test 2. Cache SSD in modalità lettura + scrittura con 2-8 SSD

Cache SSD

  • Tipo I/O: Personalizzazione
  • Dimensione blocco cache: 4 MB
  • Soglia popolamento in lettura: 1
  • Soglia popolamento in scrittura: 1

Modello I/O

  • Strumento: IOmeter V1.1.0
  • Operai: 1
  • Eccezionale (profondità coda): 128
  • Specifiche di accesso: 4KB, 100% scrittura, 100% casuale

Implementazione del caching SSD nel sistema di storage QSAN XCubeSAN

Implementazione del caching SSD nel sistema di storage QSAN XCubeSAN

Lo stesso risultato: crescita esplosiva delle prestazioni e scalabilità all'aumentare del numero di SSD.

In entrambi i test, la quantità di dati di lavoro era inferiore alla dimensione totale della cache. Pertanto, nel tempo, tutti i blocchi sono stati copiati nella cache. E il lavoro, infatti, è già stato svolto con gli SSD, praticamente senza intaccare gli hard disk. Lo scopo di questi test era dimostrare chiaramente l'efficacia del riscaldamento della cache e del ridimensionamento delle sue prestazioni in base al numero di SSD.

Ora torniamo alla terra e controlliamo una situazione più realistica, quando la quantità di dati è maggiore della dimensione della cache. Affinché il test possa superare un periodo di tempo ragionevole (il periodo di “riscaldamento” della cache aumenta notevolmente all'aumentare della dimensione del volume), limiteremo la dimensione del volume a 120 GB.

Test 3. Emulazione del database

Cache SSD

  • Tipo I/O: database
  • Dimensione blocco cache: 1 MB
  • Soglia popolamento in lettura: 2
  • Soglia popolamento in scrittura: 1

Modello I/O

  • Strumento: IOmeter V1.1.0
  • Operai: 1
  • Eccezionale (profondità coda): 128
  • Specifiche di accesso: 8KB, 67% letto, 100% casuale

Implementazione del caching SSD nel sistema di storage QSAN XCubeSAN

Вердикт

La conclusione ovvia, ovviamente, è la buona efficienza dell'utilizzo di una cache SSD per migliorare le prestazioni di qualsiasi sistema di archiviazione. Applicata ai QSAN XCubeSAN Questa affermazione è pienamente valida: la funzione di caching SSD è implementata perfettamente. Ciò riguarda il supporto per le modalità di lettura e lettura + scrittura, impostazioni flessibili per qualsiasi scenario di utilizzo, nonché le prestazioni generali del sistema nel suo complesso. Pertanto, a un costo molto ragionevole (il prezzo della licenza è paragonabile al costo di 1-2 SSD), è possibile aumentare significativamente le prestazioni complessive.

Fonte: habr.com

Aggiungi un commento