Implementazione della cache SSD nel sistema di archiviazione QSAN XCubeSAN

Le tecnologie di aumento delle prestazioni basate sull'uso degli SSD e ampiamente utilizzate negli array di archiviazione esistono da tempo. Innanzitutto, si tratta dell'uso degli SSD come spazio di archiviazione, il che è efficace al 100%, ma costoso. Pertanto, si ricorrono a tecnologie di tiering e caching, dove gli SSD vengono utilizzati solo per i dati più richiesti ('caldi'). Il tiering è utile in scenari di utilizzo a lungo termine (giorni-settimane) dei dati 'caldi'. Il caching, al contrario, è per utilizzo a breve termine (minuti-ore). Entrambe queste opzioni sono implementate nel sistema di archiviazione. QSAN XCubeSAN. In questo articolo esamineremo l'implementazione del secondo algoritmo – cache SSD.

Implementazione della cache SSD nel sistema di archiviazione QSAN XCubeSAN

La tecnologia della cache SSD consiste nell'utilizzare gli SSD come cache intermedia tra i dischi rigidi e la memoria operativa del controller. Le prestazioni degli SSD, naturalmente, sono inferiori a quelle della cache interna del controller, ma il loro volume è di un ordine superiore. Quindi otteniamo un certo compromesso tra velocità e capacità.

Condizioni per l'uso della cache SSD in lettura:

  • Prevalenza delle operazioni di lettura rispetto a quelle di scrittura (caratteristica comune per database e applicazioni web);
  • Presenza di un collo di bottiglia dovuto alle prestazioni del array di dischi rigidi;
  • Volume dei dati richiesti inferiore a quello della cache SSD.

Le motivazioni per utilizzare la cache SSD per lettura e scrittura sono le stesse, tranne per il tipo di operazioni – tipo misto (ad esempio, server di file).

La maggior parte dei fornitori di storage utilizza la cache SSD nei propri prodotti solo per operazioni di lettura. La principale differenza QSAN è la possibilità di utilizzare la cache anche per scrittura. Per attivare la funzionalità di caching SSD nello storage QSAN è necessaria l'acquisto di una licenza separata (consegnata in formato elettronico).

La cache SSD in XCubeSAN è fisicamente realizzata come insiemi separati di pool di cache SSD. Nel sistema possono esserci fino a quattro pool. Ogni pool utilizza, ovviamente, il proprio set di SSD. Nelle proprietà del disco virtuale possiamo determinare se utilizzerà il pool di cache e quale. L'attivazione e la disattivazione dell'uso della cache per i volumi possono essere effettuate in modalità online senza fermare l'input/output. Inoltre, è possibile aggiungere e rimuovere SSD dal pool senza fermare il sistema. Durante la creazione del pool di cache SSD, è necessario scegliere in quale modalità opererà: solo lettura o lettura+scrittura. Questo influisce sulla sua organizzazione fisica. Poiché possono esserci diversi pool di cache, le loro funzionalità possono variare (ovvero nel sistema possono coesistere pool di cache per lettura e per lettura+scrittura).

Se si utilizza un pool cache solo in lettura, esso può essere composto da 1 a 8 SSD. I dischi non devono necessariamente avere la stessa capacità o provenire dallo stesso produttore, poiché vengono combinati in una struttura NRAID+. Tutti gli SSD nel pool vengono utilizzati congiuntamente. Il sistema cerca autonomamente di parallelizzare le richieste in arrivo tra tutti gli SSD per raggiungere le massime prestazioni. In caso di guasto di uno degli SSD, non succederà nulla di grave: infatti, la cache contiene solo una copia dei dati memorizzati nel array di dischi rigidi. Semplicemente, la capacità della cache SSD disponibile diminuirà (o diventerà zero se si utilizza inizialmente una cache SSD formata da un solo disco).

Implementazione della cache SSD nel sistema di archiviazione QSAN XCubeSAN

