Helfen Sie mir bei der Auswahl einer RAID-Level-Kombination für eine SQL Server 2008-Instanz

11

Ich werde einen IBM 3400-Server von Grund auf neu erstellen. Dieser Server ist einer SQL Server 2008-Instanz zugeordnet, die unter Windows 2008 R2 ausgeführt wird.

Ich werde eine neue RAID-Konfiguration vornehmen. Ich habe 6 SCSI 73 GB-Laufwerke im Computer und einen IBM ServerRAID 8K-Controller. Was wäre ein guter Weg, um die RAID-Level einzustellen? Sollte ich zwei, drei oder ein Feld auf meinem Controller haben?

Ich denke darüber nach, eine der folgenden Lösungen zu finden:

  1. Verwenden Sie die gesamte Festplatte und erstellen Sie einen RAID 10-Pool.
  2. Verwenden Sie 4 Festplatten für einen RAID 1e-Pool und verwenden Sie diese zum Speichern der Datenbankdaten und des Betriebssystems. Verwenden Sie die anderen 2 Festplatten in einem RAID 0-Pool und verwenden Sie diese zum Speichern der Datenbankprotokolle.
  3. Eine andere Kombination.

Ist eine größere Streifeneinheit besser?

Dieser Server ist Abonnent einer replizierten Datenbank. Die Hauptaufgabe besteht in der Berichterstellung und dem Abrufen von Daten, wobei nur der Replikationsagent Schreibvorgänge ausführt. Die Größe der Datenbank beträgt ca. 90 GB.

Adoptilot
quelle
Verwenden Sie die Begriffe RAID1E und RAID10 interchangebly?
Jack sagt, versuchen Sie es mit topanswers.xyz
außerdem 3x73 ~ 220 GB - wie viel erwarten Sie, dass Ihre 90 GB DB jedes Jahr wächst?
Jack sagt, versuchen Sie es mit topanswers.xyz
@ JackDouglas Diese Datenbank mit 90 GB ist von 2006 Jahr bis jetzt, ich denke, dass sie in den nächsten zwei Jahren maximal um 30% wachsen kann
Adoptilot
Ich möchte den Speicher so weit wie möglich überbieten, wenn ich einen Server von Grund auf neu aufbaue. Haben Sie auch Speicher der zweiten Ebene (z. B. SATA)? Es kann sehr praktisch sein, um ausreichend Platz zum Atmen zu haben, insbesondere wenn Sie in einer DR-Situation enden.
Jack sagt, versuchen Sie topanswers.xyz

Antworten:

6

Ich stimme für Option 1. Denken Sie daran, dass RAID 0 "kein Schutz" bedeutet - sind Ihre Protokolle wichtig? (Ja, das tun sie).

Es hat auch den Vorteil der Einfachheit

In den SQL Server-Dokumenten heißt es:

Verwenden Sie für eine optimierte E / A-Parallelität eine Streifengröße von 64 KB oder 256 KB.

Normalerweise ist es jedoch gut, die Standard-IMO des Controllers zu verwenden

Jack sagt, versuchen Sie es mit topanswers.xyz
quelle
5

Anmerkungen:

  • Die OS + -Binärdateien sind 40 GB groß
  • 6 Festplatten lassen Ihnen nicht viele Optionen
  • Wo möchten Sie Ihre Backups?
  • Lassen Sie den RAID-Controller die Stripe-Größe auswählen (abhängig vom RAID-Level). Dies ist eine Mikrooptimierung und Sie werden widersprüchliche Daten sehen
  • Die Schreibgeschwindigkeit der Protokolldatei bestimmt Ihren Durchsatz
  • Sie müssen freien Speicherplatz = 1,2-mal größte Tabelle in Ihrem MDF für Indexwiederherstellungen berücksichtigen
  • RAID 0 = idiotisch auf einem Server mit Daten von beliebigem Wert

Ich würde mich für ein RAID 10-Array entscheiden

gbn
quelle
4

Ich würde entweder zwei RAID1-Volumes mit jeweils drei Spiegeln oder ein RAID10 mit Striping über zwei Sätze von drei Spiegeln wählen.

