In den letzten Jahren hat die Flash Technologie grosse Fortschritte gemacht. Ein Ersatz der traditionellen Harddisk ist bereits heute denkbar, doch wie und wo macht es Sinn? Die grosse Herausforderung ist nach wie vor der hohe Preis und die geringere Datendichte. Durch eine intelligente Nutzung der Technologie, können Sie jedoch bereits heute Ihre Infrastruktur um Faktoren beschleunigen und dies nicht unbedingt bei einem höheren Preis!
Was ist Flash?
Flash Memory ist eine nicht flüchtige Speichertechnologie welche elektrisch gelöscht und programmiert (gefüllt) werden kann. Diese Technologie wird heute hauptsächlich in USB Speicher Sticks und Flash Cards für das Transferieren oder allgemeine Speichern von Informationen zwischen Computern und anderen digitalen Produkten eingesetzt. Es ist ein spezifischer Typ von EEPROM (Electrically Erasable Programmable Read-Only Memory) welcher in grossen Blöcken gelöscht und neuprogrammiert wird. Zu Beginn der Flash Technologie mussten die ganzen Chips gelöscht und neu programmiert werden. Flash Speicher kosten einiges weniger als byte-programmable EEPROMs und wurden deshalb zur dominanten Technologie, wo auch immer ein Bedarf für eine hohe Anzahl von beständigem Speicher nötig ist.
Flash Memory braucht keinen Strom um die Informationen im Speicher zu behalten. Der grösste Vorteil ist jedoch der sehr schnelle Lese-Zugrif, die äusserst geringe Empfindlichkeit auf Vibrationen und Bewegungen und die hohe Verträglichkeit mit extremen Temperaturen.
Was ist NAND?
Die NAND Flash Architektur wurde im Jahre 1989 eingeführt. Auf diesen Speicher wird fast wie auf Block Speicher z.B. Harddisks zugegriffen. Jeder Block besteht aus einer Anzahl von Seiten (Pages). Diese Seiten (Pages) haben eine typische Grösse von 512, 2024 oder 4096 Bytes. Verbunden mit jeder Seite ist eine geringe Anzahl von Bytes (meistens 12-16 Bytes) welche zur Fehler-Suche und Korrektur verwendet werden (Checksumme).
Weil das programmieren auf Basis von Seiten stattfindet, können Informationen lediglich auf Block Basis gelöscht werden. Eine weitere Limitation von NAND Flash ist das Daten innerhalb von einem Block sequentiell geschrieben werden müssen. Die Anzahl von Operationen pro Sekunde (NOPs) entspricht der Anzahl in welcher ein Sektor pro Sekunde programmiert werden kann. Bis heute entspricht diese Anzahl bei MLC (Multi Level Cell) Speicher dem Wert 1 und bei SLC (Single Level Cell) Speicher dem Wert 4!
NAND Speicher benötigen wie andere Speichertechnologien für das Bad Block Management einen separaten Kontroller Chip. SD Karten – zum Beispiel – beinhalten einen «Controller Cicuitry» um das Bad Block Management und Wear Leveling zu machen.
SLC vs MLC NAND Flash
MLC (Multi Level Cell) NAND Flash ermöglicht jeder Speicherzelle das Speichern von 2Bits. SLC (Single Level Cell) NAND Flash speichert 1Bit pro Zelle. Als Daumenregel gilt das MLC Chips also gut zweimal soviel Daten wie SLC Chips speichern können. Ausgewachsene und bewährte MLC Chips werden allgemein in Kostensensitiven Konsumerprodukten wie Handys, Notebooks und Speicherkarten verwendet.
Der signifikante Anteil von NAND Flash basierten Speicherkarten werden heute aus MLC NAND hergestellt und der schnell wachsende Absatz beweist das diese Technologie den Kundenanforderungen entspricht. Der Nachteil der speicherstarken MLC Chips liegt jedoch in der langsamen Schreib- und Lösch-Leistung wie auch in der reduzierten Schreib/Lösch Zyklen.
Wegen der Speicherung von 2Bits pro Zelle, ist das Risiko bei MLC Speicher für Bit Errors höher als bei SLC Technologie. Dies wird jedoch durch das Verwenden von «Error Detection» und «Correction Codes» (EDC) weitestgehend kompensiert. EDC ist eine bekannte Methode welche auch bei Harddisks, CD-ROM oder DVD-ROM verwendet wird.
SLC NAND ermöglicht gut 100’000 Schreibzyklen (schreiben/löschen) per Block mit 1Bit ECC. MLC NAND ermöglicht generell 10’000 Zyklen. Dabei wird bei MLC meistens ein 4Bit ECC verwendet. Auf dieser Basis kann gesagt werden dass ein SLC Speicher gut 10x länger durchhält als ein MLC Speicher.
Die folgende Tabelle zeigt die Vor-/Nachteile der beiden NAND Flash Typen:
In Enterprise Speichersystemen wird bevorzugt SLC NAND Flash Technologie eingesetzt. Während bei Read Caches auch MLC NAND Flash eingesetzt werden kann, ist beim Write Caching SLC NAND Flash ein MUST.
Warum soll ich Solid State Disk Technologien auf NAND Flash Basis einsetzen?
Der grösste Vorteil von Flash basierten SSDs ist deren Latenzzeit. Die Leistung von Flash ist unüblich, da sie hoch asymmetrisch ist. Ein Block auf Flash Basis muss zuerst gelöscht werden, bevor er beschrieben werden kann. Dies Aktion (löschen/schreiben) dauert zwischen 1 – 2ms. Das Schreiben auf einen bereits gelöschten Flash Block dauert jedoch lediglich 0.2-0.3ms. Die meisten Flash basierten Disks oder PCI-E Karten versuchen stets einen Pool von bereits gelöschten Blocks zu haben, so dass die Schreiblatenz durchgehend optimal bleibt und lediglich eine Operation ausgeführt werden muss. Leseoperationen sind viel schneller, für ein 4k Block dauert das ca. 0.025 – 0.03ms. Flashbasierte SSDs verwenden meistens zusätzliches DDR Memory um eine optimale Schreibperformance sicherzustellen. Dieses RAM ist durch einen Capacitor vor Datenverlusten geschützt. Die Charakteristik von Flash ist eher vergleichbar mit RAM als mit der traditionellen Disk Technologie.
Konventionelle Speicherlösungen verwenden einen Mix von dynamischen Speicher (DRAM) und Harddisks. DRAM verbraucht viel Strom und hat eine limitierte Datendichte. Flash Speicher passt genau zwischen diese zwei Komponenten als Sweet Spot. Zum einen ist Flash signifikant günstiger in der Anschaffung, hat einen reduzierten Stromverbrauch und eine massiv höhere Datendichte als RAM, zum anderen ist Flash um Faktoren schneller als Disks.
Die Flash Technologie erweitert die Speicherindustrie um einen zusätzliches «Tier». Vermutlich ist Flash die signifikanteste Speichereinführung seit der Erfindung der Harddisk RAMAC im Jahre 1956.
Wie soll ich die Flash Technologie einsetzen?
Wie bereits im oberen Kapitel erwähnt, ist die Flash Technologie von der Charakteristika eher mit RAM zu vergleichen als mit traditionellem Disk Speicher. Die gegenüber der Harddisk noch limitierte Kapazität sowie höheren Anschaffungskosten, erfordern ein Intelligentes Design um die Vorteile der Technologie optimal zu nutzen. Der optimale Einsatzort von Flash Speicher liegt im Caching-Umfeld, also dort wo RAM als Cache nicht genügend Kapazität bieten kann und die traditionellen Harddisks leistungsmässig an ihre Grenzen stossen, oder bei intelligenten Speichersystemen welche Funktionen wie Deduplication und Compression für die Datenreduktion verwenden.
Lösungen auf Basis der Flash Technologie
Die Speicherindustrie musste nicht lange mit neuen Lösungen auf sich warten lassen. Während andere Hersteller Flash basierte SSDs als klassische Diskerweiterungen in ihre Produktpalette aufgenommen haben, haben NetApp und Sun Microsystems die Flash Technologie als erstes in Ihre Produkte nach dem Caching-Prinzip integriert. Das Speichersystem erkennt automatisch welche Daten «heiss» sind und legt diese zusätzlich auf dem schnellen Flash Speicher ab. Eine äusserst effiziente Art und Weise die Vorteile sämtlicher Technologien (DRAM, FLASH, DISK) zu nutzen. Die Speicherprodukte haben sich in den letzten zwei Jahren enorm weiterentwickelt und so gibt es heute von NetApp wie auch Pure Storage und Nimble Storage äusserst intelligente Disk Arrays, welche die Flash Technologie kombiniert mit platzreduzierenden Techniken wie Deduplication und Compression effizient einsetzen.