Se il caching è utilizzato per operazioni di lettura e scrittura, il numero di SSD nel pool deve essere un multiplo di due, poiché il contenuto è specchiato su coppie di dischi (si utilizza la struttura NRAID 1+). La duplicazione della cache è necessaria poiché essa può contenere dati che non sono ancora stati scritti sui dischi rigidi. In questo caso, un guasto di un SSD nel pool di cache porterebbe alla perdita di informazioni. Con NRAID 1+, il guasto di un SSD comporterebbe semplicemente il passaggio della cache a uno stato di funzionamento "solo lettura", con il ripristino dei dati non scritti sul array di dischi rigidi. Dopo la sostituzione dell'SSD difettoso, la cache tornerà alla sua modalità di funzionamento originale. A proposito, per una maggiore sicurezza, alla cache che opera in lettura e scrittura, è possibile assegnare un hot spare dedicato.

Implementazione della cache SSD nel sistema di archiviazione QSAN XCubeSAN

Quando si utilizza la funzione di caching SSD in XCubeSAN, ci sono alcuni requisiti per la quantità di memoria dei controller SAN: maggiore è la memoria di sistema, maggiore sarà la quantità disponibile per il pool di cache.

Implementazione della cache SSD nel sistema di archiviazione QSAN XCubeSAN

A differenza della maggior parte dei produttori di sistemi di archiviazione, che offrono solo la funzione di attivazione/disattivazione per la configurazione della cache SSD, QSAN fornisce maggiore flessibilità. In particolare, è possibile scegliere il modo in cui funziona la cache in base al tipo di carico. Sono disponibili tre modelli preimpostati, che corrispondono a servizi specifici: database, sistema di file e servizio web. Inoltre, l'amministratore può creare un proprio profilo personalizzato, impostando i valori richiesti per i parametri:

  • Dimensione del blocco (Cache Block Size) – 1/2/4 MB
  • Numero di richieste per leggere un blocco affinché venga copiato nella cache (Populate-on-Read Threshold) – 1..4
  • Numero di richieste per scrivere un blocco affinché venga copiato nella cache (Populate-on-Write Threshold) – 0..4

Implementazione della cache SSD nel sistema di archiviazione QSAN XCubeSAN

I profili possono essere cambiati «al volo», ma, naturalmente, ciò comporta l'azzeramento del contenuto della cache e il suo nuovo «riscaldamento».

Considerando il principio di funzionamento della cache SSD, è possibile evidenziare le operazioni principali durante il suo utilizzo:

Implementazione della cache SSD nel sistema di archiviazione QSAN XCubeSAN

Lettura dei dati quando non sono presenti nella cache

  1. La richiesta dal host arriva al controller;
  2. Poiché i dati richiesti non sono nella cache 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 uso successivo.

Implementazione della cache SSD nel sistema di archiviazione QSAN XCubeSAN

Lettura dei dati quando sono presenti nella cache

  1. La richiesta dal host arriva al controller;
  2. Poiché i dati richiesti sono nella cache SSD, vengono letti da lì;
  3. I dati letti vengono inviati all'host.

Implementazione della cache SSD nel sistema di archiviazione QSAN XCubeSAN

Scrittura dei dati utilizzando la cache per la lettura

  1. La richiesta di scrittura dall'host arriva al controller;
  2. I dati vengono scritti sui dischi rigidi;
  3. Viene restituita all'host una risposta sulla scrittura avvenuta con successo;
  4. Contemporaneamente si verifica se il blocco è 'caldo' (viene confrontato il parametro Populate-on-Write Threshold). Se sì, viene copiato nella cache SSD per un uso futuro.

Implementazione della cache SSD nel sistema di archiviazione QSAN XCubeSAN

Scrittura dei dati utilizzando la cache per lettura+scritura

  1. La richiesta di scrittura dall'host arriva al controller;
  2. I dati vengono scritti nella cache SSD;
  3. Viene restituita all'host una risposta sulla scrittura avvenuta con successo;
  4. I dati dalla cache SSD vengono scritti in background sui dischi rigidi;

Controllo in corso

Banchi di prova

