stefanovi - Fotolia
NVMe SSDs: Leistung und Einsatzzwecke
NVMe Solid-State Disks eröffnen neue Geschwindigkeitsdimensionen. Die erforderliche Leistung bietet Raum für neue Einsatzszenarien im Rechenzentrum.
Seit vielen Jahren sind SAS- und SATA-Festplatten die bevorzugten Medien für Rechenzentren. Die Einführung von NAND-Flash hat SAS- und SATA-Geräte aufgrund von Einschränkungen beim Speicherprotokoll an ihre Leistungsgrenzen gebracht.
Um den Flash vollständig auszunutzen, hat die Speicherindustrie ein neues Protokoll entwickelt – Non-Volatile Memory Express (NVMe).
Dank dieser Architektur können Speicher-Array-Anbieter und Endanwender das Leistungspotenzial von Flash nutzen und eine bessere Leistung von NVMe Solid-State Disks (SSDs) und anderen Speichergeräten erzielen.
Hintergrund
Speichergeräteprotokolle wurden sowohl auf Server- als auch auf Consumer-basierten Geräten entwickelt. Advanced Technology Attachment (ATA) entstand aus der PC-Architektur, die später PATA (Parallel ATA) und dann SATA (Serial ATA) wurde. SCSI wurde in den späten 1970er Jahren als eine serverbasierte Verbindung für Festplatten und andere Speichergeräte wie Band entwickelt. Aus all diesen Protokollen bildete sich schließlich Serial-Attached-SCSI oder SAS.
SCSI ist das zugrunde liegende Speicherprotokoll für Fibre-Channel-basiertes Storage Area Network (SAN) und iSCSI-Ethernet-Netzwerke. (Wir werden später auf die Auswirkungen von NVMe auf Speichernetzwerke eingehen.)
Auch heute benötigen sowohl SAS- als auch SATA-Protokolle für den Betrieb einen Host-Bus-Adapter oder einen Chipsatz-Controller. Dies gilt auch für Fibre Channel und iSCSI.
SAS und SATA stammen aus einer Zeit, in der physische Speichermedien im Vergleich zu Prozessoren und Systemspeicher langsam waren. Die Zugriffszeiten der Festplatten wurden in Millisekunden im Vergleich zu Nanosekunden für Speicher gemessen – etwa sechs Größenordnungen oder 1 Million Mal schneller.
NAND-Flash-SAS- und SSD-Geräte liegen irgendwo bei etwa 100 Mikrosekunden, immer noch um viele Größenordnungen schneller als herkömmliche Festplatten.
Mit dieser Leistungsverbesserung beim Übergang von HDD zu SSD traten Probleme mit den SAS- und SATA-Protokollen auf. Beide bieten nur einzelne Warteschlangen für den Zugriff auf I/O, wobei SATA eine relativ kleine Warteschlangentiefe von 32 hat. SAS ist besser bei etwa 254, aber mit nur einer I/O-Warteschlange wird die parallele Verarbeitung des Schreibvorgangs nicht vollständig auf NAND-Flash-Medien ausgenutzt.
Was ist NVMe?
NVMe (Non-Volatile Memory Express) ist ein neues Protokoll, das viele der Nachteile von SAS und SATA behebt. Dies beinhaltet eine direktere Verbindung zum Prozessor, optimierte I/O-Kanäle und einen vereinfachten Software-Stack. NVMe-Geräte sind so konzipiert, dass sie sich mit dem PCIe-Root-Komplex verbinden und sie näher an den Prozessor heranführen, der auf der so genannten Northbridge sitzt. Dies reduziert die Latenz und bietet neue Möglichkeiten, mit fernverbundenen Geräten zu kommunizieren.
Festplattenhersteller haben NVMe in einer Reihe von Formfaktoren implementiert, darunter Standard-Zusatzkarten, die in PCIe-Motherboard-Steckplätze eingesteckt werden, 2,5-Zoll-Laufwerke, die einen NVMe-Schnittstellenadapter benötigen, und kleinere M.2-Geräte, die DIMMs ähneln.
Die spezifische Wahl des Geräts kann durch eine Kombination von Kapazität, Leistung und Umweltanforderungen wie Leistung und Raum bestimmt werden. In der Regel sind M.2- und Add-In-Karten nicht Hot-swap-fähig. Durch die Verwendung mehrerer I/O-Warteschlangen bietet NVMe Parallelität – bis zu 64.000 – und größere Warteschlangentiefen – ebenfalls bis zu 64.000.
Flash-Speicher sind in der Lage, viele Anforderungen parallel zu verarbeiten, da die Geräte aus mehreren NAND-Chips aufgebaut sind. Jeder von ihnen enthält viele einzelne Siliziumchips. Daher ist es sinnvoll, Anfragen parallel zu bearbeiten, um die beste Bandbreite zu erhalten.
Die Vereinfachung des I/O-Stacks umfasst neue Signalisierungsmethoden, mit denen angezeigt wird, wann I/O-Anforderungen zur Verarbeitung bereit sind. Dies schließt das Türklingelkonzept ein, bei dem das NVMe-Gerät dem Host eine I/O-Vervollständigung signalisiert, anstatt dass der Host den Status kontinuierlich überprüfen muss. Dieser Prozess verspricht Einsparungen beim CPU-Overhead auf dem Server und weniger Zeit für die Verarbeitung der einzelnen I/O in der Software.
Neue Speicherarchitekturen
Die Einführung von NVMe-SSDs führt zu einer Reihe neuer Speicherarchitekturen, von denen einige auf dem aufbauen, was wir heute am Markt vorfinden. Serverhersteller wie Dell EMC und Hewlett Packard Enterprise unterstützen bereits NVMe-Laufwerke in herkömmlichen PCIe-Steckplätzen oder den 2,5-Zoll-Formfaktor über Adapterkarten.
Dieser Ansatz ermöglicht es, NVMe in eine eigenständige Serveranwendung oder als Teil einer hyperkonvergenten Infrastruktur (HCI) zu integrieren. Die meisten Betriebssysteme unterstützen NVMe bereits. Daher gibt es kaum oder gar keine Probleme mit Treibern oder Kompatibilität.
Plattformen wie VMware vSphere unterstützen auch NVMe. Wir haben deutliche Leistungsverbesserungen bei HCI von Unternehmen wie Scale Computing und X-IO Technologies mit seinen Edge-Computing-Systemen von Axellio festgestellt.
Was ist aber mit NVMe in einem herkömmlichen Speicher-Array?
Einige Anbieter haben Produkte als NVMe-fähig angekündigt, die NVMe-SSD (Solide-State Drive) akzeptieren. Physikalisch bedeutet dies lediglich, dass sie die NVMe-Konnektivität unterstützen und die gleiche Funktionalität bieten, die mit SAS und SATA verfügbar war, zum Beispiel das Hot-Swap von ausgefallenen Laufwerken oder das Hinzufügen dynamischer Kapazität.
Es gibt ein potenzielles Problem mit herkömmlichen Architekturen, das dazu führt, dass die Vorteile von NVMe nicht vollständig ausgeschöpft werden. Ein typisches einzelnes NVMe-Laufwerk kann 300.000 oder mehr zufällige Lese-IOPS (Input/Output Operations per Second) und 40.000 bis 50.000 Schreib-IOPS mit bis zu 3 Gigabytes pro Sekunde Lese- und 1 GBPS Schreibdurchsatz liefern.
Das ist mindestens eine Größenordnung größer als bei SAS- und SATA-Solid-State-Laufwerken. Selbst wenn Sie ein Dutzend dieser Geräte in einem Server einsetzen, könnten selbst die neuesten Xeon-Prozessoren diese Geräte nicht annähernd an ihre Fähigkeiten heranführen. Darüber hinaus wäre eine Frontend-Konnektivität mit Fibre Channel beispielsweise nicht in der Lage, den Durchsatz zu liefern, der erforderlich ist, um diese Laufwerke beschäftigt zu halten.
Dies stellt ein Problem für Anbieter dar, die vorhandene Produkte auf NVMe aktualisieren möchten. Die Leistung wurde erhöht, da die Beschränkungen für den SAS- und SATA-Durchsatz beseitigt wurden. Die Controller-basierte Architektur wird jedoch der nächste Engpass. Die Lösung dafür würde bedeuten, Scale-Out oder neue Architekturtypen zu verwenden.
Disaggregierter Speicher
Hersteller, insbesondere Start-ups, trennen die Daten- und Steuerpfade eines traditionellen Arrays. Dieser Disaggregierungsansatz ermöglicht es Hostservern, direkt in NVMe-Laufwerke über Hochgeschwindigkeitsnetzwerke zu schreiben.
Anstatt traditionelle Fibre Channel zu verwenden, implementieren Anbieter Storage-Netzwerke mit Converged Ethernet und InfiniBand. Technologien wie Remote Direct Memory Access über konvergiertes Ethernet und Internet Wide-Area-RDMA-Protokoll ermöglichen es Host-Servern, direkt mit einem NVMe-Laufwerk zu kommunizieren, ohne einen herkömmlichen Speicher-Controller durchlaufen zu müssen.
Unternehmen, darunter E8 Storage und Apeiron Data Systems, haben neue Speicherprodukte entwickelt, die NVMe SSDs in ein Speichergehäuse integrieren, das Funktionen wie Hot-Swap-fähige Laufwerke und zentrale Überwachung und Verwaltung bietet. Der Datenpfad zwischen dem Gehäuse und dem Host fließt über Ethernet – normalerweise 40 und 100 Gigabit Ethernet – ohne Zwischencontroller.
Um dieses Modell zu unterstützen, müssen Host-Server über RDMA- oder InfiniBand-fähige Netzwerkkarten verfügen und vom Anbieter bereitgestellte Client-Software und -Treiber ausführen. Der Bedarf an Treibern liegt auf der Hand. Zusätzliche Client-Software wird benötigt, um die Metadaten zu verwalten, die LUNs und Volumes definieren, die jedem Host zugeordnet sind.
Die Funktionen, die der Controller in einem Array ausführen würde, werden auf den Client verteilt, was zu einem gewissen Mehraufwand, aber auch zu einer erheblichen Verbesserung der I/O-Leistung führt.
Excelero hat einen anderen Weg eingeschlagen und ein softwarebasiertes Angebot entwickelt, das für Hyper-Konvergenz genutzt werden kann. NVMesh ist eine Software, mit der mehrere Server über Ethernet oder InfiniBand miteinander verbunden werden können und jeder Server auf ein beliebiges NVMe-Gerät schreiben kann.
Excelero verwendet sein proprietäres Remote Direct Drive Access- oder RDDA-Protokoll, das lineare Skalierung und nahezu hundertprozentige Nutzung der Leistung jedes NVMe-Laufwerks beansprucht.
Der Hersteller erreicht diese geforderte Leistung, da Remote-Hosts direkt mit den Laufwerken in einem anderen Server kommunizieren können, als ob das Laufwerk auf dem lokalen PCIe-Bus wäre, und die CPU umgeht, auf der das Laufwerk installiert ist.
Klassisches Storage Area Networking
Wie sieht es mit der Zukunft traditioneller Netzwerke wie Fibre Channel aus? Wir haben bereits die Verwendung von NVMe über Fabrics mit schnellen Netzwerken wie InfiniBand und Ethernet besprochen.
Die NVM Express-Arbeitsgruppe entwickelt einen Standard für die Verwendung von NVMe mit bestehenden Fibre Channel-Netzwerken, bekannt als FC-NVMe. Es wird erwartet, dass Produkte, die auf dem neuen Standard basieren, mit vorhandener Hardware arbeiten können, allerdings mit einer Einschränkung: In wie weit funktionieren sie mit älteren Host-Bus-Adaptern?
Dies bedeutet, FC-NVMe sollte vorhandene Technologie unterstützen und die Leistungssteigerung durch die Verwendung von NVMe anstelle des SCSI-Protokolls erzielen. Zudem sollte es nicht nötig sein, die neueste Fibre-Channel-Technologie herauszulösen und zu ersetzen.
Anwendungsfälle identifizieren
Wie sehen die wahrscheinlichen Anwendungsfälle für NVMe aus – eine Technologie, von der Kosteneinsparungen erwartet werden? Wenn wir auf die Anfänge von SSDs und All-Flash-Speicher zurückblicken, gibt es eine Parallele zur Einführung von NVMe.
Solid-State-Laufwerke waren anfangs teuer und wurden als Server-Cache und für bestimmte Anwendungen verwendet, bei denen die Latenz ein Problem war. Diese Möglichkeit erstreckte sich auf All-Flash-Systeme, mit denen Anwendungen repariert wurden, die zu teuer waren, um sie neu zu schreiben.
NVMe wird zweifellos den gleichen Weg verfolgen. NVMe innerhalb des Servers liefert Flash mit niedriger Latenz, um die Anwendungsleistung zu verbessern. Im Vergleich zur Umstellung von HDD auf SSD reduziert NVMe Flash den Applikations-Overhead, bietet aber auch eine wesentlich bessere Ressourcenauslastung als bisher.
Auf Array-Ebene verbessert NVMe die Latenz und den Durchsatz. Die Disaggregation bietet eine geringe Latenz, jedoch ohne die ausgereiften Features wie Deduplizierung und Komprimierung, die auf All-Flash-Arrays bereitgestellt werden. Dies kann zu einer langsameren NVMe-Einführung führen, da viele All-Flash-Systeme im Verhältnis von einem Dollar pro Gigabyte verkauft wurden, wodurch die Einsparungen durch die Deduplizierung genutzt wurden.
Heute sehen wir Anwendungsfälle von Anwendungs-NVMe wie Hochfrequenz-Finanzhandel, Hochleistungsanalysen und andere latenzempfindliche Anwendungen. NVMe eignet sich auch gut für traditionelle Anwendungen wie relationale Datenbanken, bei denen die Reaktionszeit der einzelnen I/O-Komponenten entscheidend ist.
Storage-Class-Speicher
Mit Blick auf die Zukunft sehen wir neue Klassen von persistentem Speicher, wie 3D XPoint, auch bekannt als Intel Optane. Diese Technologie bietet geringere Latenzen als Flash und eine höhere Lebensdauer, die mit aber höheren Kosten pro Gigabyte verbunden ist.
Inzwischen gibt es eine Hierarchie von NVMe-aktivierten persistenten Speichergeräten mit einer Reihe von Eigenschaften. Die Zukunft verteilter Systeme und gemeinsam genutzter Speicher wird wahrscheinlich eine Mischung aus Technologien sein, die die Funktionen jedes dieser Medientypen nutzen.
Sollten Sie zu NVMe wechseln? Nun, das hängt von Ihren Anforderungen ab. NVMe-SSDs und Optane-Laufwerke bieten ein weiteres Werkzeug in dem Portfolio des Speicher-Administrators. Sie stellen mehr Optionen für Preis, Leistung und Ausdauer zur Verfügung. Wenn Sie den Bedarf haben, dann könnte NVMe der richtige Weg für Sie sein.
Folgen Sie SearchStorage.de auch auf Twitter, Google+, Xing und Facebook!