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.
quelle
Antworten:
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.
quelle
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:
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:
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.
quelle
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.
quelle
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.
quelle