Prestazioni RAID software e hardware e utilizzo cache


73

Ho letto molto su controller / configurazioni RAID e una cosa che emerge molto è come i controller hardware senza cache offrono le stesse prestazioni del software RAID. È davvero così?

Ho sempre pensato che le schede RAID hardware avrebbero offerto prestazioni migliori anche senza cache. Voglio dire, hai hardware dedicato per eseguire i compiti. In questo caso, qual è il vantaggio di ottenere una scheda RAID senza cache, qualcosa come un LSI 9341-4i che non è esattamente economico.

Inoltre, se un guadagno in termini di prestazioni è possibile solo con la cache, esiste una configurazione della cache che scrive immediatamente sul disco ma mantiene i dati nella cache per le operazioni di lettura rendendo una BBU non una priorità?


Qualcosa che ho notato che favorisce il raid HW: nella mia esperienza, se stai eseguendo il raid SW e il sistema fa qualcosa di diverso da un arresto pulito, avrai un difetto dell'array e dovrai ricostruire. Il raid HW non ha alcun difetto se non stava scrivendo quando il sistema non funzionava.
Loren Pechtel,

Risposte:


146

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:

  1. se i carichi di lavoro non sono sensibili alla scrittura casuale sincronizzata, non è necessaria una scheda RAID
  2. se è necessaria una scheda RAID, non acquistare un controller RAID senza cache WB
  3. 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.
  4. 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)
  5. 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).
  6. 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.

Mille grazie per le ottime spiegazioni, non avevo idea che le schede RAID disabilitassero la cache sugli HDD. Questo non è il tipo di server che garantisce un investimento di quasi $ 800 +, quindi leggerò un po 'di più le configurazioni del software RAID e probabilmente andrò con quello.
È solo il

2
L'OP sta parlando di un hypervisor. RAID5 dovrebbe essere fuori discussione e scrivere cache sarà un must.
ewwhite,

1
In realtà, anche nel 2016, un software RAID 6/6 a 6 unità scrive a <25 MB / s mentre una scheda RAID hardware corretta del 2010 scrive a> 500 MB / s. Questo è su Intel RSTe e Windows Storage Spaces. Semplicemente non capisco quale sia il collo di bottiglia su una CPU moderna.
Monstieur,

1
Il problema con il software RAID 5/6 è che le scritture spesso innescano una lettura-modifica-scrittura, che a sua volta rallenta notevolmente i dischi. Un controller RAID hardware abilitato per BBU può fondere più scritture in un singolo accesso / transazione su disco, migliorando notevolmente le prestazioni.
shodanshok,

1
"[letture casuali] se utilizzate con SSD, spesso eccellono" - Se l'SSD non è un SSD aziendale (di solito significa che non ha un condensatore per la protezione della perdita di potenza) e non mente, allora anche gli SSD possono hanno IOPS estremamente bassi per operazioni come sequenziali fsync(). Vedi questo articolo , che mostra che un SSD Samsung NVMe senza condensatore esegue solo ~ 250 fsync al secondo (anch'io ho misurato questo). Gli SSD con condensatore forniscono ~ 30 volte più fsyncs / s, un controller RAID hardware con batteria 100 volte di più.
nh2,

7

Avrai bisogno di una batteria o di una soluzione cache con supporto flash per qualsiasi controller hardware acquistato. La maggior parte rimpiange di non averlo fatto .

Ma per rispondere alla tua domanda, la maggior parte dei controller ha rapporti di cache configurabili ... quindi la cache di lettura al 100% e la cache di scrittura allo 0% negano la necessità di protezione BBU. La tua performance di scrittura farà schifo.

Non posso rispondere alla tua domanda RAID sul software perché dipende. Linux MD RAID è diverso da Windows Software RAID, che è diverso da qualcosa come ZFS . Soluzioni come ZFS possono funzionare meglio dell'hardware perché sfruttano le risorse RAM e CPU del server.


Con "le prestazioni di scrittura faranno solo schifo" vuoi dire che sarà più o meno lo stesso di RAID software o RAID hardware senza cache? O c'è una penalità per scrivere prestazioni oltre a quella se la carta dedica la cache alla lettura?
È solo il

Dipende da cosa stai facendo. Se non si dispone di un'applicazione ad alta intensità di scrittura, il risultato potrebbe non essere un problema.
ewwhite,

È un Proxmox HOST con macchine virtuali Windows utilizzate per l'hosting di posta e web. Non c'è molto uso del database ma il servizio di posta elettronica ha probabilmente molte attività di scrittura. Attualmente sto solo discutendo se vale la pena avere una scheda cache di sola lettura su RAID software.
È solo il

Utilizzare un controller RAID con supporto Flash per la virtualizzazione.
ewwhite,

