Aiutami a scegliere una combinazione di livello RAID per un'istanza di SQL Server 2008


11

Ricostruirò da zero un server IBM 3400. Questo server è dedicato a un'istanza di SQL Server 2008 in esecuzione su Windows 2008 R2.

Ho intenzione di fare una nuova configurazione RAID. Ho 6 unità SCSI da 73 GB all'interno della macchina e un controller IBM ServerRAID 8K. Quale sarebbe un buon modo per impostare i livelli RAID? Dovrei avere due, tre o un campo sul mio controller?

Sto pensando di realizzare una delle seguenti soluzioni:

  1. Utilizzare tutto il disco e creare un pool RAID 10.
  2. Utilizzare 4 dischi per un pool RAID 1e e utilizzarlo per archiviare i dati del database e il sistema operativo, quindi utilizzare gli altri 2 dischi in un pool RAID 0 e utilizzarlo per archiviare i log del database.
  3. Qualche altra combinazione.

È meglio una dimensione di banda più grande?

Questo server sarà un abbonato a un database replicato. Il suo compito principale sarà la segnalazione e il recupero dei dati, con solo l'agente di replica che scrive. La dimensione del database è di circa 90 GB.


stai usando i termini RAID1E e RAID10 in modo intercambiabile?
Jack dice di provare topanswers.xyz l'

inoltre, 3x73 ~ 220 GB - quanto ti aspetti che il tuo DB da 90 GB cresca ogni anno?
Jack dice di provare topanswers.xyz l'

@JackDouglas Questo database con 90 GB è dal 2006 ad oggi, penso che possa crescere nei prossimi due anni al massimo intorno al 30%
adozione

Mi piace sovraccaricare il più possibile l'archiviazione quando si crea un server da zero. Hai anche spazio di archiviazione di secondo livello (ad es. SATA)? Può essere molto utile per una discreta quantità di spazio respiratorio, soprattutto quando si finisce in una situazione di DR.
Jack dice di provare topanswers.xyz l'

Risposte:


6

Voto per l'opzione 1. Tieni presente che RAID 0 significa "nessuna protezione": i tuoi log sono importanti? (si lo fanno).

Ha anche il vantaggio della semplicità

I documenti di SQL Server dicono:

Per un parallelismo I / O ottimizzato, utilizzare dimensioni di striping di 64 KB o 256 KB.

Ma di solito è buono andare con l'IMO predefinito del controller


5

Appunti:

  • I binari OS + saranno 40 GB
  • 6 dischi non ti lasciano molte opzioni
  • Dove vuoi i tuoi backup?
  • Consenti al controller RAID di scegliere la dimensione dello stripe (dipende dal livello RAID). Questa è micro ottimizzazione e vedrai dati contrastanti
  • La velocità di scrittura del file di registro determina la velocità effettiva
  • Devi consentire spazio libero = 1,2 volte la tabella più grande all'interno del tuo MDF per le ricostruzioni dell'indice
  • RAID 0 = idiota in un server che ha dati di qualsiasi valore

Vorrei un array RAID 10


4

Sceglierei due volumi RAID1 con tre mirror ciascuno o un RAID10 con striping su due set di tre mirror.

Razionale: due specchi è troppo piccolo, punto. Il tuo server non potrà eseguire controlli di coerenza adeguati più spesso di una volta al mese, quindi è molto probabile che tu abbia alcuni blocchi danneggiati. Questi non contano fino a quando l'altro mirror è ancora intatto, ma quando un disco si guasta, è probabile che non sarai in grado di recuperare dall'altro. Quindi, tre specchi.

RAID6 è una cattiva idea in una configurazione del database poiché le scritture tendono ad essere piccole, il che le trasforma in operazioni di lettura-modifica-scrittura in background.

Se due volumi RAID1 o un RAID10 sono i migliori per te dipende dalla tua applicazione. Se è probabile che tu abbia bisogno dell'intero spazio, scegli RAID10, altrimenti suggerirei un volume per il sistema e gli indici e uno per le pagine di dati. Se si scelgono due volumi, verificare che il controller consenta di estendere successivamente un RAID1 a un RAID10 nel caso in cui sia necessario espanderlo.


+1 per menzionare il mirroring del problema non risolve (almeno da solo). È possibile configurare lo scrubbing affinché avvenga più regolarmente su Linux, lo stesso vale per Windows? Tuttavia, ripeti il ​​mito secondo cui gli indici e i dati dovrebbero idealmente essere separati - c'è un argomento per mantenere separati i registri, ma gli indici e i dati devono essere messi insieme in modo più
uniforme

Penso che dovrebbe essere possibile configurare controlli più frequenti, tuttavia le prestazioni del database generalmente diminuiscono in modo massiccio, quindi preferirei utilizzare unità extra e meno controlli.
Simon Richter,

Di solito mantengo separati gli indici in modo da poter utilizzare diversi comportamenti di cache e readahead: una scansione completa della tabella in genere beneficia di readahead, mentre le scansioni dell'indice lo fanno meno spesso.
Simon Richter,

Sul mio sistema Debian, / usr / share / mdadm / checkarray funziona con il flag --idle per impostazione predefinita, quindi non mi aspetto un notevole calo delle prestazioni. Nel caso dei PO questo sarà gestito dal controller RAID e immagino che lo farà indipendentemente dal fatto che tu abbia 2 o 3 mirror in modo che il colpo (se presente) ci sarà comunque.
Jack dice di provare topanswers.xyz il

per quanto riguarda le scansioni dell'indice, punto giusto ma suggerirei che si tratta di micro-ottimizzazione non di consigli di sintonia generali :) Chiederò in chat in chat per vedere cosa pensano gli altri - sentiti libero di chip in ...
Jack dice prova topanswers.xyz il

3

Sono d'accordo con Douglas. Un raid-10 comune è un buon inizio fintanto che non si esaurisce lo spazio su disco. Una dimensione di banda più piccola sarebbe meglio per l'accesso al DB. L'uso di partizioni diverse ti fa solo esaurire lo spazio su una partizione più velocemente.

La cosa con raid-0 non è solo che i dati possono essere portati da backup o cancellabili, ma significa anche tempi di inattività ogni volta che il disco si rompe. La tua macchina sta eseguendo alcuni scricchiolii di dati in cui i tempi di inattività di qualche giorno non contano? Anche sul supporto NBD potrebbero essere necessari circa sei giorni per ottenere un nuovo disco.

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.