All-FLASH Storage Arrays vs. Form-Faktor FLASH SSDs - Eine Standortbestimmung

Starnberg, 17. Jan. 2013 – Welche Low-Latency-Flashtechnologie ist derzeit im Rechenzentrum für Tier-1 high-performance Applikationen sinnvoll...

Zum Hintergrund: FLASH-Arrays sind Anwenderseitig ein viel diskutiertes Thema und diverse Start-Up’s wie Pure Storage, Whiptail, Nimbus, Violin Memory, X-IO, Tintri, Smart Storage Systems etc. sowie traditionelle Storageanbieter beschäftigten sich damit mehr oder weniger intensiv (Aquisitionen, Beta-Tests, neue Produktentwicklungen, OEM-Partnerschaften etc.). Die Performance und der Funktionsumfang von Flash (NAND) Storage Arrays als komplettes Speichersystem wird maßgeblich durch hierfür entwickelte Flash-Controller (Hardware, Software, Firmware) bestimmt. Erst durch das spezifische Design dieses Memory-Subsystem-Controllers wird ein NAND Flash-Array wirklich schnell, flexibel einsetzbar und vor allem zuverlässig !

Ich beschäftige mich in diesem Blog deshalb vor allem mit der Frage welche Kriterien inkl. TCO aus Sicht eines Rechenzentrums (aus technologischer Sicht) bei der Beschaffung von NAND-Storage (SSD + All-Flash-Arrays) für Tier-1 Applikationen zu beachten sind (natürlich spielen daneben auch noch weitere Faktoren wie die Unternehmensgröße, Standort, Beschaffung, Branding, Referenzinstallationen, Zertifizierung, Support eine Rolle).

1. SSD Storage (Form-Faktor-Drives):

SSDs kosten derzeit zwischen 50% und 100% mehr als Flash-Memory. Dies liegt daran, dass sie vom Formfaktor her wie normale Festplatten (HDD) mit SAS-/SATA- bzw. FC-Interface ausgestattet sind und sich gegenüber dem Betriebssystem (O/S) auch so verhalten. Meist werden diese dann entweder direkt im Server oder im Rahmen einer Tiered-Storage-Konfiguration zusammen mit Standard-HDDs im Rack eines Speichersystems verbaut, d.h. direkt an den Array-Controller des Subsystems bzw. im SAN angeschlossen. Aus I/O-Performance- und CAPEX-Sicht unterliegt dieses klassische Modell (bereits seit Ende 1980 mit DRAMs am Markt) dabei einigen architekturbedingten Randbedingungen:

  • Standard FC, SAS, SATA – Systeme wurden für Latenzen im Millisekunden -Bereich (ms) konzipiert, während NAND im Microsekunden - Bereich angesiedelt ist; damit wird eigentlich das Leistungspotential von NAND nicht ausgeschöpft. Der Vorteil von Flash SSDs liegt aber in der relativ unkomplizierten Verwendung ohne separaten Memory-Controller, O/S-Modifikationen etc. Auch lässt sich SSD-Storage problemlos zusammen mit allen leistungsfähigen Block-/File Storage Virtualisierungs - Appliances verwenden...
  • Vorhandene Storage-Services wie Snapshots, Replikation, RAID etc. lassen sich ebenfalls wie gehabt einsetzen. Sinnvoll ist Auto-Tiering im Array um ein manuelles Placement von „Hot-Data“ auf low-latency-Drives zu vermeiden bzw. diese Prozesse aus OPEX-Sicht zu automatisieren. Alle wesentlichen Anbieter liefern hierzu inzwischen entsprechende Lösungen, die zuverlässig und auch schnell arbeiten. Die Limitation dieser Art von Lösungen liegt also neben den Kosten (ca. $10/GB für SLC NAND SSD) im Bereich vom Scale-up und Scale-out (Kapazität, Kosten, Performance).

Zwischenfazit: Flash im HDD-Formfaktor-Format stellt technologiebedingt leistungs- und kostenseitig einen gewissen Kompromiss dar der jedoch für viele gängige Anwendungsbereiche – abhängig vom I/O-Profil der Apps - ausreichend ist (weitere Möglichkeiten betreffen Direct-Attached PCIe-Flash-Storagelösungen (DAS) zur Beschleunigung dedizierter Server-Applikationen).

Komplette Speichersysteme, die ausschließlich auf Flash-Memory-Technik aufgebaut sind, werden aus meiner Sicht jedoch in den nächsten Jahren verstärkt klassische SSD-/HDD-Konfigurationen für leistungshungrige Anwendungen (DSS, Big Data, Performance Databases etc.) ersetzen (neben anderen Trends wie In-Memory-Computing). Der Grund liegt neben den tendenziell fallenden Kosten für Halbleiterspeicher in der wesentlich höheren Leistung, Energieeffizienz, Flexibilität bzw. den zu erwartenden Technologiefortschritten (next gen. Flash, Phase Change Memory, Nano Storage etc.).

2. ALL-FLASH Storage Arrays:

Wie erwähnt, sind All-Flash-Arrays derzeit auf Grund ihres spezifischen Controllerdesigns zwischen 50% und 70% schneller als SSD-basierte Systeme (Flash im HDD-Format). Typischerweise nutzen sie sehr performante FPGA-Real-time Controller (Field-programmable Gate Array). FPGA weisen von Aufbau her eine hochgradig parallel arbeitende Architektur auf und schalten in Bezug auf Control-Algorithmen im dreistelligen Nanosekunden-Bereich. Ein weiterer Vorteil liegt auch in der kompakten Bauform (high-density) und Energieeffizienz.

