In breve: se si utilizza una scheda RAID di fascia bassa (senza cache), farsi un favore e passare al software RAID. Se si utilizza una scheda di fascia medio-alta (con BBU o NVRAM), l'hardware è spesso (ma non sempre! Vedi sotto) una buona scelta.
Risposta lunga: quando la potenza di calcolo era limitata, le schede RAID hardware presentavano il vantaggio significativo di scaricare il calcolo della parità / sindrome per gli schemi RAID che le coinvolgono (RAID 3/4/5, RAID6, ecc.).
Tuttavia, con le prestazioni della CPU in costante aumento, questo vantaggio è sostanzialmente scomparso: anche l'antica CPU del mio laptop (Core i5 M 520, generazione Westmere) ha prestazioni XOR di oltre 4 GB / se prestazioni di sindrome RAID-6 su 3 GB / s su un core a singola esecuzione .
Il vantaggio che il RAID hardware mantiene oggi è la presenza di una cache DRAM protetta dalla perdita di potenza, sotto forma di BBU o NVRAM. Questa cache protetta offre una latenza molto bassa per l'accesso in scrittura casuale (e le letture che colpiscono) e sostanzialmente trasforma le scritture casuali in scritture sequenziali. Un controller RAID senza tale cache è quasi inutile . Inoltre, alcuni controller RAID di fascia bassa non solo arrivano senza cache, ma disabilitano forzatamente la cache DRAM privata del disco, portando a prestazioni più lente rispetto a senza la scheda RAID. Un esempio sono le schede PERC H200 e H300 DELL: se il firmware più recente non lo ha modificato, disabilitano totalmente la cache privata del disco (e non possono essere riattivati mentre i dischi sono collegati al controller RAID). Fai un favore a te stesso e fallomai e poi mai acquistare tali controller. Sebbene anche i controller di fascia alta disabilitino spesso la cache privata del disco, almeno hanno la propria cache protetta, rendendo in qualche modo ridondante la cache privata dell'HDD (ma non quella dell'SSD!).
Questa non è la fine, però. Anche i controller in grado (quello con BBU o cache NVRAM) possono dare risultati incoerenti se usati con SSD, fondamentalmente perché gli SSD hanno davvero bisogno di una cache privata veloce per una programmazione / cancellazione di pagine FLASH efficienti. E mentre alcuni controller (la maggior parte?) Consentono di riattivare la cache privata del disco (ad esempio: PERC H700 / 710 / 710P consentire all'utente di riattivarla), se tale cache privata non è protetta da scrittura si rischia di perdere i dati nel caso di perdita di potenza. Il comportamento esatto è davvero controller e firmware dipendente (ad esempio: su un Dell S6 / i con 256 MB di cache WB e la cache del disco abilitato , ho avuto nessun perdite durante multipla, test pianificato perdita di potenza), dando incertezza e molta preoccupazione.
I RAID software open source, d'altra parte, sono bestie molto più controllabili: il loro software non è racchiuso in un firmware proprietario e ha modelli e comportamenti ben definiti. Il RAID software presuppone (a destra) che la cache DRAM privata del disco non sia protetta, ma allo stesso tempo è fondamentale per prestazioni accettabili - quindi in genere non la disabilitano, ma usano i comandi ATA FLUSH / FUA per essere certi che critici i dati atterrano su un archivio stabile. Dato che corrono spesso dalle porte SATA collegate al chipset SB, la loro larghezza di banda è molto buona e il supporto dei driver è eccellente.
Tuttavia, se utilizzato con HDD meccanici, il modello di accesso in scrittura casuale sincronizzato (ad es. Database, macchine virtuali) risentirà notevolmente rispetto a un controller RAID hardware con cache WB. D'altra parte, quando utilizzato con SSD aziendali (ovvero: con una cache di scrittura protetta da perdita di potenza), il software RAID spesso eccelle e fornisce risultati persino superiori a quelli ottenibili con le schede RAID hardware. Detto questo, dovevi ricordare che gli SSD consumer (leggi: con cache di writeback non protetta), mentre sono molto bravi nella lettura e nella scrittura asincrona, offrono IOPS molto bassi nei carichi di lavoro di scrittura sincronizzati.
Inoltre, considera che i RAID software non sono tutti uguali. Il software RAID di Windows ha una cattiva reputazione, dal punto di vista delle prestazioni e persino lo spazio di archiviazione non sembra molto diverso. Linux MD Raid è eccezionalmente veloce e versatile, ma lo stack I / O di Linux è composto da più pezzi indipendenti che è necessario comprendere attentamente per ottenere le massime prestazioni. Il RAID di parità ZFS (ZRAID) è estremamente avanzato ma, se non configurato correttamente, può fornire IOP molto poveri; il mirroring + striping, dall'altro lato, si comporta abbastanza bene. Ad ogni modo, ha bisogno di un dispositivo SLOG veloce per la gestione della scrittura sincrona (ZIL).
Linea di fondo:
- se i carichi di lavoro non sono sensibili alla scrittura casuale sincronizzata, non è necessaria una scheda RAID
- se è necessaria una scheda RAID, non acquistare un controller RAID senza cache WB
- se si prevede di utilizzare il software SSD, è preferibile il RAID, ma tenere presente che per le scritture casuali altamente sincronizzate è necessario un SSD protetto da perdita di potenza (ad esempio: Intel S4600, Samsung PM / SM863, ecc.). Per prestazioni pure la scelta migliore è probabilmente Linux MD Raid, ma oggigiorno utilizzo generalmente mirror ZFS con striping. Se non puoi permetterti di perdere metà dello spazio a causa dei mirror e hai bisogno delle funzionalità avanzate di ZFS, scegli ZRAID ma pensa attentamente alla configurazione di VDEV.
- se, anche usando SSD, hai davvero bisogno di una scheda RAID hardware, usi SSD con cache protette da scrittura (Micron M500 / 550/600 hanno una protezione parziale - non proprio sufficiente ma meglio di niente - mentre le serie Intel DC e S hanno una perdita di potenza completa protezione, e lo stesso si può dire per gli SSD Samsung aziendali)
- se hai bisogno di RAID6 e utilizzerai normali HDD meccanici, considera di acquistare una scheda RAID veloce con 512 MB (o più) di cache WB. RAID6 ha un alto livello di prestazioni in scrittura e una cache WB di dimensioni adeguate può almeno fornire una memoria intermedia veloce per scritture sincrone di piccole dimensioni (ad esempio: journal del filesystem).
- se hai bisogno di RAID6 con HDD ma non puoi / non vuoi acquistare una scheda RAID hardware, pensa attentamente alla configurazione del tuo RAID software. Ad esempio, una possibile soluzione con Linux MD Raid consiste nell'utilizzare due array: un piccolo array RAID10 per scritture di diario / registri DB e un array RAID6 per l'archiviazione non elaborata (come file server). D'altra parte, il software RAID5 / 6 con SSD è molto veloce, quindi probabilmente non è necessaria una scheda RAID per una configurazione di tutti gli SSD.