Weißbuch

NVMe SSD-Schreibleistung

Übersicht

Das Data Recorder-Referenzdesign von BittWare erfasst Hochgeschwindigkeits-Sensordaten mit bis zu 200 Gb/s auf NVMe-Solid-State-Laufwerken (SSDs). Dies bietet Anwendern eine offene Architektur, mit der sie jedes beliebige Datenaufzeichnungssystem aufbauen können. Eine häufig gestellte Frage ist jedoch : "Wie viele Laufwerke sind für eine bestimmte anhaltende Datenrate erforderlich?"

Wir möchten diese Frage klären, da oft angenommen wird, dass die Berechnung einfach ist: Schauen Sie sich die Spezifikation eines SSD-Laufwerks für die Schreibgeschwindigkeit an und teilen Sie die erforderliche maximale anhaltende Bandbreite für die Anwendung, fügen Sie ein wenig Spielraum hinzu und Sie erhalten die Anzahl der erforderlichen RAID0-Laufwerke (Striped). Die Herausforderung besteht darin, dass die auf dem SSD-Spezifikationsblatt angegebene Schreibgeschwindigkeit niemals für die langen Aufzeichnungszeiten unserer Hochleistungskunden ausreicht.

Schauen wir uns einige reale Leistungszahlen unter Verwendung gängiger SSD-Laufwerkstypen an und untersuchen wir die Gründe, warum anhaltende Schreibgeschwindigkeiten nicht so einfach sind wie Lesegeschwindigkeiten. Abschließend werden wir einige Empfehlungen zu Laufwerksanordnungen für bestimmte Geschwindigkeiten unter Verwendung unseres Data Recorder-Referenzdesigns geben. Die gute Nachricht ist, dass unser Design mit unseren TeraBox-Servern und der 250-SoC-FPGA-Karte leicht skaliert werden kann.

PDF-Version dieses Whitepapers

SSD-Laufwerk Reputation

Solid-State-Laufwerke mit NVMe-Schnittstellen sind dafür bekannt, dass sie sehr schnell sind. In der Tat sind sie bei einer bestimmten Arbeitslast schneller als herkömmliche Festplattenlaufwerke (HDDs). Insbesondere sind SSDs für viel mehr Lese- als Schreibvorgänge und wahlfreien Zugriff optimiert. Bei einem Datenaufzeichnungsgerät liegt der Schwerpunkt natürlich auf dem Gegenteil: sequenziellen Schreibvorgängen.

Eine weitere Herausforderung besteht darin, dass NVMe-SSDs oft Spezifikationen für die maximale "Streaming-Schreib"-Bandbreite aufweisen, die bei anhaltenden Schreibvorgängen auf einen kleinen Teil der Laufwerkskapazität beschränkt ist. Der Großteil eines langen anhaltenden Schreibvorgangs wird diesen Wert deutlich unterschreiten, und je größer die Laufwerke werden, desto schlimmer wird es. Um zu verstehen, warum das so ist, sollten wir uns kurz ansehen, wie Bits auf SSDs gespeichert werden.

Größere SSDs haben tendenziell eine geringere anhaltende Schreibleistung

Die Erhöhung der SSD-Dichte bedeutet, dass man zu neueren Technologien übergeht, die auch anhaltende Schreibvorgänge langsamer machen. Diese Generationen von SSD-Technologien werden SLC, MLC, TLC und schließlich QLC genannt, und zwar in der Reihenfolge ihres Erscheinens auf dem Markt, d. h. in der Reihenfolge von der geringsten zur höchsten Dichte. Die Entwickler von SSDs sind sich sehr bewusst, dass sie Streaming-Schreibvorgänge mit der Zeit verlangsamen. Daher reservieren sie oft einen Teil selbst der allerneuesten, dichtesten SSDs für den Betrieb im alten SLC-Modus. Dadurch können Schreibvorgänge mit den alten, schnelleren Geschwindigkeiten durchgeführt werden, bis dieser Abschnitt des Laufwerks voll ist. Danach verlangsamt sich das Schreibstreaming auf die vom Rest des Laufwerks unterstützte Geschwindigkeit.

