HIGH PERFORMANCE SOLID STATE DRIVES IM SERVEREINSATZ - Thomas-Krenn

Die Seite wird erstellt Pierre-Oliver Opitz
 
WEITER LESEN
HIGH PERFORMANCE SOLID STATE DRIVES IM SERVEREINSATZ - Thomas-Krenn
HIGH
      PERFORMANCE
SOLID STATE DRIVES
 IM SERVEREINSATZ
HIGH PERFORMANCE SOLID STATE DRIVES IM SERVEREINSATZ - Thomas-Krenn
Inhaltsverzeichnis
 3| SSDs im Servereinsatz

 4| Frische Chips – So funktionieren SSD-Speicher

              Festplatte im Vergleich
              Aufbau
              Die dritte Dimension
              3D XPoint: Widerstände statt Transitoren
              Schreibtechniken
              Write Amplification
              Lebensdauer
              Power Loss Protection
              Einsatzgebiete
              Fazit

12| Verbindungstechnik - Protokolle, Schnittstellen und Formfaktoren

              Serial ATA
              NVMe
              Serial Attached SCSI (SAS)
              M.2
              U.2
              Ausblick – Ruler SSDs
              Fazit

16| SSD-Performance messen und optimieren - Schnelligkeit ist keine Hexerei

              IOPS, Latenz und Durchsatz
              Bestimmen der Baseline Performance-Software
              Spare Area vergrößern
              Secure Erase
              Partition Alignment
              ATA TRIM
              Fazit

22| Flash-Stapel mit Turbo - SSD-RAIDs mit optimaler Performance betreiben

              SSDs und RAID-Controller
              Tuningmaßnahmen
              Gesundheitszustand von SSD und RAID überwachen
              RAID-Konsistenz prüfen
              Checkbox für SSD-RAIDs
              Fazit

30| Glossar
HIGH PERFORMANCE SOLID STATE DRIVES IM SERVEREINSATZ - Thomas-Krenn
thomas-krenn.com | 3

SSDs im Servereinsatz
Solid State Drives haben in Notebooks und PCs die     2018 neu strukturiert, umfassend überarbeitet
klassischen Festplatten nahezu verdrängt. Auch im     und aktualisiert. Um eine bessere Orientierung
Serverumfeld setzen sich All-Flash-Systeme immer      zu gewährleisten ist dieses E-Book in vier Kapitel
mehr durch. Die populären Performance-Wunder          unterteilt: Die Erläuterung der SSD-Technik macht
versprechen eine deutlich höhere I/O-Performance      dabei den Anfang, um etwaige Unklarheiten von
als herkömmliche Festplatten – und das bei            vornherein auszuschließen. Im zweiten Teil geht es
niedrigerem Stromverbrauch. Größere Leistung und      um die vielfältigen Protokolle und Interfaces, mit
bessere Energieeffizienz werden so möglich. Da sich   denen SSDs im Server betrieben werden können. Im
diese Technik aus diesem Grund immer größerer         dritten Teil des E-Books finden sich Informationen
Beliebtheit erfreut, tragen auch die Autoren der      zur Performance-Messung und zur Erhöhung der
Thomas-Krenn.AG dazu bei, neue Trends zu klären       Leistung einzelner SSDs. Performance-Tuning
und sonstige hilfreiche Hinweise zu geben. Dieses     bei SSD-RAIDs bildet schließlich das vierte und
E-Book basiert auf mehreren Fachartikeln, die in      letzte Kapitel. Als kleine Ergänzung findet sich am
den vergangenen Jahren im ADMIN Magazin und im        Ende des E-Books außerdem ein Glossar mit den
IT-Administrator erschienenen sind. Diese wurden      wichtigsten Schlagwörtern zum Thema SSD.

Dieses Ebook entstand in Zusammenarbeit mit:
HIGH PERFORMANCE SOLID STATE DRIVES IM SERVEREINSATZ - Thomas-Krenn
thomas-krenn.com | 4

Frische Chips
So funktionieren SSD-Speicher
Das erste Kapitel dieses E-Books kümmert sich um      als Festplatten. Während Festplatten die Daten auf
die Funktionsweise der SSDs. Ebenso zeigt es auf      mehreren Magnetscheiben speichern, nutzen SSDs
wann sich der Einsatz einer SSD lohnt.                mehrere Flash-Chips für die Datenspeicherung.
                                                      Da bei SSDs keine mechanischen Teile wie bei
SSDs haben mit normalen Festplatten nur eine          Festplatten bewegt werden, sind vor allem zufällig
Gemeinsamkeit: Beide Medien speichern Daten.          verteilte Datenzugriffe deutlich schneller.
Intern arbeiten SSDs allerdings vollkommen anders

Festplatte im Vergleich
Um die Performance von SSDs mit Festplatten           aus Seek Time und Latency Time ergibt die Random
zu vergleichen, lohnt zuvor ein kurzer Blick auf      Access Time (mittlere Zugriffzeit). Diese beträgt je
den Aufbau herkömmlicher Festplatten. Diese           nach Festplatte und deren Drehzahl zwischen fünf
speichern die Daten auf mehreren rotierenden          und 15 Millisekunden, was 200 respektive 66 IOPS
Magnetscheiben. Die Daten werden dabei mit            (I/O-Operationen pro Sekunde) entspricht. SSDs
Schreib-/Leseköpfen auf die Scheiben geschrieben      erreichen im Vergleich dazu mehrere zehntausend
beziehungsweise von diesen gelesen. Soll nun          oder sogar hunderttausend zufällig verteilte IOPS.
ein zufälliger Sektor von der Festplatte gelesen      Bei kontinuierlichen Datentransfers ergibt sich
werden, muss die Festplatte den Schreib-/Lesekopf     jedoch ein anderes Bild. Zwar können über SATA
an die richtige Stelle bewegen (Seek Time) und        angebundene SSDs zu Beginn über 500 Mbyte/s
dann darauf warten, dass der gewünschte Sektor        liefern. Mit höherem Füllstand der SSD sinkt
auf der rotierenden Scheibe unter dem Schreib-/       diese Rate jedoch zum Teil deutlich ab. Wie stark
Lesekopf vorbeifährt (Latency Time). Die Latency      die Datenrate zurückgeht, hängt u.a. von den
Time beträgt dabei im Mittel die Dauer, welche für    Algorithmen im SSD-Controller ab.
eine halbe Umdrehung notwendig ist. Die Summe

Aufbau
SSDs (Solid State Drives) sind nichtflüchtige         gemeinsam entwickelt. Intel vermarktet sie unter
Datenspeicher ohne bewegliche Teile. Derzeit          dem Namen Optane. Sie benutzen keine EEPROMs,
kommen in den allermeisten SSDs Flash-EEPROMs         sondern eine widerstandsbasierte Technik, deren
mit NAND-Technologie zum Einsatz. Die ersten          Details nicht genau bekannt sind. Die folgende
Speicher dieser Art wurden bereits 1989 von Toshiba   Beschreibung von Aufbau und Funktionsweise von
entwickelt. Seinen Siegeszug trat Flash-Speicher      SSDs bezieht sich, wenn nicht anders erwähnt,
dann mit der Entwicklung von Digitalkameras           jedoch immer auf die verbreiteten NAND-Speicher.
und anderen Consumer-Geräten wie MP3-Playern
an. Mittlerweile sind jedoch auch Flash-Speicher      Die kleinste Einheit in einem NAND-Flash-Chip einer
auf dem Markt, die nach einem völlig anderen          SSD ist die Speicherzelle. Je nach Typ speichert eine
physikalischen Prinzip funktionieren. Diese 3D        einzelne Speicherzelle ein oder mehrere Bits:
XPoint-Speicher wurden von Micron und Intel
HIGH PERFORMANCE SOLID STATE DRIVES IM SERVEREINSATZ - Thomas-Krenn
thomas-krenn.com | 5

          _SLC (Single Level Cell) 1 Bit                            kleinste Struktur, die vom SSD-Controller gelesen
          _MLC (Multi Level Cell) 2 Bits                            oder beschrieben werden kann. Allerdings kann der
          _TLC (Triple Level Cell) 3 Bits                           SSD-Controller den Inhalt einer bereits
                                                                    beschriebenen Page nicht löschen oder verändern.