2 server (CPU: 2 x Xeon E5-2620v3 2.4GHz / RAM: 32GB) collegati tramite due porte direttamente a XCubeSAN XS5224D (16GB RAM / controller) tramite Fibre Channel 16G.

Sono stati utilizzati 16 x Seagate Constellation ES, ST500NM0001, 500GB, SAS 6Gb/s, raggruppati 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 ogni server.

Test 1. Cache SSD solo in lettura con 1-8 SSD.

Cache SSD

  • Tipo I/O: Personalizzazione
  • Dimensione Blocco Cache: 4MB
  • Soglia di popolamento in lettura: 1
  • Soglia di popolamento in scrittura: 0

Pattern I/O

  • Strumento: IOmeter V1.1.0
  • Lavoratori: 1
  • In attesa (Profondità di Coda): 128
  • Specifiche di Accesso: 4KB, 100% Lettura, 100% Casuale

Implementazione della cache SSD nel sistema di archiviazione QSAN XCubeSAN

Implementazione della cache SSD nel sistema di archiviazione QSAN XCubeSAN

In teoria, più SSD ci sono nel pool di cache, maggiore è la prestazione. Nella pratica, ciò è stato confermato. L'unica cosa è che un significativo aumento del numero di SSD con un numero ridotto di volumi non porta a un effetto esplosivo.

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

Cache SSD

  • Tipo I/O: Personalizzazione
  • Dimensione Blocco Cache: 4MB
  • Soglia di popolamento in lettura: 1
  • Soglia di popolamento in scrittura: 1

Pattern I/O

  • Strumento: IOmeter V1.1.0
  • Lavoratori: 1
  • In attesa (Profondità di Coda): 128
  • Specifiche di Accesso: 4KB, 100% Scrittura, 100% Casuale

Implementazione della cache SSD nel sistema di archiviazione QSAN XCubeSAN

Implementazione della cache SSD nel sistema di archiviazione QSAN XCubeSAN

Stesso risultato: crescita esplosiva delle prestazioni e scalabilità con l'aumento del numero di SSD.

In entrambi i test, il volume dei dati lavorativi è stato inferiore al totale della cache. Pertanto, nel tempo, tutti i blocchi sono stati copiati nella cache. E il lavoro si svolgeva essenzialmente con l'SSD, senza praticamente coinvolgere i dischi rigidi. L'obiettivo di questi test era mostrare visivamente l'efficacia del riscaldamento della cache e la scalabilità delle sue prestazioni in base al numero di SSD.

Ora torniamo con i piedi per terra e verifichiamo una situazione più realistica, in cui il volume dei dati è maggiore della dimensione della cache. Affinché il test venga completato in un tempo ragionevole (il tempo di "riscaldamento" della cache aumenta notevolmente all'aumentare delle dimensioni del volume), ci limiteremo a un volume di 120GB.

Test 3. Emulazione del funzionamento di un database

Cache SSD

  • Tipo I/O: Database
  • Dimensione del blocco della cache: 1MB
  • Soglia di popolamento alla lettura: 2
  • Soglia di popolamento in scrittura: 1

Pattern I/O

  • Strumento: IOmeter V1.1.0
  • Lavoratori: 1
  • In attesa (Profondità di Coda): 128
  • Specifiche di accesso: 8KB, 67% Lettura, 100% Casuale

Implementazione della cache SSD nel sistema di archiviazione QSAN XCubeSAN

Verdetto

Come conclusione ovvia, emerge chiaramente una buona efficacia nell'utilizzo della cache SSD per migliorare le prestazioni di qualsiasi SAN. Riguardo a QSAN XCubeSAN questa affermazione si applica pienamente: la funzionalità di caching SSD è implementata in modo eccellente. Ciò riguarda il supporto delle modalità di lettura e lettura + scrittura, la configurazione flessibile per qualsiasi scenario d'uso e le prestazioni complessive del sistema. Pertanto, per un costo molto ragionevole (il prezzo della licenza è comparabile a quello di 1-2 SSD), è possibile migliorare notevolmente le prestazioni generali.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster