Un RAID 10 di grandi dimensioni rispetto a diversi array più piccoli?


10

La mia domanda è: quando è appropriato creare semplicemente un array di grandi dimensioni con prestazioni di lettura e scrittura veloci, come RAID 10, anziché creare array più piccoli per applicazioni specifiche?

Mi sembra che se i miei requisiti I / O complessivi non fossero eccessivamente pesanti, un singolo array con eccellenti prestazioni di lettura e scrittura potrebbe fornire prestazioni complessivamente migliori a tutte le applicazioni, tranne in quei periodi (forse rari) in cui le applicazioni con diversi modelli di accesso raggiungevano il picco a allo stesso tempo (copia di grandi quantità di file di grandi dimensioni mentre un database viene bloccato).

Se dedico una coppia di mandrini a un'attività particolare, come i registri delle transazioni, e non stanno nemmeno sudando con il carico di lavoro ... perché non mettere semplicemente quel carico di lavoro su un RAID 10 più grande? Quei mandrini sarebbero quindi in grado di contribuire ad altri carichi di lavoro invece di sedersi a grattarsi il 60% delle volte.

PS, nel mio caso particolare il sovraccarico di costi di RAID 10 non è un fattore, perché sto cercando di creare più array RAID 1 e un RAID 5. di piccole dimensioni. L'utilizzo di RAID 10 per la quantità di spazio di cui ho bisogno sarebbe comparabile.

Risposte:


10

Sapere come impostare lo spazio di archiviazione è tutto sulla misurazione e il budget degli IOPS e della larghezza di banda. (Sto diventando semplicistico qui perché le dimensioni della combinazione percentuale di lettura / scrittura, IO medi, dimensione dello striping RAID e percentuali di hit della cache contano molto. Se riesci a ottenere quei numeri puoi rendere i tuoi calcoli ancora più accurati.)

C'è davvero un bel po 'IO calcolatrice qui che ho spesso uso quando pianificazione fuori di stoccaggio. La directory di archiviazione di wmarow è anche utile per ottenere numeri di prestazioni del disco abbastanza contemporanei.

Se dedico una coppia di mandrini a un'attività particolare, come i registri delle transazioni, e non stanno nemmeno sudando con il carico di lavoro ... perché non mettere semplicemente quel carico di lavoro su un RAID 10 più grande?

Ricordare che l'inserimento di IO sequenziali su un mandrino con IO casuale rende casuale quell'IO sequenziale. I dischi del registro delle transazioni potrebbero sembrare che non stiano sudando perché si stanno verificando operazioni di I / O sequenziali. Le letture e le scritture sequenziali su un volume RAID-1 saranno abbastanza veloci, quindi se stai basando "non sudare" sulla lunghezza della coda del disco, ad esempio, non otterrai l'intera storia.

Misurare o calcolare gli IOPS casuali massimi possibili per il volume di destinazione previsto, prendere una linea di base del carico di lavoro corrente su quel volume e quindi decidere se si dispone di spazio sufficiente per inserire tali IOPS del registro delle transazioni nell'IOI casuale rimanente nel volume di destinazione. Inoltre, assicurarsi di preventivare lo spazio necessario per il carico di lavoro (ovviamente). Se sei così propenso, aggiungi una percentuale di "headroom" aggiuntivo nel tuo carico di lavoro IO / allocazione dello spazio.

Continua con questa metodologia per tutti gli altri carichi di lavoro che desideri inserire nel volume RAID-10 di destinazione. Se esaurisci IOPS casuali, stai accumulando troppo nel volume: aggiungi più dischi o trasferisci parte del carico di lavoro su volumi dedicati. Se si esaurisce lo spazio, aggiungere altri dischi.


Un problema è che con la mia configurazione attuale, posso davvero ottenere solo una buona misurazione su IOPS totali, che è solo di circa 300 (lettura del 60%) con una media di 14K byte per trasferimento. Il grande array RAID 10 che sto prendendo in considerazione dovrebbe essere in grado di eseguire 758 IOPS 16k casuali (60% e cache di factoring). Questo calcolo non prende in considerazione i carichi di lavoro misti, tuttavia, ed è quello con cui sto lottando.
Boden,