Eine SLC unterscheidet zwei Ladungszustände,                        Eine Page ist je nach Fertigungsstrukturbreite vier,
eine MLC vier und eine TLC acht. Die angelegte                      acht oder 16 Kibibyte (KiB) groß. Mit MLCs entspricht
Spannung beim Schreiben auf eine Speicherzelle ist                  das 16 384 bis 65 536 Speicherzellen.
allerdings fix. Daher muss bei einer MLC für einen
Schreibvorgang bis zu vier Mal Spannung angelegt                    Mehrere Pages sind in Blöcken zusammengefasst.
werden, um in den höchsten Ladungszustand zu                        Ein solcher Block besteht beispielsweise aus 128
kommen. Bei einer SLC reichen maximal zwei solcher                  bis 512 Pages und fasst damit 512 KiB bis acht
Vorgänge – die Schreibperformance ist damit                         MiB an Daten. Ein Block ist die kleinste Einheit,
höher. TLCs erfordern bis zu acht Mal Spannung. Am                  die der SSD-Controller löschen kann, indem er
Anfang der SSD-Entwicklung kamen für Server SLC-                    eine Löschspannung am gesamten Block anlegt.
oder allenfalls MLC-Chips zum Einsatz. Mittlerweile                 Erst nach dem Löschen eines Blocks kann der
sind TLC-SSDs auch im Enterprise-SSD-Markt üblich.                  SSD-Controller die einzelnen Pages wieder neu
                                                                    beschreiben. 1024 Blöcke bilden eine Plane.
Bei jedem Anlegen von Spannung kommt es zu
einer kleinen Abnützung der Isolationsschicht der                   Vier Planes sind z.B. auf einem Die untergebracht,
Speicherzelle. Da für einen einzelnen Schreibvorgang                wie Abbildung 1 zeigt. Ein Die ist dabei etwa so
auf eine MLC öfter Spannung angelegt wird als bei                   groß wie ein Fingernagel (167 mm^2). In der
einer SLC, verträgt die MLC weniger Schreibvorgänge                 Produktion werden circa 200 bis 300 Dies aus einem
(sogenannte Program/Erase Cycles oder p/e-Zyklen).                  Wafer gewonnen. Je nach gewünschter Kapazität
MLCs haben meist eine Lebensdauer zwischen 10                       landen ein bis acht Dies in einem Thin small-outline
000 und 30 000 p/e-Zyklen, SLCs rund 100 000 p/e-                   package (TSOP) – jene schwarzen Chips, wie sie
Zyklen. Die TLC-Modelle bewegen sich auf einem                      auch auf Speichermodulen vorhanden sind. Eine
viel niedrigerem Niveau von etwa 1000 p/e Zyklen.                   SSD besteht schließlich aus bis zu zehn TSOPs und
Mehrere Speicherzellen bilden eine Page. Sie ist die                einem SSD-Controller.

Abbildung 1: Die eines Flash-Chips mit vier Planes. Quelle: Intel
HIGH PERFORMANCE SOLID STATE DRIVES IM SERVEREINSATZ - Thomas-Krenn
thomas-krenn.com | 6

Die dritte Dimension
Da sich die Strukturbreite aus physikalischen             MLCs liegen. Ein weiterer Vorteil der 3D-Technologie
Gründen nicht beliebig verkleinern kann, sind die         besteht darin, dass dank der Nutzung von drei
Hersteller dazu übergegangen, die Zellen nicht            Dimensionen trotz größerer Strukturbreite die
mehr nur nebeneinander in der Fläche (planar)             Verbindungswege zwischen den einzelnen Zellen
anzuordnen, sondern übereinander zu stapeln.              kürzer werden, was auch die Zugriffzeiten senkt. 3D
Diese 3D-Techniken kommen sowohl bei NAND-                stellt hohe Anforderungen an die lithographischen
Speichern als auch, wie der Name schon sagt, bei          Verfahren bei der Herstellung. Beispielsweise ist
den neuartigen 3D XPoint Speichern zur Anwendung.         es sehr schwierig, in übereinander geschichteten
                                                          Zellen die so genannte Floating-Gate-Elektrode
Die Hersteller von Flash-Speicher setzen bei              aus polykristallinem Silizium in den einzelnen
3D-NAND ein jeweils unterschiedliches Design ein,         Transistoren der NAND-Gatter zu implementieren,
das heißt, die 3D-Technologie gibt es nicht. Sowohl       die den Ladungszustand der Zellen dauerhaft
MLC- als auch TLC-Zellen sind verbreitet, manche          speichert. Deshalb kommt bei 3D NAND meist das
Hersteller haben auch Quadruple Level Cells (QLC)         alternative Charge Trap Verfahren zum Tragen, bei
mit vier Bits in der Entwicklung.                         dem die Ladung in einer dünnen Siliziumnitrid-
                                                          Schicht gespeichert wird. Dieses Verfahren ist bei
Derzeit kommen 3D NAND Speicher mit 32 oder               planarem 2D MLCs deutlich teurer in der Produktion,
64 Lagen zum Einsatz, an Chips mit 96 Lagen wird          weshalb dort Floating-Gate-Elektroden zum Einsatz
entwickelt. Im Allgemeinen ist die Strukturbreite von     kommen. Es hat aber weitere Vorteile, wie niedrigere
3D-Speicher deutlich größer als bei planarem. Das         Spannungen zum Schreiben der Zelle und kürzere
heißt, die Zellen sind größer und damit steigt auch die   Schreibzeiten. 3D-NAND-Speicher haben deshalb
Haltbarkeit der SSDs. TLCs können damit p/e-Zyklen        einen geringeren Stromverbrauch und lassen sich
erreichen, die etwa auf dem Niveau von planaren           schneller beschreiben.

3D XPoint - Widerstände statt Transistoren
3D XPoint ist eine gemeinsame Entwicklung von             Bit einzeln geschrieben werden, was zumindest
Intel und dem Halbleiter-Spezialisten Micron. Im          prinzipiell das komplexe blockweise Schreiben
Vergleich zur NAND-Technik beruht sie auf völlig          (siehe nächster Abschnitt) überflüssig machen
anderen physikalischen Prinzipien und kommt               kann. Der Verzicht auf Transistoren ermöglicht eine
ohne Transistoren aus. Bislang sind so gut wie            wesentlich höhere Speicherdichte. Intel und Micron
keine Details über die eigentliche Funktionsweise         geben hier das Vier- bis Zehnfache im Vergleich zu
bekannt. Als sicher kann aber gelten, dass                herkömmlichen SSDs an. Hinsichtlich der Lese- und
eine widerstandsbasierte Speicherung zum                  Schreibgeschwindigkeit geben die Hersteller das
Einsatz kommt. Ein 3D-XPoint-Speicher bildet              Potential auf das bis zu Tausendfache von SSDs
ein dreidimensionales orthogonales Gitter aus             an. Damit wird selbst der PCIe-Bus zu langsam,
vertikalen und horizontalen Strukturen. An                und entsprechend positioniert sich die Technologie
den Schnittpunkte des Gitters liegt jeweils eine          als ein Hybrid von DRAM und SSD, langsamer als
Speicherzelle, die ein Bit speichert.                     herkömmliche DIMMs, aber wesentlich schneller
Im Gegensatz zu NAND-Speicher kann hier jedes             als Flash.
HIGH PERFORMANCE SOLID STATE DRIVES IM SERVEREINSATZ - Thomas-Krenn
thomas-krenn.com | 7

Intel  vermarktet    3D-XPoint-Produkte unter                              März 2018 noch kein eigenes Produkt auf den Markt
dem Label Optane, Entwicklungspartner Micron                               gebracht.
verwendet die Bezeichnung QuantX, hat aber bis

Abbildung 2: Schematischer Aufbau eines 3D XPoint-Gitters. Quelle: Intel

Als aktuell einziges Optane-Produkt für den                                Prozent das Medium beschrieben ist [1]. Im Internet
Enterprise-Markt bietet Intel aktuell die SSD DC                           verfügbare Benchmarks zeigen aber, dass der
P4800X mit 375 oder 750 GB an. Sie wird über                               Performance-Vorsprung bei anderen Parametern
den PCIe-Bus angeschlossen und verhält sich wie                            sehr gering ausfällt bzw. dass schnelle NAND-
eine normale SSD, beeindruckt aber durch extrem                            basierte SSDs sogar eine leichte Überlegenheit
niedrige durchschnittliche Latenzen (Abbildung 3).                         zeigen [2].
Zudem ist die Leistung unabhängig davon, zu wieviel

Abbildung 3: Latenzen von Optane P4800X im Vergleich zu einer herkömmlichen Enterprise-SSD DC S4600.
HIGH PERFORMANCE SOLID STATE DRIVES IM SERVEREINSATZ - Thomas-Krenn
thomas-krenn.com | 8

