Speicher
SSD-Laufwerke
USB-Sticks
Flashspeicher
Wireless
Support
SPEICHERSUCHE

Technische Kurzanleitung

Over-Provisioning leicht verständlich gemacht

In den Abmessungen und den externen Schnittstellen (z.B. SATA- oder SAS-Schnittstelle) unterscheiden sich Solid-State-Laufwerke (SSDs) nicht von Festplatten (HDDs). Aber das Innenleben einer SSD mit ihrer Funktionsweise und den Komponenten unterscheidet sich wesentlich vom Drehmagnetplatten-Design einer HDD.

Nach dem Zusammenbau einer SSD, einschl. eines Flashspeicher Prozessors (FSP) zum Verwalten der vielen NAND-Flash-Dies, kann der SSD-Hersteller während der Programmierung der Firmware einen weiteren Prozentsatz der Gesamtkapazität des Laufwerks für das Over-Provisioning (OP) reservieren.

Die Berechnung des Prozentsatzes für das Over-Provisioning auf einer SSD erfolgt gemäß Abb. 1

Over-Provisioning in % =

Physischer Speicher - Benutzerspeicher


Benutzerspeicher

Abb. 1 – Formel für Over-Provisioning

In Abb. 2 ist zu sehen, dass in einem mit 128GB (Gigabytes) konfigurierten Flashspeicher einer Client-Anwendung dem Benutzer nur 120GB zur Verfügung stehen, da das System ein Over-Provisioning von aufgerundeten 7 Prozent aufweist.

Physischer Speicher Benutzerspeicher Over-Provisioning in % Anwenderklasse
64 GB 60 GB 7% Kunde
96 GB 90 GB 7% Kunde
128 GB 120 GB 7% Kunde
128 GB 100 GB 28% Enterprise
256 GB 240 GB 7% Kunde
256 GB 200 GB 28% Enterprise
512 GB 480 GB 7% Kunde
512 GB 400GB 28% Enterprise

Abb. 2 – Over-Provisioning auf Basis von Speicherkapazität und Anwenderklasse

Der SSD-Hersteller kann die OP-Kapazität je nach der Anwenderklasse der SSD und der Gesamtkapazität des NAND-Flashspeichers unterschiedlich einrichten.

Höhere Kapazitäten und Laufwerke mit unterschiedlichen Anwenderklassen werden typischerweise mit einem proportional größeren Over-Provisioning konfiguriert. Dies beruht auf den Ressourcenanforderungen für die Verwaltung von mehr NAND-Flash und der Anwendung von Garbage Collection, freien Blöcken und erweiterten Datenschutzfunktionen (LSI® SandForce® R.A.I.S.E.).

Dieser Over-Provisioning-Speicher ist für den Benutzer nicht zugänglich und wird dem Host-Betriebssystem nicht angezeigt.

Basiswissen

Wir möchten uns etwas mit der Funktionsweise einer SSD und den Grenzen nicht-volatiler NAND-Flashspeicher befassen, damit Ihnen verständlich wird, warum eine SSD mit Over-Provisioning konfiguriert ist und welche Vorteile dies für den FSP bringt.

Jede NAND-Flashzelle hat eine begrenzte Lebensdauer, die sich auf die Lebensdauer ihrer Programm- und Löschzyklen (P/E) bezieht. Sie wird während der Herstellung durch den NAND-Hersteller festgelegt, da jede auf einer NAND-Flashzelle durchgeführte Programm- oder Löschfunktion die Fähigkeit der Zelle, eine elektrische Ladung zuverlässig zu speichern, reduziert und somit die Datenintegrität gefährden kann.

Die Lithographie wird bei jeder Generation kleiner und typischerweise führt diese reduzierte Geometrie einer NAND-Flashzelle auch zu einer niedrigeren P/E-Beständigkeit und zu einer stärkeren Komplexität in der Steuerung der Lebenserwartung und Zuverlässigkeit in der jeweiligen Anwenderklasse.

Zusammengefasst wird die SSD-Lebensdauer hauptsächlich von drei Faktoren beeinflusst:

  • NAND Flash Programm-/Löschbeständigkeit und auf Geometrie bezogene Lese-/Programm-/Löschkomplexität
  • SSD Kapazität
  • FSP-Funktion und Effizienz (Garbage Collection, Write Amplification, Blockverwaltung, Wear-Leveling, Error Correcting Code)

Die Funktionsweise nicht-volatiler NAND-Flashspeicher

Jedes NAND-Flashspeicher-Die besteht aus mehreren Blöcken, die jeweils eine Vielzahl Seiten enthalten.

NAND-Flash wird auf Seitenebene beschrieben und gelesen, kann jedoch nur auf Blockebene gelöscht werden.

