Gli algoritmi RAID sono stati presentati al pubblico nel lontano 1987. Fino ad oggi rimangono la tecnologia più richiesta per la protezione e l'accelerazione dell'accesso ai dati nel campo dello storage. Tuttavia, l'età di una tecnologia IT che ha superato il traguardo dei 30 anni non indica tanto maturità quanto piuttosto vecchiaia. Il motivo è il progresso, che porta inesorabilmente nuove opportunità. In un'epoca in cui praticamente non esistevano altri dispositivi di archiviazione oltre agli HDD, gli algoritmi RAID permettevano di utilizzare in modo più efficace le risorse di storage disponibili. Tuttavia, con l'arrivo degli SSD, la situazione è cambiata radicalmente. Oggi, RAID, quando lavora con i dispositivi a stato solido, è diventato un

Oltre alle evidenti differenze tra HDD e SSD nei principi di funzionamento, questi due tipi di supporti hanno un'altra caratteristica importante: qualsiasi disco rigido può riscrivere qualsiasi dato con una granularità di un blocco (che attualmente è per lo più di 4KB). Per gli SSD, invece, il processo di riscrittura rappresenta una procedura molto più complessa:
- I dati modificati vengono copiati in una nuova posizione. In questo caso, la granularità è lo stesso blocco, ma composto da più pagine e con una dimensione di 256KB - 4MB. Vale a dire, se si modificano 4KB, è necessario copiare anche tutte le pagine adiacenti che formano un blocco unico.
- I "vecchi" blocchi vengono contrassegnati come non utilizzati, in modo da poter essere sovrascritti dal raccoglitore di "spazzatura" (Garbage Collector).

Scrittura/riescrittura sequenziale su SSD
In caso di scrittura/riescrittura sequenziale, questa particolarità del funzionamento degli SSD non ha un grande impatto sulle loro prestazioni, poiché i blocchi sono adiacenti e il raccoglitore di "spazzatura" svolge bene il proprio lavoro in background. Tuttavia, nella vita reale, soprattutto nel segmento Enterprise, gli SSD sono spesso utilizzati per l'accesso casuale ai dati. E questi dati vengono scritti in posizioni casuali sui dispositivi.
Più dati vengono scritti su un SSD, più è difficile per il Garbage Collector svolgere il proprio lavoro, poiché la frammentazione aumenta notevolmente. Di conseguenza, arriva un momento in cui il processo di pulizia dell'unità smette di essere "in background": le prestazioni dell'SSD diminuiscono significativamente, poiché una parte considerevole viene assorbita dal Garbage Collector.

Posizione reale dei dati su SSD durante l'uso quotidiano
Per illustrare l'effetto dell'operato del Garbage Collector in relazione alla modalità di scrittura sull'unità, è possibile eseguire test semplici: scrittura sequenziale e casuale in blocchi da 4KB su un'unità da 100GB. (Fonte – azienda )

Prestazioni in scrittura sequenziale

Prestazioni in scrittura casuale
Come si può vedere dai test, il calo delle prestazioni può superare di oltre due volte. E questo è solo un'unità singola. Nel caso di utilizzo degli SSD come parte di un gruppo RAID, il numero di operazioni di riscrittura aumenta notevolmente, grazie al lavoro con la parità.
In generale, grazie a queste caratteristiche di funzionamento degli SSD, esiste un parametro noto come coefficiente di scrittura (write amplification). Questo è il rapporto tra la quantità di dati scritti sull'unità e quella di dati effettivamente inviati dall'host. E per il RAID5 più popolare, questo coefficiente è pari a ~3.5.
Di conseguenza, i sistemi con RAID classico, nella loro essenza, utilizzano solo ~10% della loro reale velocità degli SSD e scalano debolmente in termini di prestazioni con un aumento del numero di unità oltre una dozzina.
Si noti anche che operazioni di scrittura eccessive non solo riducono le prestazioni degli SSD, ma riducono anche la loro risorsa non illimitata, accorciando così la vita dell'unità.
, che è il nucleo di tutti i prodotti AccelStor, è stata appositamente sviluppata come alternativa agli algoritmi RAID tradizionali nell'uso degli SSD. L'innovazione della tecnologia è stata riconosciuta sia da vari brevetti e premi (incluso il Flash Memory Summit 2016), sia dai risultati di test indipendenti (ad esempio, SPC1).
Natura consiste nella trasformazione di tutte le richieste di scrittura in arrivo, principalmente di tipo random, in un insieme di blocchi che assomiglia il più possibile a una scrittura sequenziale dal punto di vista del supporto. Di conseguenza, la scrittura su SSD avviene nel modo più confortevole per loro, e la performance finale supera quella di qualsiasi sistema con RAID classico.
Tutti gli SSD nei sistemi AccelStor sono suddivisi in due gruppi simmetrici FlexiRemap®. La dimensione del gruppo dipende dal modello e varia da 5 a 11 unità. Per la tolleranza ai guasti all'interno del gruppo viene applicata la parità, simile a RAID5. Entrambi i gruppi vengono utilizzati insieme, formando uno spazio di archiviazione comune. Pertanto, la tolleranza ai guasti finale sarà analoga a quella di un array RAID50 composto da due gruppi: il sistema è in grado di supportare il guasto fino a due SSD, ma non più di uno in ciascun gruppo FlexiRemap®.

