SAN mit ein paar SSD-Laufwerken oder vielen altmodischen Festplatten?

9

Mein Unternehmen versucht herauszufinden, welche Art von SAN gekauft werden soll. Dies gilt speziell für Datenbankserver, die E / A-Einschränkungen unterliegen (der Speicher ist derzeit DAS, aber wir stoßen an die Grenze eines einzelnen Servers und möchten auch Clustering hinzufügen).

Wir brauchen eine Lösung, die langfristig rund 3000 IOPS produziert (wir erreichen derzeit einen Spitzenwert von rund 1000 IOPS). Die meisten unserer Datenbankoperationen sind kleine Lese- / Schreibvorgänge. Basierend auf Gesprächen mit HP Ingenieuren und anderen Online-Anbietern liefert ein HP P2000 mit 24 SAS-Festplatten in einer RAID 10-Konfiguration nur knapp diese Geschwindigkeit für ~ 20.000 US-Dollar. Durch Hinzufügen von Controllern und anderen Elementen zum Aufbau des SAN erreichen wir unser maximales Budget von 30.000 US-Dollar.

Aber online sehe ich, dass viele SAS-SSDs Geschwindigkeiten von 80.000 IOPS + liefern. Ist das realistisch zu erwarten? Wenn ja, wäre es realistisch, ein P2000 oder ein ähnliches Einstiegs-SAN zu erwerben und ein paar SSDs hineinzuwerfen? Unsere Datenbanken sind klein, nur ein paar TB insgesamt. Wenn wir dies tun würden, hätten wir das Geld übrig, um ein zweites SAN für Spiegelung / Failover zu kaufen, was vernünftig erscheint.

Piep Piep
quelle
3
Ich werde dies in Kürze beantworten.
ewwhite
Können Sie einen Link zu dem spezifischen SAN-Modell / Typ erstellen, an dem Sie interessiert sind? Es gibt viele Einschränkungen, die mit HP P2000-Speicherarrays verbunden sind. Wie wollen Sie sich verbinden? iSCSI? Ballaststoff? SAS?
ewwhite
Welche Datenbankplattform ist das?
ewwhite
Hier ist das Modell, das ich mir angesehen habe, nur mit einer anderen Laufwerkskonfiguration: aventissystems.com/product-p/200385.htm . Das DBMS ist SQL Server Standard 2008 R2. Wir sind wirklich offen für nahezu jede Konfiguration / jeden Anbieter, solange wir in Zukunft "billig" skalieren können und solange wir unser bescheidenes Budget einhalten.
Beep Beep
Wie viel Kapazität benötigen Sie?
ewwhite

Antworten:

4

Ich kann über die Einzelheiten dessen sprechen, was Sie erreichen wollen. Ehrlich gesagt würde ich einen HP P2000 / MSA2000 der Einstiegsklasse für Ihren Zweck nicht in Betracht ziehen.

Diese Geräte weisen viele Einschränkungen auf und sind aus Sicht des SAN-Funktionsumfangs nichts anderes als eine Schachtel Festplatten. Kein Tiering, kein intelligentes Caching, maximal 16 Festplatten in einer Virtual Disk- Gruppe, geringe IOPS-Funktionen, schlechte SSD-Unterstützung (insbesondere auf dem von Ihnen ausgewählten Gerät).

Sie müssten auf den HP MSA2040 umsteigen , um Leistungsvorteile oder offizielle Unterstützung für SSDs zu sehen. Möchten Sie iSCSI wirklich verwenden?

DAS ist möglicherweise die beste Option, wenn Sie lokalen Speicher tolerieren können. PCIe-Flash-Speicher fallen unter Ihr Budget, aber die Kapazität muss sorgfältig geplant werden.

Können Sie die Spezifikationen Ihrer tatsächlichen Server näher erläutern? Marke / Modell usw.

Wenn Clustering ein Muss ist, können Sie auch die HP MSA2040-Einheit verwenden, jedoch eine SAS-Einheit anstelle von iSCSI verwenden. Dies ist kostengünstiger als die anderen Modelle, ermöglicht die Verbindung von 4 bis 8 Servern, bietet eine geringe Latenz und einen hohen Durchsatz und unterstützt weiterhin SSDs. Selbst mit den Glasfaser- oder iSCSI-Modellen bietet Ihnen dieses Gerät mehr Flexibilität als das von Ihnen verknüpfte.