1
Abbiamo gestito un server di posta Cyrus con circa 4000 account su di esso utilizzando il software RAID. Gli account attivi colpiti ogni giorno erano più o meno da 300 a 600. Le prestazioni erano notevolmente peggiori rispetto al nostro server di posta principale cyrus con RAID hardware e BBU. La cache del controller BBU e RAID offre sicurezza dei dati, ma offre anche prestazioni. Questo perché una volta che i dati arrivano al controller, può dire al sistema operativo che la scrittura è completa. Altrimenti dovrebbe attendere che il disco rigido segnali che la scrittura è completa. Ciò consente di risparmiare significativi cicli di clock. Passato al RAID hardware e risolto.
labradort,

7

Il controller RAID che hai a portata di occhio è economico ed è fondamentalmente un falso. Dipende anche dalla scheda madre per fornire alcune funzioni come la memoria e non molte schede madri hanno il supporto per cui non è possibile caricare il driver.

Informazioni su HW e SW-RAID stesso. Non sto più usando HW-RAID a meno che non sia una scatola con un logo EMC su di esso per esempio. Per tutto il resto sono appena tornato a SW-RAID ancora molte lune per alcuni motivi molto semplici.

  1. Hai bisogno di hardware aggiuntivo e devi abbinarli. È inoltre necessario abbinare il firmware e mantenerlo sincronizzato. Molti dischi non funzioneranno correttamente e aumenterai la tua latenza IO senza una ragione chiara.

  2. L'hardware aggiuntivo è costoso, quindi è possibile utilizzare $ 1000 aggiuntivi (controller decente con due / tre dischi) per una soluzione di piccole dimensioni meglio. Investilo in più dischi e controller standard, memoria ECC, CPU più veloce. E un disco di riserva in loco, forse se si prevede di eseguirlo per un periodo più lungo del periodo di garanzia o se non si desidera pagare le spese espresse per la spedizione durante la notte.

  3. L'aggiornamento è un problema in quanto è necessario tenere traccia delle patch del sistema operativo e del firmware sia per il disco che per il controller. Potrebbe causare una situazione in cui l'aggiornamento / aggiornamento non è più possibile.

  4. Sui formati del disco. Un numero sufficiente di fornitori utilizza alcuni layout interni per archiviare i dati collegati a una revisione della combinazione hardware e firmware. Ciò può comportare una situazione in cui una parte di ricambio rende impossibile l'accesso ai dati dell'utente.

  5. È uno SPOF e un collo di bottiglia. Avere un solo controller dietro un solo bridge PCI non ti offre le prestazioni e la ridondanza di cui hai veramente bisogno. Anche in questo caso non esiste alcun percorso di migrazione per migrare i dati su un altro diskset fuori dalla portata dei controller.

La maggior parte di questi aspetti è stata risolta con le nuove generazioni di software SW-RAID o soluzioni come ZFS e BtrFS. Tieni presente che alla fine vuoi proteggere i tuoi dati e non rapidamente accessibili, ma immondizia ridondante.


3
Non sono d'accordo. Molte persone sono contente dei controller RAID LSI Dell, HP, IBM e di fascia alta. Ma onestamente, i server di qualità più moderni dispongono già di soluzioni RAID integrate, quindi l'idea di acquistare un singolo controller è un po 'datata. Le soluzioni RAID software devono inoltre tenere conto dei carichi di lavoro in scrittura a bassa latenza. ZFS ha uno ZIL, ma su questo fronte mancano molte altre implementazioni RAID software.
ewwhite,

2
Differirei anche con il tuo ultimo paragrafo, RAID è la disponibilità non la protezione. La protezione richiede backup non RAID.
Rowan Hawkins,

4

Ho trascorso l'ultimo anno (spento e attivo fino al 2014-2015) testando diverse configurazioni parallele CentOS 6.6 RAID 1 (con mirroring) utilizzando 2 controller LSI 9300 HBA contro 2 controller LSI 9361-8i RAID con sistemi basati su: 2U Supermicro CSE- Chassis 826BAC4-R920LPB, una scheda madre ASUS Z9PE-D16, 2 processori Intel Xeon E5-2687W v2 a otto core da 3,4 GHz, mirroring Seagate ST6000NM0014 SAS da 6 TB da 12 GB, 512 GB di RAM. Si noti che questa è una configurazione completamente conforme a SAS3 (12 Gbps).