Schwellenwerte für die Leistungsverschlechterung von SSD-Laufwerken

Die ersten drei Schwellenwerte werden in unserem Abschnitt "Benchmarks" näher untersucht.

  • Die Spitzenleistung wird nur solange erbracht, bis der SLC-Cache voll ist. Im Abschnitt "Benchmarks" finden Sie Einzelheiten dazu, wann dies bei einer Reihe von Laufwerken der Fall ist.
  • Danach sinkt die Leistung, bis das Laufwerk einen Kapazitätsschwellenwert erreicht, bei dem es beginnt, die Größe des SLC-Cache zu verringern.
  • Das Verkleinern des SLC-Cache erfordert eine Hintergrundkopie, die die Abläufe weiter verlangsamt.

Es gibt noch eine weitere Verringerung, die auftritt, wenn ein Rekorder beginnt, alte Daten mit neueren Daten zu überschreiben. Wir werden dies im nächsten Abschnitt behandeln.

Überschreiben von Daten Leistungseinbußen

Warum das Überschreiben von Daten die Leistung beeinträchtigt

  • SSDs müssen eine Seite auf Null setzen, bevor sie beschrieben wird.
  • Wenn Sie also nur ein Byte ändern, sucht der SSD-Controller nach einer Seite, die er in der Vergangenheit auf Null gesetzt hat, und kopiert dann die gesamte Seite mit diesem einen geänderten Byte darauf.
  • SSDs können eine einzelne Seite nicht löschen. Dieser Vorgang verwendet einen Block von Seiten.
    • Jede SSD ist anders, aber eine Samsung 840 EVO hat zum Beispiel 2048 Kb-Seiten. Ein Block besteht aus 256 solchen Seiten.
  • Das Löschen einer Seite ist ein relativ langsamer Vorgang, der im Hintergrund abläuft, wenn ein NVMe Trim-Befehl dem SSD mitteilt, dass bestimmte Blöcke nicht mehr verwendet werden.
  • In einem Festplattenrekorder werden die Daten häufig in einer Ringdatenstruktur erfasst, die umläuft, wenn die Festplatte voll ist.
    • In diesem Fall gibt es keine Möglichkeit, im Voraus zu trimmen. Und selbst wenn eine Anwendung einen Abgleich vornimmt, kann der SSD-Recorder zu beschäftigt sein, um Zeit für den Nullabgleich zu finden.
    • Die Leistung sinkt erheblich, wenn nach jedem Schreibvorgang eine Pause eingelegt wird, während ein anderer Seitenblock gelöscht wird.

Wie man dies im FPGA vermeiden kann

  • Ihre Anwendung könnte anhalten, wenn ein Datenträger voll ist, anstatt sich zu wickeln.
  • Oder Sie könnten Trim-Befehle erteilen und genügend NVMe-Laufwerke bereitstellen, damit jedes Laufwerk ein wenig Leistung für Nullblöcke übrig hat.

SSD-Laufwerk-Benchmarks

Benchmarking-Methodik für Antriebe

  • Wir verwenden SPDK zum Benchmarking der NVMe-Laufwerksleistung
  • Entfernt jeglichen Dateisystem-Overhead
  • Maximiert die DMA-Effizienz durch Ausrichtung der Puffer an den Cache-Zeilen
  • Leere Laufwerke werden mit Hilfe eines dedizierten Threads so schnell wie möglich vollständig gefüllt, wobei sichergestellt wird, dass der NVME-DMA-Controller immer einen Schreibbefehl zu verarbeiten hat.

Test-Kategorien

Unser Ziel war es, keine spezifischen Laufwerke zu vergleichen, sondern Beispiele aus dem Verbraucher- und Unternehmensmarkt auszuwählen:

  • Verbrauchermarkt: TLC mit SLC
  • Verbrauchermarkt: MLC ohne SLC
  • Markt für Unternehmen: TLC ohne SLC
  • Markt für Unternehmen: 3D XPoint

