Ciao Habr! In questo articolo parleremo di se conviene organizzare array RAID basati su soluzioni SSD SATA e NVMe, e se ne trarrà un serio profitto. Abbiamo deciso di approfondire la questione esaminando i tipi e le categorie di controller che consentono di farlo, così come le aree di applicazione di tali configurazioni.

In un modo o nell'altro, ognuno di noi ha sentito una volta nella vita definizioni come "RAID", "array RAID", "controller RAID", ma raramente si è dato loro un'importanza seria, perché a un normale utente del PC potrebbe non interessare molto. Tuttavia, tutti desiderano velocità elevate dai dispositivi di archiviazione interni e affidabilità nel loro funzionamento. Infatti, qualunque possa essere la potenza del computer, la velocità del dispositivo di archiviazione diventa un collo di bottiglia, parlando della capacità complessiva del PC e del server.
Questo è stato vero fino a quando i tradizionali HDD non sono stati sostituiti dai moderni SSD NVMe con capacità comparabili di 1 TB o più. Se prima nei PC si vedevano più frequentemente combinazioni di SSD SATA + un paio di HDD capienti, oggi stanno cominciando a essere sostituiti da un'altra soluzione: SSD NVMe + un paio di SSD SATA capienti. Parlando di server aziendali e "cloud", molti hanno già fatto il passaggio a SSD SATA, semplicemente perché sono più veloci dei classici "dischi rigidi" e possono gestire un numero maggiore di operazioni di input/output contemporaneamente.

Tuttavia, l'affidabilità del sistema rimane comunque a un livello piuttosto basso: non possiamo, come in "Battle of the Psychics", prevedere con precisione, nemmeno con una settimana di anticipo, quando un determinato dispositivo di archiviazione a stato solido cesserà di funzionare. Mentre gli HDD "muoiono" gradualmente, permettendo di cogliere i sintomi e prendere misure, gli SSD "muoiono" improvvisamente e senza preavviso. E ora è davvero il momento di capire perché tutto questo sia necessario. Conviene organizzare array RAID basati su soluzioni SSD SATA e NVMe, e ne trarrà un serio profitto?
A cosa serve un array RAID?
La parola “array” implica già che per la sua creazione vengono utilizzati più dispositivi di archiviazione (HDD e SSD), che vengono uniti tramite un controller RAID e riconosciuti dal sistema operativo come un'unica unità di archiviazione dati. L'obiettivo globale che i RAID consentono di raggiungere è la minimizzazione del tempo di accesso ai dati, l'aumento della velocità di lettura/scrittura e l'affidabilità, che viene realizzata grazie alla possibilità di un rapido ripristino in caso di guasto. È importante notare che per i backup domestici non è affatto necessario utilizzare un RAID. Ma se hai un server domestico a cui è necessario avere accesso costante 24/7, allora la situazione è diversa.
Esistono più di dieci livelli di array RAID, ognuno dei quali differisce per il numero di dispositivi utilizzati e ha i suoi pro e contro: ad esempio, RAID 0 consente di ottenere elevate prestazioni senza tolleranza agli errori, RAID 1 permette di stabilire la mirroring automatico dei dati senza incremento della velocità, mentre RAID 10 combina le capacità dei precedenti. RAID 0 e 1 sono i più semplici (poiché non richiedono calcoli software) e, di conseguenza, i più popolari. In definitiva, la scelta tra i vari livelli di RAID dipende dai compiti assegnati all'array di dischi e dalle capacità del controller RAID.
RAID domestico e aziendale: quali sono le differenze?
La base di qualsiasi business moderno sono grandi volumi di dati, che devono essere conservati in modo sicuro sui server delle aziende. Inoltre, come già accennato, deve esservi un accesso costante 24/7. È evidente che, oltre all'hardware, è importante anche la parte software, ma in questo caso stiamo parlando comunque di attrezzature che garantiscono un'archiviazione e un'elaborazione delle informazioni sicure. Nessun software salverà un'azienda dalla rovina se l'hardware non è all'altezza delle sfide che gli sono state assegnate.