Wenn eine einzelne Seite auf einer programmierten Seite innerhalb eines Blocks modifiziert oder gelöscht werden soll, muss zuerst der gesamte Inhalt aller Seiten des Blocks in einen Zwischenspeicher kopiert und gelöscht werden, bevor der neue Blockinhalt auf dieselbe Blockadresse programmiert werden kann.

Eine Seite kann nur dann ohne diesen langwierigen Lesen-Löschen-Modifizieren-Schreiben-Zyklus direkt in einen Block in einem NAND-Flash geschrieben werden, wenn die Seite bereits leer ist.

Wenn also viele Blöcke leer sind und über Over-Provisioning leer gehalten werden, trägt dies zu einer konstanten Leistung bei, vor allem bei zufälligen Schreibszenarien, die die höchste Write Amplification aufweisen. [1]

Ein weiterer Ausdruck, der mit NAND-Flash in Verbindung gebracht wird, ist der Write Amplification Factor (WAF).

WAF ist das Verhältnis zwischen den tatsächlich auf dem NAND-Flash durchgeführten und den vom Betriebssystem vermuteten Schreibvorgängen.

Write Amplification (WA) wird hauptsächlich von fünf Faktoren beeinflusst:

  • Sequenzielles Schreiben (niedrigerer WA) vs. Zufälliges Schreiben (höherer WA)
  • Umfang der Übertragung (größere Übertragungsmenge = niedrigerer WA)
  • Zur Verfügung stehender freier Speicherplatz aus dem Over-Provisioning-Speicher und nicht verwendetem Benutzerspeicher, wenn TRIM vorhanden ist (mehr Platz = niedrigerer WA)
  • Datenentropie / Komprimierbarkeit (niedrigere Entropie = niedrigerer WA)
  • Der einer Seitengröße zugeteilte Umfang von Übertragungen (4K zugeteilt = niedrigerer WA)

Ein typischer Client-Workload, der mit LSI SandForce DuraWrite Technologie verwendet wird, weist einen WAF von 0,5 (50 Prozent reduzierter Datenspeicherverbrauch) auf und hat im Vergleich zu standardmäßigen SSD-Controllern eine mindestens 20-fach höhere Flash-Lebensdauer. [2]

Leistung und Beständigkeit durch OP

Um Szenarien zu vermeiden, in denen der Speicher einer SSD randvoll mit ungültigen Seiten gefüllt ist, arbeitet die FSP Carbage Collection mit dem Over-Provisioning als Zwischenstufe. In diesem temporären Arbeitsbereich werden gültige Seiten zusammengeführt und mit ungültigen Seiten gefüllte Blöcke werden wieder regeneriert.

Alle regenerierten Seiten bzw. Blöcke werden dann dem Over-Provisioning-Speicher hinzugefügt, um Schreibvorgänge aus dem FSP aufzunehmen und die Leistung während Spitzenbelastungen zu maximieren, da die Lese-, Lösch-, Modifizierungs- und Schreibvorgänge der gültigen Seiten beim Schreiben in teilweise mit ungültigen Seiten gefüllte Blöcke die Leistung ansonsten beeinträchtigen könnte.

Die Carbage Collection arbeitet unabhängig vom Betriebssystem und wird automatisch in Perioden mit niedriger Aktivität ausgelöst. Dies erfolgt in regelmäßigen Intervallen oder durch Auslösen des entsprechenden ATA Data Set Management TRIM Befehls.

Jederzeit verfügbare, freie Blöcke des Over-Provisioning-Speichers unterstützen effektiv das Wear-Leveling auf dem NAND Flash, bei dem der FSP Schreibvorgänge intelligent und gleichmäßig über alle NAND Flash-Speicherzellen verteilt ohne dabei die Gesamtleistung der SSD auch während Spitzenbelastungen zu beeinträchtigen.

Der Befehl ATA Data Set Management TRIM bereinigt ungültige Seiten und nicht verwendete Benutzerspeicher durch dynamische Datenkomprimierungs-/Reduzierungstechniken und trägt in Verbindung mit der LSI SandForce DuraWrite Technologie zu einem dynamischen Over-Provisioning bei. Dadurch werden der tatsächliche Speicherplatz für vermutete gültige Daten und die NAND Flashabnutzung reduziert.

Wie in Abb. 3 zu sehen, wurden nach der Installation eines Microsoft Windows Vista Betriebssystems und Office 2007 mit angenommenen 25 Gigabytes die gesamten Schreibvorgänge vom Hostcomputer auf den NAND durch den Einsatz der Flash SandForce DuraWrite Technologie auf effektiv 11 Gigabytes reduziert. [3]

Abb. 3 – Die Kraft von DuraWrite™ [3]