Intel hat zudem eine Technik namens Memory             [1] Intel Memory Drive unter Linux installieren (https://www.intel.
                                                       com/content/dam/support/us/en/documents/memory-and-storage/
Drive entwickelt, die es erlaubt, die DC P4800X        intel-mdt-setup-guide.pdf)
so in den Server einzubinden, dass sie das
Betriebssystem als RAM erkennt. Dieses Feature         [2] TKperf-Benchmarks der Optane-SSD DC P4800X (https://www.
                                                       thomas-krenn.com/de/wikiDE/images/9/92/TKperf-Report-Inte-
wird derzeit nur von Linux unterstützt [3] und         lOptaneP4800X-375GB.pdf)
erfordert eine Xeon E5 oder E7 CPU. Das ist vor
allem für große In-Memory-Datenbanken oder             [3] Anwendungs-Benchmarks der Optane-SSD DC P4800X (https://
                                                       www.servethehome.com/intel-optane-hands-on-real-world-
andere I/O-intensive Anwendungen bei großen            benchmark-and-test-results/)
Datenmengen interessant, etwa bei Machine
Learning. Denn Optane-SSDs sind zwar im Vergleich
zu herkömmlichen SSDs extrem teuer, aber
gegenüber der gleichen Menge DRAM kostet das
GByte dennoch nur einen Bruchteil davon.

Schreibtechniken
Die geschilderte interne Funktionsweise einer SSD      auf einer vollgeschriebenen SSD keine Daten mehr
erfordert spezielle Schreibtechniken, um sowohl eine   verändern. Daher hat jede SSD eine sogenannte
hohe Performance als auch eine lange Lebensdauer       Spare Area. Typischerweise beträgt die Größe dieser
der SSD zu erreichen. Das erstmalige Beschreiben       Spare Area zwischen sieben und etwa 80 Prozent
einer neuen SSD ist dabei noch einfach. Alle Blöcke    der Nennkapazität einer SSD. Eine 400-GByte-SSD
(und somit auch alle Pages) sind gelöscht. Neue        kann etwa tatsächlich über 720 GByte verfügen, 320
Daten schreibt der SSD-Controller direkt auf die       GByte versteckt die SSD aber vor dem Betriebssystem
entsprechenden Pages. Schwieriger wird es, sobald      und nutzt diese Datenmenge als Spare Area. Mit
bereits vorhandene Daten verändert werden.             fortschreitender Nutzungsdauer verändern sich
                                                       immer mehr vorhandene Daten. Mehr und mehr
Ohne zusätzliche Mechanismen müsste der SSD-           Pages markiert der SSD-Controller als ungültig.
Controller sämtliche Pages eines Blocks zuerst         Einzelne Blöcke enthalten nur mehr 40 bis 60
in einen Cache einlesen, anschließend den              Prozent echte Daten, die restlichen Pages darin sind
gesamten Block löschen, um abschließend die            ungültig und können vorerst nicht weiter genutzt
zwischengespeicherten Pages versehen mit den           werden. Bevor nun die Spare Area zur Neige geht,
Änderungen wieder in den Block zu schreiben.           räumt der SSD-Controller auf. Bei dieser Garbage
Die Änderung eines einzelnen Bits würde so das         Collection kopiert der SSD-Controller die noch
Lesen, Löschen und Neuschreiben von bis zu acht        gültigen Pages eines Blocks in einen freien Block, der
MiB an Daten verursachen. Das vermeidet der SSD-       damit nur teilweise gefüllt ist. Die restlichen Pages
Controller mit einem einfachen Trick. Wenn er Daten    dieses neuen Blocks bleiben noch unbeschrieben
einer Page verändert, schreibt er dazu einfach         und können für weitere Schreiboperationen genützt
die neuen Daten in eine andere Page, die noch          werden. Den ursprünglichen Block löscht der SSD-
gelöscht ist. In einer internen Zuordnungstabelle      Controller danach. Somit sind alle Pages dieses
vermerkt der Controller dabei, dass die Daten der      gelöschten Blocks wieder beschreibbar. Abbildung
logischen LBA-Adresse A nun nicht mehr in Page X,      3 zeigt ein solches Beispiel.
sondern in Page Y zu finden sind. Die ursprüngliche
Page X markiert er als ungültig. Damit diese           Wie eingangs erwähnt, ist die Anzahl der möglichen
Methode funktioniert, benötigt der SSD-Controller      Schreibvorgänge (p/e-Zyklen) pro Speicherzelle
zusätzliche Speicherkapazität. Ansonsten könnte er     begrenzt. Sollen nun neue Daten gespeichert
HIGH PERFORMANCE SOLID STATE DRIVES IM SERVEREINSATZ - Thomas-Krenn
thomas-krenn.com | 9

werden, schreibt der SSD-Controller daher immer
zuerst auf Pages, die noch wenig abgenützt sind.
Dieser Vorgang wird als Dynamic Wear Leveling
(dynamische Abnutzungsverteilung) bezeichnet.
Dynamisch deshalb, weil nur neue oder veränderte
Daten verteilt werden. Im Beispiel von Abbildung 4
sind viele Pages ungültig, weil deren Daten verändert
und woanders abgespeichert wurden. Die Garbage
Collection macht die ungültigen Bereiche wieder
nutzbar. Diese Methode erhöht die Lebensdauer der
SSD. Daten, die nur einmal geschrieben werden und
sich danach nicht mehr ändern, bleiben damit aber
auf ihren Pages. Static Wear Leveling geht daher
einen Schritt weiter und verschiebt auch solche
Daten periodisch auf andere Pages, die schon mehr
abgenützt sind. Damit werden tatsächlich alle
Pages einer SSD gleichmäßig abgenützt und die
Lebensdauer der SSD steigt weiter.
Abbildung 4: Viele Pages sind ungültig, weil deren Daten verändert und woanders abgespeichert wurden. Die Garbage Collection macht die ungülti-
gen Bereiche wieder nutzbar.

Write Amplification
Durch die geschilderten Algorithmen werden                                naturgemäß zu einer höheren Abnutzung und
einmal geschriebene Daten, selbst wenn sie nicht                          damit geringeren Lebensdauer. Manche SSD-
verändert werden, in andere Pages kopiert (etwa                           Controller (etwa von Sandforce) versuchen, durch
durch Garbage Collection oder Static Wear Leveling).                      eine Komprimierung der Daten im SSD-Controller
Ein geschriebenes Byte kann also mit der Zeit vom                         die nötigen Schreibvorgänge zu reduzieren, um
SSD-Controller durchaus mehrfach kopiert werden                           damit die Abnutzung zu reduzieren. Eine weitere
und somit zu mehreren Schreibvorgängen führen.                            Möglichkeit ist die Vergrößerung der Spare Area.
Der Faktor, wie oft es statistisch zu einem solchen                       Dadurch sinkt zwar die nutzbare Kapazität, da aber
Kopiervorgang kommt, wird als Write Amplification                         seltener eine Garbage Collection erforderlich ist,
bezeichnet. Eine hohe Write Amplification führt                           steigt dennoch die Lebensdauer der SSD.

Lebensdauer
Die Lebensdauer von SSDs ist durch die Lebensdauer                        stattdessen einen Spare Block aus der Spare Area. Es
der Speicherzellen begrenzt. Mit fortschreitender                         kommt dabei also zu keinem Datenverlust. Es sinkt
Nutzung können vermehrt Blöcke ausfallen. Wobei                           nur die Anzahl der Spare Blöcke. Einzelne Bitfehler
ein „Ausfall“ dabei relativ ist. Je mehr p/e-Zyklen                       können zwar auftreten (raw bit error rate, RBER),
stattfinden, umso länger dauert das Löschen                               werden aber durch ECC-Mechanismen korrigiert.
eines Blocks. Überschreitet diese Zeit zum Löschen                        Erst bei zu vielen Bitfehlern greift ECC nicht mehr,
einen bestimmten Schwellwert, markiert der SSD-                           und es kommt zu einem unkorrigierbaren Fehler
Controller diesen Block als „Bad Block“ und nutzt                         (uncorrectable bit error rate, UBER).
HIGH PERFORMANCE SOLID STATE DRIVES IM SERVEREINSATZ - Thomas-Krenn
thomas-krenn.com | 10

Damit die Lebensdauer von unterschiedlichen             Zeitraums, meist in der Garantiezeit, pro Tag
SSDs einfach vergleichbar sind, hat die JDEC Solid      vollständig beschrieben werden kann. Dazu wird,
State Technology Association die beiden Standards       abgesehen vom Zeitraum und der Kapazität des
JESD218 (SSD Requirements and Endurance Test            Mediums, der nach dem JDEC-Standard ermittelte
Method) und JESD219 (SSD Endurance Workloads)           TBW-Wert benötigt.
verabschiedet.
                                                        Einige SSDs geben auch per SMART Auskunft über
