Festplatten für hohe Datenbankperformance - Datendurchsatz gegen Latenzzeit
RAID 5 mit langsamen HDDs vs. Raid 1 mit 2 schnellen HDDs
Werte Kollegen:
Um der Erweiterung unser kleinen Firma Rechnung zu tragen, soll der Server ausgetauscht und zusätzlich die Branchensoftware auf ein MS SQL Server 2005 DB aufgesetzt werden.
Dazu soll ein Server mit Dualboard für 2 Dual Core Opterons (Quad Core Opteron fähig für spätere Aufrüstung) mit 4 GB RAM gestückt angeschafft werden.
Das Budget ist leider zu begrenzt um teure SCSI320 oder SAS Festplatten und Controller zu beschaffen.
Nach Studium einschlägiger Artikel ( z.B. RAID Scaling Charts) bin ich an einem Punkt wo ich vor der Entscheidung stehe, mir ein RAID 5 Array aus 4-6 relativ günstigen "Server-Festplatten" zu schaffen (z.B. WD Caviar RE WD3200YS, ca. 70 Euro) oder ein RAID 1 Array aus 2 schnelleren "richtigen" Server Festplatten (z.B. WD Raptor 1500ADFD, ca. 170 Euro) einzusetzen.
Bei einem RAID 5 mit vielen (4-6) Platten bekomme ich eine sehr ordentliche Datendurchsatzrate aber durch die Positionierung aller Leseköpfe für das Lesen einer Datei/eines langen DBRecord relativ hohe Latenzzeiten. Die access time ist im Test bei Tom's Hardware auf bis zu 30 ms hochgegangen im Vergleich zu 4 ms für die Raptors).
Muss ich ev. bei der RAID 5 Lösung beim Controller nachrüsten (Wird der Datendurchsatz zu hoch?)
Hier noch ein paar Eckdaten:
Board: Dualboard für 2 Dual Core Opterons 2212 Santa Rosa
OS: Windows SBS 2003 Premium incl. SQL Server 2005
RAM: 4 GB
Onboard SATA II RAID (0,1, 0+1, 5) Controller
10 Terminal-Clients, die auf dem Server eine Instanz der Branchensoftware starten, davon 2 über VPN
Datenbank textlastig, PDF-Dokumente werden per externem Link integriert, parallele Zugriffe auf gleiche Records sehr selten, nicht transaktionskritisch
Danke jetzt schonmal für die hoffentlich weiterhelfende(n) Antwort(en).
Christoph
Um der Erweiterung unser kleinen Firma Rechnung zu tragen, soll der Server ausgetauscht und zusätzlich die Branchensoftware auf ein MS SQL Server 2005 DB aufgesetzt werden.
Dazu soll ein Server mit Dualboard für 2 Dual Core Opterons (Quad Core Opteron fähig für spätere Aufrüstung) mit 4 GB RAM gestückt angeschafft werden.
Das Budget ist leider zu begrenzt um teure SCSI320 oder SAS Festplatten und Controller zu beschaffen.
Nach Studium einschlägiger Artikel ( z.B. RAID Scaling Charts) bin ich an einem Punkt wo ich vor der Entscheidung stehe, mir ein RAID 5 Array aus 4-6 relativ günstigen "Server-Festplatten" zu schaffen (z.B. WD Caviar RE WD3200YS, ca. 70 Euro) oder ein RAID 1 Array aus 2 schnelleren "richtigen" Server Festplatten (z.B. WD Raptor 1500ADFD, ca. 170 Euro) einzusetzen.
Bei einem RAID 5 mit vielen (4-6) Platten bekomme ich eine sehr ordentliche Datendurchsatzrate aber durch die Positionierung aller Leseköpfe für das Lesen einer Datei/eines langen DBRecord relativ hohe Latenzzeiten. Die access time ist im Test bei Tom's Hardware auf bis zu 30 ms hochgegangen im Vergleich zu 4 ms für die Raptors).
Was ist nun jetzt für meine Anwendung Performance-kritischer ergo, welche Lösung wird schneller sein?
Muss ich ev. bei der RAID 5 Lösung beim Controller nachrüsten (Wird der Datendurchsatz zu hoch?)
Hier noch ein paar Eckdaten:
Board: Dualboard für 2 Dual Core Opterons 2212 Santa Rosa
OS: Windows SBS 2003 Premium incl. SQL Server 2005
RAM: 4 GB
Onboard SATA II RAID (0,1, 0+1, 5) Controller
10 Terminal-Clients, die auf dem Server eine Instanz der Branchensoftware starten, davon 2 über VPN
Datenbank textlastig, PDF-Dokumente werden per externem Link integriert, parallele Zugriffe auf gleiche Records sehr selten, nicht transaktionskritisch
Danke jetzt schonmal für die hoffentlich weiterhelfende(n) Antwort(en).
Christoph
Please also mark the comments that contributed to the solution of the article
Content-Key: 72463
Url: https://administrator.de/contentid/72463
Printed on: April 24, 2024 at 01:04 o'clock
7 Comments
Latest comment
Moin,
beim Raid5 ist immer das kritische das schreiben der Daten, da zusätzlich zu den Rohdaten immer noch die Paritäten mit weggeschrieben werden müssen. Beim Lesen ist es dageben wieder schnell, das es die Daten von allen Platten gleichzeitig "sammeln" kann. Ein Raid1 ist so schnell wie die phyisikalische Platte selber.
Was mich nur wundert ist, Du möchtest entweder 4-6 320 GB Platte oder 2 170iger nehmen. Wie viel Plattenplatz benötigst Du denn? Denn wenn Du ein Raid5 aus 4 x 320 aufziehst, dann sind das 960 GB zu dem Raid1 mit 170 GB??
Ich würde da auf jeden Fall zu einem Raid1 tendieren, es sei denn, es käme für dich auch ein Raid10 in Frage (2 Stripesets gespiegelt) Dann hats Du die sehr hohe Performanze eines Raid0 mit der Sicherheit eines Raid1. "Verbraucht" natürlich viele Platten.
Und wenn ich das am Ende richtig rauslese, willst Du auf dem Server gleichzeitig noch TS-Sessions laufen lassen? Da würd ich mir echt überlegen, die Hardware für den DB-Server geringer zu dimensionieren und dafür eine zweiten reinen Terminalserver hinzustellen.
Ralf
beim Raid5 ist immer das kritische das schreiben der Daten, da zusätzlich zu den Rohdaten immer noch die Paritäten mit weggeschrieben werden müssen. Beim Lesen ist es dageben wieder schnell, das es die Daten von allen Platten gleichzeitig "sammeln" kann. Ein Raid1 ist so schnell wie die phyisikalische Platte selber.
Was mich nur wundert ist, Du möchtest entweder 4-6 320 GB Platte oder 2 170iger nehmen. Wie viel Plattenplatz benötigst Du denn? Denn wenn Du ein Raid5 aus 4 x 320 aufziehst, dann sind das 960 GB zu dem Raid1 mit 170 GB??
Ich würde da auf jeden Fall zu einem Raid1 tendieren, es sei denn, es käme für dich auch ein Raid10 in Frage (2 Stripesets gespiegelt) Dann hats Du die sehr hohe Performanze eines Raid0 mit der Sicherheit eines Raid1. "Verbraucht" natürlich viele Platten.
Und wenn ich das am Ende richtig rauslese, willst Du auf dem Server gleichzeitig noch TS-Sessions laufen lassen? Da würd ich mir echt überlegen, die Hardware für den DB-Server geringer zu dimensionieren und dafür eine zweiten reinen Terminalserver hinzustellen.
Ralf
Moin,
beim Raid5 ist immer das kritische das
schreiben der Daten, da zusätzlich zu
den Rohdaten immer noch die Paritäten
mit weggeschrieben werden müssen.
beim Raid5 ist immer das kritische das
schreiben der Daten, da zusätzlich zu
den Rohdaten immer noch die Paritäten
mit weggeschrieben werden müssen.
Auch Moin. Das mit dem 'Wegschreiben' macht doch der Controller autark, d.h. der Server wird dadurch nicht langsamer?
Denn wenn Du ein Raid5 aus 4 x 320
aufziehst, dann sind das 960 GB zu dem Raid1
mit 170 GB??
mit 170 GB??
Wahrscheinlich reichen die 170GB dicke, aber da die 'NormaloHDs' inzwischen 500GB unter 100€ sind, ist es teurer, wenn man kleinere nimmt.
Ich würde da auf jeden Fall zu einem
Raid1 tendieren,
Raid1 tendieren,
Sehe ich auch so. Wir versuchen immer mit viel RAM die gerade beanspruchten Teile der DB speicherresident zu behalten, dann ist die Latenz richtig niedrig. Mach also soviel RAM rein wie geht.
Und wenn ich das am Ende richtig rauslese,
willst Du auf dem Server gleichzeitig noch
TS-Sessions laufen lassen? Da würd ich
mir echt überlegen, die Hardware
für den DB-Server geringer zu
dimensionieren und dafür eine zweiten
reinen Terminalserver hinzustellen.
willst Du auf dem Server gleichzeitig noch
TS-Sessions laufen lassen? Da würd ich
mir echt überlegen, die Hardware
für den DB-Server geringer zu
dimensionieren und dafür eine zweiten
reinen Terminalserver hinzustellen.
Wenn der aber nur eine DB laufen hat und die 10 TS-Clients, die die DB resourcenschonend abfragen, da rührt sich dann nicht viel. Wir haben einige solche Konfigs draussen und die sind deutlich über 90% CPU Time idle. Würde ich mal ausprobieren.
HTH
ich würde einen einen vernünftigen PCIe controller mit eigener CPU nehmen und NICHT den onboard controller. das ist nur ein möchte-gern controller, die arbeit macht die cpu. in frage kommen da areca, promise, etc.
die guten controller beherrschen alle raid-migration bzw änderung des raidlevels im laufenden betrieb. das hat den charme, das du bei der gestaltung deines raids auch nach der erstinstallation recht fexibel bist.
zur performance: höchste schreibraten in verbindung mit redunanz erreichst du entweder mit einem raid-10 oder einem raid-5 mit 4-6 platten. die berechnung der parity ist bei modernen controllern mit eigener cpu kein problem.
beim schreiben großer datenmengen sieht das ca so aus:
raid-10 mit 4x 7.200er sata = 2x ~65 mb -> ~130 mb/sec
raid-10 mit 4x 10.000 sata = 2x 87 mb -> ~175 mb/sec + schnellere latenzzeit
raid-5 mit 4x 7.200er sata = 3x ~65 mb -> ~195 mb/sec
raid-5 mit 6x 7.200er sata = 5x ~65 mb -> ~280 mb/sec *
raid-5 mit 4x 10.000 sata = 3x 87 mb -> ~261 mb/sec + schnellere latenzzeit
*bei ~300 mb ist das limit vom PCIe bus
wenn du es preiswert lösen willst: nehm einen promise 8-port ex8350 (~350 brutto) mit 5x 500er sata platte in 7200, 4 stück als raid-10, die 5te als hotspare.
wenns etwas mehr kosten darf: 8 port areca controller mit 5x 10.000 sata.
gruß,
supa
die guten controller beherrschen alle raid-migration bzw änderung des raidlevels im laufenden betrieb. das hat den charme, das du bei der gestaltung deines raids auch nach der erstinstallation recht fexibel bist.
zur performance: höchste schreibraten in verbindung mit redunanz erreichst du entweder mit einem raid-10 oder einem raid-5 mit 4-6 platten. die berechnung der parity ist bei modernen controllern mit eigener cpu kein problem.
beim schreiben großer datenmengen sieht das ca so aus:
raid-10 mit 4x 7.200er sata = 2x ~65 mb -> ~130 mb/sec
raid-10 mit 4x 10.000 sata = 2x 87 mb -> ~175 mb/sec + schnellere latenzzeit
raid-5 mit 4x 7.200er sata = 3x ~65 mb -> ~195 mb/sec
raid-5 mit 6x 7.200er sata = 5x ~65 mb -> ~280 mb/sec *
raid-5 mit 4x 10.000 sata = 3x 87 mb -> ~261 mb/sec + schnellere latenzzeit
*bei ~300 mb ist das limit vom PCIe bus
wenn du es preiswert lösen willst: nehm einen promise 8-port ex8350 (~350 brutto) mit 5x 500er sata platte in 7200, 4 stück als raid-10, die 5te als hotspare.
wenns etwas mehr kosten darf: 8 port areca controller mit 5x 10.000 sata.
gruß,
supa
beim schreiben großer datenmengen sieht das ca so aus
damit möchte ich sagen, das man vergleichswerte hinsichtlicher maximalen performance nur mit großen dateien durchführen kann. bei vielen kleinen dateien sinkt die performance und die ergebnisse werden leichter verfälscht.Was macht die Hotspare hier genau? Im Falle eines Ausfalls muss die doch auch erst wieder mit den Daten der ausgefallen Platte beschrieben werden, oder? Ist es da nicht sinnvoller, sich die ins Regal zu legen?
eine hotspare ist als ersatzplatte, die der controller automatisch zur wiederherstellung der redunanz verwendet, wenn ein platte ausfällt. das ganze läuft automatisch ab, ohne benutzereingriff. in meinen augen sinnvoller, als wenn man die platte ins regal legt.
bezüglich budget:
rechne mal durch, wie hoch die monatliche lohnsumme + fixkosten für gebäude etc ist. der unterschied zwischen der großen und kleinen lösung sind max. 250 euro, daran sollte es nicht scheitern.