Tutte le richieste di scrittura in arrivo vengono suddivise in blocchi di dimensione 4KB, che vengono scritti su entrambi i gruppi FlexiRemap® in modalità round robin. La sistema tiene costantemente traccia della popolarità dei blocchi scritti, cercando di scrivere blocchi simili il più vicino possibile l'uno all'altro quando vengono modificati. Ne risulta un'analogia virtuale al tiering, parlando in termini di storage. In questo caso, il lavoro del raccoglitore di "spazzatura" è notevolmente semplificato: infatti, i blocchi non utilizzati si troveranno sempre vicini.
Vale la pena notare che a differenza dei prodotti dei concorrenti, non utilizzano la funzionalità di caching delle richieste in ingresso nella memoria RAM del controller. Tutti i blocchi di dati in arrivo vengono immediatamente scritti sugli SSD. L'host riceve conferma dell'avvenuta scrittura solo dopo che i dati sono stati effettivamente memorizzati sui supporti. Nella RAM vengono memorizzate solo le tabelle di posizionamento dei blocchi sugli SSD per accelerare l'accesso e determinare dove scrivere il successivo blocco di dati. Ovviamente, per affidabilità, copie di queste tabelle sono collocate anche sui supporti stessi. Di conseguenza, i sistemi AccelStor non necessitano di alcuna protezione della cache in forma di batteria/condenser (tuttavia, è possibile stabilire una connessione con un UPS – per uno "spegnimento morbido" in caso di problemi di alimentazione).
Grazie a questo approccio nell'organizzazione delle registrazioni, il raccoglitore di "spazzatura" è veramente in grado di funzionare in background, senza influire significativamente sulla velocità degli archivi, il che alla fine consente al sistema di riciclare fino al 90% delle prestazioni degli SSD. È qui che risiedono le alte prestazioni IOPS nei sistemi AccelStor a confronto con All Flash, che utilizzano algoritmi RAID alla base.
Un'altra caratteristica importante della tecnologia FlexiRemap® è la notevole riduzione delle operazioni di scrittura superflue sugli SSD. Il fattore di scrittura (write amplification) per i sistemi AccelStor è solo 1.3, il che, tradotto in termini generali, significa un aumento della vita utile degli archivi rispetto a RAID5 di oltre 2.5 volte!

Grazie al controllo costante da parte del sistema sulla politica di allocazione dei dati sugli SSD, tutti gli archivi si usurano in modo uniforme. Questo approccio permette di prevedere la loro vita utile e di inviare un avviso all'amministratore prima della saturazione della risorsa di scrittura.
È chiaro che gli SSD possono guastarsi. In tal caso, il sistema inizierà immediatamente il rebuilding su uno dei dischi hot spare. In questo frangente, il gruppo FlexiRemap®, in stato degradato, passa a una modalità 'solo lettura', mentre tutte le richieste di scrittura vengono dirette al secondo gruppo. Questo meccanismo di protezione è previsto per accelerare l'operazione di rebuilding e ridurre la probabilità di guasti di un altro archivio all'interno dello stesso gruppo. Non è un segreto che durante il rebuilding tutti gli archivi che fanno parte del gruppo subiscano un carico maggiore a causa delle interferenze tra le operazioni di lettura, scrittura e ripristino sull'hot spare. Di conseguenza, aumenta la probabilità di guasto di un altro disco. E più operazioni di scrittura ci sono, più a lungo durerà il rebuilding.

Al termine del processo di ripristino e al ritorno del gruppo FlexiRemap® allo stato normale, emergerà un leggero squilibrio nella risorsa di scrittura tra i due gruppi. Pertanto, per riequilibrarlo, le operazioni di scrittura successive saranno più frequentemente dirette al gruppo ripristinato (naturalmente, calcolando in modo tale da non compromettere eccessivamente le prestazioni complessive del sistema).
Aumentare le prestazioni dei sistemi All Flash basati su algoritmi RAID sopra alcuni valori (~280K IOPS@4K scrittura casuale) non è possibile nemmeno utilizzando sistemi di caching complessi. La tecnologia FlexiRemap®, grazie a un approccio completamente diverso nell'organizzazione dello spazio di archiviazione, non solo supera facilmente questo ostacolo, ma aumenta anche notevolmente la vita utile degli SSD. Pertanto, i sistemi hanno seri vantaggi tra i cluster All Flash su molti fronti (IOPS/$, GB/$, TCO, ROI), rendendoli candidati ideali per posizioni chiave nei data center dei clienti per affrontare compiti ad alta intensità di risorse.
Fonte: habr.com
