Ciao Habr! In questo articolo discuteremo se sia utile organizzare array RAID con soluzioni a stato solido SATA SSD e NVMe SSD e se ne valga davvero la pena. Abbiamo deciso di esplorare questo argomento esaminando i tipi e le categorie di controller che lo consentono, così come i settori in cui queste configurazioni trovano applicazione.

In un modo o nell'altro, ognuno di noi ha sentito almeno una volta nel corso della vita termini come 'RAID', 'array RAID', 'controller RAID', ma difficilmente ha dato loro una seria importanza, perché a un comune appassionato di PC non interessa molto. Tuttavia, tutti desiderano elevate velocità dai loro dischi interni e un'operatività senza problemi. Infatti, qualunque sia la potenza del computer, la velocità del dispositivo di archiviazione diventa il collo di bottiglia quando si parla di prestazioni complessive del PC e del server.
Questo è stato vero fino a quando i tradizionali HDD non sono stati sostituiti dai moderni NVMe SSD, con capacità comparabili di 1 TB o più. Se prima nei PC si trovavano frequentemente combinazioni di SATA SSD con un paio di HDD capienti, oggi sta emergendo una nuova soluzione: NVMe SSD con un paio di SATA SSD capienti. Parlando di server aziendali e ‘cloud’, molti hanno già effettuato la transizione a SATA SSD, semplicemente perché sono più veloci rispetto ai tradizionali ‘dischi rigidi’ e sono in grado di gestire un maggior numero di operazioni di input/output simultaneamente.

Tuttavia, la resilienza del sistema rimane su un livello piuttosto basso: non possiamo, come in ‘Battle of the Psychics’, prevedere con precisione anche solo una settimana quando un determinato disco a stato solido deciderà di smettere di funzionare. Mentre gli HDD ‘morendo’ tendono a segnalare sintomi, permettendo di adottare misure preventive, gli SSD ‘Muore’ immediatamente e senza preavviso. E ora è giunto il momento di capire perché tutto questo sia necessario. È utile organizzare array RAID basati su soluzioni a stato solido SATA SSD e NVMe SSD e ci sarà un reale vantaggio da questo?
A cosa serve un array RAID?
La stessa parola “array” implica già che per la sua creazione vengano utilizzati più dispositivi di archiviazione (HDD e SSD), che vengono uniti tramite un controller RAID e riconosciuti dal sistema operativo come un'unica archiviazione dei dati. L'obiettivo principale che i RAID consentono di raggiungere è la minimizzazione dei tempi di accesso ai dati, l'aumento della velocità di lettura/scrittura e l'affidabilità, che si ottiene grazie alla possibilità di un rapido ripristino in caso di guasto. A proposito, non è affatto necessario utilizzare RAID per i backup domestici. Tuttavia, se hai un server domestico a cui è necessario accedere costantemente 24/7, allora è un'altra storia.
Esistono più di dieci livelli di array RAID, ognuno dei quali si distingue per il numero di unità utilizzate e presenta vantaggi e svantaggi: ad esempio, il RAID 0 offre elevate prestazioni senza tolleranza agli errori, il RAID 1 consente il mirroring automatico dei dati senza aumento della velocità, e il RAID 10 combina le caratteristiche dei livelli sopra menzionati. Il RAID 0 e 1 sono i più semplici (poiché non richiedono calcoli software) e, di conseguenza, i più popolari. In definitiva, la scelta di un livello RAID dipende dai compiti assegnati all'array di dischi e dalle capacità del RAID controller.
RAID domestico e aziendale: qual è la differenza?
La base di qualsiasi azienda moderna sono grandi volumi di dati che devono essere archiviati in modo affidabile sui server delle aziende. Inoltre, come abbiamo già sottolineato, deve essere garantito un accesso continuo 24/7. È chiaro che, insieme all'hardware, anche la parte software è importante, ma in questo caso parliamo comunque di attrezzature che garantiscono un'archiviazione e un'elaborazione affidabili delle informazioni. Nessun software salverà un'azienda dalla rovina se le attrezzature hardware non soddisfano le sfide imposte.

Per queste esigenze, qualsiasi produttore di hardware offre i cosiddetti dispositivi aziendali. Per Kingston, si tratta di potenti soluzioni a stato solido come i modelli SATA e , così come i modelli NVMe DC1000M U.2 NVMe, DCU1000 U.2 NVMe e DCP-1000 PCI-e, progettati per l'uso nei data center e nei supercomputer. Gli array di tali unità di archiviazione sono generalmente utilizzati in combinazione con controller hardware.

