Spricht man heute mit Anbietern von Unternehmensdatenspeichern, hört man nur NVMe-dies, NVMe-das, bla bla bla.
Für all das Getöse gibt es einen guten Grund. Der Einsatz von NVMe (NVM Express) als End-to-End-Datentransferprotokoll in Ihrer SAN-Umgebung kann den Durchsatz deutlich verbessern und die Latenz verringern, wodurch sich die Benutzererfahrung deutlich verbessert. Der „End-to-End“-Teil ist jedoch von entscheidender Bedeutung: Leider ist mit vielen der inzwischen erhältlichen NVMe Storage-Produkten nur ein Bruchteil der potenziellen Performance-Verbesserungen erreichbar.
Das liegt an den beiden unterschiedlichen Aspekten des NVMe Datentransfer-Standards:
- dem „Back-End“-Protokoll zwischen den Flash-Medien und dem Storage-Controller
- dem Front-End-Protokoll zwischen dem Host und dem Storage-Controller in der gesamten Data Fabric, d. h. als NVMe over Fabrics (NVMe-of)
Der Grund, warum es wichtig ist, das Kleingedruckte zu lesen, ist, dass in den meisten Fällen weniger als 20 % des potenziellen Geschwindigkeitszuwachses von NVMe aus der Verwendung von Back-End-NVMe-Medien resultiert, aber 80 % oder mehr des Nutzens aus der Verwendung von NVMe-oF als Ersatz für SCSI-basierte Front-End-Datenübertragungsprotokolle stammen. Einige Marketing-Blogs für Rechenzentren sind in Wirklichkeit blanker Unsinn. Vergewissern Sie sich daher immer, ob das jeweilige Speichersystem tatsächlich NVMe-oF und nicht nur Back-End-NVMe-Flash-Medien verwendet.
Die Nutzung der enormen Parallelisierungsmöglichkeiten von NVMe in der Data Fabric verspricht gewaltige Performance-Steigerungen. IT-Führungskräfte und -Architekten stehen also vor der Frage, welche Art von Fabric die am besten geeignete ist, da es große Unterschiede in Bezug auf Performance, Zuverlässigkeit und Kosten gibt.
Seit seiner Einführung im Jahr 2016 soll der NVMe-oF-Standard sicherstellen, dass der NVMe-Befehlssatz von einer möglichst großen Vielfalt von Fabric- und Netzwerktransporten transportiert werden kann.
Drei Haupttypen von Fabric
Die wichtigsten Datentransportprotokolle der IT-Welt sind heute:
- Fibre Channel (FC). Das vorherrschende Protokoll für die Übertragung von Daten zwischen Speichergeräten und Servern, das von den meisten SAN-Systemen in Unternehmen verwendet wird.
- Remote Direct Memory Access (RDMA). Verschiedene Möglichkeiten, direkt auf Speicher zwischen Computersystemen zuzugreifen, ohne auf das Betriebssystem angewiesen zu sein.
- Transmission Control Protocol/Internet Protocol (TCP/IP). Verwendung des TCP- Transportprotokolls zur Bereitstellung von Daten über IP- Netzwerke, genau wie das Internet.
Von NVMe werden die drei entsprechenden Fabric-Typen unterstützt:
- NVMe/FC. Der NVMe-Befehlssatz ist in FC-Frames eingebettet. Es stützt sich auf gängige FC-Prozesse wie Zoning und kann problemlos mit dem heutigen Standard-FC-Protokoll eingesetzt werden, bei dem SCSI-Befehlssätze in FC-Frames eingebettet sind.
- NVMe over RoCE (NVMe/RoCE), InfiniBand und iWARP. Eine neue Alternative ist RoCE v2, das RDMA über ein physisches konvergentes Ethernet (Data Center Bridging verlustarmes Ethernet-Netzwerk) verwendet.
- NVMe over TCP (NVMe/TCP) NVMe wird als physischer Transport in TCP-Datagrammen über Ethernet übertragen. Obwohl sowohl RoCE als auch NVMe/TCP Ethernet verwenden, verhält sich NVMe/TCP eher wie NVMe/FC, da beide eine Messaging-Semantik für I/O verwenden.
Sehen wir uns nun die Technologie an, die diesen drei Implementierungsmöglichkeiten für NVMe in einer Data-Fabric-Umgebung zugrunde liegt, und untersuchen wir dann die Vor- und Nachteile der einzelnen Ansätze.
Was macht NVMe so schnell?
Die wichtigsten Datentransferprotokolle, die heute in SAN-Systemen verwendet werden, sind FC Protocol, iSCSI und FCoE. Sie können diese Akronyme ab sofort ignorieren, denn sie basieren alle auf SCSI, einer Reihe von Schnittstellenstandards aus den 1970er Jahren, die für Disketten und Festplattenlaufwerke entwickelt wurden.
Der NVMe-Standard wurde in den letzten zehn Jahren entwickelt und ist speziell darauf ausgelegt, die Vorteile von Flash-Speicher, Solid-State-Laufwerken (SSDs), mit NVMe arbeitende SSDs und sogar noch nicht erfundene Speichertechnologien voll auszuschöpfen. Anstelle der einzigen SCSI-Befehlswarteschlange (mit einer Tiefe von 32 Befehlen) unterstützt NVMe 65K Warteschlangen mit 65.000 Befehlen pro Warteschlange, was bedeutet, dass eine viel größere Anzahl von Befehlen gleichzeitig ausgeführt werden kann.
Die ersten Iterationen von NVMe konzentrierten sich auf die Optimierung der E/A zwischen einem Host-Computer und lokalen NVMe-Medien, die über einen Hochgeschwindigkeits-PCIe-Bus (Peripheral Component Interconnect Express) verbunden sind. Bei der Weiterentwicklung zu NVMe-oF war ein wesentliches Entwicklungsziel die Unterstützung einer möglichst großen Vielfalt von Fabric- und Netzwerkprotokollen. Heute sind das drei Hauptprotokolle für den Datentransport: NVMe/FC, NVMe über RDMA (NVMe/RDMA) und NVMe/TCP.
NVMe/FC
Die meisten Unternehmen vertrauen ihre geschäftskritischen Workloads derzeit FC-basierten SAN-Systemen an, da sie konstant hohe Geschwindigkeit, Effizienz und Verfügbarkeit bieten.
- NVMe/FC
- Vorteile:
- NVMe/FC liefert eine enorme Performance-Steigerung und reduziert Workload-Latenzen.
- Das FC-Protokoll ist stabil, ausgereift, effizient, sehr schnell und hochperformant.
- Die derzeit erhältlichen NetApp AFF A300, AFF A700s und AFF A800 Storage-Systeme können sowohl NVMe/FC als auch FC-Datenverkehr gleichzeitig hosten und unterstützen. Sie verwenden dieselben Fabric-Komponenten (HBAs, Switches usw.), so dass Benutzer problemlos von FC auf NVMe/FC wechseln können.
- Bei NetApp NVMe Lösungen sind keine Applikationsänderungen zur Implementierung von NVMe/FC erforderlich, sodass keine kostspieliegen Upgrades notwendig sind.
- Der Standard umfasst hochverfügbaren Storage mit einer NVMe Asymmetric Namespace Access (ANA)-Erweiterung, die NetApp entwickelt und in die NVMe-Spezifikation eingebracht hat.
- NVMe/FC ist ausgereifter als andere NVMe-of Optionen und verfügt heute über das größte Ecosystem im NVMe-of-Universum.
- Unternehmen, die mit dem Testen oder Implementieren von NVMe/FC beginnen möchten, können einfach ein Upgrade auf NetApp ONTAP® 9.4 oder höher durchführen und eine NVMe/FC Lizenz hinzufügen.
- Nachteile:
- Wie alle NVMe-Angebote ist auch NVMe/FC relativ neu. Daher ist die Anzahl unterstützter Betriebssysteme, Host-Bus-Adapter (HBAs) und Switches noch relativ klein.
- NVMe/FC hat ein größeres Ecosystem als RoCE v2, ist aber immer noch winzig im Vergleich zum sehr ausgereiften FC-Protokoll.
- NVMe/FC setzt eine FC-Fabric voraus und eignet sich daher möglicherweise nicht so gut für Unternehmen, die keine FC-Fabric haben oder versuchen, sich von FC-Fabrics zu lösen.
RDMA
RDMA ist eine Möglichkeit, Daten zwischen dem Hauptspeicher zweier Computer in einem Netzwerk auszutauschen, ohne den Prozessor, den Cache oder das Betriebssystem der beiden Computer einzubeziehen. Da RDMA das Betriebssystem umgeht, ist es im Allgemeinen der schnellste und kostengünstigste Mechanismus für die Datenübertragung über ein Netzwerk.
Es gibt zwei wichtige RDMA-Varianten im Enterprise Computing: InfiniBand und RDMA over Converged Ethernet (RoCE).
NVMe Over InfiniBand (NVMe/IB)
InfiniBand war eine der ersten Implementierungen von RDMA und ist für seine herausragende Performance bekannt. NetApp bietet seit 2017 hybride und All-Flash-Arrays der E-Series an, die 100 Gbps InfiniBand unterstützen und eine Latenzzeit von unter 100 Mikrosekunden für Big Data Analytics Workloads bieten. Trotz seiner Vorteile ist InfiniBand nicht so populär wie sein enger Verwandter RoCE oder der Unternehmensstandard FC.
- NVMe/IB
- Vorteile:
- Sehr schnelles Protokoll.
- Weit verbreitet in der Big-Data-Analytik (z. B. Hadoop-Workloads) und im wissenschaftlichen Computing.
- Nachteile:
- Teuer; wird von vielen Anbietern nicht unterstützt.
- Komplexe Skalierung.
- In den meisten allgemeinen Computing-Umgebungen für Unternehmen nicht zu finden.
RoCE v2
Unter den RDMA-Protokollen ist der aufstrebende Konkurrent RoCE, der auf Converged Ethernet läuft, eine Reihe von DCB-Erweiterungen (Data Center Bridging) des Ethernet-Protokolls, die auf eine verlustfreie Ausführung dieses Protokolls abzielen. RoCE v1 arbeitet auf Layer 2, der Datenverbindungsebene im OSI-Modell (Open Systems Interconnection). Daher ist ein Routing zwischen Subnetzen nicht möglich, daher wird die Kommunikation zwischen zwei Hosts im selben Ethernet-Netzwerk unterstützt. RoCE v2 ist wesentlich benutzerfreundlicher weil es das User Datagram Protocol (UDP) verwendet und somit, wie NVMe/TCP, auf OSI-Schicht 3 arbeitet und geroutet werden kann.
- NVMe/RoCE v2
- Vorteile:
- NVMe/RoCE verwendet ein Ethernet-Netzwerk für den Transport und profitiert von einem äußerst beliebten Networking-Standard.
- RoCE v2-Angebote werden derzeit von mehreren Anbietern von Enterprise-Storage entwickelt.
- Nachteile:
- RoCE v2 verfügt derzeit nur über ein sehr kleines Ecosystem mit nur einer einzigen Linux-Version und unterstützt weder Hochverfügbarkeit noch Multipathing.
- Ethernet ist grundsätzlich verlustbehaftet: Es ist für unzuverlässige Netzwerke ausgelegt und verfügt daher über zahlreiche Optionen zur Fehlerkorrektur und Neuübertragung. Converged-Ethernet-Netzwerke (das „CE“ in RoCE) für NVMe-E/A müssen jedoch verlustfrei sein, was Mechanismen wie Prioritätsbasierte Flusssteuerung (PFC) und Explicit Congestion Notification (ECN) erfordert. Converged-Ethernet-Netzwerke haben daher enge Toleranzen, die eine Erweiterung erschweren.
- Die meisten Unternehmen, die die Einführung von RoCE v2 in Betracht ziehen, müssen spezielle DCB-Netzwerk-Switches und RDMA-Netzwerkkarten (RNICs) erwerben, die relativ teuer sind. Die Einrichtung und Erweiterung von DCB-Netzwerken kann sich als problematisch erweisen, z. B. wenn Unternehmen Switches in ihr Netzwerk integrieren.
NVMe Over TCP/IP
Bislang haben die Kosten für FC- oder InfiniBand-Netzwerke einige Unternehmen vom NVMe-oF-Markt ferngehalten. NetApp und andere Mitglieder des NVMe.org-Konsortiums wollen diese Marktlücke mit der Entwicklung und Veröffentlichung eines neuen NVMe-oF-Standards (NVMe/TCP) schließen, der ein Ethernet-LAN mit TCP-Datagrammen als Transport verwendet.
Im November 2018 hat das NVMe-Standardisierungsgremium NVMe/TCP als neuen Transportmechanismus ratifiziert. Es ist wahrscheinlich, dass sich TCP/IP in Zukunft zu einem wichtigen Transportmedium für NVMe in Rechenzentren entwickelt.
- NVMe over TCP
- Vorteile:
- Der Standard verwendet TCP als Transportmedium. TCP ist weit verbreitet, allgemein bekannt und hochskalierbar.
- Trotz der Verwendung von Ethernet für die Konnektivität ähnelt NVMe/TCP eher NVMe/FC, da beide Nachrichten für ihre Basiskommunikation verwenden. RDMA-basierte Protokollen wie RoCE arbeiten hingegen mit einer Speichersemantik.
- In der TCP-Welt gibt es ein riesiges Anbieternetzwerk, das erheblich in die Verbesserung der Performance von TCP investiert. In den kommenden Jahren dürften die Geschwindigkeiten deutlich zunehmen.
- Nachteile:
- Das Netzwerkdesign kann einen großen Einfluss auf die NVMe/TCP-Performance haben. Vor allem die Zuweisung von Puffern muss „genau richtig“ sein. Eine zu große Pufferung erhöht die Latenzzeit, eine zu kleine führt zu Verbindungsabbrüchen und Neuübertragungen.
- NVMe over TCP ist die neueste Fabric-Technologie für NVMe, aber leider noch nicht im Handel erhältlich.
Welche Fabric?
Enterprise-IT-Architekten, die ein Upgrade ihrer Infrastruktur zur Unterstützung von NVMe-of planen, stellt sich die zentrale Frage, welche Fabric die am besten geeignete ist. Die Antwort hängt natürlich von den Inhalten ihrer derzeitigen Infrastruktur sowie ihren Plänen und Budgets für die Zukunft ab.
Der andere wichtige Faktor ist das Timing. NVMe/RoCE v2 hat großes Potenzial, aber es wird wahrscheinlich noch ein paar Jahre dauern, bis Tier-1-Enterprise-Workloads zuverlässig verarbeitet werden können. Auch NVMe/TCP wird wahrscheinlich mit einem hervorragendes Preis-Leistungs-Verhältnis angeboten, wenn die Technologie in einigen Jahren ausgereift gereift ist.
Die meisten IT-Architekten kommen aktuell zu dem Schluss, dass FC das ausgereifteste Datenübertragungsprotokoll für unternehmenskritische Workloads ist, was NVMe/FC zur richtigen Fabric-Wahl macht. Ein Bericht der technischen Analysten von Demartek aus dem Jahr 2018 mit dem Titel Performance Benefits of NVMe over Fibre Channel (Leistungsvorteile von NVMe über Fibre Channel) bestätigt den Umfang der Performance-Gewinne, die dem NVMe/FC-Fabric zuzuschreiben sind, wie in der folgenden Abbildung dargestellt. Bei einem typischen Oracle-Workload, der auf einem NetApp AFF 700 System ausgeführt wurde, waren die IOPS für NVMe/FC etwa 50 % höher als für das SCSI-FC-Protokoll[/caption]. Die Labortests wurden auf einem Single-Node AFF A700 System mit einem simulierten Oracle-Workload mit einem 80/20-Lese-/Schreib-Mix bei 8 KB Blockgröße (typischer OLTP-Datenbank-I/O) sowie einer kleinen Menge an sequentiellen Schreibvorgängen mit 64 KB (typische Redo-Logs) durchgeführt. Die Ergebnisse zeigten, dass NVMe/FC bei einer Latenzzeit von 375μs 58 % mehr IOPS im Vergleich zum SCSI-FC-Protokoll erreicht.
Ähnliche Ergebnisse haben wir in unseren Labs mit den AFF A800 SAN-Storage-Systemen erzielt, die seit Mai 2018 ausgeliefert werden. Diese Systeme bieten eine vollständige End-to-End-NVMe-Konnektivität sowohl mit NVMe-Attached Flash-Medien als auch mit NVMe/FC-Konnektivität über die gesamte Fabric zwischen Storage-Controllern und Hosts. Die Testergebnisse bestätigen, dass, obwohl mit NVMe verbundene Medien am Backend eine messbare Performance-Steigerung bei der Ausführung von Oracle-Anwendungen auf der AFF A800 bewirken, das hochgradig parallelisierte Front-End-NVMe-oF den größten Teil zur Verbesserung beiträgt.
Diese Lösung vereint die Vorteile beider Welten: Sie sind in der Lage, die ausgereifteste Speichernetzwerktechnologie von heute ohne Unterbrechung zu implementieren und sich gleichzeitig auf die Zukunft vorzubereiten, die ganz auf NVMe ausgerichtet ist.
Wenn Sie mehr erfahren möchten, lesen Sie den Bericht Performance Benefits of NVMe over Fibre Channel (keine Registrierung erforderlich).