ewwhite
quelle
Vielen Dank! Wir haben alle HP Server, hauptsächlich HP DL380. Der einzige Grund, warum wir über iSCSI nachgedacht haben, ist, dass es einfacher schien, über 4 Server hinaus zu expandieren (wenn wir andere Serverdaten auf das SAN übertragen wollten), und dass es etwas schneller war (10 GB gegenüber 6 GB).
Beep Beep
Trotzdem werde ich mir die MSA2040 ansehen ... ich bin mir nicht sicher, warum sie vorher nicht auf unserem Radar aufgetaucht ist.
Beep Beep
Ich kann die Verwirrung sehen ... Wenn Sie nicht vorhaben, über 4 oder 8 Server hinaus zu expandieren, funktioniert SAS recht gut. Und es ist nicht 10 Gbit gegenüber 6 Gbit ... es ist 10 Gbit gegenüber einer 4-spurigen 12-Gbit / s-SAS-Schnittstelle (48 Gbit / s zum Gehäuse).
ewwhite
Ich habe gerade gesehen, dass die Remote Snap-Software nur auf iSCSI oder FC funktioniert. Wir hatten gehofft, den Remote Snap verwenden zu können, um das SAN für die Notfallwiederherstellung zu spiegeln. Oder gibt es einen anderen Prozess über SAS, der dieselbe Funktion ermöglicht?
Beep Beep
@ Beepbeep Ich würde wahrscheinlich einen anderen DR-Prozess verwenden. Ich neige dazu, mich nicht auf die Replikation auf Speicher-Appliance- oder SAN-Ebene zu verlassen. Die 10-GbE- und FC-Versionen des MSA2040 passen jedoch möglicherweise besser zu Ihnen.
ewwhite
6

Die Faustregel, die ich für Festplatten-E / A verwende, lautet:

  • 75 IOPs pro Spindel für SATA.

  • 150 IOPs pro Spindel für FC / SAS

  • 1500 IOPs pro Spindel für SSD.

Neben IOPs pro Array werden auch IOPs pro Terabyte berücksichtigt. Es ist nicht ungewöhnlich, dass bei SATA + RAID6 ein sehr schlechtes IOP pro TB-Verhältnis auftritt. Das hört sich vielleicht nicht zu viel an, aber Sie werden oft jemanden finden, der "freien Speicherplatz" auf einem Array entdeckt und ihn verwenden möchte. Es ist üblich, dass Leute Gigs kaufen und Iops ignorieren, wenn in den meisten Unternehmenssystemen das Gegenteil der Fall ist.

Fügen Sie dann die Kosten für die Schreibstrafe für RAID hinzu:

  • 2 für RAID1, RAID1 + 0
  • 4 für RAID5 (oder 4)
  • 6 für RAID6.

Schreibstrafe kann teilweise gemildert werden schöne schöne Schreibcaches und unter den richtigen Umständen. Wenn Sie viele sequentielle Schreib-E / A (wie DB-Protokolle) haben, können Sie diese Schreibstrafen auf RAID 5 und 6 erheblich reduzieren. Wenn Sie einen vollständigen Streifen schreiben können (z. B. einen Block pro Spindel), müssen Sie nicht lesen, um die Parität zu berechnen.

Angenommen, ein 8 + 2 RAID 6-Satz. Im normalen Betrieb für eine einzelne Schreib-E / A müssen Sie:

  • Lesen Sie den 'aktualisierten' Block.
  • Lesen Sie den ersten Paritätsblock
  • Lesen Sie den zweiten Paritätsblock
  • Parität neu berechnen.
  • schreibe alle 3. (6 IOs).

Mit einem zwischengespeicherten Vollstreifen-Schreibvorgang - z. B. 8 aufeinanderfolgenden "Blöcken" in der Größe des RAID-Streifens können Sie die Parität für das gesamte Los berechnen, ohne dass ein Lesevorgang erforderlich ist. Sie benötigen also nur 10 Schreibvorgänge - einen für jede Daten und zwei Paritäten.

Dies macht Ihre Schreibstrafe 1.2.

Sie müssen auch berücksichtigen, dass Schreib-E / A einfach zwischenzuspeichern ist - Sie müssen sie nicht sofort auf die Festplatte laden. Es arbeitet unter einer weichen Zeitbeschränkung - solange Ihre eingehenden Schreibvorgänge im Durchschnitt die Spindeldrehzahl nicht überschreiten, kann alles mit "Cache-Geschwindigkeit" ausgeführt werden.

Das Lesen von E / A unterliegt andererseits einer harten Zeitbeschränkung - Sie können einen Lesevorgang erst abschließen, wenn die Daten abgerufen wurden. Algorithmen zum Lesen von Caching und zum Laden des Caches werden an diesem Punkt wichtig - vorhersagbare Lesemuster (z. B. sequentiell, wie Sie sie von der Sicherung erhalten würden) können vorhergesagt und vorab abgerufen werden, zufällige Lesemuster jedoch nicht.

Für Datenbanken würde ich generell vorschlagen, dass Sie Folgendes annehmen:

  • Der größte Teil Ihrer 'Datenbank'-E / A wird zufällig gelesen. (zB schlecht für wahlfreien Zugriff). Wenn Sie sich den Overhead leisten können, ist RAID1 + 0 gut - da gespiegelte Festplatten zwei Lesequellen bieten.

  • Der größte Teil Ihrer 'Log'-E / A ist sequentielles Schreiben. (zB gut zum Zwischenspeichern und im Gegensatz zu dem, was viele Datenbankadministratoren vorschlagen, möchten Sie wahrscheinlich RAID50 anstelle von RAID10).