Damit können Hersteller die Lebensdauer ihrer SSDs      die verbleibende Lebensdauer (Media Wearout
in TBW (Terabytes Written, geschriebene Terabytes)      Indicator)[4]. Generell ist die zu erwartende
angeben. Ausgehend von dieser Metrik hat sich mit       Lebensdauer von SSDs bei normalen Schreibmengen
DWPD (Drive Writes Per Day) eine weitere Kennzahl       durchaus mit jenen von Festplatten vergleichbar,
etabliert, die die Lebensdauer von Festplatten          in der Praxis oft sogar höher, da bei es bei SSDs
besser untereinander vergleichbar macht. Sie gibt       zu keinen mechanischen Ausfällen (wie etwa
an, wie oft die SSD im Verlauf eines bestimmten         Headcrashes bei Festplatten) kommen kann.

Power Loss Protection
Wenn das Betriebssystem einen Schreibbefehl an die      genannte Power Loss Protection. Dazu wird ein
SSD sendet, gelangen die Daten zunächst in einen        Kondensator beim Einschalten der SSD aufgeladen.
flüchtigen DRAM-Speicher auf der SSD. Der Controller    Bei einem kurzzeitigen Stromausfall stellt er dann
nimmt dann die im Abschnitt „Schreibtechniken“          genug Energie zur Verfügung, um alle im DRAM
erläuterten Optimierungen vor, bevor er die Daten       vorhandenen Daten auf den Flash-Speicher zu
physikalisch auf den Flash-Speicher schreibt. Dem       schreiben.
Betriebssystem werden aber die Daten schon als
geschrieben gemeldet, sobald sie im DRAM sind.          Da die Kondensatoren vergleichsweise teuer
Der DRAM enthält zudem eine ständig aktualisierte       sind, ist die diese Art der Power Loss Protection
Mapping-Tabelle, das Flash Translation Layer            höherpreisigeren SSDs vorbehalten. Günstigere
(FTL), das die Zuordnung von logischen Adressen         Modelle verwenden ein Journaling-System, bei
in physikalische übernimmt. Das heißt, bei einem        dem die FTL und ein Journal in regelmäßigen
Stromausfall können sowohl Nutzerdaten als auch         Abständen auf den Flash-Speicher geschrieben
das aktuelle FTL verloren gehen.                        werden, so dass bei einem Stromausfall zumindest
                                                        die Datenkonsistenz zu einem vorangegangenen
Um sich dagegen zu schützen, besitzen Enterprise        Zustand wiederhergestellt werden kann.
SSDs und auch manche Consumer SSDs eine so

Einsatzgebiete
Bei Einzelplatz-PCs und Notebooks ist der               bei Notebooks die Akkulaufzeit erhöht. Außerdem
Einsatzzweck schnell beschrieben. SSDs ersetzen         ist eine SSD geräuschlos, was der Ergonomie bei der
dort einfach die herkömmlichen Festplatten.             Arbeit zugutekommt.
Damit fährt der Rechner schneller hoch, einzelne
Programme starten rascher und das Arbeiten am PC        Im Serverumfeld lohnt es sich hingegen, genauer
ist flüssiger. Der Stromverbrauch sinkt, so dass sich   hinzuschauen, denn dort ergeben sich verschiedene
thomas-krenn.com | 11

Einsatzmöglichkeiten, da zumindest in sehr naher         schützt vor Datenverlust beim Ausfall einer
Zukunft wird die Festplatte dort auch noch eine          einzelnen SSD. SSDs können darüber hinaus auch
Rolle spielen wird, vor allem, wenn es um große          als beschleunigender Schreib-/ Lesecache in
Datenmengen geht. Denn immer noch verursacht             einem RAID-Verbund mit normalen Festplatten
das Speichern auf Festplatten nur einen Bruchteil        genutzt werden. Bei Adaptec nennt sich diese
der Kosten pro Terabyte im Vergleich zur SSD.            Technologie maxCache und Broadcom benennt sie
                                                         als CacheCade.
Wenn jedoch viele zufällige I/O-Zugriffe auf
Datenmengen im unteren Terabyte-Bereich oder
                                                         Neben dem Caching ist auch Storage Tiering ein
weniger erfolgen, spielen SSDs ihre Vorteile voll aus,
                                                         weiterer Weg, um mittels eine Symbiose von HDDs
hier lohnen sich also All-Flash-Systeme definitiv.
                                                         und SSDs hohe Performance trotz niedriger Storage-
Datenbank-Anwendungen sind solche Fälle.
                                                         Kosten zu erreichen.
Eine Spiegelung von SSDs mit einem RAID 1

Fazit
SSDs sind nach wie vor mit höheren Einstiegskosten       Controller implementiert hat. Nach der Erarbeitung
verbunden. Sie zahlen sich aber durch ihre hohe          der Grundlagen der SSD-Technik zeigt das nächste
I/O-Performance oft sehr schnell aus. Entscheidend       Kapitel, über welche Protokolle und Schnittstellen
für eine gute Performance ist aber die Qualität,         SSDs im Server angebunden werden.
wie gut der Hersteller die Algorithmen im SSD-
thomas-krenn.com | 12

Verbindungstechnik
Protokolle, Schnittstellen und Formfaktoren
Es ist vielfach immer noch üblich, SSDs als Eins-       flexibler in der Form sein, und zweitens wird bei
zu-Eins-Ersatz für Festplatten zu sehen, also ein       der Datentransferrate die SATA-Schnittstelle zum
Device im 2,5-Zoll-Formfaktor an eine SATA- oder        Flaschenhals. Es ist also nicht verwunderlich,
SAS-Schnittstelle anzuschließen. Aus zwei Gründen       dass SSDs an schnellere Schnittstellen wie PCIe
ist es aber sinnvoll, hier mehrere Optionen in          angeschlossen werden, womit dann auch andere
Betracht zu ziehen. Ersten können SSDs aufgrund         Formfaktoren einhergehen.
der fehlenden mechanischen Teile wesentlich

Serial ATA
Serial ATA (SATA) ist der übliche Weg, Storage-         seitens der Hersteller von Storage-Medien, so dass
Medien anzuschließen. SATA-Medien sind preiswert        er in der Praxis keine Rolle spielt.
und mit hohen Kapazitäten verfügbar. Anwender
müssen auch kaum mit Kompatibilitätsproblemen           SATAe darf nicht mit eSATA verwechselt werden,
rechnen. Es gibt drei Generationen des SATA-            einer seit SATA II verfügbaren Anschlussart für
Standards, inoffiziell meist als SATA I, SATA II        externe Medien. Diese beruht auf den regulären
und SATA III, bezeichnet. Die Generationen sind         SATA-Protokollen, legt aber für Konnektoren und
zueinander abwärtskompatibel. Eine SATA-III-            Kabel andere elektrische Eigenschaften fest, um den
Platte passt also auch immer an einen SATA-I-           sicheren Betrieb von externen Geräten und längere
Anschluss. Der Unterschied der Generationen liegt       Kabel zu ermöglichen. Im Consumer-Bereich spielt
in der maximalen Übertragungsrate. Generation I         SATAe im Vergleich zu USB nur eine geringe, und bei
transportiert brutto bis zu 1,5 GBit/s, Generation II   Servern gar keine Rolle.
bis zu 3 GBit/s und Generation III 6 GBit/s. In der     Aus zwei Gründen ist SATA den Möglichkeiten
Praxis resultiert daraus eine Bandbreite von etwa       der SSDs auf Dauer nicht gewachsen und wird
600 MByte/s.                                            zum Flaschenhals. Zudem einen ist es die
                                                        Übertragungsrate zu gering, zweitens ist das
Ein weiterer SATA-Standard, nämlich SATA Express        von SATA-Geräten verwendete Protokoll AHCI für
oder SATAe, wurde von den Mainboard-Herstellern         magnetische Festplatten mit ihren hohen Latenzen
speziell im Hinblick auf SSDs entwickelt und lässt      und sequentiellem Schreiben und Lesen entwickelt
sowohl SATA- als auch PCIe-Geräte am gleichen           worden. SSDs bieten die Chance auf parallele
Anschluss zu. Dieser Standard mit Bandbreiten von       Zugriffe, die aber von AHCI nur bedingt genutzt
bis zu 16 GBit/s fand jedoch keine Unterstützung        werden kann.