4

Recentemente ho letto altri articoli che dicono che RAID 5 è un pessimo modo di fare affidamento. Ci credo di più dopo che un disco si è danneggiato in un array RAID 5, ha sostituito l'unità e non è stato possibile ripristinarlo perché un secondo disco aveva un errore di lettura latente irreversibile che ci ha costretto a riformattare e ripristinare dal backup.

Man mano che le unità diventano più grandi, anche le probabilità di avere un errore di lettura irrecuperabile non rilevato su questi enormi dischi stanno aumentando e con RAID 5 l'affidabilità semplicemente non lo taglia più. Se non stai eseguendo il mirroring, a quanto pare il consiglio è di scegliere RAID 10.

A meno che tu non stia facendo qualcosa di molto sensibile ai problemi di velocità, non mi preoccuperei di spezzare le cose in piccoli array o qualcosa del genere. Inseriscilo in un RAID 10 e verifica se le tue prestazioni sono all'altezza. Con una corretta memorizzazione nella cache e memoria nel sistema, dovrebbe andare bene. I numeri per i benchmark non saranno mai esattamente quello che otterrai in realtà perché dipendono dal tuo effettivo utilizzo, carico effettivo, prestazioni dell'unità disco, cache del controller, cache del disco, frammentazione, ecc.

La migliore regola empirica è semplificare il più possibile la configurazione perché anche se affondi un giorno o una settimana nel sudare su questa configurazione in un anno o due dovrai risolvere alcuni problemi su questo server che lasceranno ti stai chiedendo perché l'hai impostato come hai fatto se hai aggiunto complessità inutili alla configurazione.


1
Sì, mi sono spostato da RAID 5 a RAID 6 e la penalità di scrittura mi sta uccidendo. Mi piace l'idea di un grande RAID 10. Cosa posso usare per confrontare diversi tipi di carico I / O simultaneo?
Boden,

1
Un cronometro è il più preciso :-)
Bart Silverstrim

1
Non sottovalutare l'importanza di unità e controller. Abbiamo un NAS Dell con RAID 5 ed è soffocato quando gli utenti accedono e ne estraggono i profili e abbiamo concluso che era perché le unità non sono 10.000 RPM, dopo aver ricercato un po 'i numeri del monitor delle prestazioni. Abbiamo finito per spostare alcuni dati su un server separato per scaricare parte del carico di lavoro.
Bart Silverstrim,

2
Onestamente, non capisco perché qualcuno dovrebbe usare RAID 5 in un ambiente aziendale. Siamo RAID 10 fino in fondo.
Segnale acustico

2
Perché all'epoca RAID 5 non era malvagio :-) RAID 10 era considerato un lusso non necessario per il nostro livello di attività, suppongo che si potesse dire. I prezzi sono davvero calati, i tempi sono cambiati e sosteniamo ancora ciò che "funziona" nella sala server.
Bart Silverstrim,

2

Quanto prevedibile vuoi che siano le latenze per le tue applicazioni?

Supponiamo, ad esempio, che tu abbia un'app che è veramente sensibile alla latenza e che condivide un filesystem con il tuo database finanziario. Alla chiusura fiscale, all'improvviso ricevi chiamate sul timeout dell'app sensibile alla latenza. Come lo capirai?

D'altra parte, sono un grande fan della semplificazione di tutto, quindi verificherei che non hai requisiti eccezionali e consoliderei e semplificherei le tue configurazioni se i tuoi requisiti non rientrano in strani casi speciali.


0

Certo, perché no. il fatto è che ricordati di costruire correttamente il tuo grande array multi-disco, di sbagliarlo e ti aspetta un lungo periodo di ricostruzione.

RAID 10 è disponibile in 2 versioni:

  • RAID 1 + 0 dove si creano 2 array RAID 1, quindi si esegue lo striping.
  • RAID 0 + 1 dove si creano 2 array RAID 0, quindi eseguirne il mirroring.

Una volta che un disco muore, in uno dovrai solo ricostruire un singolo array raid1. Con l'altro dovrai ricostruire l'intero array raid0.

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.