Cagkan - stock.adobe.com

Diese Performance bietet NVMe im Vergleich zu SATA und SAS

Das NVMe-Protokoll wurde konzipiert, um SSDs zu beschleunigen. Der Beitrag beleuchtet die Leistung von NVMe und wie es im Vergleich zu den SATA- und SAS-Schnittstellen abschneidet.

Das NVMe-Protokoll (Non-Volatile Memory Express) hat sich zum Industriestandard für die Kommunikation zwischen der Host-Software eines Computers und einem SSD- oder anderen nichtflüchtigen Speichersubsystem entwickelt. Die Geschwindigkeiten von NVMe sind deutlich höher als die traditioneller Speicherprotokolle wie SAS und SATA.

Der NVMe-Standard basiert auf einer Reihe von Spezifikationen, die vom NVM Express Inc.-Konsortium, einem Zusammenschluss von über 100 Technologieunternehmen, gepflegt und veröffentlicht werden. Diese Spezifikationen definieren, wie die Host-Software über unterstützte Transportschichten mit dem nichtflüchtigen Speicher kommuniziert.

Die NVMe-Architektur und die Rolle von PCIe

Die NVMe-Spezifikationen definieren sowohl ein Speicherprotokoll als auch eine logische Host-Controller-Schnittstelle. Obwohl die Spezifikationen inzwischen auf andere Transportschichten erweitert wurden, bleibt PCI Express (PCIe) der primäre Transport für NVMe-Geräte.

PCIe ist ein serieller Erweiterungsbusstandard, der Computer in die Lage versetzt, Peripheriegeräte anzuschließen. Ein PCIe-Bus kann niedrigere Latenzzeiten und höhere Übertragungsgeschwindigkeiten bieten als ältere Bust-Technologien wie PCI oder PCI-X. Bei PCIe hat jeder Bus seine eigene dedizierte Verbindung, sodass die Busse nicht um die Bandbreite konkurrieren müssen.

Erweiterungssteckplätze, die dem PCIe-Standard entsprechen, können von einer bis zu 32 Datenübertragungsspuren (Lanes) skalieren. Der Standard definiert sieben physische Lane-Konfigurationen: x1, x2, x4, x8, x12, x16 und x32. Die Konfigurationen basieren auf der Anzahl der Lanes; eine x8-Konfiguration verwendet beispielsweise acht Lanes. Je mehr Lanes vorhanden sind, desto besser ist die Leistung und desto höher sind die Kosten.

Die PCIe-Version ist ein weiterer leistungsbestimmender Faktor. Jede Version verdoppelt in der Regel die Bandbreite und die Transferrate der vorherigen Version. PCIe 3.0 bietet eine Transferrate von 8 Gigatransfers pro Sekunde (GT/s); PCIe 4.0 verdoppelt die Rate auf 16 GT/s; PCIe 5.0 verdoppelt sie erneut auf 32 GT/s; und PCIe 6.0 erreicht 64 GT/s.

NVMe 2.1: Der aktuelle Standard

Am 6. August 2024 veröffentlichte das NVM Express-Konsortium NVMe 2.1. Dieses Release umfasst eine Reihe neuer und verbesserter Funktionen, wobei der Großteil der Änderungen in der NVMe-Basisspezifikation vorgenommen wurde.

Der Spezifikationssatz umfasst ab NVMe 2.1 die folgenden elf Einzelspezifikationen:

  • Die NVMe-Basisspezifikation definiert ein Protokoll für die Kommunikation zwischen Host-Software und NVM-Systemen über unterstützte Transportschichten.
  • Fünf NVMe-Befehlssatz-Spezifikationen definieren individuelle Befehlssätze: NVM Command Set, NVMe Zoned Namespaces Command Set, Key Value Command Set, Subsystem Local Memory Command Set und Computational Programs Command Set.
  • Drei NVMe-Transport-Spezifikationen definieren individuelle Transportschichten: NVMe over PCIe Transport, NVMe over RDMA Transport und NVMe over TCP Transport.
  • Die NVM Express Management Interface-Spezifikation definiert eine Architektur und einen Befehlssatz für die Verwaltung von NVMe-Speichern.
  • Die NVMe Boot-Spezifikation definiert einen Standardprozess für das Booten über NVMe-Schnittstellen.