Per questi scopi, qualsiasi produttore di hardware offre dispositivi aziendali. Per Kingston, si tratta di potenti soluzioni a stato solido sotto forma di modelli SATA e , e i modelli NVMe DC1000M U.2 NVMe, DCU1000 U.2 NVMe e DCP-1000 PCI-e, progettati per l'uso nei datacenter e nei supercomputer. Le configurazioni di tali dischi vengono solitamente utilizzate insieme a controller hardware.

Per il mercato consumer (cioè per PC domestici e server NAS) sono disponibili dischi come NVMe PCIe, ma in questo caso non è necessario acquistare un controller hardware. È possibile utilizzare quello integrato nella scheda madre del PC o del server NAS, a meno che tu non preveda di costruire da solo un server domestico per compiti atipici (ad esempio, avviare un piccolo hosting domestico per gli amici). Inoltre, le configurazioni RAID domestiche, di solito, non prevedono centinaia o migliaia di dischi, limitandosi a due, quattro o otto dispositivi (spesso SATA).
Tipi e categorie di controller RAID
Esistono tre tipi di controller RAID, basati sui principi di realizzazione delle configurazioni RAID:
1. Software, nei quali la gestione del sistema è affidata alla CPU e alla DRAM (cioè l'esecuzione del codice avviene sul processore).
2. Integrati, ovvero incorporati nelle schede madri di PC o server NAS.
3. Hardware (modulari), che sono schede di espansione discrete per le porte PCI/PCIe delle schede madri di sistema.
Qual è la loro differenza fondamentale? I controller RAID software sono inferiori agli integrati e agli hardware in termini di prestazioni e tolleranza ai guasti, ma non richiedono attrezzature speciali per funzionare. Tuttavia, è importante assicurarsi che il processore del sistema host sia sufficientemente potente da eseguire il software RAID, senza compromettere le prestazioni delle applicazioni che operano anche sull'host. I controller integrati, di solito, sono dotati di memoria cache dedicata e impiegano alcune risorse della CPU.
Gli apparati hardware hanno sia una memoria cache propria che un processore integrato per l'esecuzione di algoritmi software. Di solito consentono di implementare tutti i tipi di livelli di array RAID e supportano diversi tipi di dispositivi. Ad esempio, ai moderni controller hardware dell'azienda Broadcom è possibile collegare contemporaneamente dispositivi SATA, SAS e NVMe, il che consente di non cambiare il controller durante l'upgrade dei server: in particolare, nel passaggio da SSD SATA a SSD NVMe non sarà necessario cambiare i controller.

In effetti, su questa nota siamo arrivati alla tipologizzazione dei stessi controller. Se ci sono controller a tre modalità, devono esisterne anche altri? In questo caso, la risposta a questa domanda sarà affermativa. A seconda delle funzioni e delle capacità, i controller RAID possono essere suddivisi in diversi tipi:
1. Controller ordinari con funzione RAID
Nell'intera gerarchia, questo è il controller più semplice, che consente di unire HDD e SSD in array RAID di livelli "0", "1" o "0+1". Questo è realizzato a livello di firmware. Tuttavia, tali dispositivi difficilmente possono essere raccomandati per l'uso nel segmento aziendale, poiché non dispongono di cache e non supportano gli array di livelli "5", "3" e così via. Tuttavia, per un server domestico di livello base, vanno benissimo.
2. Controller che lavorano in coppia con altri controller RAID
Questo tipo di controller può lavorare in coppia con i controller integrati delle schede madri. Questa funzione è realizzata secondo il seguente principio: il controller RAID discreto si occupa della risoluzione delle questioni "logiche", mentre quello integrato gestisce le funzioni di scambio dati tra i dispositivi. Ma c'è un aspetto da considerare: il lavoro parallelo di tali controller è possibile solo su schede madri compatibili, il che limita seriamente il loro campo di applicazione.
3. Controller RAID autonomi
Queste soluzioni discrete contengono a bordo tutti i chip necessari per lavorare con server di livello enterprise, fornendo il proprio BIOS, memoria cache e un processore per la rapida correzione degli errori e il calcolo delle checksum. Inoltre, soddisfano elevati standard di affidabilità in termini di fabbricazione e sono dotati di moduli di memoria di alta qualità.
4. Controller RAID esterni
Non è difficile indovinare che tutti i controller sopra elencati siano interni e ricevano alimentazione tramite la connessione PCIe della scheda madre. Cosa significa questo? Significa che il guasto della scheda madre può portare a errori nel funzionamento dell'array RAID e alla perdita di dati. I controller esterni, d'altro canto, sono esenti da questo malinteso, in quanto sono ospitati in un case separato con un'unità di alimentazione indipendente. In termini di affidabilità, tali controller offrono il più alto livello di conservazione dei dati.
, Microsemi Adaptec, Intel, IBM, Dell e Cisco sono solo alcune delle aziende che attualmente offrono controller RAID hardware.
Modalità operative dei controller RAID SAS/SATA/NVMe
La principale funzione dei controller HBA e RAID a tre modalità (o controller Tri-Mode) è quella di creare un RAID hardware basato su NVMe. I controller della serie 9400 di Broadcom sono in grado di farlo: per esempio, . Questo è un tipo di controller RAID autonomo, dotato di quattro porte SFF-8643 e, grazie al supporto Tri-Mode, consente di collegare contemporaneamente unità SATA/SAS e NVMe. Inoltre, è uno dei controller più efficienti in termini energetici sul mercato (consuma solo 17 watt di energia, meno di 1,1 watt per ciascuna delle 16 porte).

L'interfaccia di connessione è PCI Express x8 di versione 3.1, che consente di raggiungere una larghezza di banda di 64 Gbit/s (nel 2020 si prevede l'arrivo di controller per PCI Express 4.0). Alla base del controller a 16 porte si trova un chip a 2 core e 72-bit DDR4-2133 SDRAM (4 GB), con la possibilità di collegare fino a 240 unità SATA/SAS o fino a 24 dispositivi NVMe. Per quanto riguarda l'organizzazione degli array RAID, sono supportati i livelli "0", "1", "5" e "6", nonché "10", "50" e "60". Tra l'altro, la memoria cache degli altri controller della serie 9400 è protetta da guasti di alimentazione tramite un modulo aggiuntivo CacheVault CVPM05.
Alla base della tecnologia a tre modalità c'è la funzione di conversione dei dati SerDes: la trasformazione della rappresentazione dei dati in sequenza in interfacce SAS/SATA in una forma parallela in PCIe NVMe e viceversa. Ciò significa che il controller sincronizza le velocità e i protocolli per funzionare senza problemi con uno qualsiasi dei tre tipi di dispositivi di storage. Questo fornisce un modo ininterrotto per scalare le infrastrutture dei centri di elaborazione dati: gli utenti possono utilizzare NVMe senza modifiche significative in altre configurazioni di sistema.

