zottelsef
Goto Top

SSD im RAID 10 - Wie Alignment einstellen, welche Stripesize?

Wir planen für einen kleinem Datenbankserver ein RAID-System mit 4 SSDs. Hier stellen sich für mich einige Fragen zur idealen Storage-Konfiguration und vor allem "wie kann man ein solches SSD-Raid alignen, also die Cluster/Stripe-Sizes passend an die NAND-Pagesize der SSDs anpassen?".

Wir werden aus Performancegründen einer unserer Anwendungen einen neuen Datenbankserver spendieren. Neben besseren CPUs etc. geht es hier (wie immer) vor allem um Optimierungen an den IOPS.

Da wir bei verschiedensten Einsatzzwecken schon sehr gute Erfahrungen mit SSDs gemacht haben, möchten wir auch für diesen Server nun konsequent SSDs nutzen. Um die Verbesserungen ein wenig abschätzen zu können haben wir schon einmal Tests mit einer Acronis-Kopie des Servers auf ein Einzelsystem mit einer Samsung-SSD gemacht. Das Ergebnis war überaus überzeugend: Auf diesem "gebastelten" Testsystem lief ein täglicher Exportlauf, der auf dem bisherigen System (6x 15k-HDD, Raid10) immer etwa 12 Stunden benötigt hatte, in 2,5 Stunden (!) durch. Ein Verbesserung um den Faktor 5!

Im neuen System sollen voraussichtlich folgende Komponenten in einem RAID10 zum Einsatz kommen:
4x SSD Intel 320 300GB (http://intel.ly/oej3oO), Datenblätter: http://intel.ly/pGjJab, http://intel.ly/p2azKv)
RAID-Controller Adaptec 6805 (http://bit.ly/mYZSiX), Datenblatt: http://bit.ly/oOHijt)

Grundsätzlich spielt bei SSDs das Thema Alignment, also das korrekte Ausrichten der Dateisystem-Clustersize auf die Speicherblöcke der SSD eine entscheidende Rolle bzgl. der Schreibgeschwindigkeit und der Write Amplification.
Im Wiki der Firma Thomas Krenn findet sich eine gute Beschreibung des Problems: http://www.thomas-krenn.com/de/wiki/Partition_Alignment
Auch hier ein paar Informationen: http://media-addicted.de/alignment-von-partitionen-auf-ssds-ohne-datenv ...
Soweit habe ich das Thema auch verstanden und länger schon ordentlich ausgerichtete Partitionen eingerichtet bzw. via Win7 automatisch einrichten lassen. Die beginnen alle sauber bei 2.048 KB. Bei Systemen mit einer SSD kein Problem...

Jetzt kommt aber durch das RAID eine neue Komponente hinzu, bei der ich nicht weiß wie ich das Alignment richtig machen soll, ob der Controller das ggf. von selbst macht, auf was ich achten muss.
Außerdem bin ich mir immer (auch bei normalen HDDs) noch nicht sicher welche Stripe-Size-Einstellung des RAID-Controllers ideal ist.

Die NAND-Pagesisze der Intel 320 SSD liegt (angeblich) bei 8KB, die EraseBlockSize daher bei 256x8KB, also 2MB. Quelle: http://bit.ly/p2RAr5, in den Datenblättern von Intel konnte ich leider nichts finden.

Meine konkreten Fragen:
  • Wie stelle ich sicher, dass ich bei der vorliegenden Konfiguration, 4x SSD, Raid 10 das Beste heraushole?
  • Wie funktioniert das Alignment? Welche Größen wo einstellen?
  • Welche RAID-Stripesize ist ideal?
  • (Ist die NTFS-Clustersize 64KB für einen Datenbankserver ideal (diverse Whitepapers verweisen immer auf 64KB, bin bisher damit auch ganz gut gefahren, bei Storage-Servern immer 1.024KB))

Ich habe hierzu auch schon über unser Systemhaus mit verschiedenen Technikern inkl. einem der Firma Adaptec gesprochen. Bisher konnte mir keiner eine belastbare Aussage geben.
Weiß hier jemand vielleicht mehr? Weiß jemand gute Literatur zum Thema oder hat einen guten Experten an der Hand, der allgemein bei solchen Storage-Themen fundiertes Wissen weitergeben kann und uns bei größeren, ähnlichen Projekten schulen und/oder beraten kann?

Content-Key: 174968

Url: https://administrator.de/contentid/174968

Printed on: April 16, 2024 at 09:04 o'clock

Member: Der-Phil
Der-Phil Oct 20, 2011 at 07:27:10 (UTC)
Goto Top
Hallo,

ich hatte vor 5 Monaten ein ähnliches Projekt - nur mit mehr Platten (16x Intel 320 SSD).
Damals konnte mir auch NIEMAND einen guten Tipp dazu geben und das kann ich leider auch nicht wirklich.

Ich kann Dir nur sagen, welche Konstellation bei meiner Anwendung gute Performance bringt:

16x Intel 320SSD, 160 GB an LSI SAS 9261
Strip Size 64 KB

Ich nutze auch ine NTFS-Clustersize von 1024kb auf dem Server.

Ich konnte bei meinen Benchmarks mit MEINER Anwendung keine großen Performanceunterschiede feststellen bei größeren Strip Size Größen. Kleiner wird dann irgendwann bitter.

Phil
Member: ZottelSEF
ZottelSEF Oct 20, 2011 at 11:20:58 (UTC)
Goto Top
Hallo Phil,
vielen Dank für Deinen Erfahrungsbericht. Deine und meine Anwendung sind ja wahrscheinlich zufällig die gleiche (VS4? ADS?). Wir hatten schon einmal Kontakt wegen der leidigen Dosboxen face-smile.
Ich habe über DG aktuell noch eine offizielle Nachfrage zur idealen Clustersize in Richtung Sybase losgetreten. Die Antwort aus den USA kam gerade: Default (4KB) lassen wäre für den ADS ideal. Für Außenstehende: http://www.sybase.de/products/databasemanagement/advantagedatabaseserve ...
Member: Der-Phil
Der-Phil Oct 20, 2011 at 11:57:43 (UTC)
Goto Top
Hallo,

das ist mal ein Zufall...
Siehe PM.

Zum eigentlichen Thema.
IMHO sollte bei SSDs eine größere Strip Size gewählt werden.

Das Thema kommt ja immer beim Alignment hoch. SSDs arbeiten blockweise. Ist die StripSize sehr klein, werden immer viele "Blocks" genutzt beim Schreibvorgang. Das ist für die Abnutzung der SSD nicht gerade optimal.

Deswegen bin ich auf 64k gegangen, wobei ich auch 16 und nicht nur 4 Platten aktiv habe.

Hier steht dazu etwas:
http://www.nuclex.org/blog/personal/80-aligning-an-ssd-on-linux
Dort wird für ein Raid vorgeschlagen:
stripe-width=raid chunk size x number of data bearing disks

Also in Deinem Fall 32 * 2 = 64 kb

Phil