SAS, NVMe, M.2, SFF-8639, PCIe - Welche Technologie ist die richtige für Flash?

In Bezug auf Performance bin ich ein sehr anspruchsvoller PC Benutzer. Sie kennen den Effekt bestimmt auch:

Man kauf sich neue Komponenten, freut sich über das mehr an Performance und nach ein paar Wochen ist der ganze Effekt schon wieder verpufft, weil man sich sehr schnell an die höhere Geschwindigkeit gewöhnt hat.

 

Genau deswegen bin ich schon relativ früh auf SSD´s in meinem privaten Rechner umgestiegen. Meine erste SSD war eine Corsair X128 mit 128GB Kapazität zu einem Preis von satten € 377,- (Dezember 2009). Und ich muss sagen: SSD´s haben für mich den größten Performancegewinn der letzten 5-10 Jahre bewirkt. Damals war SATA II (3 GBit/sec) noch Standard. Bald danach kam dann das SATA 3 (6GBit/sec) Interface in´s Rollen. Dann musste natürlich auch eine SATA 3 SSD her.

Derzeit ist das auch das Ende der Fahnenstange für Consumer SSD´s. Bei gut über 500MB/sec (max. sequential Read) ist das Maximum ausgereizt. Der SATA 3 Bus ist für die modernen SSD´s der Flaschenhals und alle Hersteller von SATA 3 SSD´s kämpfen nur noch im Nachkommabereich um die „Performancekrone“.

 

Lange Zeit hat sich da nichts getan. So ganz nebenbei: Meine über 5 Jahre alte Corsair SSD tut immer noch ihren Dienst und liegt derzeit erst bei ca. 25%iger „Abnutzung“. Außerdem werkeln mittlerweile 7 SSD´s in meinen 2 PC´s.

 

Im Enterprise Bereich ist das 12 GBit/s SAS Interface auch erst seit 2013 im Standard verankert. Eine vierte Ausbaustufe mit 24 GBit/s ist in Planung und wird voraussichtlich 2016/17 erscheinen

Folgende Performance Werte sind mit derzeit aktuellen SAS SSD´s erreichbar:

Read Throughput (max MB/s, sequential 64K): 1100 

Write Throughput (max MB/s, sequential 64K): 765 

https://www.hgst.com/solid-state-storage/enterprise-ssd/sas-ssd/ultrastar-ssd1600mm

Auch da ist man bereits am maximal möglichen der Schnittstelle angekommen. Also limitiert auch im Enterprise Bereich das Interface den Durchsatz. 

 

Welche Alternativen gibt es denn nun? Die Antwort ist: Die Anbindung von Flash Storage direkt an den PCIe Bus.

Jetzt werden Sie vielleicht sagen: „Das ist schon ein alter Hut“. Aber das stimmt nur teilweise. Denn erst seit kurzem ist es möglich bis zu 4 PCIe 3.0 Lanes direkt mit der CPU zu verbinden. Und erst mit dieser Konstellation ist auch der PCIe Bus kein Bottleneck mehr für aktuelle SSD´s.

Derzeit können SSD´s (über M.2 Interface oder über SFF-8639) direkt an bis zu 4 PCIe Lanes angebunden werden. Das ergibt bei PCIe 3.0 eine maximale theoretische Übertragungsrate von 32GT/sec.  Erste Produkte, die auch mit dem für Flash optimierten NVMe Protokoll arbeiten, sind bereits am Markt verfügbar:

https://www.hgst.com/solid-state-storage/enterprise-ssd/pcie-ssd/ultrastar-sn100-series

 

Mit 3 GByte/sec. Ist man bereits nahe am theoretischen Maximum (3938MB/sec) der Schnittstelle. Aber es ist noch fast 1GB/sec Luft nach oben und insofern stellt diese Schnittstelle (derzeit) keinen Engpass mehr dar. Der Performancesprung ist wirklich gewaltig und bei der Latenz redet man nicht mehr von ms sondern von Mikrosekunden. Auch mit der nächsten SAS Generation wird man diesen Durchsatz/Latenz nicht erreichen können.

 

Wie steht es nun mit PCIe SSD´s im Enterprise Bereich?

Wenn man sich eine aktuelle Server CPU anschaut wird die Problematik schnell offensichtlich. Ein Xeon Haswell-EP mit 18 Cores/36 Threads hat 40 PCIe 3.0 Lanes. Wenn man jetzt bedenkt dass allein eine single Port 10 GBit Ethernet Karte bereits 8 PCIe Lanes belegt, stellt man sehr schnell fest dass für PCIe SSD´s schlicht und einfach nicht genug Lanes übrig bleiben. Das theoretische maximum bei einem dual Socket Haswell-EP System wäre 20. Aber wie gesagt, Ethernet, Fibre Channel, Infiniband, SAS etc. brauchen auch alle ihre PCIe Lanes. 4 SSDs pro dual Socket System halte ich aber persönlich für gut machbar.

 

Mit der oben erwähnten SSD von HGST würde man dann auf eine maximale Brutto Kapazität von 12,8 TB kommen. Der nächste Engpass dürfte dann ziemlich schnell die CPU werden. Die Daten, die mit dieser Wahnsinns Geschwindigkeit über den PCIe Bus kommen, wollen ja schließlich auch verarbeitet werden.

 

Mein Fazit: Der Schritt zur Anbindung von Flash Storage an den PCIe Bus ist längst überfällig und beseitigt endlich den Schnittstellen Engpass. Im Enterprise Bereich kann diese Technologie derzeit sinnvoll als Cache oder direkt im Server eingesetzt werden. Damit rückt das NVRAM wieder ein (großes) Stück näher an die CPU. 

Nebenbei: Mein neuer PC kriegt eine SM951 M.2 PCIe SSD von Samsung spendiert Smiley Very Happy

 

Was man derzeit aus einer FAS8080EX in einer All Flash Konfiguration an Performance herausholen kann, sehen Sie in dem aktuellen SPC-1 Benchmark:

http://www.storageperformance.org/results/benchmark_results_spc1_top-ten/

Comments

Wenn NetApp standardisierte NVMe-Devices benutzt, besteht kein Bedarf mehr an PAM-Karten, oder? Die Anzahl der PCIe-Lanes sehe ich auch bei Servern nicht unbedingt als kritisch an, schliesslich haben auch die Toaster groessere Mengen PCIe-Switch-Chips verbaut. Und auch trotz Ueberbuchung kommt da ganz schoen Bandbreite zusammen, das muss die CPU erstmal wegschaffen. Aber ja... NVMe ist die Zukunft.

New Contributor

Hallo Herr **bleep**ner,

 

bzgl. PAM Karte gibt es mehrere Alternativen:

1.) Wie Sie richtig vermuten könnte man eine oder mehrere NVMe SSD´s mit einer SFF-8639 Verbindung direkt an den Kontroller anschliessen

2.) Über Raiser Cards mit einer direkten PCIe Verbindung (ähnl. wie M.2). Dann hätte man doch wieder sowas wie FlashCache Karten

 

Es wird wahrscheinlich darauf ankommen wie sich das SFF-8639 Interface im Markt etabliert