Das Verhältnis der beiden ist schwer zu sagen. Kommt darauf an, was die DB macht.

Da zufällige Lese-E / A-Vorgänge der schlechteste Fall für das Caching sind, kommt SSD hier wirklich zur Geltung - viele Hersteller kümmern sich nicht darum, SSD zwischenzuspeichern, da es sowieso ungefähr die gleiche Geschwindigkeit hat. Insbesondere für temporäre Datenbanken und Indizes bietet SSD einen guten Return on Investment.

Sobrique
quelle
Vielen Dank, wir sind 100% RAID10, weil wir uns auf Datenbanken konzentrieren.
Beep Beep
Es ist üblich, aber es ist auch ein Irrtum. RAID10 ist eigentlich ziemlich verschwenderisch für hauptsächlich schreiborientierte Workloads. Geschriebenes zwischengespeichertes RAID5 / RAID6 hat eine geringere Schreibstrafe, wenn Sie beispielsweise Datenbankjournaldateien schreiben.
Sobrique
3

Ihre Analyse ist ziemlich korrekt.

Verwenden Sie einige Festplatten für viele GB und viele Festplatten für einige IOps.
Verwenden Sie einige SSDs für viele IOPs und viele SSDs für einige GBs

Was ist für Sie wichtiger? Speicherplatz ist der große Kostentreiber für SSD-Lösungen, da der Preis pro GB viel höher ist. Wenn Sie über eine 200-GB-Datenbank sprechen, für die 4K-IOPs erforderlich sind, gelangen Sie mit zwei SSDs dorthin. Oder ein 24-Festplatten-Array mit 15K-Laufwerken, sodass Sie viel Platz für Massenspeicher haben.

Wie viele IOps Sie tatsächlich aus diesen SSDs herausholen, hängt stark von der Speicherinfrastruktur ab (ewwhite wird darauf näher eingehen), aber es ist vernünftig, diese Geschwindigkeit zu erreichen. Besonders bei Raid10, wo die Parität nicht berechnet wird.

sysadmin1138
quelle
Danke für die Rückmeldung! Ist es sinnvoll, Laufwerke zu mischen? Dh 4 SSDs für leistungsorientierte Aufgaben einrichten, dann eine Reihe von Festplatten für Massenspeicher?
Beep Beep
3
@ Beepbeep Ja, aber seien Sie sich der Kompromisse bewusst. Viele Iops verbrauchen Controller-Ressourcen, was bedeutet, dass Sie keinen maximalen sequentiellen Durchsatz von den Festplatten erhalten. Viele sequentielle Durchsätze auf den Festplatten können E / A von den SSDs verdrängen und die Latenz aufgrund von Kanalkonflikten erhöhen. Wenn dir das wichtig ist, aber sie auf verschiedenen Kanälen.
sysadmin1138
0

Ich habe kürzlich ein Paar Speicherserver für meinen Arbeitgeber unter Verwendung eines Dell C2100-Gehäuses gebaut, auf dem FreeBSD 10.1 mit zwölf Western SATA-Unternehmens-SATA-Laufwerken mit 2 TB und 7200 U / min ausgeführt wird. Die Laufwerke befinden sich in einem einzelnen ZFS-Pool, der aus zwei virtuellen RAIDZ-2-Geräten (vdevs) mit 6 Laufwerken besteht. Dem Pool sind zwei Intel DC S3500 SSDs angeschlossen, die gegen Stromausfall geschützt sind. Sie werden sowohl als SLOG als auch als L2ARC verwendet. Beim Testen dieses Servers über iSCSI konnte ich 7500-8200 IOPS erreichen. Unsere Gesamtkosten einschließlich Festplatten betrugen ca. 2700 USD pro Server.

In der Zeit, in der diese BSD-basierten Systeme ausgeführt wurden, sind bei einer unserer HP MSA2012i-SAN-Einheiten zwei Controller-Fehler aufgetreten, und bei unserer anderen MSA2012i-Einheit wurde ein großes NTFS-Volume beschädigt, für dessen Reparatur 12 Stunden Ausfallzeit erforderlich waren.

Dell und HP verkaufen Ihnen 10% Hardware und 90% Support, die Sie nie nutzen können.

Kathode
quelle
Dies ist wahr ... Ein Teil von mir wollte einen HP Server mit ZFS (oder einem ZFS-basierten Appliance-Betriebssystem) empfehlen, da dieser eine viel bessere Leistung als ein MSA / P2000 erzielen würde ... aber ich wollte nicht loslegen auf einer Tangente.
ewwhite
Oh, ich habe kein Problem mit HP. HP und Dell sind großartige Serverhardware. Lädt normalerweise besser als einige Whitebox iStarUSA- oder Norco-Chassis. Wenn es jedoch um kritische Geräte geht (SAN / NAS ist in meinem Buch von entscheidender Bedeutung), empfehle ich eine Lösung mit möglichst viel Transparenz. SAN-Appliances sind große Black Boxes. Sie funktionieren großartig, bis sie es nicht mehr tun, und dann bist du am **** Creek.
Kathode