Come configuro RAID 5, in particolare le dimensioni dello stripe, con unità 24 x 1,2 TB per CentOS 6?


8

Per un Dell R920 con dischi da 24 x 1,2 TB (e 1 TB di RAM), sto cercando di impostare una configurazione RAID 5 per un IO veloce. Il server verrà utilizzato per ospitare macchine virtuali KVM che leggeranno / scriveranno file di tutte le dimensioni, inclusi file molto grandi. Non sono terribilmente interessato alla sicurezza dei dati perché se il server non funziona per qualsiasi motivo, eseguiremo nuovamente il provisioning del server dal bare metal dopo aver sostituito le parti guaste. Quindi, le prestazioni sono la principale preoccupazione. Stiamo prendendo in considerazione RAID 5 perché ci consente di distribuire dati su più mandrini e quindi ci offre prestazioni migliori e, sebbene non sia la nostra preoccupazione principale, ci offre anche una certa protezione dei dati. La nostra scheda NIC ha un doppio 10 Gbps.

Sto limitando questa domanda a RAID 5 solo perché riteniamo che ciò fornirà le migliori prestazioni. Solo se c'è un motivo convincente per le prestazioni considereremo qualcos'altro. Tuttavia, penso che preferirei le risposte correlate alle configurazioni RAID 5.

Bene, con quanto sopra indicato, ecco i nostri pensieri di configurazione attuali per:

  • 24 dischi rigidi: RMCP3 : 1,2 TB, 10 KB, 2,5 "6 Gbps
  • Controller RAID: H730P, supporto SAS 12Gbps, cache NV da 2 GB
  • 1 hot spare (solo per darci un po 'di vita in più se un'unità non funziona)
  • 23 Data Drives (di cui 1 è considerato Parity e 22 rimasti per Data)
  • Dimensioni striscia: 1 MB (unità dati 1 MB / 22 = ~ 46,5 KB per disco - oppure, fraintendere le dimensioni della striscia)?
  • Politica di lettura: Lettura adattiva avanti
  • Politica di scrittura: riscrivi
  • Criterio cache disco: abilitato

Se la dimensione dello striping è TOTALE tra le unità dati, allora ho pensato che ~ 46,5 KB per unità ci daranno un throughput molto buono. Se la dimensione della striscia è per mandrino, allora ho sbagliato tutto.

La dimensione della striscia ha anche la dimensione di un singolo file? Ad esempio, se esiste un file da 2 KB, scegliere una dimensione di striping di 1 MB significherebbe sprecare quasi un intero megabyte? O più file possono vivere all'interno di una striscia?

Infine, quando installeremo CentOS 6.5 (o più recente), dovremo fare qualcosa di speciale per garantire che il filesystem usi RAID in modo ottimale? Ad esempio, mkfs.ext4 ha un'opzione -E passo che mi viene detto che dovrebbe corrispondere alla configurazione RAID. Ma, durante un'installazione CentOS, c'è un modo per farlo?

Mille grazie per i tuoi pensieri su un RAID 5 di configurazione per un IO veloce.


4
RAID 5 è ciò che non vuoi usare se vuoi prestazioni ... le sue velocità di scrittura possono essere terribili.
Nathan C,

1
Potete fornire un contesto sul carico di lavoro in lettura / scrittura e l'applicazione per questa soluzione di archiviazione?
ewwhite,

1
se si desidera prestazioni, non utilizzare affatto gli HDD .. molto probabilmente è possibile ottenere maggiori prestazioni con un buon sistema di archiviazione SSD o anche soluzioni di archiviazione PCIe. se non ti interessa se i dati vengono persi, cerca SSD o persino soluzioni di archiviazione PCIe.
Dennis Nolte,

2
@Tonny ho verificato questo. Massimo 16 dischi per quel controller.
ewwhite,

7
Tutti, per favore, ricordate che non siete nati esperti, tutti imparano ad un certo punto. Per favore sii gentile con quelli che sanno meno di te.
Chris S,

Risposte:


12

Utilizzare RAID 1 + 0 con il controller e la configurazione dell'unità. Se hai bisogno di più capacità, un livello RAID nidificato come RAID 50/60 potrebbe funzionare . Puoi cavartela con RAID 5 su un piccolo numero di dischi SAS aziendali (8 unità o meno) perché i tempi di ricostruzione non sono male. Tuttavia, 24 unità è un errore terribile. (Oh, e disabilita la funzione di memorizzazione nella cache del singolo disco ... pericolosa)

Esistono molti aspetti dell'I / O e delle prestazioni di archiviazione locale. Ci sono operazioni di I / O / secondo, c'è velocità effettiva, c'è latenza di archiviazione. RAID 1 + 0 è un buon equilibrio tra questi. Gli aspetti positivi qui sono che stai usando dischi aziendali, un controller hardware capace e un buon numero di dischi. Quanta capacità hai bisogno?