In Abb. 4 zeigen wir das Szenario eines Speichers mit 28 Prozent Over-Provisioning ohne ATA Data Set Management TRIM Unterstützung. Ein Großteil des Platzes für die vom Hostcomputer geschriebenen, vermuteten gültigen Daten blieb auf dem tatsächlichen NAND Flash leer und ungenutzt.

Durch Verwendung von DuraWrite Technologie zur Datenreduzierung wurden die ursprünglichen Daten komprimiert und besetzen weniger Speicher. Zusätzlich konnte die SSD bis zu 50 Prozent der vermuteten gültigen Daten auf dem Laufwerk durch ATA Data Set Management TRIM mit dem zuvor zugewiesenen OP-Speicher zur Verwendung regenerieren.

Abb. 4 – Dynamisches Over-Provisioning [4]

Ohne Verwendung des dynamischen Over-Provisioning auf SSDs kann sich der Flashspeicher Prozessor zur Verwaltung des NAND Flash nur auf einen zuvor zugewiesenen statischen Over-Provisioning-Speicher oder auf einen DRAM (Dynamic Random Access Memory) mit reduziertem Speicher stützen.

Damit diese Datenreduzierung über den FSP erfolgen kann, wird ein Teil des Over-Provisioning des NAND Flash dem FSP zur Bearbeitung der Zieldaten zugeteilt. Die Komprimierbarkeit der Zieldaten wird über die jeweilige Entropiestufe bestimmt, wobei zufällige Daten typischerweise eine Entropiestufe von 100 Prozent haben und nicht weiter komprimiert werden können.

Durch die Verwendung verschiedener Entropiestufen für 4KB anhaltende zufällige Schreibvorgänge, die typischerweise die höchste Write Amplification und aufgrund ihres Betriebsverhaltens auf NAND Flash die beständigste Leistung aufweisen, können wir den Effekt von erhöhtem Over-Provisioning auf die gesamte Lebensdauer und Leistung einer SSD beobachten und messen.

In Abb. 5 ist zu sehen, dass die zufällige Schreibleistung (4KB anhaltend) über alle Entropiestufen der Daten entsprechend der jeweiligen Erhöhung des Over-Provisioning beträchtlich zunimmt. Die Leistungssteigerung proportional zur Steigerung des Over-Provisioning ist in den Entropiestufen zwischen 75 und 100 Prozent am höchsten. Dies verdeutlicht die Wichtigkeit und Vorzüge von Over-Provisioning nicht nur für die Datenübertragung bei niedrigen Entropiestufen, sondern auch die entscheidende Bedeutung von größerem Over-Provisioning für die Steigerung der anhaltenden Leistung bei zum großen Teil vom Zufall bestimmten Daten bzw. höheren Entropiedaten.

Abb. 5 – Verhältnis zufällige Schreibleistung zu Over-Provisioning in Prozent [4]

In Abb. 6 werden dieselben Übertragungen in Bezug auf Write Amplification und die wichtige Rolle gezeigt, die Over-Provisioning für die Reduzierung der Write Amplification bei Daten mit höheren Entropiestufen spielt, um die NAND Flashlebensdauer zu steigern.

Ein nicht ausreichend groß eingerichtetes Over-Provisioning würde allmählich die Komprimierungseffizienz und die anhaltende zufällige Schreibleistung vermindern. Dies würde zu einer merklich langsameren Betriebssystem- bzw. Anwendungs-Leistung und aufgrund der höheren Write Amplification zu einer vorzeitigen Abnutzung der SSD führen, vor allem in Szenarios, die Daten mit hohen Entropiestufen einbeziehen.

Abb. 6 – Verhältnis zufällige Schreib-WA zu Over-Provisioning in Prozent [4]

Abb. 4 – Dynamisches Over-Provisioning

Weitere Maßnahmen, wie R.A.I.S.E. (Redundant Array of Independent Silicon Elements), stützen sich auf Over-Provisioning proportional zum Speicherplatz der SSD, um RAID-ähnlichen Schutz und Redundanz auf einer Single-SSD bis zur Seiten- bzw. Blockebene zu ermöglichen, falls der FSP Error Correcting Code (ECC) Fehler bei NAND-Flashbits nicht erkennen und korrigieren kann. [5]

Referenzen

Zusammenfassung

Over-Provisioning ist ein Bestandteil der heutigen SSDs und ermöglicht die intelligente, autonome und effiziente Funktion von NAND Flashspeichern. Durch die Verwendung von Garbage Collection, Wear-Leveling- und DuraWrite-Technologien und R.A.I.S.E. (Redundant Array of Independent Silicon Elements) werden eine zuverlässige Datenintegrität, langanhaltende Leistung und eine Verlängerung der Lebensdauer erreicht.