Per il mercato consumer (cioè per PC domestici e server NAS) sono disponibili dispositivi come NVMe PCIe, ma in questo caso non è necessario acquistare un controller hardware. Si può optare per quello integrato nella scheda madre del PC o del NAS, se non si prevede di assemblare un server domestico per compiti non convenzionali (ad esempio, avviare un piccolo hosting domestico per amici). Inoltre, i RAID domestici generalmente 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 implementazione degli array RAID:
1. Software, in cui la gestione dell'array è affidata alla CPU e alla DRAM (cioè l'esecuzione del codice avviene sulla CPU).
2. Integrati, ovvero incorporati nelle schede madri dei PC o dei NAS.
3. Hardware (modulari), rappresentanti schede di espansione discrete per slot PCI/PCIe delle schede madri.
Qual è la loro differenza fondamentale? I controller RAID software sono inferiori a quelli integrati e hardware in termini di prestazioni e tolleranza ai guasti, ma non richiedono hardware speciale per funzionare. È comunque importante assicurarsi che il processore del sistema host sia sufficientemente potente per eseguire il software RAID senza compromettere le prestazioni delle applicazioni che girano anche sull'host. I controller integrati, in genere, sono dotati di memoria cache propria e utilizzano alcune risorse della CPU.
I controller hardware, invece, possiedono sia memoria cache propria che un processore integrato per eseguire algoritmi software. Di solito consentono di implementare tutti i tipi di livelli RAID e supportano diversi tipi di dispositivi di archiviazione simultaneamente. Ad esempio, i moderni controller hardware della Broadcom possono collegare al contempo unità SATA, SAS e NVMe, permettendo di non dover cambiare il controller durante l'aggiornamento dei server: in particolare, passando da SSD SATA a SSD NVMe non sarà necessario cambiare i controller.

In effetti, su questa nota siamo giunti alla tipologizzazione dei controller stessi. Se ci sono controller a tre modalità, devono esserci anche altri? In questo caso, la risposta a questa domanda sarà affermativa. A seconda delle funzioni e delle capacità, i RAID controller possono essere suddivisi in diversi tipi:
1. Controller standard con funzionalità RAID
Nell'intera gerarchia, questo è il controller più semplice, che consente di unire HDD e SSD in array RAID dei livelli '0', '1' o '0+1'. Questa funzionalità è realizzata a livello di firmware. Tuttavia, tali dispositivi difficilmente possono essere raccomandati per l'uso nel segmento aziendale, poiché mancano di cache e non supportano array di livelli '5', '3', ecc. Ma per un server domestico di base sono assolutamente adeguati.
2. Controller che funzionano in coppia con altri RAID controller
Questo tipo di controller può funzionare insieme ai controller integrati nelle schede madri. Questo è realizzato secondo il seguente principio: il RAID-controller discreto si occupa delle attività "logiche", mentre quello integrato gestisce le funzioni di scambio dati tra i dispositivi di memorizzazione. Ma c'è un aspetto da considerare: il funzionamento parallelo di tali controller è possibile solo su schede madri compatibili, il che limita notevolmente il loro utilizzo.
3. Controller RAID autonomi
Queste soluzioni discrete integrano tutti i chip necessari per lavorare con server di classe enterprise, possedendo un proprio BIOS, memoria cache e un processore per una rapida correzione degli errori e calcolo dei checksum. Inoltre, soddisfano elevati standard di affidabilità in termini di produzione e sono dotate di moduli di memoria di alta qualità.
4. Controller RAID esterni
Non è difficile intuire che tutti i controller sopra elencati siano interni e ricevano alimentazione tramite la connessione PCIe della scheda madre. Cosa significa? Significa che un guasto della scheda madre può portare a errori nel funzionamento dell'array RAID e alla perdita di dati. I controller esterni, invece, sono esenti da questa problematica, poiché sono posizionati in un case separato con un alimentatore indipendente. In termini di affidabilità, questi controller offrono il massimo livello di archiviazione 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
L'obiettivo principale dei controller HBA e RAID a tre modalità (o controller con funzionalità Tri-Mode) è creare RAID hardware basato su NVMe. Presso Broadcom, questi controller sono i modelli della serie 9400: ad esempio, . Si tratta di un tipo di controller RAID autonomo, dotato di quattro connettori SFF-8643 e, grazie al supporto Tri-Mode, consente di collegare simultaneamente dispositivi SATA/SAS e NVMe. Inoltre, è uno dei controller più efficienti dal punto di vista energetico sul mercato (consuma solo 17 Watt, con meno di 1,1 Watt per ciascuno dei 16 porte).

