Wie soll ich diese Festplatten auf einem SQL Server für eine BI-Konfiguration konfigurieren?

8

Unter der Annahme eines konstanten Speichers (32 GB) und einer CPU (4), 2 x Festplatten-Arrays, habe ich die folgenden Festplatten

  • 2 x 150 (10k)
  • 6 x 150 (15 k)

Sie sind alle lokale Festplatten.

Meine Anforderungen

  • Meine Datenbank ist 350 GB groß und standardmäßig auf 10% Wachstum eingestellt
  • Mein Betriebssystem und SQL Server sind Server 2k8R2 (C: Laufwerk Betriebssystem + Seite + Anwendungen = 55 GB)
  • Die Protokollanforderungen betragen ca. 70 GB und sind standardmäßig auf 10% Wachstum eingestellt. Sie werden routinemäßig abgeschnitten
  • Meine TempDb ist derzeit ungefähr 12 GB groß und auf ein Standardwachstum von 10% eingestellt

Mein Problem ist, dass ich versuche zu verstehen, wo die TempDB und das Betriebssystem sowie das Protokoll am besten abgelegt werden können. Meine Erfahrung ist in der optimalen Konfiguration dieser beiden begrenzt

Dies ist kein Online-Transaktionssystem. Es hat viel Datenschreiben (neue Daten + Indizes neu erstellen / neu organisieren), dann viel Daten lesen (ich schätze auf ungefähr 50/50) für ungefähr 13 Stunden und dann nur noch leise.

Meines Wissens nach wird die TEMPDB während der normalen Verarbeitung im Vergleich zum Protokoll häufig verwendet.

Meine Idee ist die folgende

  • 2 x 150 g (15 k) Schlachtzug 1 = 150 g für OS + TempDB
  • 2 x 150 g (10 k) Raid 1 = 150 g für LOG (langsamere Festplatten hier beachten)
  • 4 x 150 g (15 k) Raid 5 = 150 g für Daten

Klingt das nach einer guten Idee? Ich könnte dann die Log + TempDB bei Bedarf tauschen.

Verstoße ich gegen Grundregeln, z. B. TempDB aufgrund von Paging-Bedenken niemals auf die Betriebssystemfestplatte zu legen , oder lege ich das Protokoll möglicherweise nie auf eine langsamere Festplatte als Daten ?

Bearbeiten:

Wir haben auch ein SSAS im System und die Endbenutzer greifen nur auf den Cube zu. Die oben angegebenen 50% basieren auf der Zeit, die für die Verarbeitung der SSAS-Datenbank benötigt wird.

Preet Sangha
quelle

Antworten:

7

2 * 10k RAID1 für OS, 6 * 15k RAID10 für alles andere. Ehrlich gesagt, mit diesen vielen Festplatten ist 1 Array die sicherste und normalerweise schnellste Wette.

Wenn Sie Zeit zum Testen haben und eine reale, wiederholbare und messbare Arbeitslast haben, führen Sie auf jeden Fall einen Testlauf mit Ihrer Tempdb auf dem Betriebssystemlaufwerk durch (Einschränkung: Begrenzen Sie das Wachstum der Tempdb-Datei, um sicherzustellen, dass Sie das Betriebssystem nicht aufteilen). . Auf der anderen Seite sehen Sie möglicherweise moderate Verbesserungen bei der Datenlast und -wartung, wenn das Protokoll dort vorhanden ist. Wenn sich die Zeit erlaubt, lohnt sich also ein oder zwei Testläufe.