NVMe
NVM Express (NVMe) hingegen ist ein auf SSDs            Augenmerk auf optimierte Kommando-Verwaltung
optimiertes Protokoll für den PCIeBus. Die              (Submission und Completion) entwickelt. Aufgrund
Spezifikation an sich ist nicht auf SSDs limitiert,     der hohen Geschwindigkeit von PCIe-SSDs wurde
sondern allgemein auf non-volatile (persistente)        außerdem darauf geachtet, dass möglichst
Speicher ausgelegt. Das Protokoll wurde mit             viele Kommandos parallel abgearbeitet werden
thomas-krenn.com | 13

können. NVMe-SSDs sind immer über den PCIe-Bus            übertragen. Üblicherweise sind NVMe-Medien mit
angebunden, NVMe wird als Protokoll eingesetzt,           vier Lanes angebunden. Die Bandbreite ist damit
analog zu AHCI bei SATA.                                  etwa sieben Mal höher als bei SATA III. Obwohl die
                                                          Flash-Chips in NVMe-SSDs die gleichen sind wie bei
PCIe kann bereits pro Lane etwa 985 MByte/s               SATA, sind NVMe-SSDs deutlich teurer.

Serial Attached SCSI (SAS)
Serial Attached SCSI als Nachfolger der parallelen        SAS-Controller betrieben werden können, nicht
SCSI-Schnittstelle ist für Festplatten sehr verbreitet.   jedoch umgekehrt. Im Vergleich zu SATA sind SAS-
Der aktuelle Standard SAS-3 bietet mit 12 GBit/s          SSDs dennoch im typischen Server-Einsatz eher
doppelt so hohe Übertragungsraten wie SATA III.           als Nischenprodukt zu klassifizieren. Etwa fünf
Daneben hat SAS noch einen weiteren Vorteil:              Prozent aller verkauften Enterprise-SSDs werden
Zwei Datenkanäle sind Standard. Damit lässt sich          über SAS angebunden. SAS-3 bietet mit 12 GBit/s
Redundanz bei der Datenübertragung herstellen             doppelt so hohe Übertragungsraten wie SATA III.
oder durch Kanalbündelung die Übertragungsrate            Vergleichsweise hohe Kosten und die Aussicht
weiter erhöhen. Es ist zudem abwärtskompatibel            auf noch leistungsfähigere NVMe-SSDs begrenzen
zu SATA, so dass SATA-Medien auch an einem                jedoch die Verbreitung.

M.2
Mini SATA oder mSATA war der erste Standard, um           SSDs, sie sind aber sehr preiswert und man spart
SSDs direkt per Steckverbinder, also ohne Kabel           sich immerhin einen Laufwerkseinschub. Oft ist es
zu verwenden. Mittlerweile wurde er bei neuer             sinnvoll, eine M.2-Karte für das Betriebssystem zu
Hardware von seinem Nachfolger M.2 abgelöst,              nutzen und Anwenderdaten etwa im RAID-Verbund
SSDs für mSATA sind aber nach wie vor im Handel           zu speichern.
erhältlich.
                                                          M.2-Module existieren in verschiedenen Größen, die
M.2 ist ein sehr flexibles Interface, das nicht nur       Breite beträgt dabei derzeit immer 22 Millimeter,
das SATA-Protokoll unterstützt, sondern auch PCIe         die Länge kann unterschiedlich sein: Erlaubt sind
und USB. Außerdem sind noch zahlreiche Pins für           16, 26, 30, 38, 42, 60, 80 oder 110 mm. In der Praxis
zukünftige und herstellerspezifische Anwendungen          kommen aber derzeit vor allem Module mit 42, 60,
frei. Wie bei mSATA wird dabei das Flash-Modul            80 oder 110 Millimeter Länge vor.
(oder eine andere Hardware-Erweiterung) direkt
auf einen Port auf dem Mainboard aufgesteckt und          Der Formfaktor einer M.2-SSD wird mit der
mit einer Schraube arretiert. Es liegt dabei in der       hintereinander geschriebenen Länge und Breite
Regel flach auf der Platine auf, der Platz dafür muss     kodiert, eine Karte mit Formfaktor 2280 ist also 22
also ausgespart sein.                                     Millimeter breit und 80 mm lang.

Obwohl die M.2-Schnittstelle primär für Notebooks         Bei der Auswahl der Karte muss man die
und PCs konzipiert wurde, kann der Einsatz von            Maximallänge beachten, die auf dem Board zur
M.2-SSDs auch im Server sinnvoll sein. SATA-Karten        Verfügung steht. Ist diese nur 80 mm, passt eine
am M.2-Steckplatz bringen zwar kaum Vorteile              SSD mit Formfaktor 22110 definitiv nicht. Kürzere
bei der Performance gegenüber anderen SATA-               Formfaktoren lassen sich zwar einbauen, aber unter
thomas-krenn.com | 14

Umständen nicht arretieren, da möglicherweise         Die meisten Karten haben aber beide Aussparungen,
an der gewünschten Stelle keine Fassung für die       passen also in beide Sockel-Typen.
Schraube vorhanden ist. In der Board-Spezifikation    Entscheidend ist, wie viele PCIe-Lanes der
ist deshalb in der Regel angegeben, welche            Mainboard-Hersteller      den      M.2-Schnittstelle
Formfaktoren erlaubt sind.                            spendiert. Bei einfachen Boards sind es oft nur
                                                      eine oder zwei, so dass PCIe-SSDs zwar schneller
Ein weiteres „mechanisches“ Kriterium für die         sind als SATA-Modelle, aber dennoch nicht die
passende Karte sind die so genannten Keys. Je         volle Bandbreite ausnutzen, die der Flash-Speicher
nachdem, welche Schnittstellen der Port zur           eigentlich erlauben würde. Wer also Wert auf
Verfügung stellt, sind an bestimmten Stellen          maximale Performance legt, sollte sichergehen,
Aussparungen am Konnektor vorhanden, damit sie        dass die M.2-Schnittstelle vier PCIe-Lanes
in den Sockel passen. Module mit „Key M“ haben        unterstützt. Bei Server-Mainboards ist dies in der
die Aussparung nach den ersten fünf Kontakten         Regel der Fall.
von rechts. Sie können PCIe mit vier Lanes und SATA   Ein wesentlicher Nachteil von M.2 besteht darin,
unterstützen. Bei „Key B“ ist die Aussparung nach     dass es nicht Hot-Swap-fähig ist. Außerdem besteht
den ersten sechs Pins von links. Diese erlauben       die Gefahr von Überhitzung, so dass eventuell
neben SATA nur PCIe mit maximal zwei Lanes.           zusätzliche Kühlkörper verwendet werden müssen.

Abbildung 5: M.2-Interface auf dem Mainboard
thomas-krenn.com | 15

U.2
Im Gegensatz zur M.2-Verbindung wurde das U.2-                         vier Lanes angebunden, zusätzlich ist auch der
Interface explizit für Server konzipiert. U.2-SSDs                     Betrieb über SATA- oder SAS möglich. Außerhalb
haben eine 2,5-Zoll-Bauform, sie werden also nicht                     der Hyperscale-Rechenzentren von großen Cloud-
direkt auf dem Mainboard aufgesteckt sondern                           Anbietern konnte sich der U.2-Standard bisher
mittels Kabel angeschlossen. Das spart Platz auf                       weder im Serverbereich noch im bei Desktop-PCs
dem Mainboard, zudem ist der Konnektor sehr                            wirklich durchsetzen. Außer Intel und Gigabyte
kompakt, da er „zweistöckig“ ausgeführt ist, also                      hat kaum ein größerer Hersteller die Interfaces auf
aus zwei übereinander liegenden Steckverbindern                        dem Mainboard verbaut. Wer dennoch U.2-Medien
besteht. Durch die Bauform bedingt ermöglichen                         einsetzen will oder muss, kann Adapter für M.2
U.2-SSDs größere Kapazitäten als die M.2-                              verwenden.
Steckkarten. U.2-SSDs sind über PCIe mit maximal

Ausblick: Ruler SSDs
Ende 2017 hat Intel SSDs mit einem neuen                               sollen die langgestreckte Ruler-Bauform zu besserer
Formfaktor für NVMe-SSDs angekündigt, dem                              Luftzirkulation und damit mehr Energieeffizienz
EDSFF (Enterprise and Datacenter Storage Form                          führen. Auch Samsung und Adata haben erste
Factor) oder auch NGSFF (Next Generation Small                         Produkte mit diesem Formfaktor vorgestellt.
Memory Form Factor). Diese auch als Ruler                              Die derzeit erhältlichen bzw. angekündigten
(Lineal) SSDs bezeichneten Module sind ca. 32 cm                       Kapazitäten liegen bei 8 bis 16 TB pro Modul. Im
lang, 3,7 cm hoch und 1 cm dick und mit diesen                         Moment scheint es noch zu früh für Prognosen,
Abmessungen auf 1-HE-Server angepasst. Intel will                      ob sich dieses Format langfristig in der gesamten
damit Speicherdichten von bis zu einem Petabyte                        Industrie durchsetzt oder nicht.
auf einer Höheneinheit möglich machen. Zudem