L'interfaccia di collegamento è PCI Express x8 versione 3.1, che consente di raggiungere una larghezza di banda di 64 Gbit/s (nel 2020 è previsto il lancio di controller per PCI Express 4.0). Alla base del controller a 16 porte c'è un chip dual-core e 72-bit DDR4-2133 SDRAM (4 GB), con la possibilità di collegare fino a 240 dispositivi SATA/SAS o fino a 24 dispositivi NVMe. Per quanto riguarda l'organizzazione degli array RAID, supporta i livelli “0”, “1”, “5” e “6”, oltre a “10”, “50” e “60”. Per inciso, la memoria cache e altri controller della serie 9400 è protetta da interruzioni di corrente da un modulo aggiuntivo CacheVault CVPM05.
Alla base della tecnologia a tre modalità c'è la funzione di conversione dei dati SerDes: la conversione della rappresentazione sequenziale dei dati nei protocolli SAS/SATA in una forma parallela in PCIe NVMe e viceversa. In altre parole, il controller sincronizza velocità e protocolli per lavorare senza interruzioni con uno qualsiasi dei tre tipi di dispositivi di archiviazione. Questo garantisce un modo fluido per scalare le infrastrutture dei centri dati: gli utenti possono sfruttare NVMe senza sostanziali modifiche alle altre configurazioni di sistema.

Tuttavia, quando si pianificano configurazioni con unità NVMe, è importante considerare che le soluzioni NVMe utilizzano 4 linee PCIe per la connessione, il che significa che ogni unità occupa tutte le linee delle porte SFF-8643. Pertanto, è possibile collegare direttamente al controller MegaRAID 9460-16i soltanto quattro unità NVMe. Oppure limitarsi a due soluzioni NVMe durante il collegamento simultaneo di otto unità SAS (vedi lo schema di collegamento qui sotto).

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

La modalità predefinita è il profilo "PD64" (supporto solo SAS / SATA). Come già accennato, ci sono tre profili: la modalità "SAS/SATA only mode" (PD240 / PD64 / PD 16), la modalità "NVMe only mode" (PCIe4) e la modalità mista in cui possono funzionare tutti i tipi di unità: "PD64-PCIe4" (supporto 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 viene mantenuto come principale e non viene ripristinato nemmeno quando si torna alle impostazioni di fabbrica tramite il comando Set Factory Defaults. Potrà essere cambiato solo manualmente.
È consigliabile creare un array RAID su SSD?
Quindi, abbiamo già capito che i RAID sono la chiave per alte prestazioni. Ma vale la pena assemblare un RAID utilizzando unità a stato solido per uso domestico e aziendale? Molti scettici affermano che il guadagno in velocità non sia così significativo da giustificare la spesa per gli NVMe. Ma è veramente così? Probabilmente no. Il principale limite all'uso degli SSD in RAID (sia in contesti domestici che aziendali) potrebbe essere solo il prezzo. In effetti, il costo per gigabyte degli 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 performance è limitata dalla capacità di banda del controller RAID stesso. Il livello RAID che offre la migliore velocità operativa è il RAID 0.

L'organizzazione di un normale RAID 0 con due SSD utilizza un metodo di suddivisione dei dati in blocchi fissi alternati tra i dispositivi di memorizzazione a stato solido, il che porterà a un raddoppiamento delle prestazioni (rispetto alle velocità fornite da un singolo SSD). Un array RAID 0 con quattro dischi a stato solido sarà quindi quattro volte più veloce rispetto all'SSD più lento nell'array (a seconda del limite di larghezza di banda a livello del controller RAID SSD).
Если исходить из простой арифметики, SATA SSD примерно в 3 раза быстрее традиционного SATA HDD. NVMe-решения еще эффективнее — в 10 раз и более. При условии, что два жестких диска в RAID’е нулевого уровня покажут удвоенную производительность, увеличив ее на 50%, два SATA SSD окажутся в 6 раз быстрее, а два NVMe SSD — в 20 раз быстрее. В частности, один накопитель Kingston KC2000 NVMe PCIe может достигать скорости последовательного чтения и записи до 3200 Мбайт/с, что в формате RAID 0 достигнет внушительных 6 Гбайт/с. А скорость чтения/записи случайных блоков размером 4 Кбайт превратится из 350 000 IOPS в 700 000 IOPS. Но… в то же время “нулевой” RAID не обеспечивает нам избыточности.
Si può dire che in un contesto domestico la ridondanza dello storage non è generalmente necessaria, quindi la configurazione RAID più adatta per gli SSD diventa davvero il RAID 0. Questo è un modo affidabile per ottenere un notevole aumento delle prestazioni in alternativa all'utilizzo di tecnologie come i solid-state drive basati su Intel Optane. Discuteremo invece come si comportano le soluzioni SSD nei tipi di RAID più comuni (“1”, “5”, “10”, “50”) nel nostro prossimo materiale.
Questo articolo è stato realizzato con il supporto dei nostri colleghi di Broadcom, che forniscono i loro controller agli ingegneri di Kingston per il testing con dischi SATA/SAS/NVMe di classe enterprise. Grazie a questa sinergia amichevole, i clienti possono essere certi dell'affidabilità e della stabilità del funzionamento dei dischi Kingston con gli HBA e i controller RAID prodotti. .
Ulteriori informazioni sui prodotti Kingston possono essere trovate dell'azienda.
Fonte: habr.com