Ho analizzato articoli scritti sul software di ottimizzazione e ho usato il software RAID Linux per oltre 10 anni. Quando si eseguono test di I / O di base (dd-oflag = file diretti da 5k a 100G, hdparam -t, ecc.), Il RAID software sembra accatastarsi favorevolmente al raid hardware. Il RAID software rispecchiato tramite HBA separati. Sono arrivato al punto di fare test con le configurazioni standard di kernel CentOS 6, kernel-lt e kernel-ml. Ho anche provato vari mdadm, file system, sottosistemi di dischi e / o sintonizzazioni suggerite da una varietà di articoli online scritti sul RAID software Linux. Nonostante l'ottimizzazione, i test, l'ottimizzazione e i test, durante l'esecuzione in un mondo letto, il sistema di elaborazione delle transazioni (con un database MySQL o Oracle), ho scoperto che l'esecuzione di un controller RAID hardware comporta un aumento di 50 volte delle prestazioni.

Per molti, molti mesi non ero convinto che il RAID hardware potesse essere molto meglio, tuttavia, dopo un'esaustiva ricerca sul RAID software Linux, test e messa a punto, questi erano i miei risultati.


2

La maggior parte degli scrittori qui sono semplicemente ignoranti di " scrivere buca ". Questa è la base che consente di gridare per unità di backup battey di RAID hardware rispetto all'assenza di tale per RAID software. Bene, ad esempio, l'implementazione RAID del software Linux supporta bitmap delle operazioni di scrittura o esegue un nuovo calcolo di "parità" in caso di arresto non pulito. ZFS si impegna sempre a scrivere a strisce complete per evitare questa incoerenza o rinviare il suo nuovo controllo. Quindi, come riassunto, il software RAID abbastanza intelligente al giorno d'oggi è spesso abbastanza buono da essere utilizzato al posto di "chissà cosa c'è dentro", il cosiddetto "RAID hardware".

Per quanto riguarda la parte cache della domanda, in realtà non ha molta importanza, perché il sistema operativo stesso può scrivere cache può essere molto più grande di quanto l'adattatore "hardware" abbia.


1
Questo è un altro motivo per evitare le schede RAID hardware senza una corretta cache WB protetta. Una nota su Linux MD Raid: non è totalmente immune dal buco della scrittura. Poiché non ha una protezione per la perdita di potenza, in caso di improvvisa perdita di potenza i dati andranno persi (si pensi a dati in transito e / o scritture parziali). Sicuramente ciò accadrà anche nello scenario a disco singolo, ma la natura di parità o RAID5 / 6 lo amplifica. Nel peggiore dei casi, i metadati dei filesystem crical possono essere danneggiati, tuttavia i filesystem moderni sono abbastanza resistenti da poter essere recuperati abbastanza bene. Tuttavia, alcuni dati potrebbero andare persi.
shodanshok,

@shodanshok, ti ​​sbagli totalmente. Pensa
poige il

1
Molte batterie, se mantenute in buono stato, possono alimentare la cache WB per 24-96 ore, il che è un sacco di tempo per ripristinare l'alimentazione, tranne situazioni davvero estreme. Inoltre, il controller moderno è passato alla memoria NVRAM (leggi: flash) come memoria a lungo termine, quindi in caso di interruzione dell'alimentazione una piccola batteria / supercap scaricherà il contenuto della cache in una memoria NV che può conservare i dati per mesi o anni In altri parola, un controller RAID BBU sarà prevenire RAID5 / 6 fori in (quasi) tutte le circostanze.
shodanshok,

1
Hai detto che è immune scrivere buco. Gli sviluppatori dicono che non lo è , anche se hanno detto che non dovrebbe importare molto nell'uso del mondo reale.
shodanshok,

1
Siamo spiacenti, ma hai scritto: "Questa è la base che consente di gridare per le unità di backup battey dei RAID hardware rispetto all'assenza di tali per i RAID software" . Questo è SBAGLIATO . Le schede RAID hardware appropriate offrono una protezione aggiuntiva e ti ho detto più volte che questa è l'opinione degli stessi sviluppatori LSR. Ora ti faccio una domanda: la tua affermazione è buona o sbagliata? Poiché è sbagliato, modifica la tua risposta o un altro utente può essere ingannato da questa assurdità.
shodanshok,

0

Ci lavoro tutto il tempo. Dipende fortemente da cosa stai facendo e dal livello dell'incursione che stai sostenendo. Un controller SW che esegue un Raid 0 o 1 per il sistema operativo e niente di speciale va bene. L'esecuzione di un controller SW con Raid 5 su un database richiede problemi! ALCUNI controller hardware offrono prestazioni migliori, ma dipende se è in grado di memorizzare nella cache e nel chipset del processore della scheda raid. Inoltre, non tutti i controller software sono supportati da tutti i sistemi operativi. Quindi a volte potresti dover acquistare un HW per eseguire ESXi ... A meno che tu non usi connessioni SATA.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.