Mark Storey-Smith
quelle
Gibt es etwas mit zusätzlichen Arrays zu haben? Sollte sich die TempDB nicht in einem separaten Array / Spindelsatz befinden? Ich schätze die 50/50, da sie auf 50% DW-Verarbeitung und 50% SSAS-Verarbeitung basiert (6 Stunden Lesen).
Preet Sangha
Ich sehe in Ihrer ursprünglichen Frage keine Erwähnung eines Analysedienstwürfels. Werden sowohl die relationale Datenbank als auch der Cube von Endbenutzern abgefragt oder nur der Cube?
Mark Storey-Smith
1
+1 Ich mag deine Empfehlung. Es ist erwähnenswert, dass, wenn er tempdb auf das Betriebssystemlaufwerk legt, die maximale Größe für die Datenbankdateien definitiv begrenzt wird. Wir können uns alle einig sein, dass wir nicht wollen, dass unerwünschte Datenbankdateien dieses bestimmte Laufwerk füllen.
Thomas Stringer
1
@PreetSangha Belief ist keine gute Grundlage für die Planung einer Server- oder Speicherbereitstellung. Sie müssen einige Zeit investieren, um zu erforschen und zu verstehen, warum dies in einigen Szenarien angemessen ist und in anderen nicht. Das Trennen Ihres Würfels von der relationalen Datenbank kann hier Beine haben, aber wer kann das sagen, ohne es zu testen. Es gibt kein hartes und schnelles, eine Einheitsgröße, JFDI-Ansatz, fürchte ich.
Mark Storey-Smith
2
Wenn Sie die verschiedenen Szenarien mit Ihrer Arbeitslast testen und messen können, kann sich dies als genau richtig erweisen. Wenn / wenn Sie nicht können, wird ein großer Pool von so schnell wie möglichem Speicher die Klumpen und Beulen besser aufsaugen als ein Schuss im Dunkeln. Fühlen Sie sich frei, in den Chat einzusteigen, wenn Sie Ideen austauschen möchten. Es gibt mehrere Stammgäste mit mehr SSAS-Erfahrung als ich, die möglicherweise Vorschläge haben, wie / ob Sie den Cube von der Datenbank trennen sollten.
Mark Storey-Smith
3

Ich stimme Mark darin zu, dass der ideale Ansatz darin besteht, die beiden langsameren Laufwerke nur für O / S in RAID 1 und die restlichen Laufwerke in RAID 10 für alles andere zu verwenden. Das wäre ideal.

Basierend auf den Größen, die Sie angegeben haben, können Sie mit dem Start nur sehr wenig anfangen, mit sehr wenig Spielraum für Fehler und ohne Raum für Wachstum. Übrigens, wenn Ihnen jemand sagt, dass die Laufwerke 150 GB groß sind, sind sie möglicherweise unformatiert (146 GB?), Was wahrscheinlich bedeutet, dass nicht alles auf Anhieb passt.

Leider ist die Arbeitslast mit hohen Schreibvorgängen verbunden, und dafür ist RAID 5 ... nicht Ihr Freund.

Wenn Sie es schaffen, ein bisschen mehr Budget zu verdienen, gibt es ein paar Ansätze:

  • Zwei weitere 15k-Laufwerke derselben Größe. Abhängig davon, was "2 x Festplatten-Arrays" bedeutet, bedeuten> 8 Laufwerke insgesamt möglicherweise, dass ein neuer RAID-Controller benötigt wird. (Und / oder möglicherweise ein größeres Chassis.)

  • Zwei ~ 120 GB SSDs (entweder PCI-Express oder SATA) in Software-RAID 1 für TempDB-Daten / -Protokoll und die Datenbankprotokolldatei. Dies ist möglicherweise die schnellste Lösung in diesem Zeitraum und kann erheblich weniger als 2 15-k-Laufwerke der Enterprise-Klasse kosten (geschweige denn einen vergleichbaren RAID-Controller). Dies setzt voraus, dass auf dem Motherboard Steckplätze / Ports verfügbar sind, die es wahrscheinlich gibt.

Wenn das Management das Budget nicht einhält (diese Situation riecht, als würde alte Hardware für ein neues Projekt verwendet ... was bedeutet, dass das Budget Null ist), müssen Sie RAID 5 aus Platzgründen verwenden, da es keine gibt Weg, um es zu vermeiden, ohne dass mehr Festplatten verfügbar sind. Zu diesem Zeitpunkt ist es wahrscheinlich am besten, die 2 langsameren Festplatten nur für O / S in RAID 1 und den Rest in RAID 5 zu platzieren, um den Speicherplatz zu maximieren. Wenn Sie gezwungen sind, RAID 5 für einen Teil davon zu verwenden, muss sich das Management (schriftlich) abmelden, um zu verstehen, was dies für die Leistung bedeutet.

Jon Seigel
quelle
Vielen Dank. Dies ist der Server eines Clients, damit dieser die endgültige Entscheidung treffen kann. Wir akzeptieren jedoch, dass große, schnell redundante Streifen das Beste sind, das wir anstreben sollten. Unsere eigenen Server verwenden große SSD-Streifen.
Preet Sangha