Fazit
Die richtige Schnittstelle und das passende Protokoll                  SATA-Schnittstelle vorherrschend bleiben. Neben
sind entscheidend, um die Leistung der SSD im Server                   der Anbindung sind aber auch Einstellungen des
voll ausnutzen zu können. In den letzten Jahren hat                    Betriebssystems wichtig, um optimale Performance
die Vielfalt der Optionen hier zugenommen. PCIe                        und Lebensdauer zu erreichen. Deshalb zeigt das
wird hier in der Zukunft die dominante Rolle spielen,                  nächste Kapitel, wie Sie die Leistung von SSDs
aber noch vor allem aus Kostengründen wird die                         messen und optimieren können.

4 SMART Attribute von Intel SSDs (https://www.thomas-krenn.com/de/wiki/SMART_Attribute_von_Intel_SSDs)
thomas-krenn.com | 16

Performance messen und optimieren
Schnelligkeit ist keine Hexerei
Sofern der Rechner halbwegs aktuell ist, erkennt      der SSD-Grundlagen im vorigen Kapitel lesen
er die SSD beim Hochfahren und kann sie sofort        Sie hier, welche Faktoren die Leistung einer SSD
verwenden, ganz gleich, ob sie über SATA oder         bestimmen, wie Sie sie messen können und wie Sie
NVMe angebunden ist. Nicht immer ist damit            mit der Überprüfung von wenigen Einstellungen die
jedoch gewährleistet, dass die SSD dann auch die      optimale Performance erreichen.
optimale Leistung bringt. Nach der Erarbeitung

IOPS, Latenz und Durchsatz
Bei der Messung der SSD-Performance sind vor          in ms, bis eine einzelne I/O-Operation durchgeführt
allem drei Messgrößen entscheidend: IOPS, Latenz      wurde. Die typische durchschnittliche Latenz beträgt
und Durchsatz. Der Begriff IOPS (Input/Output         bei SSDs zwischen 0,1 und 0,3 ms, bei Festplatten
Operations Per Second) beschreibt die Anzahl an       zwischen 5 und 10ms. Hierbei ist zu beachten, dass
Ein/Ausgabe-Operationen pro Sekunde. Read IOPS        die Festplatten-Hersteller mit der Latenz nur die Zeit
beziehen sich konkret auf Ausgaben pro Sekunde,       einer halben Umdrehung der Scheibe beschreiben.
Write IOPS auf Eingaben. Die Größe einer solchen      Zur echten Latenz, also der mittleren Zugriffszeit,
I/O-Operation beträgt 4 KiB (sofern nicht anders      ist hier noch die Spurwechselzeit (Seek Time) zu
angeführt). IOPS werden meistens „random“, also       addieren. Der Durchsatz schließlich bezeichnet die
mit zufällig verteilten Zugriffen gemessen, um        Datentransferrate in MByte pro Sekunde (MB/s). Er
tatsächlich Worst-Case-Werte zu erfassen. Während     wird typischerweise mit größeren und sequenziellen
Festplatten nur rund 100-300 IOPS schaffen, bieten    I/O-Operationen gemessen. Bei gleicher Anbindung
aktuelle SATA-Enterprise-SSDs etwa 45.000 Write       (SATA) schaffen SSDs etwa den doppelten bis
und 85.000 Read IOPS (beispielsweise das 1,2-TByte-   dreifachen Durchsatz von Festplatten. Bei SSDs mit
Modell Intel DC S3710 SSD). NVMe-Modelle gehen        wenigen Flash-Chips (SSDs mit geringerer Kapazität)
deutlich darüber hinaus. So erreicht etwa Intels      ist die Schreibperformance etwas eingeschränkt
DC P3700 mit 400 GByte bereits 75.000 Write und       und liegt etwa auf Festplatten-Niveau.
450.000 Read IOPS. Latenz beschreibt die Wartezeit

Folgende Faktoren beeinflussen
die Performance einer SSD:
_Read/Write Mix: Bei SSDs unterscheiden sich          die Schreibperformance durch eine größere Spare-
Lese- und Schreiboperationen auf Hardware-            Area und optimierte Controller-Firmware.
Ebene deutlich. Aufgrund des höheren Controller-
Overheads von Schreiboperationen erzielen SSDs        _Random/Sequential Mix: Die Anzahl an möglichen
typischerweise mehr Lese-IOPS als Schreib-IOPS.       IOPS hängt außerdem davon ab, ob die Zugriffe
Besonders hoch ist dieser Unterschied bei Consumer-   zufällig über den gesamten Datenbereich (LBA-
SSDs. Bei Enterprise-SSDs verbessern die Hersteller   Bereich) verteilt sind oder sequenziell durchgeführt
thomas-krenn.com | 17

werden. Bei zufälligen Zugriffen steigt der                 durchschnittliche Latenz, und damit die Wartezeit
Managementaufwand des SSD-Controllers und die               auf eine einzelne I/O-Operation – weil eben nicht
Anzahl an möglichen IOPS nimmt damit ab.                    jede Operation einzeln sofort an die SSD geleitet
                                                            wird, sondern erst, wenn die Warteschlange voll ist.
_Queue Depth: Die Queue Depth bezeichnet die
Länge der Warteschlange im I/O-Pfad zur SSD. Bei            _Spare Area: Die Größe der Spare Area hat einen
einer größeren Warteschlange (zum Beispiel 8, 16            direkten Einfluss auf die Random Write-Performance
oder 32) fasst das Betriebssystem die konfigurierte         der SSD (und damit auch auf die Kombination aus
Anzahl an I/O-Operationen zusammen, bevor es                Lese- und Schreib Performance). Je größer die Spare
diese an den SSD-Controller sendet. Eine größere            Area, desto seltener muss der SSD-Controller intern
Queue Depth erhöht die Anzahl der möglichen                 Daten umstrukturieren. Der SSD-Controller hat
IOPS, da die SSD die Anfragen parallel an die               damit mehr Zeit für Host-Anfragen – die Random
Flash-Chips senden kann. Sie erhöht aber auch die           Write-Performance steigt.

Performance-Messung mit FIO
Durchsatz Lesen
fio --name=readTP --rw=read --size=5G --bs=1024k –direct=1 --refill_buffers --ioengine=libaio --iodepth=16

Durchsatz Schreiben
fio --name=writeTP --rw=write --size=5G --bs=1024k –direct=1 --refill_buffers --ioengine=libaio --iodepth=16

IOPS Lesen
fio --name=readIOPS --rw=randread --size=1G --bs=4k –direct=1 --refill_buffers --ioengine=libaio --iodepth=16

IOPS Schreiben
fio --name=writeIOPS --rw=randwrite --size=1G --bs=4k –direct=1 --refill_buffers --ioengine=libaio --iodepth=16

IOPS Mixed Workload, 50 Prozent Lesen und 50 Prozent Schreiben
fio --name=mixedIOPS --rw=randrw --size=1G --bs=4k –direct=1 --refill_buffers --ioengine=libaio --iodepth=16

Bestimmen der Baseline Performance
Die zuvor genannten Eigenschaften von SSDs                  _Workload Pattern – I/O Pattern (Read/ Write Mix,
erfordern speziell abgestimmte Performance-                 Blockgrößen) während des Tests.
Tests. Konkret erschweren der FOB-Zustand
(Fresh out of the Box) und die Übergangsphasen              _Data Pattern – die geschriebenen Daten. Die
zwischen Workloads eine Bestimmung von stabilen             Anforderungen an aussagekräftige SSD-Tests hat
Performance-Werten. Die resultierenden Werte sind           die Organisation SNIA sogar dazu veranlasst, eine
daher von folgenden Faktoren abhängig:                      eigene „Enterprise Performance Test Specification“
                                                            (PTS) zu veröffentlichen.
_Schreibende Zugriffe sowie Präkonditionierung –
der Zustand der SSD vor dem Test.                           In den meisten Fällen besteht jedoch nicht die
thomas-krenn.com | 18

Möglichkeit, in diesem Umfang Tests durchzuführen.                   unter Linux verbreitet, aber auch für Windows und
Oftmals reicht es im ersten Schritt aus, mit                         VMware ESXi verfügbar. Entwickelt vom Maintainer
einfachen Mitteln eine „Baseline Performance“ der                    des Linux Block Layers, Jens Axboe, steckt einiges
SSD zu bestimmen. Dadurch erhalten Sie in Form                       an Wissen und Funktionalität darin. Nutzen Sie
von MB/s und IOPS auf Ihr System zugeschnittene                      die Tabelle für einen einfachen Performance-Test
Kenngrößen. Die Tabelle „Performance-Messung                         Ihrer SSD unter Linux. Windows-Nutzer müssen die
mit FIO“ geht näher auf das Performance-Werkzeug                     Parameter „libaio“ und „iodepth“ entfernen.
„Flexible I/O Tester“ (FIO) ein. FIO ist vor allem

Spare Area vergrößern
Wie bereits im ersten Kapitel dieses E-Books                         interne Kopieren die Anzahl der Schreibvorgänge auf
erwähnt, kann ein SSD Controller die Daten von einer                 die einzelnen Speicherzellen (die Write Amplification
einmalig beschriebenen Page (die aus mehreren                        steigt). Somit sinkt auch die Lebensdauer dieser
Speicherzellen besteht) nicht verändern. Vor einem                   Speicherzellen. Ein einfacher Trick verhindert
erneuten Beschreiben dieser Page müsste der                          häufige Aufrufe der Garbage Collection: Werden
Controller den gesamten Block löschen, in dem                        bei der erstmaligen Nutzung der SSD etwa nur
sich die Page befindet. Um dies zu vermeiden,                        90 Prozent des verfügbaren Datenbereiches
schreibt der Controller in einem solchen Fall die                    partitioniert (Over-Provisioning), erfolgen auf die
geänderten Daten einfach in eine andere, bisher                      restlichen zehn Prozent niemals Schreibzugriffe.
unbenutzte Page und aktualisiert seine interne                       Die entsprechenden Pages bleiben ungenutzt, der
Zuordnungstabelle       entsprechend     (Abbildung                  SSD Controller kann diese Pages somit wie Pages
6). Sind auf der SSD zu Beginn nur wenige Daten                      aus der Spare Area nutzen. Untersuchungen von
gespeichert, gibt es noch ausreichend freie Pages.                   Intel zeigen, dass bei einer solchen Einsparung
Darüber hinaus hat jede SSD eine Spare Area, deren                   von zehn Prozent der Datenmenge die Random-
Pages der SSD Controller ebenfalls für diese Zwecke                  I/O-Performance auf das Zweieinhalbfache steigen
nutzt. Bevor die freien Pages ganz zur Neige gehen,                  kann [5] (Abbildung 7).
räumt der SSD Controller mit seinem Garbage
Collector auf. Er kopiert dabei verstreute belegte                   Sinnvoll ist dies mittlerweile jedoch nur noch bei
Pages aus verschiedenen Blöcken in noch freie                        Consumer-SSDs mit einer von Haus aus kleinen
Pages. Die dadurch freigeschaufelten Blöcke kann                     Spare Area. Bei Enterprise-SSDs ist die Reserve an
er nun löschen. Damit stehen ihm in der Summe                        Pages in der Regel so großzügig dimensioniert, dass
wieder mehr unbenutzte Pages zur Verfügung.                          eine weitere Erhöhung kaum noch zu Performance-
                                                                     Gewinn führt und den Nachteil der kleineren Netto-
Diese Garbage Collection kostet jedoch Zeit und                      Kapazität nicht aufwiegt.
damit Performance. Außerdem erhöht sie durch das

5 Spare-Area vergrößern (https://www.thomas-krenn.com/de/wiki/SSD_Performance_optimieren)

Secure Erase
Wie bereits erläutert kann ein SSD Controller die                     Wiederverwendung einer zuvor bereits benutzten
Daten von einer einmalig beschriebenen Page nicht                     SSD ist es daher sinnvoll, vor dem Einsatz alle Blöcke
verändern, sondern muss zuvor den gesamten                            der SSD zu löschen. Bei den meisten SSDs klappt dies
Block mit mehreren Pages löschen. Für die                             mit einem einfachen Secure Erase.[6] Ein Secure
thomas-krenn.com | 19

Erase soll laut ATA-Spezifikation das sichere Löschen                  damit nicht mehr entschlüsselt werden, sind aber
aller gespeicherten Daten eines Datenträgers                           noch physisch vorhanden. Bei solchen SSDs werden
garantieren. Bei den meisten SSDs, die Secure Erase                    somit nicht alle Blöcke der SSD gelöscht. In diesem
unterstützen, führt dies zum physischen Löschen                        Fall müssen die Blöcke per TRIM gelöscht werden,
aller Blöcke der SSD. Die SSD ist dann wieder                          um für die neue Verwendung der SSD die optimale
mit der ursprünglichen optimalen Performance                           Performance zu bekommen. Windows führt seit
nutzbar, da alle Pages direkt beschrieben werden                       Version 7 ein solches TRIM bei der Formatierung
können. Bei einigen neueren SSDs ist das Secure                        automatisch durch. Unter Linux bietet »hdparm«
Erase allerdings anders implementiert. Diese SSDs                      dazu zwar die »--trim-sector-ranges«-Option, die
verschlüsseln automatisch alle geschriebenen                           Manpage von hdparm rät allerdings nach wie vor
Daten. Bei einem Secure Erase wird dann einfach                        von ihrer Verwendung ab.
der Schlüssel sicher gelöscht – die Daten können

5 Spare-Area vergrößern (https://www.thomas-krenn.com/de/wiki/SSD_Performance_optimieren)

                                     Abbildung 6: Viele Pages (rot markiert) sind ungültig, weil deren Daten verändert und woanders
                                     abgespeichert wurden. Der SSD Controller aktualisiert seine interne Zuordnungstabelle entsprechend.

Partition Alignment
Unter Partition Alignment versteht man das                              (Cylinder/Head/Sector) zu bleiben. Die Größe eines
Ausrichten von Partitionen an bestimmten                                solchen (logischen) Sektors beträgt 512 Byte. Bei
Grenzen eines Datenträgers [7]. Ein korrektes                           Festplatten mit einer physischen Sektorgröße von
Partition Alignment gewährleistet eine optimale                         512 Byte brachte das keine Nachteile. Aktuelle
Performance bei Datenzugriffen. Speziell bei SSDs                       Festplatten mit einer physischen Sektorgröße von
(mit internen Page-Größen von beispielsweise                            4.096 Byte (4 KiB) emulieren zwar nach außen hin
4.096 oder 8.192 Bytes), Festplatten mit 4 KiB-                         eine Sektorgröße von 512 Byte, arbeiten intern aber
Sektoren (4.096 Bytes) und RAID-Volumes führt                           mit 4.096 Byte. Und auch SSDs arbeiten mit einer
eine fehlerhafte Ausrichtung von Partitionen                            Pagegröße von 4 KiB beziehungsweise 8 KiB. Bei
zu einer verminderten Performance.[8] In der                            diesen neuen Festplatten und SSDs ist eine solche
Vergangenheit begann die erste Partition stets auf                      Partitionierung beginnend bei LBA-Adresse 63
LBA-Adresse 63 (entspricht dem 64. Sektor), um                          daher sehr problematisch. Formatiert der Benutzer
kompatibel zu DOS und zur alten CHS-Adressierung                        eine solche Partition mit einem Dateisystem mit
thomas-krenn.com | 20

einer typischen Blockgröße von 4 KiB, passen die                          der Installation. Beim späteren Einrichten von
4-KiB-Dateisystem-Blöcke nicht direkt in die 4 KiB                        Partitionen mit »fdisk« sind dessen Optionen »c«
oder 8 KiB großen Pages der SSD (Abbildung 8).                            (Deaktivieren des DOS Kompatibilitätsmodus) und
Beim Schreiben eines einzelnen 4-KiB-Dateisystem-                         »u« (verwendet Sektoren statt Zylinder als Einheiten)
Blockes müssen dann zwei 4 KiB Pages verändert                            nötig, um ein korrektes Alignment zu erhalten. Zur
werden. Erschwerend kommt dabei hinzu, dass                               Kontrolle zeigt »fdisk -l - u« die Startsektoren aller
die jeweiligen 512-Byte-Sektoren erhalten bleiben                         Partitionen. Sind diese Sektoren durch 2048 teilbar,
müssen – es kommt damit zu einem Read/Modify/                             sind alle Partitionen korrekt ausgerichtet (Listing 2).
Write. Die Folge ist eine bis zu 25fach schlechtere                       LVM-Versionen ab 2.02.73 verwenden dank eines
Schreibperformance bei kleinen Dateizugriffen, wie                        Patches von Mike Snitzer ebenfalls ein Alignment
Analysen von IBM zeigen.[9] Um diese Probleme                             von 1 MiB.[10]
zu vermeiden, empfiehlt sich ein Alignment auf
1 MiB – damit ist man auf lange Sicht auf der
sicheren Seite. Mit der aktuellen Adressierung in
512 Byte großen logischen Sektoren entspricht das
2048 Sektoren (Abbildung 9). Aktuelle Windows-
Versionen führen bei Partitionen größer 4 GiB ein
solches Alignment auf 1 MiB durch. Ältere Versionen
(Windows XP, Windows Server 2003) benötigen ein
manuelles Alignment. Aktuelle Linux-Distributionen
verwenden ebenfalls ein Alignment von 1 MiB bei

Abbildung 7: Eine etwas vergrößerte Spare Area hat positive Auswirkungen. Erhöht man das Overprovisioning Level um 20%, steigt die I/O
Performance um das 2,5fache. Eine Erhöhung auf 40% bringt jedoch keine deutlich besseren Werte.

7 Partition Alignment (https://www.thomas-krenn.com/de/wiki/Partition_Alignment) 8 Ben Martin, RAID-Systeme unter Linux optimal
konfigurieren, ADMIN 02/2011, S. 80

ATA TRIM
Eine weitere Funktion zur Steigerung der                                  Optimizers ein TRIM-Befehl an die SSD gesendet
Performance sowie der Lebensdauer ist ATA TRIM.                           und die Defragmentierung automatisch deaktiviert.
Mit dem TRIM-Kommando teilt das Betriebssystem                            Bereits seit Kernel 2.6.38 unterstützen Ext4 und XFS
der SSD mit, welche Datenbereiche (etwa die                               zudem das zeitversetzte Batched Discard, das bei
Datenbereiche einer gelöschten Datei) es nicht mehr                       SSDs mit langsamer TRIM-Funktion wichtig ist. Über
benötigt. Der SSD-Controller kann damit betroffene                        den tatsächlichen Performance-Gewinn aufgrund
Blöcke löschen, was ähnlich wie eine vergrößerte                          von ATA TRIM gibt es unterschiedliche Aussagen.
Spare Area die Performance und Haltbarkeit der                            Tatsache ist, dass ATA TRIM nur für einzelne SSDs
SSD steigern soll. Damit ATA TRIM funktioniert,                           genutzt werden kann. RAID-Controller unterstützen
muss es von der SSD, vom Betriebssystem und                               diese Funktion nicht. Eine etwas vergrößerte Spare-
vom Dateisystem unterstützt werden. Windows                               Area durch Nutzung von 90 Prozent der SSD-
mit NTFS oder Linux mit Ext4 mit Discard-Option                           Kapazität für das RAID-Volume sollte in diesem Fall
erfüllen diese Anforderungen. Ab Windows 8 wird                           ein Fehlen der TRIM-Funktion ausgleichen.
mittels der automatischen Optimierung des Storage
thomas-krenn.com | 21

Listing 2: Partition-Alignment mit fdisk:

root@ubuntu:~# fdisk -l -u /dev/sda
Disk /dev/sda: 240.1 GB, 240057409536 bytes
255 Köpfe, 63 Sektoren/Spur, 29185 Zylinder,
zusammen 468862128 Sektoren
Einheiten = Sektoren von 1 × 512 = 512 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Festplattenidentifikation: 0xf9ef975a

Abbildung 8: DOS-kompatible Partitionen, die bei LBA Adresse 63 beginnen, führen zu erheblichen Performance-Nachteilen bei Datenzugriffen.

Abbildung 9: Eine korrekt ausgerichtete Partition bringt optimale Performance bei Lese- und Schreiboperationen.

Gerät boot.            Anfang              Ende                    Blöcke               Id        System
/dev/sda1 *            2048                718847                  358400              7          HPFS/NTFS/exFAT
/dev/sda2              718848              468858879               234070016           7          HPFS/NTFS/exFAT

9 Linux on 4KB-sector disks (https://www.ibm.com/developerworks/linux/library/l-4kb-sector-disks) 10 LVM Alignment Patch (https://www.redhat.
com/archives/linux-lvm/2011-July/msg00063.html)

Fazit
Der Einsatz von SSDs bietet eine Menge an                                   Gigabyte über einen längeren Zeitraum genießen
Tuningpotential. Diese Einstellungen können eine                            zu können sollten Sie immer ein Auge auf die
erhebliche Geschwindigkeitsverbesserung und                                 korrekten Einstellungen haben. Das vierte Kapitel
Verlängerung der Lebensdauer bringen. Um die                                dieses E-Books erläutert, wie Sie SSDs in einem
Performance einer SSD und der im Vergleich zu                               RAID-Verbund optimal betreiben.
einer HDD noch teuren Anschaffungskosten pro
thomas-krenn.com | 22

Flash-Stapel mit Turbo
SSD-RAIDs mit optimaler Performance betreiben
Nach der Erläuterung des Aufbaus und der Funktion         die korrekten Einstellungen zum optimalen Betrieb
einer SSD und der Optimierung eines Betriebes             eines Software- und Hardware-RAIDs mit SSDs.
einer einzelnen SSD geht es in diesem Kapitel um

SSDs und RAID-Controller
Bis vor wenigen Jahren kamen in einem RAID-               zwar in ungenutzte Pages geschrieben werden –
Verbund ausschließlich Festplatten zum Einsatz.           ein nachträgliches Ändern ist jedoch nicht möglich.
Dementsprechend waren bis dahin Hardware-                 Das funktioniert erst dann wieder, wenn der SSD-
RAID-Controller ausschließlich auf die I/O-               Controller zuvor den gesamten zugehörigen Block
Charakteristiken von Festplatten optimiert. Die           löscht. Damit immer ausreichend ungenutzte
unterschiedlichen I/O-Eigenschaften von SSDs              Pages bereitstehen, verfügen SSDs über zusätzliche
erfordern jedoch entsprechend optimierte RAID-            Speicherzellen (Spare Area). Je nach SSD ist die
Controller und RAID-Einstellungen. Wie Sie Ihr SSD-       Größe der Spare Area zwischen 7 und 78 Prozent
RAID zu optimaler Performance bringen, zeigen wir         der Nennkapazität. Eine Möglichkeit, der SSD
Ihnen in diesem Kapitel.                                  mitzuteilen, welche Datenbereiche nicht mehr
                                                          verwendet und somit gelöscht werden können,
Konventionelle Festplatten speichern ihre Daten           ist TRIM. Hier teilt das Betriebssystem dem SSD-
auf einer oder mehreren Magnetscheiben, die               Controller mit, welche Datenbereiche gelöscht
über einen Schreib-/Lesekopf beschrieben und              werden können. TRIM lässt sich für eine einzelne
ausgelesen werden. SSDs kommen im Gegensatz               SSD einfach implementieren, für Paritäts-RAIDs
dazu ohne mechanische Bauteile aus. Die Daten             wäre die Umsetzung aber durchaus aufwändig.
werden hier in Flash-Speicherzellen abgelegt.             Daher unterstützt nach wie vor auch kein Hardware
Chips mit SLC (Single Level Cell) speichern 1 Bit         RAID-Controller die TRIM-Funktionalität. Dieses
pro Speicherzelle, jene mit MLC (Multi Level Cell) 2      Manko lässt sich aber recht leicht umschiffen: Die
Bits, TLC (Triple Level Cell) speichert 3 Bits. Mehrere   meisten Enterprise-SSDs kommen von Haus aus mit
Speicherzellen sind in einem Flash-Chip zu einer          einer vergleichsweise großen Spare-Area, weshalb
Page (zum Beispiel 8 KiB) organisiert. Mehrere Pages      die TRIM-Unterstützung kaum eine Rolle spielt. Und
bilden dann einen Block (etwa 2 MiB). Auf dieser          wem die Performance noch nicht reicht, der kann
Ebene kommt auch schon die erste Eigenheit von            zusätzlich noch mit Over-Provisioning arbeiten –
Flash-Speichern ans Tageslicht: Neue Daten können         dazu später mehr.

RAID 1, RAID 5 und RAID 10 mit SSDs
Wegen der in den letzten Jahren gesunkenen                Festplatten, aber dabei kommt es immer auf die
Preise werden immer mehr Festplatten-RAIDs                richtigen Einstellungen und das passende RAID-
durch SSD-RAIDs ersetzt. Flash-Systeme können             Level an.
zwar schneller sein als herkömmliche RAIDs mit
Sie können auch lesen