Tuttavia, nella pianificazione delle configurazioni con unità NVMe, è importante considerare che le soluzioni NVMe utilizzano 4 linee PCIe per il collegamento, il che significa che ogni unità occupa tutte le linee delle porte SFF-8643. Di conseguenza, si possono collegare direttamente al controller MegaRAID 9460-16i solo quattro unità NVMe. Oppure limitarsi a due soluzioni NVMe collegando simultaneamente otto unità SAS (vedi lo schema di collegamento qui sotto).

L'immagine mostra l'uso del connettore "0" (C0 / Connettore 0) e del connettore "1" per i collegamenti NVMe, oltre ai connettori "2" e "3" per i collegamenti SAS. Questa disposizione può essere invertita, ma ogni unità x4 NVMe deve essere collegata utilizzando linee adiacenti. Le modalità operative del controller vengono impostate tramite le utilità di configurazione StorCLI o Human Interface Infrastructure (HII), che funzionano in un ambiente UEFI.

La modalità predefinita è il profilo "PD64" (supporto solo SAS/SATA). Come già detto, ci sono tre profili in totale: la modalità "SAS/SATA only mode" (PD240 / PD64 / PD 16), la modalità "NVMe only mode" (PCIe4) e la modalità mista, in cui possono operare tutti i tipi di unità: "PD64-PCIe4" (supporto per 64 dischi fisici e virtuali con 4 unità NVMe). In modalità mista, il valore del profilo impostato deve essere: "ProfileID=13". Va notato che il profilo selezionato rimane come principale e non viene ripristinato nemmeno nel caso di un ripristino delle impostazioni di fabbrica tramite il comando Set Factory Defaults. Può essere cambiato solo manualmente.
Vale la pena creare un array RAID su SSD?
Quindi, abbiamo già capito che i RAID sono la chiave per alte prestazioni. Ma ha senso costruire un RAID con unità a stato solido per uso domestico e aziendale? Molti scettici affermano che l'aumento di velocità non è così significativo da giustificare la spesa per unità NVMe. Ma è davvero così? Probabilmente no. Il più grande ostacolo all'uso degli SSD in RAID (sia in ambito domestico che a livello aziendale) può essere solo il prezzo. Dopotutto, il costo per gigabyte di spazio su HDD è notevolmente più basso.
Collegare più "dischi" a stato solido a un controller RAID per creare un array di SSD in determinate configurazioni può avere un enorme impatto sulle prestazioni. Tuttavia, non bisogna dimenticare che la massima prestazione è limitata dalla larghezza di banda del controller RAID stesso. Il livello RAID che offre la migliore velocità di lavoro è il RAID 0.