Verbrauchermarkt: TLC mit SLC

Beispiel für ein getestetes Laufwerk: Samsung 970 Plus, 1 TB

Dies ist ein typisches TLC-Laufwerk der Verbraucherebene mit SLC-Cache.

  • Im Datenblatt heißt es, dass Streaming-Schreibvorgänge mit "max. 3,3 GB/Sek.
  • Wir haben 2,7-2,8 GB/Sek. gemessen, bis der SLC-Cache gefüllt ist.
  • Danach sank sie auf etwa 1,6 GB/sec.
  • Das Laufwerk konnte die gleiche Geschwindigkeit beibehalten, als wir begannen, veraltete Daten zu überschreiben

Erreichen einer 100G-Rekorderleistung:

Eine RAID 0-Konfiguration erfordert mindestens 8 Laufwerke.

Leere

Vollständiges Laufwerk umschreiben

Verbrauchermarkt: MLC ohne SLC

Beispiel für ein getestetes Laufwerk: Samsung 970 Pro, 512 GB

Es handelt sich um ein MLC-Laufwerk für den Verbrauchermarkt ohne SLC-Cache.

  • Im Datenblatt heißt es, dass Streaming-Schreibvorgänge mit "max. 2,3 GB/Sek.
  • Dieses Laufwerk verfügt über keinen SLC-Cache. Wir haben etwa 2,2 GB/s ohne Einbrüche gemessen.
  • Das Laufwerk konnte die gleiche Geschwindigkeit beibehalten, als wir begannen, veraltete Daten zu überschreiben

Erreichen einer 100G-Rekorderleistung:

Eine RAID 0-Konfiguration erfordert mindestens 6 Laufwerke.

Markt für Unternehmen: TLC ohne SLC

Beispiel für ein getestetes Laufwerk: Samsung 1725b, 1,6 TBM

Es handelt sich um ein MLC-Laufwerk für den Verbrauchermarkt ohne SLC-Cache.

  • Im Datenblatt heißt es, dass Streaming-Schreibvorgänge mit "2,0 GB/Sek" erfolgen.
  • Die meiste Zeit lieferte dieses Laufwerk 1,7 GB/s; gelegentlich fiel die Geschwindigkeit jedoch auf 1,3 GB/s.
  • Es handelt sich um ein TLC-Laufwerk, das auf den Unternehmensmarkt abzielt und offenbar keinen SLC-Cache hat; es wurde von Dell als "NVMe Mixed Use Express Flash" verkauft; die Bezeichnung "Enterprise" bedeutet eine längere Lebensdauer

Erreichen einer 100G-Rekorderleistung:

Eine RAID 0-Konfiguration erfordert mindestens 10 Laufwerke.

Markt für Unternehmen: 3D XPoint

Beispiel für ein getestetes Laufwerk: Intel Optane, 480 GB

Optane-Laufwerke nutzen die 3D-XPoint-Speichertechnologie und haben eine deutlich höhere Ausdauer als herkömmliche SSD-Laufwerke. Sie sind jedoch nicht in denselben hohen Kapazitäten verfügbar wie herkömmliche NVMe-Laufwerkstechnologien.

  • Im Datenblatt wird eine sequenzielle Schreibbandbreite von 2,2 GB/s angegeben
  • Konstante 2,2 GB/s oder besser

Erreichen einer 100G-Rekorderleistung:

Eine RAID 0-Konfiguration erfordert mindestens 6 Laufwerke.

Markt für Unternehmen: Gen4 3D TLC

Getestetes Beispiellaufwerk: Intel SSD D7-P5510 3.84TB