È possibile incontrare limiti al numero di unità che è possibile utilizzare all'interno di un gruppo di dischi virtuali. I controller PERC / LSI tradizionalmente limitavano questo a 16 unità per singoli livelli RAID e RAID 1 + 0. La guida per l'utente lo conferma . Non sarai in grado di utilizzare tutti i 24 dischi in un singolo RAID 5 o in un singolo gruppo RAID 1 + 0.

Un altro aspetto da considerare, a seconda del carico di lavoro, è che è possibile sfruttare la memorizzazione nella cache SSD utilizzando la funzionalità LSI Cachecade su alcuni controller PERC. Potrebbe non essere disponibile per questo, ma comprendere i tuoi pattern I / O ti aiuterà a personalizzare la soluzione di archiviazione.


Per quanto riguarda le opzioni di creazione del filesystem ext4, gran parte di essa verrà sottratta dal controller RAID hardware. Dovresti essere in grado di creare un filesystem senza opzioni speciali qui. I parametri a cui ti riferisci avranno un impatto maggiore su una soluzione RAID software.


Alcune informazioni molto utili qui. Cerchiamo prima le prestazioni, poi lo spazio su disco totale. Quindi, non stiamo prendendo in considerazione RAID 10 perché perderemmo la metà dei nostri 24 TB di spazio disponibile su disco. Le nostre esigenze sono molto ricche di dati e sfogliamo la TB di dati abbastanza facilmente. Poiché la conseguenza del fallimento del server è per noi una priorità bassa (poiché possiamo semplicemente ricostruire il server da zero dopo aver riparato hardware difettoso, ovvero la sicurezza dei dati NON è la nostra considerazione più importante), vogliamo massimizzare l'IO del disco ( sia locale che NFS / altra storia) e velocità di elaborazione complessiva.
Steve Amerige,

@SteveAmerige Quanto spazio su disco ti serve? Non puoi UTILIZZARE 24 dischi in un gruppo RAID, quindi ci sono alcune considerazioni di progettazione aggiuntive per il tuo ambiente. Puoi dirci cosa deve fare questo sistema, quale tipo di dati è coinvolto e quali sono i reali requisiti di prestazione?
ewwhite,

1
@SteveAmerige Maggiori dettagli! Il RAID 5 non è un avviatore. Non dovresti usarlo nel 2014. Che tipo di dati è questo? Quale sarebbe la tecnologia di virtualizzazione? KVM? VMware? Penso che il design qui abbia davvero bisogno di un certo perfezionamento, soprattutto prima di investire in così tanto hardware ... Sai quale sarà la dimensione del "working set" di dati per VM? Nei casi in cui tale valore è noto, è possibile memorizzare nella cache e ottimizzarlo. Memoria a più livelli. SSD. Il carico di lavoro è di parte o di parte?
ewwhite,

1
RAID 5 would give us some data safety at the expense of effectively 1 hard drive per group, right? No, non è vero. Con unità di queste dimensioni e con molti dischi in un gruppo, RAID 5 ti offre effettivamente 0 dati di sicurezza. Può anche semplicemente lanciare i dischi in due array RAID 0 a 12 dischi.
HopelessN00b,

1
Alla fine, ho eseguito la seguente configurazione delle 24 unità fisiche: Disk Group 0, RAID 10 (4 unità): VD 0: BOOT 100GB; VD 1: ROOT 2134.5GB. Disk Group 1, RAID 0 (10 unità): VD 2: DATA1, 11172.5GB. Disk Group 2, RAID 0 (10 unità): VD 3: DATA2, 11172.5GB. È possibile che non avrei dovuto avere dischi virtuali VD 0 BOOT e VD 1 ROOT separati. L'ho fatto per garantire che il disco di avvio potesse eseguire un avvio standard (non UEFI). In seguito ho usato LVM in modo da avere / che utilizzavano esclusivamente VD 0 e VD 1; e / dati che hanno utilizzato VD 2 e VD 3. Mille grazie per tutti i commenti!
Steve Amerige,

5

NON utilizzare un singolo array RAID 5 su 24 dischi da 1 TB! Non mi interessa molto a cosa preferisci limitare le risposte, è una cattiva idea e dovresti guardare altre opzioni.

Le probabilità di guasto di un disco aumentano con ogni disco. Così fa il tempo necessario per ricostruire. Quando un'unità si guasta e la si sostituisce, utilizzerà la maggior quantità di I / O su tutti i dischi possibile per creare i dati per quella nuova. È molto probabile che uno dei 23 dischi rimanenti non funzionerà durante questo processo, costringendoti a ripristinare il server dai backup. Di cui dici che non ti interessa ... ma sei disposto ad accettare di farlo una volta al mese? Una volta a settimana? Con l'avanzare dell'età dei dischi, potrebbe benissimo peggiorare la situazione.

Inoltre, se vuoi prestazioni, RAID5 ti sta portando nella direzione sbagliata. In molti casi, RAID5 ha prestazioni peggiori rispetto ad altre opzioni, perché deve calcolare la parità per ogni scrittura e quindi scriverla anche su un'unità. RAID5 non è stato progettato per le prestazioni.