DRAMs werden hier übrigens hier nur mehr als interner Puffer-Cache für Write-Commands und als Metadaten-Repository verwendet. Ansonsten kommen für die Speicherbausteine ausschließlich Flash Module (je nach Hersteller und Einsatzgebiet MLC, eMLC, SLC) zum Einsatz.

Damit wären wir bei einem derzeit breit diskutierten Punkt, der Zuverlässigkeit von Flash-Storage. Lassen Sie mich hier nochmals kurz die Fakten rekapitulieren:

  • Ein Enterprise-Storage-Array zeichnet sich vor allem (neben Leistung, Kapazität und Funktionsumfang) durch höchste Verfügbarkeit, Datenintegrität, Sicherheit und Robustheit aus.
  • NAND-Flash ist per se ein block-device. SLC schreibt ein Bit pro Zelle, MLC zwei Bits und bei Triple level drei bits. MLC wurde für den Consumerbereich entwickelt (USB-Sticks etc.).

Damit ist NAND für schreibintensive I/O-Profile weniger gut geeignet als für Read-only-Apps; aber nicht nur die Performance ist davon betroffen, sondern architekturbedingt wesentlich die Abnutzung (Alterung) der Speicherzellen, insbesondere bei random-/mixed I/O-Belastung. Als Konsequenz wird die Zuverlässigkeit des Gesamtsystems (s.a. Leistungsabfall über die Lebensdauer) beeinträchtigt.

Natürlich haben sich die Hersteller diesem Thema ausführlich gewidmet und versuchen derzeit einen Spagat zwischen Kosten, Leistung und Verfügbarkeit zu erreichen. Weiterentwickelte ECC’s, Enterprise MLCs in Kombination mit Software zur Sicherstellung der Datenintegrität sollen Flash-Arrays so zuverlässig wie vergleichbare HDD-Systeme machen (Hintergrund ist die Tatsache dass MLC um den Faktor 2 bis 3 günstiger ist als SLC).

  • Fakt ist auch, das SLC nativ zwischen 60.000 bis 100.000 Schreibzyklen verkraftet, während eMLC bis zu 30.000 Zyklen übersteht (write operations pro flash storage cell location); Consumer MLC verkraftet je nach Technologie-Implementierung zwischen 3.000 bis max. 10.000 P/E-Cycles. Damit besitzt SLC eine bis zu 30 x höhere Lebensdauer gegenüber MLC. Eine Anmerkung zur Datenintegrität: Die Bit-Error Rate bei MLC NAND Flash ist zwischen 10 - 100 Mal schlechter als bei SLC NAND Flash und degeneriert kontinuierlich bei allen weiteren Program/Erase – Zyklen (Quelle: Siehe unten bei Abb. 1).

Allerdings gibt es seit einiger Zeit wie erwähnt verschiedene herstellerspezifische Maßnahmen (siehe z.B. OEM-Hersteller Smart Storage Systems), um die Lebensdauer der MLC-NAND-Speicherzellen und hier des Gesamtsystems zu verbessern (siehe erweiterter ECC, Kompression, verteilte Schreibdaten, optimierte Controller, Firmware, vRAID von Violin Memory Systems etc.); dies gilt allerdings für SLC und MLC.

eMLC wird für Tier-1 Anwendungen aus Preis-Leistungssicht damit interessanter, insbesondere in Kombination mit anderen Speichermedien (Automated Tiered Storage).

Steht allerdings die Zuverlässigkeit und Leistung für unternehmenskritische Anwendungen mit gemischten Workloads bei auch hohem Schreibanteil im Vordergrund, ist SLC aus den genannten Gründen derzeit die erste Wahl. 

FAZIT - In Anbetracht o.g. Fakten gilt für Enterprise-Arrays aus meiner Sicht folgende Empfehlung:

  1. Für DSS, DW, high-performance Datenbanken, Big Data und OLTP Anwendungen mit gemischten I/O-Profilen (Read, Write) ist SLC und eMLC aus Leistungs- und Zuverlässigkeits-Aspekten zu bevorzugen, auch wenn die Beschaffungskosten höher sind.
  2. Überhaupt ist die TCO unter Berücksichtigung aller betriebsrelevanten Kosten (OPEX) über die Nutzungsdauer ein wichtiger Punkt neben CAPEX: Bei der TCO schneiden All-Flash-Array derzeit auf Grund der jeweils proprietären Implementierungen ihrer Storage Management - Funktionen teilweise schlechter ab (allerdings muss die Betrachtung immer auch im Kontext der vorhandenen Leistungsparameter gesehen werden). eMLC ist ein guter Kompromiss für anspruchsvolle, aber nicht konstant hohe Workloads bei weniger hohem Schreibanteil.
  3. Ein Punkt betrifft übrigens auch die mögliche höhere Server-CPU-Auslastung (z.B. bei Windows O/S) beim Einsatz von NAND-Storage. Auf Grund der bis zu 250 x fach höheren I/O-Leistung von Flash gegenüber einer konventionellen HDD (ca. 150 IOPS) kann sich auch die CPU-Utilization beim Einsatz von Flash-Storage deutlich verbessern, da der Prozessor nicht mehr wie bisher auf die I/Os von der langsameren HDD warten muss. Bei hochgradig ausgelasteten virtuellen Serverkonfigurationen sollte dies beim I/O-Sizing mit berücksichtigt werden (Stichwort: Balanced System).

Abb. 1:  SLC vs MLC, Which works best for high-reliability applications?

Autor: Charlie Cassidy, TeleCommunication Systems, July 2012

Quelle: http://www.eetimes.com/design/memory-design

Weitere Infos zum Thema finden Sie auch in unserem Beitrag unter:

http://www.storageconsortium.de/content/?q=node/1379