In den letzten Jahren erleben wir immer wieder, dass die Speicherleistung schneller wird, was eine Herausforderung für die alten Speicherprotokolle darstellt, die zu einem Engpass für Rechenzentren geworden sind. Obwohl die neueste Fabric-Geschwindigkeit von 100 GbE und neue Netzwerkstandards wie InfiniBand verwendet werden, schränken diese langsamen Netzwerkprotokolltechnologien die Leistung des Flash-Geräts ein, halten es im Gerät selbst und isoliert in der Box. In diesem Artikel werfen wir einen kurzen Blick auf Non-Volatile Memory Express (NVMe). Darüber hinaus geben wir einen Überblick über NVMe over Fabrics (NVMe-oF) und NVMe over RDMA over Converged Ethernet (NVMe over RoCE), eine neue Protokollspezifikation, die entwickelt wurde, um Engpässe moderner Speichernetzwerke zu lösen.
In den letzten Jahren erleben wir immer wieder, dass die Speicherleistung schneller wird, was eine Herausforderung für die alten Speicherprotokolle darstellt, die zu einem Engpass für Rechenzentren geworden sind. Obwohl die neueste Fabric-Geschwindigkeit von 100 GbE und neue Netzwerkstandards wie InfiniBand verwendet werden, schränken diese langsamen Netzwerkprotokolltechnologien die Leistung des Flash-Geräts ein, halten es im Gerät selbst und isoliert in der Box. In diesem Artikel werfen wir einen kurzen Blick auf Non-Volatile Memory Express (NVMe). Darüber hinaus geben wir einen Überblick über NVMe over Fabrics (NVMe-oF) und NVMe over RDMA over Converged Ethernet (NVMe over RoCE), eine neue Protokollspezifikation, die entwickelt wurde, um Engpässe moderner Speichernetzwerke zu lösen.
Aufgrund der ständigen Nachfrage nach geringer Latenz und hohem Durchsatz in den Clouds und Rechenzentren gibt es viele Diskussionen über NVMe statt Fabrics. Die NVMe-Spezifikation existiert seit weniger als einem Jahrzehnt und da NVMe-oF ebenfalls relativ neu ist, gibt es immer noch viele Missverständnisse über ihre Praxis und die Vorteile für Unternehmen. Diese Technologie wurde ständig weiterentwickelt und in der IT-Branche umfassend übernommen. Wir sehen, dass mehrere Netzwerkanbieter NVMe-oF-bezogene Produkte für den Unternehmensmarkt anbieten. Um mit fortschrittlichen Rechenzentrumstechnologien Schritt zu halten, ist es daher wichtig zu verstehen, was NVMe-oF ist, welche Fähigkeiten und welche Leistungsmerkmale es bietet. Darüber hinaus erfahren Sie, wie sie eingesetzt werden kann und wie wir diese Technologie in verschiedene und neue Lösungen integrieren.
NVMe und NVMe-oF
All-Flash-Arrays (AFA) sind in Rechenzentren entstanden, um den Ruf nach hoher Leistung zu erfüllen, da sie viel schneller als herkömmliche Speicher sind und mühelos die immer versprochenen 1 Mio. IOPS auf dem Markt erreichen können. Viele dieser Arrays nutzten jedoch weiterhin eine nahezu veraltete Speichertechnologie, die SATA-SSD. Dieser Speichertyp basiert auf dem AHCI-Befehlsprotokoll (Advanced Host Controller Interface) und unterstützt IDE. AHCI wurde im Wesentlichen für die rotierende Festplatte entwickelt und nicht für die fortschrittlichen Flash-basierten Laufwerke. Diese SCSI-basierte Technologie stellt einen Engpass für heutige SSDs und Speicherarray-Controller dar, da der SATA III-Bus mit AHCI nur Datenübertragungsgeschwindigkeiten von bis zu 600 MB/s ermöglicht.
Tabelle 1: Gemeinsame Busgeschwindigkeit
Um die volle Leistungsfähigkeit von SSDs auszuschöpfen, benötigten wir eine neue Technologie, um den Flash schneller zu entladen. NVMe ist eine Spezifikation, die es Flash-Speichern (oder SSDs) ermöglicht, die Flash-Leistung wirklich zu nutzen. Diese Technologie wurde erstmals 2014 eingeführt, um die Reaktionszeit von Anwendungen zu verbessern und neue und bessere Funktionen zu bieten. Es gibt viele Formfaktoren von NVMe-Solid-State-Laufwerken. Die bekanntesten sind AIC (Zusatzkarte), U.2, U.3 und M.2. NVMe-SSDs nutzen den Hochgeschwindigkeitsbus Peripheral Component Interconnector Express (PCIe) im Computer oder Server, indem sie ihn direkt daran anschließen. NVMe reduziert den CPU-Overhead erheblich und rationalisiert Vorgänge, wodurch die Latenz verringert und die Eingabe-/Ausgabeoperationen pro Sekunde (IOPS) und der Durchsatz erhöht werden. NVMe-SSDs bieten beispielsweise Schreibgeschwindigkeiten von mehr als 3,000 MB/s. Im Vergleich zu SATA-SSDs bedeutet dies: 5x schneller bzw. 30x schneller als rotierende Festplatten.
Bei Verwendung von NVMe werden IOPS parallel ausgeführt, wodurch viele Berechnungen gleichzeitig möglich sind. Große Aufgaben können in mehrere kleinere Aufgaben aufgeteilt werden, die unabhängig voneinander bearbeitet werden können. Ähnlich einer Multi-Core-CPU, die mit mehreren Threads arbeitet. Jeder CPU-Kern könnte unabhängig voneinander arbeiten, um bestimmte Aufgaben auszuführen.
Queue Depths (QD) ist ein weiterer Vorteil von NVMe gegenüber AHCI. Während ACHI und SATA Warteschlangentiefen von 32 (1 Warteschlange und 32 Befehle) verarbeiten können, kann NVMe Warteschlangentiefen von bis zu 65 KB verarbeiten. Dabei handelt es sich um 65-KByte-Warteschlangen, wobei jede Warteschlange bis zu 65 Befehle pro Warteschlange enthalten kann. Zusammen mit der Reduzierung der Latenz beschleunigt dies die Leistung ausgelasteter Server, die gleichzeitige Anforderungen verarbeiten.
Tabelle 2: Warteschlangenvergleich
Das Problem für Rechenzentren bleibt jedoch bei den Speichernetzwerkprotokollen. Obwohl NVMe auf dem Vormarsch ist, sind seine Vorteile auf jedes einzelne Gerät beschränkt. Und Tatsache ist, dass Flash-Speicher und andere (teure) Appliances der Enterprise-Klasse wie AFAs nicht dazu gedacht sind, ihre bemerkenswerte Leistung im Gehäuse zu isolieren. Stattdessen sollen sie in riesigen parallelen Computerclustern verwendet werden und diese mit zusätzlichen und mehreren Geräten verbinden, beispielsweise anderen Servern und Speicher. Diese Verbindung von Geräten nennen wir Fabric, das Speichernetzwerk, einschließlich Switches, Routern, Protokollbrücken, Gateway-Geräten und Kabeln.
Im Jahr 2016 wurde der Industriestandard NVMe-oF eingeführt. Die Protokollspezifikation erweitert die unglaubliche Leistung von NVMe von den Speicher-Array-Controllern auf die Fabric und nutzt dabei Ethernet, Fibre Channel, RoCE oder InfiniBand. NVMe-oF verwendet ein alternatives Datentransportprotokoll (über Fabrics) als Transportzuordnung anstelle des von NVMe verwendeten PCIe-Busses. Fabrics basieren auf dem Konzept des Sendens und Empfangens von Nachrichten ohne gemeinsamen Speicher zwischen Endpunkten. Die NVMe-Fabric-Nachricht transportiert gekapselte NVMe-Befehle und -Antworten in ein nachrichtenbasiertes System, das einen oder mehrere NVMe-Befehle oder -Antworten enthält.
In NVMe-oF werden Ziele als Namespaces dargestellt, was SCSI-LUNs entspricht. Mit NVMe-oF können Hosts mit diesen Speicherzielen über viel größere Entfernungen kommunizieren und dabei die Latenz im Mikrosekundenbereich (μs) extrem niedrig halten. Einfach ausgedrückt: Wir erzielen eine bessere Leistung zwischen Systemen und Flash-Speicher, ohne die Fabric-Latenz wesentlich zu erhöhen. Diese geringe Latenz ist teilweise bei den zuvor genannten NVMe-Warteschlangentiefen möglich. NVMe-oF kann die gleichen Warteschlangen wie NVMe verarbeiten, 65 KB. Diese bemerkenswerte Zahl ermöglicht es NVMe-oF, eine hochparallele Architektur zwischen Hosts und Laufwerken zu entwerfen, wobei für jedes dieser Geräte eine separate Warteschlange verwendet wird.
NVMe Fabrics-Transporte
Drei Arten von Fabric-Transporten, die von NVMe unterstützt und verwendet werden, sind NVMe-oF mit RDMA, NVMe-oF mit Fibre Channel und NVMe-oF mit TCP.
NVMe-oF über RDMA
Diese Spezifikation nutzt Remote Direct Memory Access (RDMA) und ermöglicht die Übertragung von Daten und Speicher zwischen Computer und Speichergeräten über das Netzwerk. RDMA ist eine Möglichkeit, Informationen zwischen dem Hauptspeicher zweier Computer in einem Netzwerk auszutauschen, ohne den Prozessor, den Cache oder das Betriebssystem eines der beiden Computer einzubeziehen. Da RDMA das Betriebssystem umgeht, ist es normalerweise der schnellste und geringste Overhead-Mechanismus für die Datenübertragung über ein Netzwerk.
NVMe-oF über RDMA nutzt das TCP-Transportprotokoll, um Daten über IP-Netzwerke zu liefern. Zu den typischen RDMA-Implementierungen gehören die Virtual Interface Architecture, RDMA over Converged Ethernet (RoCE), InfiniBand, Omni-Path und iWARP. RoCE, InfiniBand und iWARP werden derzeit am häufigsten verwendet.
NVMe über Fibre Channel
Die Kombination der Verwendung von NVMe über Fibre Channel (FC) wird oft als FC-NVMe, NVMe über FC oder manchmal auch NVMe/FC bezeichnet. Fibre Channel ist ein robustes Protokoll für die Datenübertragung zwischen Speicher-Arrays und Servern und wird von den meisten SAN-Systemen in Unternehmen verwendet. In FC-NVMe sind Befehle in FC-Frames gekapselt. Es basiert auf Standard-FC-Regeln und entspricht dem Standard-FC-Protokoll, das den Zugriff auf gemeinsam genutzten NVMe-Flash unterstützt. SCSI-Befehle sind in FC-Frames gekapselt; Bei der Interpretation und Übersetzung in NVMe-Befehle wird jedoch eine Leistungseinbuße verhängt.
NVMe über TCP/IP
Dieser Transporttyp ist eine der neuesten Entwicklungen innerhalb von NVMe-oF. NVMe over TCP (Transport Control Protocol) nutzt NVMe-oF und das TCP-Transportprotokoll, um Daten über IP-Netzwerke (Ethernet) zu übertragen. NVMe wird in TCP-Datagrammen über Ethernet als physischen Transport transportiert. Trotz RDMA und Fibre Channel stellt TCP wahrscheinlich eine günstigere und flexiblere Alternative dar. Darüber hinaus verhält sich NVMe/TCP im Vergleich zu RoCE, das ebenfalls Ethernet verwendet, eher wie FC-NVMe, da es Messaging-Semantik für I/O verwendet.
Durch die Verwendung von NVMe-oF mit RDMA, Fibre Channel oder TCP entsteht eine vollständige End-to-End-NVMe-Speicherlösung. Diese Lösungen bieten eine besonders hohe Leistung und behalten gleichzeitig die sehr niedrige Latenz bei, die über NVMe verfügbar ist.
NVMe über RDMA über Converged Ethernet (RoCE)
Unter den RDMA-Protokollen sticht RoCE hervor. Wir wissen, was RDMA und NVMe-oF sind, und jetzt haben wir Converged Ethernet (CE), die Unterstützung von RDMA über ein Ethernet-Netzwerk. CE ist wie eine erweiterte Ethernet-Version, auch bekannt als Data Center Bridging und Data Center Ethernet. Es kapselt das InfiniBand-Transportpaket über Ethernet. Seine Lösung bietet den Link Level Flow Control-Mechanismus, um sicherzustellen, dass kein Verlust auftritt, selbst wenn das Netzwerk gesättigt ist. Das RoCE-Protokoll ermöglicht geringere Latenzen als sein Vorgänger, das iWARP-Protokoll.
Es gibt zwei RoCE-Versionen, RoCE v1 und RoCE v2. RoCE v1 ist ein Ethernet-Layer-2-(Link-)Protokoll, das die Kommunikation zwischen zwei Hosts in derselben Ethernet-Broadcast-Domäne ermöglicht. Es ist also kein Routing zwischen Subnetzen möglich. Die neue Option ist RoCE v2, ein Protokoll, das entweder auf dem UDP/IPv4- oder dem UDP/IPv6-Protokoll aufsetzt. RoCE v2 ist ein Ethernet Layer 3 (Internet)-Protokoll, was bedeutet, dass seine Pakete weitergeleitet werden können. Die Softwareunterstützung für RoCE v2 ist noch im Entstehen begriffen. Mellanox OFED 2.3 oder höher bietet RoCE v2-Unterstützung und auch Linux Kernel v4.5.
NVMe over RoCE ist eine neue Art von SAN. Dieses Protokoll bietet die gleiche Leistung und Flexibilität von Unternehmensdatendiensten wie SAN-Hardware und -Software. Obwohl das RoCE-Protokoll von den Eigenschaften eines konvergenten Ethernet-Netzwerks profitiert, kann das Protokoll auch in einem herkömmlichen oder nicht konvergenten Ethernet-Netzwerk verwendet werden. Um NVMe über RoCE-Speicher-Fabric zu konfigurieren, müssen NIC, Switch und AFA Converged Ethernet unterstützen. Die NIC (R-NIC genannt) und das All-Flash-Array müssen RoCE unterstützen. Server mit R-NICs und AFAs mit NVMe-über-RoCE-Schnittstellen funktionieren per Plug-and-Play mit installierten CE-Switches.
NVMe-oF über RoCE-Unterstützung für VMware
VMware hat Unterstützung für gemeinsam genutzten NVMe-Speicher mithilfe von NVMe-oF hinzugefügt. Für externe Konnektivität werden NVMe über Fibre Channel und NVMe über RDMA in vSphere 7.0 unterstützt. ESXi-Hosts können RDMA über Converged Ethernet v2 (RoCE v2) verwenden. Um NVMe-Speicher über RDMA zu aktivieren und darauf zuzugreifen, verwendet der ESXi-Host einen R-NIC-Adapter auf Ihrem Host und einen SW-NVMe-über-RDMA-Speicheradapter. Die Konfiguration muss in beiden Adaptern konfiguriert werden, um sie für die NVMe-Speichererkennung zu verwenden.
Ziele werden einem Host als Namespaces im Aktiv/Aktiv- oder asymmetrischen Zugriffsmodus (ALUA) präsentiert, wenn NVMe-oF verwendet wird. Dadurch können ESXi-Hosts die bereitgestellten Namespaces erkennen und verwenden. ESXi emuliert NVMe-oF-Ziele intern als SCSI-Ziele und präsentiert sie als Aktiv/Aktiv-SCSI-Ziele oder implizite SCSI-ALUA-Ziele.
NVMe über RDMA-Anforderungen:
- NVMe-Array, das den RDMA-Transport (RoCE v2) unterstützt
- Kompatibler ESXi-Host
- Ethernet-Switches unterstützen ein verlustfreies Netzwerk.
- Netzwerkadapter, der RoCE v2 unterstützt
- SW NVMe über RDMA-Adapter
- NVMe-Controller
- RoCE läuft heute über verlustbehaftete Fabrics, die ZTR (Zero Touch RoCE) unterstützen, oder erfordert ein konfiguriertes Netzwerk für verlustfreien Informationsverkehr auf Layer 2 allein oder sowohl auf Layer 2 als auch auf Layer 3 (mit PFC).
Beim Einrichten von NVMe-oF auf einem ESXi-Host sollten einige Vorgehensweisen befolgt werden.
- Mischen Sie keine Transporttypen, um auf denselben Namespace zuzugreifen.
- Stellen Sie sicher, dass dem Host alle aktiven Pfade angezeigt werden.
- NMP wird nicht verwendet/unterstützt; Stattdessen wird HPP (High-Performance Plugin) für NVMe-Ziele verwendet.
- Sie müssen über dedizierte Links, VMkernels und RDMA-Adapter zu Ihren NVMe-Zielen verfügen.
- Dedizierte Layer-3-VLAN- oder Layer-2-Konnektivität
- Grenzen:
-
- Namespaces-32
- Pfade=128 (maximal 4 Pfade/Namespace auf einem Host)
Schlussfolgerung
Da immer mehr Menschen auf Daten in Cloud-Diensten angewiesen sind, besteht eine wachsende Nachfrage nach schnellerem Back-End-Speicher in Rechenzentren. NVMe ist eine neuere Art der Verbindung mit Flash-Geräten, und zusammen mit NVMe-oF haben die Technologien externe Konnektivitätsoptionen weiterentwickelt. NVMe-oF und seine verschiedenen Transportarten werden zunehmend als die Zukunft der Datenspeicherung erkannt. Diese Speichergeräte und -geräte gelten als das Herzstück von Rechenzentren, da in der vernetzten Struktur jede Millisekunde zählt. Die NVMe-Technologie reduziert speicherzugeordnete Ein-/Ausgabebefehle und unterstützt Gerätetreiber des Betriebssystems für höhere Leistung und geringere Latenz.
NVMe erfreut sich aufgrund seiner Multitasking-Geschwindigkeit bei geringer Latenz und hohem Durchsatz immer größerer Beliebtheit. Während NVMe auch in Personalcomputern zur Verbesserung von Videobearbeitung, Spielen und anderen Lösungen eingesetzt wird, zeigt sich der eigentliche Nutzen im Unternehmen durch NVMe-oF. Branchen wie IT, künstliche Intelligenz und maschinelles Lernen entwickeln sich weiter und die Nachfrage nach verbesserter Leistung wächst weiter. Mittlerweile ist es üblich, dass Software- und Netzwerkanbieter wie VMware und Mellanox mehr NVMe-oF-bezogene Produkte und Lösungen für den Unternehmensmarkt bereitstellen. Bei modernen und massiv parallelen Computerclustern gilt: Je schneller wir unsere Daten verarbeiten und darauf zugreifen können, desto wertvoller sind sie für unser Unternehmen.
weitere Info
Speicherhub: VMware NVMeoF vSphere
NetApp AFF A800 NVMeOF-Testbericht
Beteiligen Sie sich an StorageReview
Newsletter | YouTube | Podcast iTunes/Spotify | Instagram | Twitter | Facebook | RSS Feed