Die Basisspezifikation wurde neu organisiert und definiert über 20 neue Funktionen. Dazu gehören die Möglichkeit für einen Host, die Live-Migration eines Controllers zwischen NVM-Subsystemen zu verwalten, Unterstützung für die Power Loss Signaling-Funktion und die Möglichkeit, dass mehrere NVM-Subsysteme denselben Namespace präsentieren können.

NVMe-Geschwindigkeiten und Leistung in der Praxis

NVMe wurde von Grund auf für SSDs entwickelt, um den Durchsatz und die IOPS zu verbessern sowie die Latenz zu verringern. NVMe-basierte Laufwerke können theoretisch Bandbreiten von bis zu 256 GB/s erreichen, vorausgesetzt, sie basieren auf PCIe 6.0 und nutzen 16 PCIe-Lanes.

Die meisten heutigen NVMe-Laufwerke basieren auf PCIe 4.0 oder 5.0 und sind typischerweise Vier-Lane-Geräte. Dennoch können ihre Durchsatz- und IOPS-Werte stark variieren. Einige leistungsstarke SSDs bieten Durchsatzraten von bis zu 14 GB/s, während andere deutlich niedrigere Raten liefern. Auch bei den IOPS reicht die Spanne von knapp über 50.000 bis zu über 3 Millionen.

Zwei der leistungsstärksten SSDs sind die Kioxia CM7 und die Micron 9550. Beide basieren auf PCIe 5.0 und bieten einen Durchsatz von bis zu 14 GB/s. Das Kioxia-Laufwerk kann bis zu 2,7 Millionen IOPS liefern, während das Micron-Laufwerk bis zu 3,3 Millionen IOPS verspricht. Im Vergleich dazu liegt die Samsung 990 Pro, ein PCIe-4.0-Laufwerk, bei etwa 7 GB/s Durchsatz und maximal 1,4 Millionen IOPS.

Auch bei den Latenzzeiten gibt es große Unterschiede. Während viele Laufwerke Raten von unter 20 Mikrosekunden (µs) erreichen, liegen andere näher an 100 µs oder deutlich darüber.

Metriken zur Messung der SSD-Geschwindigkeit sollten als Trends und nicht als absolute Werte betrachtet werden. Faktoren wie die Art der Workload – Schreiben vs. Lesen oder zufällig vs. sequenziell – können einen erheblichen Leistungsunterschied ausmachen. Dennoch steht fest, dass NVMe Protokolle wie SAS und SATA in jeder Hinsicht deutlich übertrifft, insbesondere in Kombination mit PCIe 4.0 oder 5.0.

Abbildung 1: Ein Schnellüberblick über die Leistungsmerkmale der von NVMe, SAS und SATA.
Abbildung 1: Ein Schnellüberblick über die Leistungsmerkmale der von NVMe, SAS und SATA.

Warum NVMe schneller ist

NVMe verwendet einen schlankeren Befehlssatz zur Verarbeitung von I/O-Anfragen als SATA oder SAS. NVMe benötigt weniger als die Hälfte der CPU-Befehle und bietet ein umfassenderes und effizienteres System für die Nachrichtenwarteschlange.

SATA und SAS unterstützen jeweils nur eine I/O-Warteschlange gleichzeitig. Die SATA-Warteschlange kann bis zu 32 ausstehende Befehle enthalten, die SAS-Warteschlange bis zu 256. NVMe kann dagegen bis zu 65.535 Warteschlangen und bis zu 65.535 Befehle pro Warteschlange unterstützen.

Dieser Warteschlangenmechanismus ermöglicht es NVMe, die parallelen Verarbeitungsfähigkeiten einer SSD besser zu nutzen, was die anderen Protokolle nicht können. Zusätzlich verwendet NVMe RDMA (Remote Direct Memory Access) über den PCIe-Bus, um I/O-Befehle und Antworten direkt dem Shared Memory des Hosts zuzuordnen. Dies verringert die CPU-Last weiter und verbessert die Geschwindigkeit. Infolgedessen kann jeder CPU-Befehlszyklus höhere IOPS unterstützen und Latenzzeiten im Host-Software-Stack reduzieren.

Abbildung 2: Die Entwicklungssprünge der NVMe-Technologie in der bildlichen Darstellung.
Abbildung 2: Die Entwicklungssprünge der NVMe-Technologie in der bildlichen Darstellung

SAS- und SATA-Geschwindigkeiten und Leistung

SAS und SATA sind verbreitete Protokolle zur Verbindung von Host-Software und peripheren Laufwerken. Das SATA-Protokoll basiert auf dem ATA-Standard (Advanced Technology Attachment), das SAS-Protokoll auf dem SCSI-Standard.