Laufwerke mit PCIe Gen4 haben eine deutlich verbesserte Leistung. Um die Vorteile der optimierten Datenverschiebungs-Engines zu nutzen, haben wir große Puffergrößen von 256 KB oder mehr verwendet.

  • Im Datenblatt wird eine sequenzielle Schreibbandbreite von 3,3 GB/s angegeben
  • Konstante 3,2 GB/s oder besser

Erreichen einer 100G-Rekorderleistung:

Eine RAID 0-Konfiguration erfordert mindestens 5 Laufwerke.

NVMe performance chart

Benchmark-Zusammenfassung

Die Verwendung von Multizellen-Architekturen zur Erzielung größerer Laufwerksgrößen hat den Preis, dass die Schreibgeschwindigkeit über einen längeren Zeitraum aufrechterhalten werden muss. Die größte Auswirkung hat dies auf Verbraucher-SSDs. Die beste reale Streaming-Schreibgeschwindigkeit, die dem angegebenen Maximalwert entspricht, wird von Intel Optane-Laufwerken erreicht; allerdings sind diese auch am stärksten in der Laufwerksgröße eingeschränkt.

Für diejenigen, die Systeme für anhaltende Schreibvorgänge spezifizieren, ist es wichtig, reale Benchmarks auf den Ziellaufwerken zu erhalten oder durchzuführen. Unsere obigen Empfehlungen für anhaltende Schreibvorgänge bei 100 Gbit/s basieren auf solchen realen Testdaten.

Dennoch gibt es beim Schreiben auf SSDs weitere Überlegungen, die berücksichtigt werden sollten und die wir im Folgenden behandeln.

Lebensdauer des Antriebs

Ein letzter Aspekt der Schreibleistung ist die Lebensdauer der Laufwerke. Das Schreiben auf ein SSD verschleißt es - und speziell Datenaufzeichnungsanwendungen können die Lebensdauer der Laufwerke potenziell belasten.

  • Die Lebensdauer von SSDs wird als Drive Writes Per Day (DWPD) für die Dauer der Garantiezeit angegeben.
    • Die Lebensdauer von SSDs variiert stark, aber um eine Erwartungshaltung zu entwickeln, sollte man bedenken, dass ein Laufwerk mit 1 DWPD 1.800 Mal überschrieben werden kann.

Eine "Enterprise"-SSD enthält zusätzliche Flash-Zellen (Over Provisioning), um eine längere Lebensdauer zu ermöglichen (größere DWPD).

  • Ein 100-GbE-Plattenrecorder kann bis zu 12,5 GB/s an Paketdaten erzeugen.
    • Metadaten (PcapNg-Paket-Header) sind dabei nicht berücksichtigt.
  • Wenn Ihr Paketrekorder zwölf teure 30-TB-Enterprise-SSDs verwendet, bedeutet dies, dass Ihr Array etwa 8 Stunden 100-GbE-Datenverkehr speichern kann. Bei einer DWPD von 1 ist das Array in etwas mehr als 1,5 Jahren abgenutzt.

Dieses Beispiel ist jedoch illustrativ und nicht realistisch.

  • Keine 100-GbE-Verbindung wird rund um die Uhr mit Datenverkehr gesättigt sein.
  • Kommerzielle Cybersicherheitseinrichtungen wollen 7-10 Tage Datenverkehr aufnehmen, nicht nur 8 Stunden.

Schlussfolgerung

SSDs bieten zwar eine beeindruckende Leistung im Vergleich zu herkömmlichen Festplattenlaufwerken, aber die Verbesserungen sind anwendungsspezifisch, und in einigen Fällen ist die Leistung geringer.

Bei Anwendungen mit anhaltenden Schreibvorgängen, wie sie in unseren Projekten zur Datenerfassung und -aufzeichnung angestrebt werden, sind neben der Spezifikation für den maximalen anhaltenden Schreibvorgang eine Reihe von Faktoren zu berücksichtigen.

Setzen Sie sich mit BittWare in Verbindung, um mehr über unsere Produkte und Lösungen zur Speicherbeschleunigung und Sensorverarbeitung zu erfahren.