Se DAVVERO non ti interessano i tuoi dati, vai con RAID 0. Ma anche in questo caso, crea alcuni array separati, non un gigantesco RAID 0 a 24 dischi.

Se vuoi prestazioni e integrità, usa RAID10. Perderai un po 'di spazio su disco, ma otterrai un notevole aumento delle prestazioni.

Oppure puoi guardare cose come ZFS progettate da zero per funzionare con enormi quantità di dati sui dischi.


1
Cordiali saluti, sono uno sviluppatore di software che gestisce i server della nostra divisione come lavoro secondario. Ciò significa che ho molte lacune nella mia conoscenza. Ma lo faccio ragionevolmente da un paio d'anni ormai. Questa è la prima volta che costruisco un server così grande, quindi il tuo feedback è molto apprezzato. Apprezzo molto il tuo commento sulle limitazioni di RAID 5. Ciò che vogliamo sono le prestazioni e lo spazio su disco totale disponibile, ma siamo disposti a prendere in considerazione le configurazioni RAID che ci danno un po 'di sicurezza dei dati (la nostra ultima priorità).
Steve Amerige,

1

Le tue opzioni:

  • RAID 0 : questo trasforma tutti i tuoi dischi in una singola unità senza ridondanza. Questo ha le massime prestazioni di lettura e scrittura e lo spazio più utilizzabile di una qualsiasi delle opzioni, ma la perdita di un singolo disco significa la perdita di tutti i dati.

  • RAID 1 + 0 : questo trasforma tutti i tuoi dischi in una singola unità con tutti i dati presenti su due dischi. La velocità di lettura è circa la stessa di RAID 0, la velocità di scrittura è dimezzata (poiché è necessario scrivere ogni dato due volte) e si dispone solo della metà dello spazio disponibile. La perdita di un singolo disco non ha alcun impatto sulla disponibilità dei dati e un impatto minimo sulla velocità di lettura / scrittura.

  • RAID 5 : questo trasforma tutti i tuoi dischi in una singola unità, con un valore di parità su un disco. La velocità di lettura è leggermente inferiore a RAID 0, la velocità di scrittura è molto più lenta, forse più lenta della velocità di scrittura di un singolo disco non RAID (ogni scrittura richiede un ciclo di lettura-modifica-scrittura su almeno due dischi) e tu perdere spazio su un disco per le informazioni di parità. La perdita di un singolo disco può causare una notevole riduzione della velocità di lettura (la ricostruzione dei dati memorizzati su di esso richiede la lettura dei dati da tutti gli altri dischi), ma non ha alcun impatto sulla disponibilità dei dati.

  • RAID 6 : questo presenta essenzialmente tutti i vantaggi e gli svantaggi di RAID 5, tranne per il fatto che memorizza un checksum più elaborato oltre a un calcolo di parità e può gestire la perdita di due dischi senza perdita di dati.

Se la sicurezza dei dati è veramente irrilevante (questo include il tempo impiegato per il ripristino dei dati dalla fonte originale, che potrebbe richiedere giorni e il tempo perso nel ripetere i calcoli interrotti), si consiglia RAID 0. Altrimenti, se si dispone di un carico di lavoro che è quasi legge esclusivamente e si desidera un po 'di affidabilità, consiglio RAID 6 (ma si noti che le prestazioni ne risentiranno durante il ripristino da un disco guasto). Se si dispone di un carico di lavoro in lettura e scrittura, consiglio RAID 1 + 0.

A seconda della natura precisa del carico di lavoro (ad es. Se una determinata attività accede a un sottoinsieme ben definito dello spazio su disco), potresti essere in grado di impostare più array RAID indipendenti, in modo che il fallimento di uno non influisca sugli altri .

RAID 5 non offre alcun vantaggio nella tua situazione. Ha una penalità prestazionale (soprattutto per la scrittura) rispetto a RAID 0 e con il numero di dischi che hai, è praticamente certo che un secondo disco si guasterà durante il ripristino, senza alcun vantaggio per la sicurezza dei dati.


1

Va bene, solo per una domanda chiara: la dimensione della striscia. La dimensione della striscia più grande è migliore a meno che il RAID non sia stupido da leggere / scrivere sempre l'intera striscia di dati come blocco I / O minimo.

Perché? - le dimensioni di strisce ridotte implicano il coinvolgimento di più dischi in qualsiasi I / O lungo, minore è la possibilità di caricare più dischi con un I / O logico. La striscia grande significa più possibilità che un solo disco (o pochi) sia coinvolto nell'I / O. Questo potrebbe sembrare un difetto perché non c'è alcun aumento rispetto a più dischi, ma poi il tuo carico quasi casuale salta dentro e ti rendi conto che il carico verrà distribuito su tutti i dischi più o meno uniformemente.

Più teoria dietro questo può essere trovato qui: http://www.vinumvm.org/vinum/Performance-issues.html

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.