Diese Protokolle wurden speziell für Festplattenlaufwerke (HDDs) entwickelt. Obwohl SAS allgemein als schneller und zuverlässiger gilt, können beide Protokolle HDD-Workloads problemlos bewältigen.

SSDs haben diese Gleichung jedoch verändert. Deren höhere IOPS können die älteren Protokolle schnell überlasten, sodass diese an ihre Grenzen stoßen, bevor sie die Leistungsfähigkeit des Laufwerks voll ausschöpfen können. Die Vorteile einer SSD können so nicht vollständig genutzt werden.

SATA-basierte Laufwerke erreichen typischerweise einen Durchsatz von nur 6 Gbit/s, wobei die IOPS bei etwa 100.000 gedeckelt sind. Die Latenzzeiten liegen in der Regel über 100 µs. SAS-Laufwerke bieten eine etwas bessere Leistung mit Durchsatzraten von bis zu 12 Gbit/s und durchschnittlichen IOPS zwischen 200.000 und 400.000. In einigen Fällen sind die SAS-Latenzzeiten unter 100 µs gefallen, was jedoch die anderen Einschränkungen von SAS nicht ausgleicht.

Kaufüberlegungen: Worauf Sie achten sollten

Eine der wichtigsten Überlegungen beim Kauf von SSDs ist die Wahl des Protokolls: SATA, SAS oder NVMe. Die meisten Enterprise-Rechenzentren bevorzugen NVMe aufgrund seiner überlegenen Leistung.

Bei der Entscheidung für NVMe sollten vier wichtige, PCIe-spezifische Faktoren berücksichtigt werden:

  • PCIe-Version: Jede neue Generation der PCIe-Spezifikation bringt eine höhere Leistung mit sich. Unternehmen sollten daher SSDs wählen, die der aktuellsten Version entsprechen (aktuell PCIe 5.0, mit PCIe 6.0 auf der Roadmap).
  • PCIe-Lane-Anzahl: Die meisten NVMe-SSDs sind auf vier PCIe-Lanes beschränkt – aber nicht alle. Je mehr Lanes ein Laufwerk verwendet, desto höher ist der potenzielle Durchsatz.
  • SSD-Formfaktor: PCIe-SSDs sind in verschiedenen Formfaktoren erhältlich, darunter M.2, U.2, Add-in Cards und EDSFF. Entscheidungsträger sollten Faktoren wie Budget, Einbauort im Host und verfügbaren Platz berücksichtigen. EDSFF ist eine aufstrebende Technologie, die mehrere Vorteile in Bezug auf Leistung, Kapazität und Skalierbarkeit bietet.
  • Speicherumgebung: Die Hardware, in der die SSDs untergebracht sind (zum Beispiel Server, Storage-Arrays), sollte dieselbe PCIe-Version wie die Laufwerke unterstützen, um die größten Vorteile zu nutzen. Wird beispielsweise eine PCIe-5.0-SSD in einem PCIe-4.0-Server betrieben, läuft das Laufwerk mit PCIe-4.0-Geschwindigkeiten.

Auf einen Blick: Leistungsvergleich der Speicherprotokolle

Im Leistungsvergleich zwischen NVMe, SATA und SAS erweist sich NVMe als klarer Sieger. Das moderne Protokoll wurde speziell für SSDs entwickelt und übertrifft die älteren Standards SATA und SAS in jeder Hinsicht: Während SATA-Laufwerke maximal 6 Gbit/s Durchsatz und etwa 100.000 IOPS erreichen und SAS bei 12 Gbit/s und 200.000-400.000 IOPS deckelt, bieten aktuelle NVMe-Laufwerke auf PCIe-5.0-Basis bis zu 14 GB/s Durchsatz und über 3 Millionen IOPS bei Latenzzeiten unter 20 Mikrosekunden. Dieser Geschwindigkeitsvorsprung resultiert aus der effizienteren Architektur von NVMe, die bis zu 65.535 parallele Warteschlangen unterstützt - im Gegensatz zu nur einer einzelnen Warteschlange bei SATA und SAS. Für Enterprise-Rechenzentren und anspruchsvolle Anwendungen ist NVMe daher die erste Wahl, wobei auf eine aktuelle PCIe-Version (5.0 oder neuer), eine hohe Lane-Anzahl und kompatible Host-Hardware zu achten ist, um die maximale Performance zu realisieren.

 

Erfahren Sie mehr über Storage Performance