Was haben Sofware Defined Networks, FLASH SSDs, PCIe und SATA gemeinsam?

Starnberg, 23. Jan. 2013 – Der nächste I/O-Flaschenhals ist in Sicht – oder warum SSD und Caching alleine noch keine skalierbare Lösung darstellt...

Um was es hier geht: SSDs mit SATA (und SAS-Interface im High End) sind heute Standard-Optionen bei hybriden Storage-Arrays, einschließlich Disk-Caching-Unterstützung. Die Laufwerke selbst sind dabei über SATA -(SAS-) Controller angeschlossen, während das Controller-Interface zur Host-CPU meist über PCIe Schnittstelle kommuniziert. Einige RAID-Controller bieten zusätzliche Funktionen wie hierarchische Cache-Unterstützung, um Flash-Drives den optimierten Zugriff auf die Festplatten im Subsystem-Array zu ermöglichen (Caching Apps).

Man muss kein Prophet sein um zu behaupten, dass in absehbarer Zeit immer mehr FLASH-only Arrays auf den Markt kommen werden. Leistungshungrige Applikationen und die Preisentwicklung im NAND-Bereich unterstützen jedenfalls diesen Trend. Damit entsteht jedoch ein potentiell neues I/O-Problem. Wurde bislang die hohe Latenz der langsameren (mechanischen) Festplatten (ca. 300 IOPS) durch den Einsatz von schnellen SSDs kompensiert, so taucht bei einer massiven Skalierung von FLASH Drives mit SATA ein neuer E/A-Flaschenhals auf.

SATA ist eine preiswerte und bewährte Storage-Schnittstellen für HDDs, wurde jedoch nicht für sehr schnelle low-latency Flash-Drives entwickelt (erste SATA-Produkte bereits aus 2002); sowohl der Protokoll-Overhead, das Boarddesign inkl. Kabel und die zur Verfügung stehende Bandbreite sprechen dagegen. Dies ist der Grund, warum SATA Express (SATAe) in der Entwicklung ist. Die Datentransferrate der ersten SATA-Express-Generation, die mit PCIe 3.0 arbeitet, liegt bei 1 GB/s (zum Vergleich: SATA 6G = 600 MB/s).

Vermehrt tritt deshalb der schnelle PCIe für SSDs auf den Plan, unterstützt durch die rasche Zunahme von Caching-Applikationen im Host. Ursprünglich für Desktops und Server entwickelt, erkannte man im Kontext von FLASH-/Caching jedoch die Leistungsfähigkeit des Designs, obwohl es sich eigentlich um kein Storage-Interface wie SATA handelt. Nach und nach wurden von verschiedensten Anbietern-/Entwicklern mehr Storagefunktionen (z.B. RAID, Hot-Plug-Fähigkeit, End-to-End-Data Protection etc.) implementiert und so finden sich derzeit viele FLASH-PCIe-Varianten am Markt. Begrenzte lineare Skalierung für schnellere FLASH-Memory-Module und die mangelnde Standardisierung sind jedoch eine gewisse Kehrseite dieser Entwicklung. Beispiel: Aktuelle PCIe-basierte Flash-Controller sind zwar sehr leistungsfähig, besitzen jedoch herstellerspezifische Treiber und sind damit auf den Einsatz bestimmter (Hersteller-) Konfigurationen hin optimiert, d.h. begrenzt (z.B. Fusion-io).

Es wird also wichtig sein, in naher Zukunft einen möglichst verbindlichen Standard für Treiber zu besitzen, der unabhängig von herstellerspezifischen (proprietären) Implementierungen arbeitet, aber low-latency-Devices Performanceseitig möglichst optimal unterstützt. Die Lösung hierfür lautet NVM Express (NVMe): Als skalierbares offenes Host-Controller-Interface wurde es von einem hierzu gegründeten Industrie-Konsortium im März 2011 als Standard vorgeschlagen; gegenüber Betriebssystemen wie Linux oder Windows soll ein generischer NMVe-Driver zu allen hierzu kompatiblen Controllerchips fungieren (Hersteller wie Micron arbeiten z.B. bereits an einem Flash-Controller mit  SLC-NAND on-board, der mit NVMe arbeitet (bis zu 200.000 Write – IOPS / bis 3 GB/s).

Vorteil: Es wird damit nur mehr ein Standard-NVM Express Treiber für Window-/Linux benötigt, um das Performance-design und die Leistungsvorteile des Controllers für Flash auszuschöpfen. Der neue Standard unterstützt auch Funktionen wie Verschlüsselung, Bootsupport sowie I/O-Virtualisierung für komplexere VM-Konfigurationen. Mehrere I/O-Karten können zusammengefasst werden, um entsprechend hohe Kapazitäten bzw Transferraten zu erreichen.

Fazit 

NVM Express wird eine Standardschnittstelle für SSDs mit direkter PCI-Express-Anbindung sein, die mit einem offenen generischen Treiber unter verschiedenen Betriebssystemen funktioniert. FLASH Storage muss damit in Zukunft nicht mehr über eine SATA-Schnittstelle mit dem Chipsatz verbunden werden, sondern arbeitet direkt mit der PCIe-Schnittstelle. SATA Express enthält spezifische Funktionen, damit PCIe-SSDs mit n-Core-CPUs leistungsoptimiert betrieben werden können.

NVMe garantiert einen schnellen, standardisierter Ansatz für den Datenzugriff auf Flash-Storage-Systeme und wird – falls mit Nachdruck von allen wesentlichen Herstellern unterstützt - in naher Zukunft ein wichtiger Bestandteil einer leistungsfähigen Speicherarchitektur sein.

Damit erklärt sich vielleicht auch die Frage in der Überschrift zu diesem Blog „Was haben Sofware Defined Networks mit FLASH SSD, PCIe und SATA gemeinsam"? In Verbindung mit SDN, next gen. SAN und hochgradig virtualisierten Storage-/Server-Systemen bilden diese optimierten Infrastruktur-Technologien (Software, Hardware) eine flexibel skalierbare und belastbare Basis für die steigenden betrieblichen Anwendungsanforderungen innerhalb von modernen Rechenzentren.

Im Anhang finden Sie einen Auszug aus der Liste der Unternehmen (derzeit über 90), die NVMe derzeit bereits unterstützen (Quelle: NVMe Consortium). Weitere Detail direkt auf der folg. Webseite:

http://nvmexpress.org  

AnhangGröße
PDF icon NVM_Member_List.pdf46.73 KB