Organizzare un normale RAID 0 con due SSD, utilizzando il metodo di suddivisione dei dati in blocchi fissi e la loro alternanza tra i dispositivi a stato solido, porterà a un raddoppio delle prestazioni (rispetto alle velocità fornite da un singolo SSD). Allo stesso modo, un array RAID 0 con quattro unità a stato solido sarà già quattro volte più veloce dell'SSD più lento nell'array (a seconda dei limiti di larghezza di banda del controller RAID SSD).
Se si considera una semplice aritmetica, gli SSD SATA sono circa 3 volte più veloci dei tradizionali HDD SATA. Le soluzioni NVMe sono ancora più efficienti: da 10 volte in su. Supponendo che due dischi rigidi in un RAID di livello zero mostrino prestazioni raddoppiate, aumentando del 50%, due SSD SATA risulteranno sei volte più veloci, mentre due SSD NVMe saranno venti volte più veloci. In particolare, un'unità Kingston KC2000 NVMe PCIe può raggiungere velocità di lettura e scrittura sequenziali fino a 3200 MB/s, che in formato RAID 0 raggiungeranno un impressionante 6 GB/s. La velocità di lettura/scrittura di blocchi casuali di 4 KB passerà da 350.000 IOPS a 700.000 IOPS. Ma... allo stesso tempo, il RAID "zero" non ci offre ridondanza.
Si può dire che, in un contesto domestico, l'eccesso di capacità di archiviazione di solito non è necessario, quindi la configurazione RAID più adatta per gli SSD diventa effettivamente RAID 0. Questo è un modo affidabile per ottenere un notevole aumento delle prestazioni come alternativa all'uso di tecnologie come le unità a stato solido basate su Intel Optane. Discuteremo invece come si comportano le soluzioni SSD nei tipi di RAID più popolari ("1", "5", "10", "50") nel nostro prossimo articolo.
Questo articolo è stato preparato con il supporto dei nostri colleghi di Broadcom, che forniscono i loro controller agli ingegneri di Kingston per il collaudo con gli storage SATA/SAS/NVMe di livello enterprise. Grazie a questa amicizia sinergica, i clienti possono essere certi dell'affidabilità e della stabilità del funzionamento degli storage Kingston con i controllori HBA e RAID. .
Puoi trovare ulteriori informazioni sui prodotti Kingston azienda.
Fonte: habr.com