Begründung: Zwei Spiegel sind zu wenig, Punkt. Ihr Server kann nicht öfter als einmal im Monat ordnungsgemäße Konsistenzprüfungen durchführen. Daher ist es sehr wahrscheinlich, dass Sie einige fehlerhafte Blöcke haben. Diese spielen keine Rolle, solange der andere Spiegel noch intakt ist. Wenn jedoch eine Festplatte ausfällt, können Sie sich wahrscheinlich nicht von der anderen erholen. Daher drei Spiegel.

RAID6 ist eine schlechte Idee in einem Datenbank-Setup, da Schreibvorgänge in der Regel klein sind, wodurch sie im Hintergrund in Lese-, Änderungs- und Schreibvorgänge umgewandelt werden.

Ob zwei RAID1-Volumes oder ein RAID10 für Sie besser sind, hängt von Ihrer Anwendung ab. Wenn es wahrscheinlich ist, dass Sie den gesamten Speicherplatz benötigen, wählen Sie RAID10, andernfalls würde ich ein Volume für System und Indizes und eines für Datenseiten vorschlagen. Wenn Sie sich für zwei Volumes entscheiden, überprüfen Sie, ob Ihr Controller später die Erweiterung eines RAID1 auf ein RAID10 zulässt, falls Sie eine Erweiterung benötigen.

Simon Richter
quelle
+1 für die Erwähnung des Problems Spiegelung löst sich nicht (zumindest alleine). Es ist möglich, das Scrubbing so zu konfigurieren, dass es unter Linux regelmäßiger stattfindet. Gilt das auch für Windows? Sie wiederholen jedoch den Mythos, dass Indizes und Daten idealerweise getrennt werden sollten - es gibt ein Argument dafür, Protokolle getrennt zu halten, aber Indizes und Daten sollten am besten zusammen gestreift werden (über so viele Spindeln wie möglich)
sagt Jack, versuchen Sie es mit topanswers.xyz
Ich denke, es sollte möglich sein, häufigere Überprüfungen zu konfigurieren. Die Datenbankleistung sinkt jedoch im Allgemeinen massiv, sodass ich lieber zusätzliche Laufwerke und weniger Überprüfungen verwenden möchte.
Simon Richter
Normalerweise halte ich Indizes getrennt, damit ich ein anderes Cache- und Readahead-Verhalten verwenden kann. Ein vollständiger Tabellenscan profitiert normalerweise von Readahead, während Index-Scans dies seltener tun.
Simon Richter
Auf meinem Debian-System wird / usr / share / mdadm / checkarray standardmäßig mit dem Flag --idle ausgeführt, sodass ich keinen spürbaren Leistungseinbruch erwarten würde. Im OPs-Fall wird dies vom RAID-Controller erledigt, und ich würde vermuten, dass dies unabhängig davon geschieht, ob Sie 2 oder 3 Spiegel haben, sodass der Treffer (falls vorhanden) trotzdem vorhanden ist.
Jack sagt, versuchen Sie topanswers.xyz
Bezüglich der Index-Scans, fairer Punkt, aber ich würde vorschlagen, dass dies eine Mikrooptimierung ist, kein allgemeiner Tuning-Rat :) Ich werde im Chat nachfragen, um zu sehen, was andere denken - zögern Sie nicht, sich einzumischen ...
sagt Jack versuchen Sie topanswers.xyz
3

Ich stimme Douglas zu. Ein häufiger Raid-10 ist ein guter Start, solange Ihnen nicht der Speicherplatz ausgeht. Eine kleinere Streifengröße wäre besser für den DB-Zugriff. Wenn Sie verschiedene Partitionen verwenden, geht Ihnen nur auf einer Partition schneller der Speicherplatz aus.

Die Sache mit raid-0 ist nicht nur, dass die Daten aus Backups abgerufen werden können oder löschbar sind, sondern es bedeutet auch Ausfallzeiten jedes Mal, wenn Ihre Festplatte kaputt geht. Führt Ihr Computer Datenverarbeitungen durch, bei denen Ausfallzeiten von einigen Tagen keine Rolle spielen? Selbst bei NBD-Unterstützung kann es etwa sechs Tage dauern, bis eine neue Festplatte verfügbar ist.

Antti Rytsölä
quelle