Anda di halaman 1dari 27

Das Fachmagazin fr IT-Experten

ADMIN
Netzwerk & Security

EUR 5,90

Digitales
Special
prsentiert von

SSD-Speicher
storage MIT high-speed
Know-how zur neuen Storage-Technologie

Grundlagen

Tuning

Testen

Flashcache

So funktionieren SSDs
Was kommt danach?

Korrekte Benchmarks
mit dem Fio-Tool

Einstellungen fr
maximale Performance

Synthese: SSDs als


Cache fr Festplatten

www.admin-magazin.de

S S D -s p e i c h e r

Grundlagen

So funktionieren SSD-Speicher

Elena Moiseeva, 123RF

Frische
Chips
Solid State Drives werden von Tag zu Tag populrer. Die kleinen Performance-Wunder versprechen eine deutlich
hhere I/O-Performance als herkmmliche Festplatten und das bei niedrigerem Stromverbrauch. Wie SSDs
funktionieren und wann sich deren Einsatz lohnt, verrt dieser Artikel. Werner Fischer
SSDs haben mit normalen Festplatten nur
eine Gemeinsamkeit: Beide Medien speichern Daten. Intern arbeiten SSDs allerdings vollkommen anders als Festplatten.
Whrend Festplatten die Daten auf mehreren Magnetscheiben speichern, nutzen
SSDs mehrere Flash-Chips meist bis zu
zehn Stck fr die Datenspeicherung.
Da bei SSDs keine mechanischen Teile
wie bei Festplatten bewegt werden, sind
vor allem zufllig verteilte Datenzugriffe
deutlich schneller.

Festplatte im Vergleich
Um die Performance von SSDs mit Festplatten zu vergleichen, lohnt zuvor ein
kurzer Blick auf den Aufbau herkmmlicher Festplatten. Diese speichern die
Daten auf mehreren rotierenden Magnetscheiben. Die Daten werden dabei mit
Schreib-/Lesekpfen auf die Scheiben
geschrieben beziehungsweise von diesen gelesen.
Soll nun ein zuflliger Sektor von der
Festplatte gelesen werden, muss die
Festplatte den Schreib-/Lesekopf an die
richtige Stelle bewegen (Seek Time) und
dann darauf warten, dass der gewnschte
Sektor auf der rotierenden Scheibe unter
dem Schreib-/Lesekopf vorbeifhrt (La-

A D M I N -SS D -S p ec ia l

tency Time). Die Latency Time betrgt


dabei im Mittel die Dauer, welche fr
eine halbe Umdrehung notwendig ist. Die
Summe aus Seek Time und Latency Time
ergibt die Random Access Time (mittlere Zugriffzeit). Diese betrgt je nach
Festplatte und deren Drehzahl zwischen
fnf und 15 Millisekunden, was 200 respektive 66 IOPS (I/O-Operationen pro
Sekunde) entspricht.
SSDs erreichen im Vergleich dazu mehrere tausend zufllig verteilte IOPS. Bei
kontinuierlichen Datentransfers kann
die Festplatte allerdings deutlich besser
mithalten. Sie liefert dabei je nach Typ
zwischen 60 und 150 MByte/s. SSDs knnen zwar zu Beginn ber 250 MByte/s
liefern. Mit hherem Fllstand der SSD
sinkt diese Rate jedoch. Wie sehr die Datenrate zurckgeht, hngt dabei von den
Algorithmen im SSD-Controller ab.

Aufbau
Die kleinste Einheit in einem Flash-Chip
einer SSD ist die Speicherzelle. Je nach
Typ speichert eine einzelne Speicherzelle
ein oder mehrere Bits:
nSLC (Single Level Cell) 1 Bit
nMLC (Multi Level Cell) 2 Bits
nTLC (Triple Level Cell) 3 Bits

Eine SLC unterscheidet zwei Ladungszustnde, eine MLC vier und eine TLC
acht. Die angelegte Spannung beim
Schreiben auf eine Speicherzelle ist allerdings fix. Daher muss bei einer MLC
fr einen Schreibvorgang bis zu vier Mal
Spannung angelegt werden, um in den
hchsten Ladungszustand zu kommen.
Bei einer SLC reichen maximal zwei solcher Vorgnge die Schreibperformance
ist damit hher. TLCs erfordern bis zu
acht Mal Spannung und werden daher
fr SSDs nicht verwendet. Aufgrund ihrer
hohen Datendichte und hheren Kapazitt werden TLCs aber fr USB-Sticks
und SD-Karten genutzt. Dazu reicht ihre
Performance aus.
Bei jedem Anlegen von Spannung kommt
es zu einer kleinen Abntzung der Isolationsschicht der Speicherzelle. Da fr
einen einzelnen Schreibvorgang auf eine
MLC fter Spannung angelegt wird als
bei einer SLC, vertrgt die MLC weniger
Schreibvorgnge (sogenannte Program/
Erase Cycles oder p/e-Zyklen). MLCs haben meist eine Lebensdauer zwischen
10000 und 30000 p/e-Zyklen, SLCs rund
100000 p/e-Zyklen.
Mehrere Speicherzellen bilden eine Page.
Sie ist die kleinste Struktur, die vom
SSD-Controller gelesen oder beschrie-

w w w. admin - maga z in . d e

Grundlagen

ben werden kann. Allerdings kann der


SSD-Controller den Inhalt einer bereits
beschriebenen Page nicht lschen oder
verndern. Eine Page ist in der Regel vier
Kibibyte (KiB) gro (= 4096 Bytes). Mit
MLCs entspricht das 16384 Speicherzellen. Knftige Flash Chips mit einer Fertigungsstrukturbreite von 25 nm haben
Pages mit acht KiB Gre.
Mehrere Pages sind in Blcken zusammengefasst. Aktuell besteht ein solcher
Block aus 128 Pages und fasst damit
512 KiB an Daten. Blcke der knftigen
25nm-Fertigung nutzen 256 Pages acht
KiB, in Summe also 2 MiB. Ein Block
ist die kleinste Einheit, die der SSDController lschen kann, indem er eine
Lschspannung am gesamten Block anlegt. Erst nach dem Lschen eines Blocks
kann der SSD-Controller die einzelnen
Pages wieder neu beschreiben.
1024 Blcke bilden eine Plane. Vier Planes sind wiederum auf einem Die untergebracht, wie Abbildung 1 zeigt. Ein
Die ist dabei etwa so gro wie ein Fingernagel (167 mm2). In der Produktion
werden circa 200 bis 300 Dies aus einem
Wafer gewonnen. Je nach gewnschter
Kapazitt landen ein bis acht Dies in einem Thin small-outline package (TSOP)
jene schwarzen Chips, wie sie auch auf
Speichermodulen vorhanden sind. Eine
SSD besteht schlielich aus bis zu zehn
TSOPs und einem SSD-Controller.

Schreibtechniken
Die geschilderte interne Funktionsweise
einer SSD erfordert spezielle Schreibtechniken um sowohl eine hohe Performance
als auch eine lange Lebensdauer der SSD
zu erreichen. Das erstmalige Beschreiben
einer neuen SSD ist dabei noch einfach.
Alle Blcke (und somit auch alle Pages)
sind gelscht. Neue Daten schreibt der
SSD-Controller direkt auf die entsprechenden Pages.
Schwieriger wird es, sobald bereits vorhandene Daten verndert werden. Ohne
zustzliche Mechanismen msste der
SSD-Controller smtliche Pages eines
Blocks zuerst in einen Cache einlesen,
anschlieend den gesamten Block lschen, um abschlieend die zwischengespeicherten Pages versehen mit den
nderungen wieder in den Block zu
schreiben. Die nderung eines einzel-

w w w. admin - maga z in . d e

S S D -s p e i c h e r

Abbildung 1: Die eines Flash-Chips mit vier Planes. (Quelle: Intel)

nen Bits wrde so das Lesen, Lschen


und Neuschreiben von 512 KiB an Daten
verursachen.
Das vermeidet der SSD-Controller mit
einem einfachen Trick. Wenn er Daten
einer Page verndert, schreibt er dazu
einfach die neuen Daten in eine andere
Page, die noch gelscht ist. In einer internen Zuordnungstabelle vermerkt der
Controller dabei, dass die Daten der logischen LBA-Adresse A nun nicht mehr
in Page X, sondern in Page Y zu finden
sind. Die ursprngliche Page X markiert
er als ungltig. Damit diese Methode
funktioniert, bentigt der SSD-Controller
zustzliche Speicherkapazitt. Ansonsten
knnte er auf einer vollgeschriebenen
SSD keine Daten mehr verndern. Daher
hat jede SSD eine sogenannte Spare Area.
Typischerweise betrgt die Gre dieser
Spare Area zwischen sieben und 27 Prozent der Nennkapazitt einer SSD. Eine
160 GB SSD kann etwa tatschlich ber
172 GByte verfgen, 12 GByte versteckt
die SSD aber vor dem Betriebssystem und
nutzt diese Datenmenge als Spare Area.
Mit fortschreitender Nutzungsdauer verndern sich immer mehr vorhandene
Daten. Mehr und mehr Pages markiert
der SSD-Controller als ungltig. Einzelne
Blcke enthalten nur mehr 40 bis 60 Prozent echte Daten, die restlichen Pages
darin sind ungltig und knnen vorerst
nicht weiter genutzt werden. Bevor nun
die Spare Area zur Neige geht, rumt der
SSD-Controller auf. Bei dieser Garbage
Collection kopiert der SSD-Controller die
noch gltigen Pages eines Blocks in einen
freien Block, der damit nur teilweise gefllt ist. Die restlichen Pages dieses neuen

Blocks bleiben noch unbeschrieben und


knnen fr weitere Schreiboperationen
gentzt werden. Den ursprnglichen
Block lscht der SSD-Controller danach.
Somit sind alle Pages dieses gelschten
Blocks wieder beschreibbar. Abbildung
2 zeigt ein solches Beispiel.
Wie eingangs erwhnt, ist die Anzahl der
mglichen Schreibvorgnge (p/e-Zyklen)
pro Speicherzelle begrenzt. Sollen nun
neue Daten gespeichert werden, schreibt
der SSD-Controller daher immer zuerst
auf Pages, die noch wenig abgentzt
sind. Dieser Vorgang wird als Dynamic
Wear Leveling (dynamische Abnutzungsverteilung) bezeichnet. Dynamisch deshalb, weil nur neue oder vernderte Daten verteilt werden.
Diese Methode erhht 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 abgentzt sind. Damit werden tatschlich alle Pages einer
SSD gleichmig abgentzt und die Lebensdauer der SSD steigt weiter.

Write Amplification
Durch die geschilderten Algorithmen werden einmal geschriebene Daten, selbst
wenn sie nicht verndert werden, in andere Pages kopiert (etwa durch Garbage
Collection oder Static Wear Leveling).
Ein geschriebenes Byte kann also mit
der Zeit vom SSD-Controller durchaus
mehrfach kopiert werden und somit zu

A D M I N -SS D -S p ec ia l

S S D -s p e i c h e r

Grundlagen

mehreren Schreibvorgngen fhren. Der


Faktor, wie oft es statistisch zu einem
solchen Kopiervorgang kommt, wird als
Write Amplification bezeichnet.
Eine hohe Write Amplification fhrt naturgem zu einer hheren Abnutzung
und damit geringeren Lebensdauer. Manche SSD-Controller (etwa von Sandforce)
versuchen, durch eine Komprimierung
der Daten im SSD-Controller die ntigen
Schreibvorgnge zu reduzieren, um damit die Abnutzung zu reduzieren. Eine
weitere Mglichkeit ist die Vergrerung
der Spare Area. Dadurch sinkt zwar die
nutzbare Kapazitt, da aber seltener eine
Garbage Collection erforderlich ist, steigt
dennoch die Lebensdauer der SSD.

Lebensdauer
Die Lebensdauer von SSDs ist durch
die Lebensdauer der Speicherzellen begrenzt. Mit fortschreitender Nutzung
knnen vermehrt Blcke ausfallen. Wobei ein Ausfall dabei relativ ist. Je mehr
p/e-Zyklen stattfinden, umso lnger
dauert das Lschen eines Blocks. berschreitet diese Zeit zum Lschen einen
bestimmten Schwellwert, markiert der
SSD-Controller diesen Block als Bad
Block und nutzt stattdessen einen Spare
Block aus der Spare Area. Es kommt dabei also zu keinem Datenverlust. Es sinkt
nur die Anzahl der Spare-Blcke. Einzelne Bitfehler knnen zwar auftreten
(raw bit error rate, RBER), werden aber
durch ECC-Mechanismen korrigiert. Erst

bei zu vielen Bitfehlern greift ECC nicht


mehr, und es kommt zu einem unkorrigierbaren Fehler (uncorrectable bit error
rate, UBER).
Damit knftig die Lebensdauer von unterschiedlichen SSDs einfach vergleichbar
sind, hat die JDEC Solid State Technology
Association die beiden Standards JESD218
(SSD Requirements and Endurance Test
Method) und JESD219 (SSD Endurance
Workloads) verabschiedet. Damit knnen
Hersteller die Lebensdauer ihrer SSDs in
TBW (Terabytes written, geschriebene
Terabytes) angeben. Einige SSDs geben
auch schon jetzt per SMART Auskunft
ber die verbleibende Lebensdauer (Media Wearout Indicator) [1]. Generell ist die
zu erwartende Lebensdauer von SSDs bei
normalen Schreibmengen durchaus mit
jenen von Festplatten vergleichbar, oft sogar hher, da bei es bei SSDs zu keinen
mechanischen Ausfllen (wie etwa Headcrashes bei Festplatten) kommt.

Einsatzgebiete

SSDs eignen sich aufgrund ihrer Eigenschaften fr zahlreiche Einsatzgebiete.


Die folgende Auflistung ist nach aufsteigenden Investitionskosten gegliedert.
Bereits eine SSD mit geringerer Kapazitt
zwischen 40 und 80 GByte bringt bei einem Einzelplatz-PC deutliche Produktivittsvorteile. Bei geringen Investitionskosten dient sie als Installationsmedium fr
das Betriebssystem und die Anwendungsprogramme neben einer normalen Festplatte, die Benutzerdaten enthlt.
Das Hochfahren des Rechners
geht damit deutlich schneller.
Auch die einzelnen Programme
starten rascher, das Arbeiten am
PC ist flssiger.
SSDs mit hheren Kapazitten
ab 160 GByte knnen die bisherige Festplatte in einem Rechner
vollstndig ersetzen. Das erhht
zwar die Kosten, beschleunigt
aber dafr auch den Zugriff auf
die Daten des Benutzers. Weitere
Vorteile durch den Wegfall einer
herkmmlichen Festplatte sind
der Wegfall des Betriebsgerusches der Festplatte und der deutAbbildung 2: Viele Pages sind ungltig, weil deren Daten
lich geringere Stromverbrauch.
verndert und woanders abgespeichert wurden. Die Garbage
Bei Notebooks lsst sich damit
Collection macht die ungltigen Bereiche wieder nutzbar.
die Akkulaufzeit um 20 bis 30 Mi-

A D M I N -SS D -S p ec ia l

nuten erhhen. Auch im Serverumfeld


lassen sich SSDs sinnvoll einsetzen. Vor
allem bei Datenbanken mit vielen zuflligen I/O-Zugriffen spielen SSDs ihre Vorteile aus. Eine Spiegelung von SSDs mit
einem RAID 1 schtzt vor Datenverlust
beim Ausfall einer einzelnen SSD. Manche RAID-Controller untersttzen dabei
sogar ein RAID 1 bestehend aus einer
SSD und einer herkmmlichen Festplatte,
wobei der RAID-Controller dabei Lesezugriffe im Normalbetrieb ausschlielich an
die SSD schickt.
SSDs knnen darber hinaus auch als
beschleunigender Lesecache in einem
RAID-Verbund mit normalen Festplatten
genutzt werden. Adaptec-Controller mit
Maxcache-Untersttzung legen hufig gelesene Datenbereiche zustzlich auf SSD
ab [2]. Um diese Daten spter erneut
zu lesen, wird direkt von den SSD gelesen und nicht von den RAID-Festplatten.
Im Gegensatz zum normalen Cache des
RAID-Controllers hat dieser SSD-Cache
eine deutlich hhere Kapazitt und bleibt
auch bei einem Reboot erhalten.

Fazit
SSDs sind zwar nach wie vor mit hheren
Einstiegskosten verbunden. Sie zahlen
sich aber durch ihre hohe I/O Performance
oft sehr schnell aus. Entscheidend fr eine
gute Performance ist aber die Qualitt, wie
gut der Hersteller die Algorithmen im SSDController implementiert hat.
Ein weiterer Artikel in diesem ADMINSSD-Special zeigt, wie sich die SSD-Performance mit AHCI, ATA TRIM, einer
vergrerten Spare Area und durch ein
korrektes Partition Alignment optimieren
n
lsst. (ofr)

Infos:
[1] SSD-SMART-Analyse: [http://www.
thomaskrenn.com/SSDSMARTAnalyse]
[2] Maxcache-Support: [http://www.
thomaskrenn.com/maxCache]
Der Autor
Werner Fischer ist seit 2005 Technology Specialist bei der Thomas-Krenn.AG und Chefredakteur
des Thomas Krenn Wikis. Seine Arbeitsschwerpunkte liegen in den Bereichen HardwareMonitoring, Virtualisierung, I/O Performance
und Hochverfgbarkeit.

w w w. admin - maga z in . d e

S S D -s p e i c h e r

I/O -Benchmarks

I/O-Benchmarks mit Fio

Blockweise

Einfache Disk-Benchmarks messen oft nur einen bestimmten Anwendungsfall. Der flexible I/O-Tester Fio simuliert ganz unterschiedliche Workloads und misst neben der Bandbreite auch die Anzahl der I/Os pro Sekunde,
Latenzen sowie die CPU-Auslastung. Martin Steigerwald
Der Maintainer der Blockgerte-Ebene
des Linux-Kernels Jens Axboe entwickelte Fio, um die Performance in unterschiedlichen Anwendungsfllen zu messen. Einfache Benchmarks wie hdparm
oder dd sind zu beschrnkt und testen
beispielsweise nur sequenzielles I/O,
das in blichen Workloads mit vielen
kleinen Dateien keine groe Rolle spielt.
Fr jeden Workload ein eigenes Testprogramm zu schreiben, ist indes ziemlich
aufwendig.
Aktuell ist die Version 2.07. Fr Debian
gibt es ein vom Artikel-Autor erstelltes
Paket, das Ubuntu-Entwickler in ihrer
Distribution bernommen haben. Fr
Suse-Versionen ab SLES 9 sowie Open
Suse 11.3 stellt das Benchmark-Repository ein aktuelles Paket bereit [1].
In Fedora ist Fio ebenfalls enthalten.
Die Quellen aus dem Tarball oder dem
Git-Repository lassen sich mit den Entwicklerdateien zur libaio, bei Debian
und Abkmmlingen als libaiodev, bei
RPM-basierten Distributionen blicherweise als libaiodevel, mit einem simplen Make bersetzen [2][3]. Auch unter
verschiedenen BSD-Varianten und Win-

A D M I N -SS D -S p ec ia l

dows lsst sich Fio zum Laufen bringen,


wie die Dokumentation erklrt.
Ein I/O-Workload besteht aus einem
oder mehreren Jobs. Die Job-Definitionen
nimmt Fio als Parameter auf der Befehlszeile oder als Job-Dateien in dem von
Windows und KDE bekannten Ini-Format
entgegen.
So richtet Fio mit dem einfachen Aufruf
fio name=zuflliglesen rw=randreadU
size=256m

den Job zuflliglesen ein und fhrt


ihn aus: Fio erstellt dazu im aktuellen
Verzeichnis eine Datei mit der Gre
256 MiB und einen Prozess fr den Job.
Dieser Prozess liest den gesamten DateiInhalt in zuflliger Abfolge. Fio fhrt
dabei Buch ber bereits gelesene Bereiche und liest jeden Bereich nur einmal.
Whrenddessen misst das Programm die
CPU-Auslastung, die erzielte Bandbreite,
die Anzahl der I/Os pro Sekunde und die
Latenzen. Das Ganze funktioniert natrlich auch als Job-Datei:
[zuflliglesen]
rw=randread
size=256m

Von da aus lsst sich der Workload beliebig erweitern. So definiert


[global]
rw=randread
size=256m
[zuflliglesen1]
[zuflliglesen2]

zwei Jobs, die jeweils eine 256 MiB groe


Datei in zuflliger Reihenfolge einlesen.
Alternativ erreicht die Option numjobs=2 den gleichen Effekt.
Fio fhrt standardmig alle Jobs aus.
Mit der Option stonewall wartet Fio,
bis alle vorher laufenden Jobs fertig sind,
bevor es weitermacht. So liest Fio mit
[global]
rw=randread
size=256m
[zuflliglesen]
[sequenzielllesen]
stonewall
rw=read

zunchst eine Datei zufllig und dann die


zweite Datei sequenziell (Abbildung 1).
Die Optionen in der Sektion global gelten dabei fr alle Jobs und lassen sich pro

w w w. admin - maga z in . d e

I/O-Benchmarks

S S D -s p e i c h e r

Job abndern. Mchte man


jeweils zwei Gruppen von
zwei gleichzeitig laufenden
Jobs hintereinander laufen
lassen, muss die Option
stonewall beim dritten
Job stehen. Vor dem Ausfhren einer Job-Gruppe
verwirft Fio den Pagecache,
wenn nicht invalidate=0
gesetzt ist.
Whrend Fio den Work
load ausfhrt, informiert es
ber seine Fortschritte:
Jobs: 1 (f=1): [rP] [64.7% U
done] [16948K/0K /s] [4137 /U
0

iops] [eta 00m:06s]

Im Beispiel luft der erste


Job mit sequenziellem Lesen, in den eckigen Klammern markiert als r,
whrend Fio den zweiten
noch nicht initialisiert
hat, markiert als P. Der
Buchstabe R steht fr se- Abbildung 1: Ein einfacher Testlauf mit zwei Jobs, die Fio hintereinander durchfhrt.
quenzielles Lesen, w fr
zuflliges Schreiben, W fr sequenziel- ner 300 GB Intel SSD 320 und dem Linux- Readahead und Pagecache ihre Finger
les Schreiben und so weiter (siehe Man- Kernel 3.0. Bei Performance-Messungen im Spiel.
page unter OUTPUT). Das Programm
empfiehlt es sich, vorher zu berlegen,
gibt zustzlich den prozentualen Fort- was man misst, und dann nachzuprfen,
schritt der aktuellen Job-Gruppe, dann
ob die Ergebnisse glaubwrdig sind.
Wie Fio die I/O-Operationen durchfhrt,
die aktuelle Lese- und SchreibgeschwinDas Programm verwendete die Standardhngt davon ab, welche I/O-Engine es
digkeit, die aktuellen Lese- und SchreibBlockgre von 4 KiB wie ganz am Anmit welchen Einstellungen verwendet. EiIOPS sowie die voraussichtliche Dauer fang in der Ausgabe bei den Job-Gruppen
zu sehen. Die etwa 16000 KiB/s und 4000 nen berblick ber die vielen beteiligten
des Tests aus.
I/O-Operationen pro Sekunde (IOPS) fr
Komponenten gibt Abbildung 2. Mehrere
Sind alle Jobs fertig, prsentiert das Programm die Ergebnisse. Neben der erAnwendungen lesen und schreiben Dazuflliges Lesen liegen im Rahmen des
reichten Bandbreite und den IOPS zeigt fr eine SSD Mglichen (siehe Tabelle
ten, indem sie mit einem oder mehreren
Fio unter anderem die CPU-Auslastung und Kasten IOPS-Richtwerte). Bei den Prozessen und etwaigen Threads Systember 65000 IOPS und 260 MiB/Sekunde
Funktionen aufrufen. Die System-Routiund die Anzahl der Kontext-Switches. Im
Abschnitt IO findet sich die prozentuale
fr sequenzielles Lesen hatten jedoch
nen verwenden oder umgehen je nach
Verteilung, wie viele I/O-Requests Fio in
IOPS erklrt
Bearbeitung hatte (IO depths) und wie
lange deren Abarbeitung dauerte (lat
Wie viele IOPS ein Laufwerk erreichen kann, zeit errechnet sich aus dem Kehrwert der IOPS
richtet sich nach dessen Leistungsfhigkeit so- und betrgt fr die genannten 70 IOPS knapp
fr Latenz).
wie dem definierten Workload. Der Schnittstel- 14,3 Millisekunden. Eine SSD braucht bei 4000
Abbildung 1 zeigt die Ergebnisse eines
lentyp wie SATA, SAS, Fibre Channel oder PCIe IOPS circa 0,25 Milli- oder 250 Mikrosekunden
Testlaufs auf einem ThinkPad T520 mit eiund der Controller ben ebenfalls einen Einfluss (siehe Abbildung 1).
aus. In der Regel geht es darum, die Geschwin- Einige Messwerte fr Festplatten, SSDs und das
Tabelle 1: IOPS-Richtwerte
digkeit beim Arbeiten mit kleinen I/Os zu testen. PCIe-Flash Fusion ioDrive finden sich unter [4]
Laufwerk
IOPS-Richtwert
Daher kommt typischerweise eine Blockgre und [5]. Bei Festplatten setzt sich die mittlere
SATA-Platte, 7200 RPM
40 100
von 4 KiB zum Einsatz. In diesem Fall erreicht Zugriffszeit aus der Spurwechselzeit (seek time)
eine Festplatte mit 70 IOPS maximal eine Da- und der durchschnittlichen Latenz, also der
SATA-Platte, 10000 RPM 100 150
tentransferrate von 70 * 4 KiB also 280 KiB Dauer einer halben Umdrehung der Festplatte
SATA-Platte, 15000 RPM 170 220
pro Sekunde ein Wert, der deutlich unter der [6] zusammen. Bei kleinen I/O-Gren ist die
SATA-300-SSD
400 - 10000
maximalen sequenziellen Datentransferrate bei Datenbertragungsrate in der Regel vernachlsPCIe-SSD
bis zu eine Million
groen Blockgren liegt. Die mittlere Zugriffs- sigbar, ebenso wie der Controller-Overhead.

Motorenvielfalt

w w w. admin - maga z in . d e

A D M I N -SS D -S p ec ia l

S S D -s p e i c h e r

I/O -Benchmarks

bedeutsam. Allerdings
gibt es asynchrones
und synchrones Verhalten sowie Warteschlangen sowohl
auf der Anwendungsebene als auch auf der
Gerte-Ebene.
So arbeitet die in
den bisherigen Beispielen verwendete
I/O-Engine sync, die
die Systemfunktionen
read, write und
gegebenenfalls lseek
verwendet, auf Anwendungsebene synchron, ebenso wie
psync und vsync:
Abbildung 2: Viele Ebenen sind unter Linux beim Lesen und Schreiben von
Der Aufruf der FunkDateien beteiligt.
tion kehrt erst zurck,
wenn die Daten geleParameter den Pagecache. Zugriffe auf
sen oder zum Schreiben im Pagecache geDateien setzt ein Dateisystem in Zugriffe
landet sind. Daher ist die Lnge der Warauf Blcke um, whrend systemnahe Pro- teschlange auf Anwendungsebene immer
gramme wie dd, der Linux-Kernel beim eins. Solange der Prozess aber nicht zu
Auslagern auf ein Swap-Gert sowie entviele Daten auf einmal schreibt, landen
sprechend konfigurierte Anwendungen
diese erst einmal nicht auf der Platte (Abwie einige Datenbanken oder der News- bildung 3). Der Kernel sammelt sie im
feeder/Reader Diablo direkt auf BlockPagecache und schreibt sie auf Gertegerte schreiben [7]. Im Block Layer
Ebene spter doch asynchron.
gibt der gerade laufende I/O-Scheduler
Das Lesen geschieht bei den synchronen
die Requests nach festgelegten Regeln
Engines auch auf Gerte-Ebene synchron,
an die Gertetreiber weiter. Der Contes sei denn, mehrere Prozesse lesen
roller schlielich spricht das Gert an,
gleichzeitig. Das ist dann aber nicht so
effizient wie asynchrones I/O auf der
das ebenfalls einen mehr oder weniger
aufwendigen Controller mit eigener FirmAnwendungsebene. Wer den Pagecache
ware besitzt.
umgehen und damit das Gert selbst
Fr Ergebnisse von Performance-Messungen ist es ausschlaggebend, ob Requests
asynchron oder synchron verarbeitet
werden. Auch die Lnge der RequestWarteschlange sowie der Einsatz oder
das berspringen des Pagecaches sind

messen mchte, verwendet die Option


direct=1. Auf Gerte-Ebene synchrones und damit unrealistisch langsames
Arbeiten aktiviert die Option sync=1,
die bei den meisten Engines der Funktion
open() das Flag O_SYNC bergibt.
Dann kehrt der System-Aufruf erst zurck, wenn die Daten auf dem Laufwerk
sind.
Auf der Anwendungsebene asynchron
arbeiten unter anderem die Engines
libaio, posixio, windowsaio und
solarisaio[8]. Mit asynchronen I/Os
setzt die Anwendung mehrere Requests
ab, ohne auf jeden einzelnen Request
zu warten. So rechnet sie mitunter mit
bereits erhaltenen Daten, whrend weitere Requests in Bearbeitung (pending)
sind. Wie viele Requests Fio maximal in
Bearbeitung hlt, kontrolliert die Option
iodepth, wie viele das Programm auf
einmal losschickt iodepth_batch und
iodepth_batch_complete. Allerdings
funktioniert dies unter Linux nur mit direktem I/O, also unter Umgehung des Pagecaches. Gepuffertes I/O ist unter Linux
auf Anwendungsebene immer synchron.
Zudem funktioniert direktes I/O nur mit
einem Vielfachen der Sektorgre als
Blockgre.
So ergibt der Job in Listing 1 deutlich
weniger Bandbreite und IOPS fr das sequenzielle Lesen Werte, die nher an den
tatschlichen Fhigkeiten des Laufwerks
liegen (siehe Abbildung 4). Da die meisten Anwendungen auf die Vorzge gepufferten I/Os zurckgreifen, machen Tests,
die den Pagecache einbeziehen, durchaus

Listing 1: Synchrones I/O


01 
[global]
02 
ioengine=sync
03 
direct=1
04 
rw=randread
05 
size=256m
06 
filename=testdatei
07 
08 
[zuflliglesen]
09 
[sequentielllesen]
10 
stonewall
11 
rw=read

Abbildung 3: Knapp 1 GiB/s und 256000 IOPS sind auch fr eine Intel SSD 320 unrealistisch.

A D M I N -SS D -S p ec ia l

w w w. admin - maga z in . d e

I/O -Benchmarks

S S D -s p e i c h e r

Listing 2: Puffer neu fllen


01 
[global]
02 
ioengine=libaio
03 
direct=1
04 
filename=testdatei
05 
size=2g
06 
bs=4m
07 
08 
refill_buffers=1
09 
10 
[schreiben]
11 
rw=write
12 
write_bw_log
13 
14 
[lesen]
15 
stonewall
16 
rw=read
17 
write_bw_log

circa 280 MiB/s und liegt damit


nur knapp unter dem theoretischem Limit fr eine SATA-300Schnittstelle. Wichtig: Trotz 20
GBytes pro Tag fr minimal 5
Jahre bei einer Intel SSD 320
Abbildung 4: Direktes I/O unter Umgehung des Pagecache liegt nher an den tatschlichen Fhigkeiten des Laufwerks.
ist es empfehlenswert, mit SSDSchreibtests achtsam zu sein
Sinn. Fr solche ist jedoch eine groe Da- anderes Prfix angibt. Aus den Protokolund die SSD mithilfe des fstrim-Befehls
tenmenge von mindestens zweimal der
aus einem aktuellen utillinux-Paket zu
len im aktuellen Verzeichnis erstellt das
RAM-Gre empfehlenswert. Ohnehin kleine Skript fio_generate_plots einen
entlasten [9].
ist es sinnvoll, eine Messung mindestens
Der Workload aus Listing 3 zum Messen
Graphen (Abbildung 5). Als Argumente
dreimal durchzufhren und nach Abweider IOPS mit einer variablen Blockgre
nimmt es einen Titel und in der aktuelchungen zu schauen.
von 2 bis 16 KiB verwendet die zuvor anlen Git-Fassung auch die Auflsung entDurch die Angabe eines Dateinamens im gegen. Dieser Workload erreicht mit 54
gelegte Datei weiter (Abbildung 6). Am
allgemeinen Bereich verwenden beide
groen IOPS beim Schreiben ungefhr
Leistungslimit ist die SSD damit jedoch
Tests die gleiche Datei. Durch Jobs er220 MiB/s und mit 68 IOPS beim Lesen noch nicht, wie die 68 beziehungsweise
stellte Dateien lscht Fio nicht. Das Programm fllt solche Dateien mit Nullen.
Fr Festplatten ist das in der Regel okay.
In Zusammenhang mit Dateisystemen
oder SSDs, die komprimieren, wie etwa
SSDs mit neuerem Sandforce-Chipsatz
oder BTRFS mit der entsprechenden
Mount-Option, misst Fio so jedoch, wie
effizient der Komprimier-Algorithmus
Nullen zusammenfasst. Fr zufllige Daten sorgt entweder das vorherige Anlegen
der Datei mit dd aus /dev/urandom
oder das vorherige Schreiben in die Datei
mit Fio selbst. Die Option refill_buffers
weist Fio an, den Schreibpuffer nicht nur
einmal, sondern jedes Mal mit neuen zuflligen Daten zu fllen (Listing 2).
Die sequenzielle Transferrate bei groen
Blcken protokolliert Fio mit der Option
write_bw_log in schreiben_bw.log
oder lesen_bw.log, so lange man kein
Abbildung 5: Ein kleines Skript erstellt Graphen aus Bandbreiten- oder Latenz-Protokollen.

w w w. admin - maga z in . d e

A D M I N -SS D -S p ec ia l

S S D -s p e i c h e r

I/O -Benchmarks

rungen (siehe Abbildung 7). Allerdings


braucht die SSD durchschnittlich auch
deutlich lnger, um Requests zu beantworten.
Da der Kernel auch mit synchronen I/O
auf Anwendungsebene beim gepufferten
Schreiben vieler Daten oder beim gleichzeitigen Lesen und Schreiben durch viele
Prozesse auf Gerte-Ebene ebenfalls viele
Requests in Bearbeitung hlt, macht es
durchaus Sinn, mit verschiedenen Warteschlangenlngen zu testen. Eine einfache Mglichkeit ist es, in der Job-Datei
iodepth=$IODEPTH zu schreiben und
Fio die Lnge als Umgebungsvariable
mitzuteilen.

Variation

Abbildung 6: Das mit einer Warteschlangenlnge von eins quasi synchrone I/O lastet die Intel SSD nur zu etwa
67 Prozent aus.

67 Prozent fr util fr das logische


Laufwerk und die SSD selbst aussagen.
Beim sequenziellen Workload lag die
Auslastung bei 97 Prozent. Die maximale
Laufzeit von 60 Sekunden unterschreitet
die SSD bei einer 2 GiB groen Datei
dennoch bei einigen Tests.
Mit einer Warteschlangenlnge von eins
wartet auch die I/O-Engine libaio auf
jeden Request, bevor sie den nchsten
abschliet. Das lastet bei kleinen Blockgren die Warteschlange auf GerteEbene nicht aus. Die SSD untersttzt

Native Command Queuing mit bis zu 32


Requests:
$ hdparm I /dev/sda | grep i queue
Queue depth: 32
*

Native Command Queueing (NCQ)

Um immer noch ein paar zustzliche


Requests in Bearbeitung zu haben, empfiehlt sich ein Versuch mit der doppelten Anzahl. Mit iodepth=64 steigt
die Performance erheblich, Kernel und
SSD-Firmware haben bei lngeren Warteschlangen mehr Spielraum fr Optimie-

Listing 3: Variable Blockgren


01 
[global]

15 

02 
ioengine=libaio

16 [
sequentielllesen]

03 
direct=1

17 s
tonewall

04 
# Fr zufllige Daten ber die komplette Lnge

18 r
w=read

05 
# der Datei vorher Job sequentiell laufen

19 r
untime=60
20 

lassen
06 
filename=testdatei

21 [
zuflligschreiben]

07 
size=2G

22 s
tonewall

08 
bsrange=2k16k

23 r
w=randwrite

09 

24 r
untime=60

10 
refill_buffers=1

25 

11 

26 [
sequentiellschreiben]

12 
[zuflliglesen]

27 s
tonewall

13 
rw=randread

28 r
w=write

14 
runtime=60

29 r
untime=60

10

A D M I N -SS D -S p ec ia l

Eine anderer Weg ist, mit vielen Prozessen gleichzeitig zu testen oder viele Daten gepuffert zu schreiben. So liefert ein
Test mit numjobs=64 ebenfalls deutlich hhere Werte, die die Option group_
reporting pro Gruppe zusammenfasst.
Die Befehlszeilen-Option eta=never
schaltet die berlange Fortschrittsanzeige
ab. Hohe Latenzen bei der Reaktion auf
Benutzereingaben selbst auf einem Intel Sandybridge i5 Dualcore und etwa
770000 Kontext-Switches zeigen den hheren Overhead dieser Methode. Doch
immerhin sind auch damit circa 160 bis
180 MB/s und 18000 bis 19000 IOPS
beim Lesen und ungefhr 110 MiB/s und
12500 IOPS beim Schreiben drin. Die
Messprotokolle stehen auf der ADMINWebsite zum Download bereit.
Damit sind die Mglichkeiten von Fio
noch lange nicht ausgeschpft. Das
Programm arbeitet auch direkt mit der
Hardware, wie der Beispiel-Job disk
zoneprofile zeigt, der ber die gesamte
Gre eines Laufwerks in Abstnden die
Lese-Transferrate misst. Fr hardwarenahe, realistische Messungen ist es bei
Festplatten empfehlenswert, immer das
ganze Laufwerk zu verwenden, da die
Transferrate bei den auen liegenden Sektoren aufgrund des greren Zylinderumfangs hher ist. So ergeben sich bei einer
2,5-Zoll-Hitachi-Platte mit 500 GByte via
eSATA beim zuflligen Lesen von 2 bis 16
KiB-Blcken mit iodepth=1 noch etwa
50 IOPS (Abbildung 8). Alternativ verwendet man nur den Anfang der Platte.
Bei Lese-Tests mit ganzen Laufwerken,

w w w. admin - maga z in . d e

I/O -Benchmarks

S S D -s p e i c h e r

die wertvolle Daten enthalten, bietet die Befehlszeilen-Option readonly zustzliche S


icherheit.
Weiterhin simuliert Fio mit der Engine mmap Workloads, die Dateien in den Speicher einblenden,
whrend net mit filename=host/
port Daten ber TCP/IP sendet oder empfngt und cpuio
CPU-Zeit verbraucht. Zudem verwenden die Engines splice und
netsplice die linux-spezifischen
Kernel-Funktionen splice() und
vmsplice(), um Kopien von Pages
zwischen User- und Kernelspace
zu vermeiden (Zero Copy). Auf
splice() greift die Funktion sendfile() zurck, die zum Beispiel der
Webserver Apache verwendet, um
statische Dateien schneller auszuliefern.
Auch typische Workloads mit vielen
gepufferten, asynchronen Schreibzugriffen und mehr oder weniger
fsync-Aufrufen lassen sich mit
den Optionen fsync, fdatasync
Abbildung 7: Hlt Fio bis zu 64 Requests gleichzeitig in Bearbeitung, steigen Auslastung und Latenz.
oder gar sync_file_range simulieren. Gemischte Workloads mit einstellbaHowto offenbart die ganze Funktionslichkeiten. Allgemein gilt die Regel: Use
ren Gewichtungen zwischen Lesen und vielfalt.
the defaults [10] verwende die Standardwerte, so lange es keinen Grund gibt,
Schreiben sowie zwischen unterschiedSo sehr Workload und Test-Setup gemessene Performance-Werte beeinflussen, so daran etwas zu ndern. Denn erfahrungslichen Blockgren untersttzt Fio ebengem bringt ein einfaches Drehen an
falls. Ein Blick in die Manpage und das individuell sind auch die Tuning-Mg-

Impressum
ADMIN-Magazin eine Publikation der Linux New Media AG
Redaktionsanschrift Putzbrunner Strae 71
81739 Mnchen
Tel.: 0 89/99 34 11-0
Fax: 0 89/99 34 11-99 oder -96
Internet www.admin-magazin.de
E-Mail redaktion@admin-magazin.de
Geschftsleitung Brian Osborn (Vorstand), bosborn@linuxnewmedia.de
Hermann Plank (Vorstand), hplank@linuxnewmedia.de
Chefredakteure Oliver Frommel (V.i.S.d.P.),
ofrommel@admin-magazin.de (ofr)

Jens-Christoph Brendel

jbrendel@admin-magazin.de (jcb)
Redaktion
News/Report Ulrich Bantle (Ltg.), ubantle@linuxnewmedia.de (uba)
Mathias Huber, mhuber@linuxnewmedia.de (mhu)
Software/Test Marcel Hilzinger, mhilzinger@linuxnewmedia.de, (mhi)
Kristian Kiling, kkissling@linuxnewmedia.de, (kki)
Security/Networking Markus Feilner, mfeilner@linuxnewmedia.de (mfe)
Thomas Leichtenstern, tleichtenstern@linuxnewmedia.de (tle)
Stndige Mitarbeiter Elke Knitter (Schlussredaktion),
Carsten Schnober, Tim Schrmann, Claudia Thalgott
Produktionsleitung Christian Ullrich, cullrich@linuxnewmedia.de
Grafik
Klaus Rehfeld, Judith Erb (Titel, Ausgangsgrafik: Mikhail-Dudarev, 123RF)
Abo-Infoseite www.admin-magazin.de/abo
Abonnenten-Service Veronika Kramer
abo@admin-magazin.de
Tel.: 07131/27 07 274, Fax: 07131/27 07 78 601
Preise Print
Deutschland
sterreich
Schweiz
AuslandEU
Einzelheft
9,80
10,80
Sfr 19,60
(siehe Titel)
Mini-Abo (2 Ausgaben)
9,80
10,80
Sfr 19,60
(siehe Titel)
Jahres-DVD (Einzelpreis)
14,95
14,95
Sfr 18,90
14,95
Jahres-DVD (zum Abo 1)
6,70
6,70
Sfr 8,50
6,70
Jahresabo
49,90
54,90
Sfr 99,90
59,90
Preise Digital
Deutschland
sterreich
Schweiz
AuslandEU
Heft-PDF Einzelausgabe
9,80
9,80
Sfr 10,71
9,80
DigiSub (6 Ausgaben)
44,90
44,90
Sfr 49,05
44,90

w w w. admin - maga z in . d e

ISSN 2190-1066
DigiSub (zum Printabo)
6,
6, Sfr 6,
6,
HTML-Archiv (zum Abo 1)
48,
48, Sfr 48,
48,
Preise Kombiabos
136,60
151,70
Sfr 259,90
165,70
Profi-Abo 2
1
nur erhltlich in Verbindung mit einem Jahresabo Print oder Digital
2
mit Linux-Magazin-Abo und beiden Jahres-DVDs
Schler- und Studentenermigung: 20 Prozent gegen Vorlage eines Schlerausweises oder einer aktuellen
Immatrikulationsbescheinigung. Der aktuelle Nachweis ist bei Verlngerung neu zu erbringen. Andere AboFormen, Ermigungen im Ausland etc. auf Anfrage.
Adressnderungen bitte umgehend mitteilen, da Nachsendeauftrge bei der Post nicht fr Zeitschriften gelten.
Pressemitteilungen info@admin-magazin.de
Anzeigen/Reprsentanz
Es gilt die Anzeigenpreisliste vom 01.01.2010
National Petra Jaser
Tel.: 089/99 34 11 24, Fax: 089/99 34 11 99
E-Mail: anzeigen@admin-magazin.de
Pressevertrieb MZV, Moderner Zeitschriften Vertrieb GmbH
Breslauer Strae 5, 85386 Eching
Tel.: 089/31906-0, Fax: 089/31906-113
Druck Vogel Druck und Medienservice GmbH
97204 Hchberg
Der Begriff Unix wird in dieser Schreibweise als generelle Bezeichnung fr die Unix-hnlichen Betriebssysteme
verschiedener Hersteller, zum Beispiel Eurix (Comfood), Ultrix (Digital Equipment), HP/UX (Hewlett-Packard) oder Sinix
(Siemens) benutzt, nicht als die Bezeichnung fr das Trademark von X/Open. Linux ist eingetragenes Markenzeichen von
Linus Torvalds und wird in unserem Markennamen mit seiner Erlaubnis verwendet. Alle anderen Marken sind Eigentum
der jeweiligen Inhaber. Eine Haftung fr die Richtigkeit von Verffentlichungen kann trotz sorgfltiger Prfung durch
die Redaktion vom Verlag nicht bernommen werden. Mit der Einsendung von Manuskripten gibt der Verfasser seine
Zustimmung zum Abdruck im Admin-Magazin. Fr unverlangt eingesandte Manuskripte kann keine Haftung bernommen
werden. Die Redaktion behlt sich vor, Artikel zu krzen. Das Exklusiv- und Verfgungsrecht fr angenommene
Manuskripte liegt beim Verlag. Es darf kein Teil des Inhalts ohne ausdrckliche schriftliche Genehmigung des Verlags in
irgendeiner Form vervielfltigt oder verbreitet werden. Copyright 19942012 Linux New Media AG

A D M I N -SS D -S p ec ia l

11

S S D -s p e i c h e r

I/O -Benchmarks

Optionen oft nur wenige Prozent


und reduziert mitunter sogar die
Performance.
Die sinnvollen Manahmen hngen auch von der Intelligenz des
Storage ab. Bei einem intelligenten und selbst puffernden SANSystem empfiehlt es sich, die
Intelligenz im Linux zu reduzieren. Der I/O-Scheduler noop,
durchaus auch fr SSDs sinnvoll,
erspart dem Kernel das mglicherweise gar nicht zu den Algorithmen im SAN-System passende
Umsortieren von Requests (siehe
dazu das Verzeichnis /sys/block/
Gert/queue). Bei Readahead im
SAN ist es mitunter sinnvoll, mit
blockdev setra das Readahead
auf Linux-Seite zu reduzieren, jedoch die Lnge der Warteschlange
zum SAN hin find /sys name
"*queue_depth*") zu vergrern, so weit das SAN mit der
Abbildung 8: Eine 2,5-Zoll-Festplatte via eSATA schafft deutlich weniger IOPS als eine SSD.
akkumulierten Wartenschlange
aller Clients zurechtkommt.
Alle Angaben zu erzielten IOPS sind rela[7] Newsfeeder/reader Diablo: [http://www.
Es ist sinnvoll, Partitionen und Dateisys- tiv zum Test-Setup und zum Workload zu
openusenet.org/diablo/]
teme an SANs, RAIDs, SSDs und Festplat- verstehen. Die hier beschriebenen Test[8] Kernel Asynchronous I/O (AIO) Support for
ten mit 4-KiB-Sektoren, die alle mit gr- Szenarien sind am Lesen und Schreiben
Linux: [http://lse.sourceforge.net/io/aio.
eren Datenblcken als 512 Byte arbeiten, von Daten ausgerichtet. Auch wenn Fio
html]
auszurichten. Hier sind dann durchaus mit nrfiles mehrere Dateien fr einen
[9] Intel Solid-State Drive 320 Series Product
auch mal Geschwindigkeits-Zuwchse im Job verwendet, eignen sich fr MetadaSpecification, 2.6 Reliability:
zweistelligen Prozentbereich drin. Neu- ten-intensive Workloads andere Bench[http://www.intel.com/content/
ere Versionen von fdisk richten sich marks wie bonnie++ oder compilewww/us/en/solidstatedrives/
mit c automatisch an 1-MiB-Grenzen bench besser. (ofr)
n
ssd320specification.html]
aus. Das ist ein guter Standardwert, da
[10] XFS FAQ, Q: I want to tune my XFS filees sich durch bliche Werte wie 4, 64,
systems for <something>: [http://xfs.org/
128 und 512 KiB teilen lsst. So verwen- Infos
index.php/XFS_FAQ#Q:_I_want_to_tune_
det mdadm mittlerweile eine Chunk- [1] Benchmark-Repository fr Suse: [http://
my_XFS_filesystems_for_.3Csomething.3E]
download.opensuse.org/repositories/
size von 512 KiB, frhere Versionen und
[11] Theodore Tso, SSDs, Journaling,
Hardware-RAIDs oft 64 KiB. Gngige
benchmark/]
and noatime/relatime: [http://www.
Dateisysteme wie Ext3 und 4 sowie XFS [2] Quelltext-Archive fr Fio:
linuxfoundation.org/newsmedia/blogs/
untersttzten entsprechende Parameter
[http://brick.kernel.dk/snaps/]
browse/2009/03/ssd%E2%80%99sjourn
in ihren Mkfs- und Mount-Optionen. Fr [3] Git-Repository zu Fio:
alingandnoatimerelatime]
Dateisysteme gilt: Die Standardwerte
[git://git.kernel.dk/fio.git]
aktueller Mkfs-Versionen bringen hu- [4] Einige IOPS-Messwerte aus dem Wiki
Der Autor
fig die besten Ergebnisse. Das komplette
der Thomas Krenn AG: [http://www.
Martin Steigerwald arbeitet als Trainer, ConsulAusschalten der Atime-Aktualisierung
thomaskrenn.com/de/wiki/I/O_Perfortant und Systemadministrator bei der team(ix)
via Mount-Option noatime reduziert
mance_Vergleich_von_Festplatten_mit_
GmbH in Nrnberg. Schwerpunkte seiner TSchreibvorgnge gegenber relatime
SSDs_und_Fusionio_ioDrive]
tigkeit sind Linux-Schulungen, die Konzeption,
mitunter sprbar [11].
[5] IOPS-Richtwerte fr Fusion ioDrive:
Installation und Wartung solider IT-Infrastruktur
[http://kb.fusionio.com/KB/a29/verifying
auf Basis von Debian Linux von teamix(ix). Er
linuxsystemperformance.aspx]
hlt bei mehreren Schulungsanbietern eine
[6] Abschnitt IOPS im Artikel Messen von I/
Schulung zum Thema Performance-Analyse
Dieser Artikel zeigt, wie wichtig es ist,
O-Performance:
und Tuning. Der Autor dankt Jens Axboe fr
bei Performance-Messungen den beab[http://www.thomaskrenn.com/de/wiki/
das Beantworten vieler Fragen und der Teamix
sichtigten Workload zu bercksichtigen.
Messen_von_I/O_Performance#IOPS]
GmbH fr das Bereitstellen des Test-Laptops.

Fazit

12

A D M I N -SS D -S p ec ia l

w w w. admin - maga z in . d e

Abbildung 1: Fr die PowerServer DUO T2000 Blade wird die OCZ Enterprise-SSD-Serie Deneva 2
verwendet. Diese SSDs liefern hohe Zuverlssigkeit und Performance zu einem erschwinglichen Preis.

Schnelligkeit und Zuverlssigkeit berzeugten

SSDs fr die Cloud


Serverhersteller suchen flexible, schnelle und zuverlssige Speicherlsungen. Die SSDs der Deneva-2-Serie berzeugten die PSSC Labs, die nach Speicherkomponenten fr ihre Cloud-Server suchten.
Als PSSC Labs ein Hersteller von
hochwertigen Servern, Software und
Storage-Produkten beschloss, ins
Cloud Computing einzusteigen, war
klar, dass man dafr in die schnellsten
und zuverlssigsten Produkte investieren musste. Die Cloud verwenden
Anwender verschiedener Branchen
auf unterschiedliche Weise und PSSC
Labs wollte alle zufriedenstellen. Deshalb suchte man intensiv nach der
besten Storage-Lsung.
Die Firma wusste, dass sie ihren Kunden hohe Geschwindigkeit, groe Zuverlssigkeit und niedrige Kosten bieten musste. Am Ende entschied PSSC
Labs, fr seine PowerServe DUO
T2000 Blade Server (Abbildung 1) die
Deneva 2 SSDs der Enterprise-Klasse
von OCZ (Abbildung 2) zu verwenden,
die alle ntigen Voraussetzungen erfllten.

bar sind brauchte man eine ebenso


flexible Speicherlsung. Wir haben
die Angebote verschiedener Hersteller
unter die Lupe genommen, sowohl
sehr bekannter als auch kleinerer Marken, sagt Alex Lesser, Vicepresident
of Sales and Marketing bei PSSC Labs.
Unsere Erfahrungen mit SSDs an sich
war dabei gleichzeitig lehrreich wie
auch frustrierend, denn wir verkaufen
nur Produkte mit einer sehr kleinen
Fehlerrate. Die Deneva 2 SSDs von
OCZ mit einer Geschwindigkeit von
6 GB/s und einer Kapazitt von bis
zu 480 GByte erfllten schlielich alle
Vorgaben.

Wichtige Features

Die SSD-Produktlinie Deneva 2 wurde


von OCZ speziell fr Kunden wie PSSC
Labs entwickelt, die den Speicher in
eigene Server integrieren. Sie unterteilt sich in eine C- und eine R-Serie,
mit jeweils weiteren KonfigurationsPSSC Labs konstruiert Server, die optionen. Die C-Serie bietet bis zu 500
MByte/s Durchsatz, schnelle Lese- und
schnell zuverlssig und einfach zu
Schreiboperationen und Kapazitten
handhaben sein sollen. Die PowerServ-Maschinen mit bis zu zwei Pro- zwischen 120 und 480 GByte. Diese
zessoren und 96 GByte Hauptspeicher
SSDs sind im 3,5-, 2,5- und 1,8-Zollsind fr Cloud-Umgebungen gedacht.
Format erhltlich, sodass sie in so gut
Weil sie in hohem Mae konfigurierwie jeden Server passen. Die R-Serie
liefert etwas hhere
Schreib-/Leseperformance mit bis zu 550
MByte/s und ist mit
Kapazitten zwischen
100 und 400 GByte zu
haben. Die Deneva 2
SSDs zeichnen sich
auch durch einzigartige Features aus wie
Abbildung 2: SSDs der Deneva-2-Serie von OCZ, entwickelt fr die
Data Write Assurance
Bedrfnisse von Herstellern hochwertiger Server.
(ein Schutz vor Daten-

Entscheidung fr SSDs

verlust durch Stromausfall). Die SSDs


haben darber hinaus ein Data Fail
Recovery System, das einen kompletten NAND-Block des Flash-Memorys
wiederherstellen kann. Im Interesse
der Sicherheit sind die Laufwerke mit
der 128-Bit-AES-Verschlsselung kompatibel und verwenden SMART (SelfMonitoring, Analysis, and Reporting
Technology), sodass sich Probleme
zeitig erkennen lassen.

Deneva 2 implementieren
Inzwischen hat PSSC Labs die Deneva
2-SSDs als kompatibel zu den eigenen
Servern und Appliances zertifiziert.
Alex Lesser beschreibt die Einfhrung
als schmerzlosen Prozess:. Es gab
keine greren Probleme und OCZ hat
uns auf jeder Etappe des Weges begleitet. PSSC Labs war beeindruckt
von der hohen Zuverlssigkeit der
SSDs und davon, dass es nun mglich ist, Endverbrauchernbei der Lsung von Performanceproblemen zu
helfen, die anders nicht zu bewltigen
wren.

Probleme gelst
Die Deneva 2 SSDs von OCZ haben bei
PSSC Labs die anstehenden Schwierigkeiten gelst und der Firma wie ihren Kunden die Performance beschert,
die fr qualitativ hochwertige CloudDienstleistungen ntig ist. PSSC Labs
kann nun SSDs mit hherer Kapazitt
zu erschwinglichen Preisen anbieten,
was fr jeden unserer Endkunden ein
groer Vorteil ist, wie Lesser meint.
Auch beim Ausbau seiner Cloud-Angebote will PSSC Labs knftig weiter
auf Produkte von OCZ setzen. (jcb) n

S S D -s p e i c h e r

Tuning

SSD-Performance optimieren

Geschwindigkeit
ist keine Hexerei
SSDs sind schon von Haus aus vielfach schneller als konventionelle Festplatten. Falsche Konfiguration kann die
Speicherwunder jedoch bremsen. Wir zeigen, wie es richtig geht. Werner Fischer
SSDs werden so wie viele Festplatten
per SATA-Schnittstelle mit dem Rechner
verbunden. Sofern der Rechner halbwegs
aktuell ist, erkennt er die SSD beim Hochfahren und kann sie sofort verwenden.
Wer die optimale Performance erreichen
will, fr den lohnt es sich allerdings, vor
dem Einsatz ein paar Einstellungen zu
berprfen.

AHCI aktivieren

Spare Area vergrern


Wie bereits im ersten Artikel dieser Serie
erwhnt, kann ein SSD Controller die
Daten von einer einmalig beschriebenen
Page (die aus mehreren Speicherzellen
besteht) nicht verndern. Vor einem erneuten Beschreiben dieser Page msste
der Controller den gesamten Block lschen, in dem sich die Page befindet. Um

dies zu vermeiden, schreibt der Controller


in einem solchen Fall die genderten
Daten einfach in eine andere, bisher
unbenutzte Page und aktualisiert seine
interne Zuordnungstabelle entsprechend
(Abbildung 1).
Sind auf der SSD zu Beginn nur wenige
Daten gespeichert, gibt es noch ausreichend freie Pages. Darber hinaus hat
jede SSD eine Spare Area, deren Pages
der SSD Controller ebenfalls fr diese
Zwecke nutzt. Bevor die freien Pages
ganz zur Neige gehen, rumt der SSD
Controller mit seinem Garbage Collector auf. Er kopiert dabei verstreute belegte Pages aus verschiedenen Blcken
in noch freie Pages. Die dadurch freigeschaufelten Blcke kann er nun lschen.
Damit stehen ihm in der Summe wieder
mehr unbenutzte Pages zur Verfgung.
Diese Garbage Collection kostet jedoch
Zeit und damit Performance. Auerdem
erhht sie durch das interne Kopieren
die Anzahl der Schreibvorgnge auf die
einzelnen Speicherzellen (die Write Am-

ta
Te

ck
sto

oli
ot
,F

Der erste Schritt auf dem Weg zu einer


optimalen I/O-Performance der SSD besteht darin, den Advanced Host Controller Interface-Modus (AHCI) im BIOS zu
aktivieren. Er ermglicht im Gegensatz
zum IDE-Modus Native Command Queuing (NCQ). Damit bekommt die SSD immer gleich mehrere I/O-Anfragen parallel
vom Betriebssystem und muss nicht nach
jeder einzelnen Abfrage auf die nchste
warten. Die Pipeline der SSD bleibt damit
voll, der SSD-Controller kann durchgngig I/O-Anfragen abarbeiten, die
Performance steigt.
Neben NCQ bietet
der AHCI-Modus
darber
hinaus
auch noch das
Device Initiated
Power Management (DIPM)
der
SATASchnittstelle,
das den Stromverbrauch
von
SSDs im Idle-Betrieb
deutlich
minimiert.
Das erhht zwar nicht

die Performance, steigert aber etwa die


Akkulaufzeit bei einem Laptop. Sowohl
SSD-Tuning
der Microsoft MSAHCI-Treiber als auch
Linux ab Kernel 2.6.24 untersttzen
DIPM. Der MSAHCI-Treiber nutzt DIPM
standardmig nur im Power Saver Modus. Mit dem Windows Tool powercfg
lsst sich die Nutzung von DIPM auch
in anderen Modi aktivieren. Unter Linux
kann DIPM ber das Sysfs aktiviert werden (Listing 1). Als dritten Vorteil ermglicht AHCI, Laufwerke im Betrieb per
Hot-Plug zu tauschen.

14

A D M I N -SS D -S p ec ia l

w w w. admin - maga z in . d e

Tuning

reiches partitioniert (Over-Provisioning),


erfolgen auf die restlichen zehn Prozent
niemals Schreibzugriffe. Die entsprechenden Pages bleiben ungenutzt, der
SSD Controller kann diese Pages somit
wie Pages aus der Spare Area nutzen.
Untersuchungen von Intel zeigen, dass
bei einer solchen Einsparung von zehn
Prozent der Datenmenge die Random-I/
O-Performance auf das Zweieinhalbfache
steigt und sich die Lebensdauer der SSD
mehr als verdoppelt (Abbildung 2).

ungltig, weil deren Daten verndert und woanders

01 
root@ubuntu1010:~# hdparm I /dev/sda | grep

seine interne Zuordnungstabelle entsprechend.

plification steigt). Somit sinkt auch die


Lebensdauer dieser Speicherzellen. Ein
einfacher Trick verhindert hufige Aufrufe der Garbage Collection: Werden bei
der erstmaligen Nutzung der SSD etwa
nur 90 Prozent des verfgbaren Datenbe-

ADMIN
Netzwerk & Security

linux

Das HEft
i

windows

MEDiaDatEn
i

security i

Listing 1: DIPM-Konfiguration unter Linux

Wie bereits erlutert kann ein SSD Controller die Daten von einer einmalig beschriebenen Page nicht verndern, sondern muss zuvor den gesamten Block mit
mehreren Pages lschen. Fr die Wiederverwendung einer zuvor bereits benutzten SSD ist es daher sinnvoll, vor dem
Einsatz alle Blcke der SSD zu lschen.
Bei den meisten SSDs klappt dies mit

abgespeichert wurden. Der SSD Controller aktualisiert

HOME

einem einfachen Secure Erase [2]. Ein


Secure Erase soll laut ATA-Spezifikation
das sichere Lschen aller gespeicherten
Daten eines Datentrgers garantieren.
Bei den meisten SSDs, die Secure Erase
untersttzen, fhrt dies zum physischen
Lschen aller Blcke der SSD. Die SSD
ist dann wieder mit der ursprnglichen
optimalen Performance nutzbar, da alle
Pages direkt beschrieben werden knnen.
Bei einigen neueren SSDs ist das Secure
Erase allerdings anders implementiert.

Secure Erase

Abbildung 1: Viele Pages (rot markiert) sind

S S D -s p e i c h e r

Deviceinitiated
02 

Deviceinitiated interface power

management
03 
root@ubuntu1010:~# echo min_power > /sys/class/
scsi_host/host0/link_power_management_policy
04 
root@ubuntu1010:~# hdparm I /dev/sda | grep
Deviceinitiated
05 

Deviceinitiated interface power

management

www.admin-magazin.de
ADMIN-Magazin fr alle IT-Administratoren
Bei uns wird SICHERHEIT gro geschrieben
KOntaKt

Monitoring

nEwslEttEr
i

storage

abO

Datenbanken

Mailserver

Virtualisierung

Suchen
Diese Website durchsuchen:

Security
Server-Systeme richtig abzusichern
gehrt zu den Hauptaufgaben jedes
Administrators. Sei es durch Firewalls,
Intrusion-Detection-Systeme oder Mandatory Access Control mit SELinux.

Security
ber 100 Ergebnisse!

Suchen

Themen
Windows Verschlsselung Datenbank
IDS Dateisysteme

Linux Monitoring

Storage Webserver

Virtualisierung

Besonderes Augenmerk richtet ADMIN


auf die Absicherung von Webservern,
die heute mit SQL-Injection, Cross Site
Scripting und Request Forgery bis zu
90% der Sicherheitslcken ausmachen.

oli

ot

F
r,

ilio

b
No

S S D -s p e i c h e r

Tuning

Abbildung 2: Eine etwas vergrerte Spare Area hat positive Auswirkungen. Nutzt man nur 144GB einer 160GB X25-M SSD, steigen I/O Performance und Lebensdauer.

Diese SSDs verschlsseln automatisch


alle geschriebenen Daten. Bei einem Secure Erase wird dann einfach der Schlssel sicher gelscht die Daten knnen
damit nicht mehr entschlsselt werden,
sind aber noch physisch vorhanden. Bei
solchen SSDs werden somit nicht alle
Blcke der SSD gelscht. In diesem Fall
mssen die Blcke per TRIM gelscht
werden, um fr die neue Verwendung der
SSD die optimale Performance zu bekommen. Windows 7 fhrt ein solches TRIM
bei der Formatierung automatisch durch.
Unter Linux bietet hdparm dazu zwar
die trimsectorranges-Option, die
Manpage von hdparm 9.37 rt allerdings
nach wie vor von ihrer Verwendung ab.

Partition Alignment
Unter Partition Alignment versteht man
das Ausrichten von Partitionen an bestimmten Grenzen eines Datentrgers
[3]. Ein korrektes Partition Alignment

gewhrleistet eine optimale Performance


bei Datenzugriffen. Speziell bei SSDs (mit
internen Page-Gren von beispielsweise
4.096 oder 8.192 Bytes), Festplatten mit
4 KiB-Sektoren (4.096 Bytes) und RAIDVolumes fhrt eine fehlerhafte Ausrichtung von Partitionen zu einer verminderten Performance [4].
In der Vergangenheit begann die erste
Partition stets auf LBA-Adresse 63 (entspricht dem 64. Sektor), um kompatibel
zu DOS und zur alten CHS-Adressierung
(Cylinder/Head/Sector) zu bleiben. Die
Gre eines solchen (logischen) Sektors
betrgt 512 Byte. Bei normalen Festplatten (mit einer physischen Sektorgre
von 512 Byte) bringt das keine Nachteile. Neuere Festplatten mit einer physischen Sektorgre von 4.096 Byte (4
KiB) emulieren zwar nach auen hin eine
Sektorgre von 512 Byte, arbeiten intern aber mit 4.096 Byte. Und auch SSDs
arbeiten mit einer Pagegre von 4 KiB
beziehungsweise 8 KiB. Bei diesen neuen

Festplatten und SSDs ist eine solche Partitionierung beginnend bei LBA-Adresse 63
daher sehr problematisch.
Formatiert der Benutzer eine solche Partition mit einem Dateisystem mit einer
typischen Blockgre von 4 KiB, passen
die 4-KiB-Dateisystem-Blcke nicht direkt
in die 4 KiB oder 8 KiB groen Pages der
SSD (Abbildung 3). Beim Schreiben eines einzelnen 4-KiB-Dateisystem-Blockes
mssen dann zwei 4 KiB Pages verndert werden. Erschwerend kommt dabei hinzu, dass die jeweiligen 512-ByteSektoren erhalten bleiben mssen es
kommt damit zu einem Read/Modify/
Write. Die Folge ist eine bis zu 25fach
schlechtere Schreibperformance bei kleinen Dateizugriffen, wie Analysen von
IBM zeigen [5].
Um diese Probleme 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 groen logischen Sektoren

Abbildung 3: DOS-kompatible Partitionen, die bei LBA Adresse 63 beginnen, fhren zu erheblichen Performance-Nachteilen bei Datenzugriffen.

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

16

A D M I N -SS D -S p ec ia l

w w w. admin - maga z in . d e

Tuning

Listing 2: Partition-Alignment mit fdisk

Infos:

01 
root@ubuntu1010:~# fdisk l u /dev/sda

[1] O
 ver-provisioning an Intel SSD :
[http://cachewww.intel.com/cd/00/00/45/
95/459555_459555.pdf]
[2] Secure Erase: [http://www.thomaskrenn.
com/SecureErase]
[3] Partition Alignment:
[http://www.thomaskrenn.com/Alignment]
[4] Ben Martin, RAID-Systeme unter Linux optimal konfigurieren, ADMIN 02/2011, S. 80
[5] Linux on 4KB-sector disks:
[http://www.ibm.com/developerworks/
linux/library/l4kbsectordisks]
[6] LVM Alignment Patch:
[http://www.redhat.com/archives/
lvmdevel/2010August/msg00035.html]

02 
03 
Disk /dev/sda: 160.0 GB, 160041885696 bytes
04 
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
05 
Units = sectors of 1 * 512 = 512 bytes
06 
Sector size (logical/physical): 512 bytes / 512 bytes
07 
I/O size (minimum/optimal): 512 bytes / 512 bytes
08 
Disk identifier: 0x9349dd6c
09 
10 

Device Boot

11 
/dev/sda1

Start

End

Blocks

Id

2048

2457599

1227776

System
HPFS/NTFS

HPFS/NTFS

12 
Partition 1 does not end on cylinder boundary.
13 
/dev/sda2

2457600

61051349

29296875

14 
Partition 2 does not end on cylinder boundary.
15 
/dev/sda3

61052928

80582655

9764864

83

Linux

83

Linux

16 
Partition 3 does not end on cylinder boundary.
17 
/dev/sda4

80582656

312580095

115998720

18 
Partition 4 does not end on cylinder boundary.

entspricht das 2048 Sektoren (Abbildung


4). Neuere Windows-Versionen (Windows Vista, Windows 7, Windows Server
2008) fhren bei Partitionen grer 4 GiB
ein solches Alignment auf 1 MiB durch.
Kleinere Partitionen richten diese Windows-Versionen auf 64 KiB aus. ltere
Versionen (Windows XP, Windows Server 2003) bentigen ein manuelles Alignment. Aktuelle Linux-Distributionen
verwenden ebenfalls ein Alignment von
1 MiB bei der Installation. Beim spteren
Einrichten von Partitionen mit fdisk
sind dessen Optionen c (Deaktiveren
des DOS-Kompatibilittsmodus) und u
(verwendet Sektoren statt Zylinder als
Einheiten) ntig, um ein korrektes Alignment zu erhalten.
Zur Kontrolle zeigt fdisk l u die
Startsektoren aller Partitionen. Sind diese
Sektoren durch 2048 teilbar, sind alle
Partitionen korrekt ausgerichtet (Listing
2). Neue LVM-Versionen (ab Version
2.02.73) verwenden dank eines Patches
von Mike Snitzer ebenfalls ein Alignment
von 1 MiB [6].

ATA TRIM
Eine weitere Funktion zur Steigerung der
Performance sowie der Lebensdauer ist
ATA TRIM. Mit dem TRIM-Kommando
teilt das Betriebssystem der SSD mit,
welche Datenbereiche (etwa die Datenbereiche einer gelschten Datei) es
nicht mehr bentigt. Der SSD-Controller
kann damit betroffene Blcke lschen,

w w w. admin - maga z in . d e

S S D -s p e i c h e r

was hnlich wie eine vergrerte Spare


Area die Performance und Haltbarkeit
der SSD steigern soll. Damit ATA TRIM
funktioniert, muss es von der SSD, vom
Betriebssystem
und
Anzeige
vom Dateisystem untersttzt werden. Windows 7 mit NTFS oder
Linux ab Kernel 2.6.33
mit Ext4 mit DiscardOption erfllen diese
Anforderungen.
Ab Kernel 2.6.38 untersttzen Ext4 und XFS
zudem das zeitversetzte
Batched Discard, das
bei SSDs mit langsamer
TRIM-Funktion wichtig
ist. ber den tatschlichen
PerformanceGewinn aufgrund von
ATA TRIM gibt es unterschiedliche Aussagen.
Tatsache ist, dass ATA
TRIM nur fr einzelne
SSDs genutzt werden
kann. RAID-Controller
untersttzen
diese
Funktion nicht. Eine etwas vergrerte SpareArea durch Nutzung
von 90 Prozent der
SSD-Kapazitt fr das
RAID-Volume sollte in
diesem Fall ein Fehlen
der TRIM-Funktion ausgleichen. (jcb)
n

Der Autor
Werner Fischer ist Technology Specialist bei
der Thomas-Krenn AG und Chefredakteur des
Thomas Krenn Wiki. Seine Schwerpunkte sind
die Bereiche Hardware-Monitoring, Virtualisierung, I/O-Performance und Hochverfgbarkeit.

Online-Archiv

NUR

4
PRO MONAT

Bestellen Sie unter:


A D M I N -SS D -S p ec ia l
www.admin-magazin.de/archiv

17

S S D -s p e i c h e r

Securedrive

Das sicherste Speichergert der Welt

Ein externer Datenspeicher, der sich selbst zerstrt, wenn Datendiebe


darauf zugreifen wollen? Was nach einem Geheimdienst-Gadget aus dem
Labor von James Bonds Q klingt, knnen auch Nicht-Agenten auf dem
freien Markt erwerben. Oliver Frommel
Als sicher angepriesene Massenspeicher
gibt es viele. Da sind einmal die beliebten USB-Sticks mit Verschlsselung, die
ihre Daten nur nach dem Eintippen eines
geheimen Schlssels wieder freigeben.
Fr grere Datenmengen gibt es SSDDrives, die ebenfalls mit starker Kryptographie versuchen, die gespeicherten
Daten zu schtzen. So bietet beispielsweise Digittrade eine SSD mit 128 GByte
Speicherkapazitt an, die Daten per 256Bit AES-CBC-Standard verschlsselt und
legitime Benutzer ber eine zweistufige
Authentifizierung durch Smartcard und
eine achtstellige PIN verifiziert [1]. Was
aber passiert, wenn ein solches Gert in
die falschen Hnde gert?
Diese Frage haben sich auch die Entwickler der Securedrives [2] gestellt, die
noch einen entscheidenden Schritt weiter
gehen: Sie statten ihre SSD-Speicher mit
Sensoren und einem Selbstzerstrungsmechanismus aus, der jeden unautorisierten Zugriff endgltig verhindern soll.
Der Hersteller preist sein Produkt als der
Welt sicherstes Speichergert an (Ab-

bildung 1). Es besitzt Schnittstellen fr


USB 3.0 und eSATA bei einer Datenrate
von bis zu 6 Gbps ber SATA-3. Wie
das Digittrade-Gert verwendet es AESCBC-Verschlsselung mit 256 Bit, die ein
Krypto-Prozessor bernimmt, der nach
dem amerikanischen Standard FIPS 140-2
zertifiziert ist [3]. Der zugehrige PINCode fr den Zugriffsschutz darf zwischen acht und 20 Stellen lang sein.
Zum Backup lassen sich zwei Secure
drives ohne weitere manuelle Eingriffe
ber das vom Hersteller sogenannte Zero
Touch Backup synchronisieren. Auch bei
der Datenbertragung, die bis zu etwa
130 Mbps schnell ist, kommt wieder
AES-Verschlsselung zum Einsatz. Das
erfordert allerdings neben einem zweiten
Securedrive noch eine separate DockingStation.
Der Clou des Securedrive ist aber seine
Fhigkeit, sich selbst zu zerstren, wenn
es in die falschen Hnde gert. Hierbei
bietet das Gert mehrere Mglichkeiten.
Der Selbstzerstrungsmechanismus kann
zum Beispiel starten, wenn die Anzahl
der Fehlversuche
bei der Eingabe
des
PIN-Codes
einen Wert berschreitet, den der
legitime Besitzer
vorher festgelegt
hat mglich sind
hierbei zwischen
zwei und acht
Fehlversuche.
Eingebaute Sensoren versuchen auerdem zu erkennen, ob jemand
Abbildung 1: Das angeblich sicherste Speichergert der Welt.
das Securedrive

18

A D M I N -SS D -S p ec ia l

kamphi, 123RF

SSD 007
gewaltsam ffnet. Stellen sie das fest,
beginnt die Selbstzerstrung. Da diese
Sensoren logischerweise Strom bentigen, aber die eingebauten Batterien irgendwann leer sind, haben die Entwickler auch diese Lcke geschlossen: Ist das
Gert entsprechend konfiguriert, zerstrt
es sich auch kurz vor dem endgltigen
Stromausfall selbst!
Schlielich bietet das Securedrive auch
noch die Mglichkeit, ein GSM-Funksignal zu tracken, um den eigenen Aufenthaltsort zu bestimmen. Verliert es
das Signal, weil ein Dieb es ins Auto
packt und damit davonrast, leitet es die
Selbstzerstrung ein. Alternativ lsst sich
die Selbstzerstrung auch aktiv per GSM
starten.

Selbstzerstrung
Das Unbrauchbarmachen des Securedrive
geschieht nach Herstellerangaben innerhalb von 300 Millisekunden und luft in
vier Schritten ab:
ndas Securedrive ndert den gespeicherten Schlssel, was im Fall des
Falles die nachtrgliche Wiederherstellung des Originalschlssels erschweren soll.
ndie Partitionstabelle der SSD wird mit
weiem Rauschen berschrieben.
ndie eingebauten NAND-Bausteine werden physisch zerstrt! (Abbildung 2,
Abbildung 3). Das soll verhindern,
dass die Speicherbausteine ausgebaut
und in einem anderen Board ausgelesen werden knnen.
nauch der Security-Controller wird physisch zerstrt.
Die Preise fr das Securedrive bewegen
sich zwischen 375 englischen Pfund fr

w w w. admin - maga z in . d e

Securedrive

S S D -s p e i c h e r

nur starke kryptographische Methoden,


sondern auch einen Selbstzerstrungsmechanismus, der jeden nachtrglichen
Zugriff auf die gespeicherten Daten unmglich machen soll.
Wer das Gert entsprechend konfiguriert,
sagt seinen Daten auch dann Lebewohl,
wenn die Batterie zur Neige geht. Ein
solches Ma an Sicherheit ist nicht in jedem Fall angebracht und hat auch seinen
n
Preis. (ofr)
Abbildung 3: Nahaufnahme eines zerstrten
Speicher-Chips.

ren lsst. Im letzteren Fall kommt dazu


noch ein Mobilfunkvertrag, der fr 18
Monate 83 Pfund kostet.
Abbildung 2: Im Ernstfall zerstrt das Securedrive
seine NAND-Speicherbausteine und macht damit
jede Wiederherstellung unmglich.

die Basis-Version und 420 Pfund fr die


Ausfhrung, die sich auch remote zerst-

Fazit
Der Hersteller preist sein Securedrive
als die sicherste Speichertechnologie
der Welt an. Dazu verwendet er nicht

Infos
[1] Digittrade HS256:
[http://www.digittrade.de/shop/
product_info.php/info/p323_DIGITTRAD
EHS256128GBSSDHighSecurityexterneHDDAES256AcronisBackupSoftware.html]
[2] Securedrive: [http://www.securedrives.co.
uk/products/psdseriesexternalhardrive/]
[3] FIPS 140-2: [http://csrc.nist.gov/
publications/fips/fips1402/fips1402.pdf]

ADMIN Online-Archiv
Netzwerk & Security

Rund 2.000 Seiten Artikel,


Studien und Workshops aus
fnf Jahren Technical Review

Onlinezugriff auf alle


Heftartikel aus dem
ADMIN-Magazin
der Jahrgnge
2009 bis 2011!

nur

4,-e*

im Monat

Volltextsuche
Praxisrelevante Themen
fr alle IT-Administratoren

* Angebot gltig nur


fr Abonnenten eines
Print- oder vollen
digitalen ADMIN Abos

w w w. admin - maga z in . d e
A D M I N -SS D -S p ec ia l
Bestellen
Sie unter: www.admin-magazin.de/archiv

19

S S D -s p e i c h e r

Flashcache

Peter Lecko, 123RF

SSDs als Cache fr Festplattenspeicher

Hochgeschwindigkeit
Festplatten sind heute gnstig, aber immer noch nicht besonders schnell,
SSDs dagegen schnell aber teuer. Der Knigsweg liegt derzeit darin,
beides zu kombinieren und SSDs als schnelle Caches fr Festplatten zu
verwenden. Georg Schnberger
Solid State Drives (SSDs) sind aus modernen IT-Umgebungen nicht mehr wegzudenken. Fr groe Storage-Systeme,
die sowohl mit Kapazitt als auch Performance glnzen sollen, kann eine Ausstattung rein mit SSDs aber schnell sehr
kostspielig werden. Abhilfe schaffen hier
SSD-Caching-Technologien, die eine Art
Hybrid-Speicher bereitstellen.
Traditionelle Festplatten (HDDs) werden
dabei mit SSDs kombiniert und vereinen
die Vorteile beider Welten. Die SSD fungiert als Cache fr die Festplatten und
beschleunigt mit ihrer greren Performance Lese- und Schreibzugriffe. Dieser Geschwindigkeitsvorteil kommt vor
allem dann zum Vorschein, wenn die
typischerweise genutzten Datenmengen
die Gre des Arbeitsspeichers (RAM)
berschreiten, die Gre der SSD jedoch
nicht. Im Regelfall wird ungenutzter Arbeitsspeicher als Page Cache fr die Bufferung von Dateien verwendet. Das Linux
Kommando free m zeigt in der Spalte
cached, wie viele MByte gerade als

20

A D M I N -SS D -S p ec ia l

Cache dienen. Nicht immer aber reicht


der Page Cache fr ein Datenset aus, und
in manchen Fllen bersteigt es sogar
die maximal mgliche Gre des RAM
eines Hosts.
Ist der Page Cache zu klein fr ein Datenset, mssen normalerweise Teile davon
auf der Festplatte bleiben. Der Performance-Unterschied zwischen RAM und
HDD wird durch eine SSD-Zwischenschicht gemindert. Passt das Datenset
auf die SSD, werden Lese- und Schreiboperationen komplett auf SSD-Ebene abgearbeitet. Nur zur Synchronisation der
Daten muss auf die HDD zurckgegriffen
werden.

Facebook-erprobt
Flashcache bietet eine einfache softwarebasierende Lsung fr die Verwendung
eines SSD-Caches. Es wird aktuell von
Facebook entwickelt und aktiv in deren
Serverumgebungen eingesetzt [1]. Bevor
jedoch SSD-Caching fr den eigenen Ge-

brauch zum Einsatz kommen kann, gibt


es wichtige Fragen zu klren:
nWelches Zugriffsmuster zeigen die verwendeten Applikationen? Greifen sie
eher nur lesend auf die Daten zu oder
besteht ein ausgewogenes Verhltnis
zwischen Lesen und Schreiben?
nWie gro ist die Datenmenge, die die
Applikationen bentigen? Reicht der
vorhandene Arbeitsspeicher aus, um
die Daten im Page Cache zu halten,
oder sind sie hufig grer? Wrde
sich das vorhandene Datenset fr einen SSD-Cache eignen?
nGibt es aktuelle Messungen, die
Performance-Einbuen aufgrund des
Einflusses der Speicher-Systeme belegen?
Aus diesen Fragen geht hervor, dass SSDCaching und somit auch Flashcache kein
Allheilmittel fr eine Performance-Steigerung sind. Nur wer sein System und
dessen Verhalten genau kennt, kann mit
einem SSD-Cache Erfolge erzielen.
Flashcache eignet sich vor allem durch
seine Einfachheit und die Verfgbarkeit
als Open-Source-Software als Kandidat
fr eine erste Tuchfhlung mit Caching.
Der Quellcode kann von Facebooks Github-Webseite heruntergeladen und unter
Linux in ein Kernel-Modul bersetzt wer-

w w w. admin - maga z in . d e

Flashcache

Metadaten werden beim kontrollierten Entfernen fr alle


Cache-Blcke auf die SSD geschrieben, bei einem NodeCrash hingegen bleiben nur
die Dirty-Blcke im Cache
erhalten. Fr Write-Through
und Write-Around bedeutet
ein Remove beziehungsweise
Neustart des Hosts einen Verlust des Caches. Nichtsdestotrotz kann fr alle drei Flle
ein sauberes Entfernen des
Caches sinnvoll sein, zum
Beispiel, wenn das Flashcache-Modul neu kompiliert
und geladen werden muss.

den. Flashcache baut auf dem


Linux Device Mapper auf, einer Komponente im Linux-I/
O-Stack die unter anderem
der Logical Volume Manager
(LVM) nutzt [2]. Die Flexibilitt dieser Architektur zeigt
sich bei Flashcache zum Beispiel in der Tatsache, dass ein
redundanter Cache aus mehreren SSDs erzeugt werden
kann oder einzelne Partitionen
der SSD fr unterschiedliche
HDDs zum Einsatz kommen
knnen.
Abbildung 1: Die drei Cache-Arten, die Flashcache untersttzt.

Caching-Modi
In Bezug auf die Cache-Art untersttzt
Flashcache drei Varianten: Write-Back,
Write-Through
und
Write-Around
Caching (Abbildung 1) [3]. Der WriteBack-Modus bietet als einziger Modus
die Mglichkeit zur Beschleunigung von
Schreibzugriffen (Writes). Diese Writes
schreibt das Modul im ersten Schritt auf
die SSD und synchronisiert sie spter im
Hintergrund mit der HDD dieser Vorgang wird auch als Lazy Dirty Cleaning
bezeichnet. Diese Dirty Pages sind jene
Blcke, die sich im Cache auf der SSD
befinden, aber noch nicht auf die HDD
geschrieben wurden.
In diesem Zusammenhang zeigt sich die
Wichtigkeit eines redundanten Caches
bei der Verwendung von Write-Back.
Fllt eine SSD aufgrund eines HardwareFehlers aus, gehen die Dirty Pages unwiederbringlich verloren und knnen im
schlimmsten Fall ein ganzes Dateisystem
lahmlegen. Eine redundante Auslegung
der Caching-SSDs, zum Beispiel durch
einen RAID1-Verbund, kann dieses Desaster verhindern. Vorsicht: Wenn eine
SSD des RAID-Verbunds ausfllt, luft
der Write-Back-Modus weiter, einen
automatisierten Wechsel in den WriteThrough-Modus gibt es bislang noch
nicht. Im Fehlerfall ist daher aus Grnden
der Datensicherheit ein rascher Tausch
der defekten SSD ntig.
Wird ein Cache im Write-Through-Modus eingesetzt, schreibt das Modul synchron auf die SSD und die HDD. Der
Geschwindigkeits-Vorteil der SSD kommt
in diesem Fall also beim Schreiben nicht
zur Geltung, da die Zugriffe erst dann

w w w. admin - maga z in . d e

abgeschlossen sind, wenn sie auch auf


der langsameren HDD abgeschlossen
sind. Der Vorteil des Cache macht sich
erst bei darauffolgenden Lesezugriffen
bemerkbar, bei denen die Daten von der
SSD bereitgestellt werden knnen.
Im Write-Around-Modus wird die SSD als
reiner Lese-Cache verwendet. Der Cache
fllt sich erst nach und nach durch die
Lesezugriffe.

Cache-Persistenz
Zurzeit bleibt nur beim Write-Back-Modus der Cache-Inhalt ber einen Reboot
hinweg erhalten (persistenter Cache).
Dies resultiert daraus, dass Flashcache
nur fr Write-Back Cache-Metadaten auf
der SSD verwaltet. Fr die anderen beiden Modi betreibt es diesen Aufwand zur
Zeit noch nicht. Dieses Fehlen der Metadaten hat nicht nur Nachteile: Fr Dirty
Pages mssen bei einem Write und Clean
immer auch die Metadaten geschrieben
werden. Um nicht jedes Mal fr jeden
Block die Metadaten aktualisieren zu
mssen, gibt es ein Batching fr mehrere
verschiedene Metadaten-Blcke und fr
sequenzielle Updates desselben Blocks.
Bei einem Reboot oder Shutdown des
Hosts werden im Falle von Write-Back
alle Dirty Pages von der SSD auf die HDD
synchronisiert das lsst sich manuell
auch ber dmsetup remove erreichen
(siehe unten). Dagegen entfernt sysctl
(fast_remove) den Cache ohne Synchronisation. Diese Option birgt immer ein
gewisses Risiko, da sich Daten im Cache
befinden, die noch nicht auf der Festplatte gelandet sind.

S S D -s p e i c h e r

Volume-Verwaltung
Flashcache bringt drei KommandozeilenWerkzeuge fr die Administration von
Cache-Volumes mit: flashcache_create,
flashcache_load und flashcache_
destroy. Die Zugehrigkeit zum Device
Mapper (DM) ist der Grund dafr, dass
Cache-Volumes auch via dmsetup verwaltet werden knnten. Die FlashcacheTools erleichtern aber wesentlich den
Umgang, und nur selten wird der Weg
direkt ber den DM ntig sein.
Beim Anlegen eines Caching Volumes mit
flashcache_create sind vor allem der
Caching-Modus (p), die Cache-Gre,
die Block-Gre, ein Volume-Name sowie
die Pfade zur SSD und HDD wichtig.
Wird die Cache-Size (s) nicht angegeben, verwendet Flashcache die gesamte
SSD als Cache-Device fr das Volume.
Ohne Angabe einer Block-Gre (b)
kommt die Standardgre von 4 KByte
zum Einsatz. Listing 1 erstellt ein WriteBack-Cache namens fcroot mit /dev/
sdd als SSD und /dev/sdc als HDD .
Nach dem Aufruf von flashcache_create
erscheint das Volume unter dem Pfad /
dev/mapper/fcroot. Daraufhin kann
man ein Ext4-Filesystem anlegen und das
Volume eingehngen.
Wer sich wundert, warum der Cache
nach dem Mount bereits gecachte Blcke

Listing 1: Erstellen und Mounten


01 
:~$ flashcache_create v p back fcroot /dev/sdd /
dev/sdc
02 
:~$ mkfs.ext4 /dev/mapper/fcroot
03 
:~$ mount /dev/mapper/fcroot /mnt

A D M I N -SS D -S p ec ia l

21

S S D -s p e i c h e r

Flashcache

enthlt, sei auf die Lazy Initialization von


Ext4 verwiesen. Der Kernel-Prozess ext4lazyinit initialisiert zu Beginn die Inode
Tables des Filesystems. Ist dies nicht gewnscht, mssen mkfs.ext4 mit der
Option E die Parameter lazy_itable_
init=0,lazy_journal_init=0 bergeben
werden [4].
Einmal erstellte Flashcache-Volumes lassen sich mit frm Befehl flashcache_load
wieder laden. Der Load-Befehl kann nur
fr Write-Back-Volumes verwendet werden, da dies die einzige persistente Variante ist. Fr Write-Through und WriteAround muss man nach jedem Remove
wieder einen neuen Cache erstellen.

Zerstrung
Das Kommando flashcache_destroy
zerstrt einen Cache samt all seinen Daten. Ein Entfernen eines Cache-Volumes
erfolgt direkt ber den DM-Befehl dmsetup remove. Der Remove-Aufruf kehrt
fr ein Write-Back-Volume erst dann zurck, wenn alle Dirty Pages auf die HDD
geschrieben sind. Dieses Blockieren garantiert ein sauberes Aushngen des Volumes, das via Load-Befehl spter wieder
geladen werden kann (Abbildung 2).
Fr die berwachung der Cache-Funktion stellt Flashcache mehrere Statistiken
bereit, die sich mit dmsetup status und
dmsetup table anzeigen lassen. Der
Status-Befehl zeigt vor allem die Leseund Schreibstatistiken. Wichtig hierbei
sind zum Beispiel die Angaben zu den
Treffern im Cache (read hit und write
hit percent) oder Lese- und Schreiboperationen auf SSD und HDD (disk/ssd
reads und writes).
dmsetup table beinhaltet dazu noch
einige Konfigurations-Informationen des
Volumes (Listing 2). Von Interesse ist

auch das Gren-Histogramm der abgesetzten I/O-Operationen (Size Hist).


Flashcache cacht immer nur Blockzugriffe, die gleich oder ein Vielfaches der
Blockgre des Caches sind (Standardgre 4 KByte). Eine steigende Anzahl an
512-Byte-I/Os signalisiert, dass Zugriffe
einer Applikation nicht gecacht werden.
Vorsicht ist somit auch bei FlashcachePerformance-Tests mit dem beliebten
Werkzeug dd geboten, da es standardmig mit 512 Byte als Block-Gre arbeitet.

Tuning
Ein Flashcache-Volume bietet zahlreiche Konfigurationsmglichkeiten ber
sysctl an. Diese Kontroll-Optionen eignen sich nicht nur zum Anpassen eines
Flashcache-Volumes an die eigenen Bedrfnisse, sondern geben auch ntzliche
Informationen ber die interne Funktionsweise. Der folgende Abschnitt zeigt
einige Reprsentanten der Optionen:
Der Sysctl cache_all erlaubt es, das
Caching ein- und auszuschalten. Auf
Black- und Whitelisting von Prozess-IDs
hat diese Option groen Einfluss (siehe
unten). Auch wenn kurzzeitig Test- oder
temporre Daten nicht im Cache landen
drfen, ist es sinnvoll, den Cache zu deaktivieren, um die SSD nicht mit nicht
bentigten Daten zu fllen.
Basierend auf der Storage-Architektur
hinter der SSD, gibt es Szenarien, bei
denen sich ein SSD-Cache negativ auf
die Performance auswirkt. Wird die SSD
als Cache fr ein RAID-Array genutzt,
dessen Durchsatz fr sequenzielle Zugriffe grer ist als jener der SSD, macht
sich der Cache negativ bemerkbar. Das
betrifft Schreib- und Leseoperationen
gleichermaen. Beim Schreiben ist der

Einfluss der SSD-Schreibgeschwindigkeit


offensichtlich, beim ungecachten Lesen
erschliet er sich erst auf den zweiten
Blick: Werden Daten gelesen, die sich
nicht im SSD-Cache befinden, ist die
Lese-Operation erst dann abgeschlossen,
wenn der angeforderte Bereich vom RAID
gelesen, in den SSD-Cache geschrieben
und schlielich an die Applikation weitergegeben wurde [5].
Die SSD-Schreib-Performance ist deshalb
ein wesentlicher Faktor fr die Performance-Verbesserung. Fr sequenzielle
Zugriffe existiert mit skip_seq_thresh_
kb ein Schwellwert, ber den sich die
SSD-Defizite etwas ausgleichen lassen.
Weist man ihm zum Beispiel den Wert
1024 zu (standardmig 0), landen alle
sequenziellen I/Os ber 1024 Kilobyte
nicht mehr im Cache. Die niedrigere Performance der SSD fr sequenzielle Zugriffe wird dadurch eliminiert.

Strategien
Die beiden Tuning-Parameter fallow_delay und dirty_thresh_pct sind nur fr
den Write-Back-Modus von Bedeutung.
Wie bereits erwhnt, werden Dirty Pages
im Hintergrund von der SSD auf die HDD
synchronisiert. Die Auswahl der Blcke
erfolgt entweder aufgrund eines Timeouts
(fallow_delay) oder beim berschreiten
eines Schwellwerts (dirty_thresh_pct).
Das Timeout kommt dann zum Zug,
wenn ein Dirty Block im Cache fr lngere Zeit weder gelesen noch geschrieben
wurde. Nach berschreitung dieser Zeit
im Idle-Zustand werden die Block-Daten
auf die HDD geschrieben, und der Block
verliert somit seinen Dirty-Zustand (Idle
Cleaning).
Der zweite Parameter bestimmt den
Prozentanteil an Dirty-Blcken eines

Listing 2: Status-berblick ber das Volume


01 
:~$ dmsetup table fcroot
02 
fcroot: 0 3907029168 flashcache conf:
03 

ssd dev (/dev/sdd), disk dev (/dev/sdc) cache

mode(WRITE_BACK)
04 

capacity(32638M), associativity(512), data

block size(4K) metadata block size(4096b)


05 

skip sequential thresh(0K)

06 

total blocks(8355328), cached

blocks(1048668), cache percent(12)


07 

dirty blocks(1048662), dirty percent(12)

08 

nr_queued(0)

09 
Size Hist: 1024:1 4096:9765813

22

A D M I N -SS D -S p ec ia l

Abbildung 2: Schematischer Ablauf der Verwaltung eines Cache-Volumes.

w w w. admin - maga z in . d e

Flashcache

Black- und Whitelists


ber Black- und Whitelists lsst sich festlegen, welche Applikationen sich Flash
cache zunutze machen. Das Caching
einer Datenbank kann zum Beispiel
wie folgt erreicht werden: mit dem Sys
ctl cache_all den Cache global deaktivieren. Den Thread Group Identifier
des Datenbank-Daemons (zum Beispiel
mysqld) zur Flashcache-Whitelist hin-

MAGAZIN

fgen. Von nun an werden alle I/Os des


Daemons gecacht, andere Applikationen
nutzen den Cache nicht.
Dies funktioniert jedoch nur fr Direct
I/O zuverlssig, also Zugriffe, die nicht
den Page Cache benutzen. Ansonsten
werden Writes auch von den KernelFlush-Threads durchgefhrt, die sich
nicht auf der Whitelist befinden.
Blacklists sind unter anderem fr BackupProzesse interessant, die von Zeit zu Zeit
das Filesystem nach nderungen durchforsten. Diese Read-Operationen sind ungeeignet fr den SSD-Cache. Der Prozess
ist ein Kandidat fr die Blacklist und wird
als noncacheable gekennzeichnet.

Performance
Performance-Messungen mit CachingTechnologien sind schwierig durchzufhren. Vor allem der Weg zu einem
definierten Ausgangszustand ist holprig.
Die erste Hrde stellt sich bereits bei der
Auswahl eines geeigneten BenchmarkWerkzeugs. Der flexible I/O-Tester Fio
meistert sie glnzend, er wurde bereits
im ADMIN 05/2011 vorgestellt [6].
Die Fio-Testdateien auszuwhlen, gestaltet sich ebenfalls als schwierig: Im
Echtbetrieb wird es selten der Fall sein,
dass Daten, die gerade geschrieben worden sind, sofort wieder gelesen werden.
Genau dieses Verhalten simulieren aber
die meisten Performance-Tests. Im Falle

ONLINE

Cache-Sets. Flashcache beginnt vermehrt


Cache-Blcke von der SSD auf die HDD
zu schreiben, sobald die Anzahl an Dirty
Blcken den Prozentwert berschreitet.
Die Auswahl der Blcke erfolgt aufgrund
der Reclaim Policy. Sie bestimmt die Blcke, die Flashcache auswhlt, wenn bei
einem Write keine Blcke mehr frei sind
und wenn eine Clean-Operation ansteht.
Zur Auswahl stehen First in First out
(FIFO, per Default der als Erstes hereinkam, fllt zuerst raus) und Least
recently used (LRU, der am lngsten
nicht verwendete).
ber den Sysctl reclaim_policy kann
zur Laufzeit eine der beiden Varianten
ausgewhlt werden. Wurde eine Auswahl
an Blcken getroffen, gibt es obendrein
Mglichkeiten zur Steuerung der Anzahl
an Clean Writes: fallow_clean_speed,
max_clean_ios_set und max_clean_
ios_total bestimmen, wie viele Writes
beim Synchronisieren abgesetzt werden.

von Flashcache beeinflusst dieses Testsetup nachweislich die Testergebnisse:


Nach dem Auslegen der Testdaten auf das
Volume beginnt Flashcache mit dem Dirty
Cleaning. Diese I/O-Operationen des
Hintergrund-Prozesses wirken sich auf
darauffolgende Lese-Tests aus. Um eine
reale Gschwindigkeits-Messung zu erhalten, mssen die Tests erst dann durchgefhrt werden, wenn die Synchronisation
abgeschlossen ist, ansonsten muss das
Dirty Cleaning zumindest als Faktor bei
den Ergebnissen bedacht werden. Details zum verwendeten Testsetup sind im
gleichnamigen Kasten zu finden.
Die Fio-Tests setzen sich aus sequenziellem Lesen/Schreiben (1 MByte Blockgre) und zuflligem Lesen/Schreiben
(4 KByte Blockgre) zusammen (siehe
auch Abbildung 3 und 4). Alle Tests
beinhalten die Verwendung des Page
Cache, daraus Profit schlagen aber nur
die Schreib-Tests, da Fio beim Lesen den
Page Cache vor dem Test invalidiert.

Fast wie SSD


Bei jenen sequenziellen Tests, bei denen sich das Daten-Set komplett auf der
SSD befindet, kommt Flashcache auch an
die Performance einer reinen SSD heran.
Die grnen Punkte in den Abbildungen
markieren jeweils die Geschwindigkeiten der Tests mit einer reinen SSD,
ohne Flashcache. Ab 32 GByte Set-Gre

Linux-Magazin newsLetter
informativ

Newsletter

S S D -s p e i c h e r

Nachrichten rund um die


Themen Linux und Open
Source lesen Sie tglich
im Newsletter des LinuxMagazins.

kompakt

tagesaktuell
w w w. admin - maga z in . d e

www.linux-magazin.de/newsletter
23
A D M I N -SS D -S p ec ia l

S S D -s p e i c h e r

Flashcache

Abbildung 3: Sequenzieller Lese-/Schreib-Test mit Flashcache.

passen nicht mehr alle Test-Daten auf


die SSD. Aufgrund von Filesystem- und
Flashcache-Metadaten mssen einige
100 MByte auf die Festplatte ausgelagert
werden. Die Performance bei 64 GByte
sinkt auf etwa 150 MByte pro Sekunde
immerhin noch 40 MByte ber der
durchschnittlichen Geschwindigkeit der
Festplatte.
Die zuflligen Tests besttigen die Vorteile des Page Cache, selbst bei 64 GByte
Random Write werden noch 1470 IOPS
erreicht. Randomread fllt bereits bei 32
GByte auf circa 1000 IOPS zurck, bei 64
GByte zeigt sich eine drastische Reduzierung auf 182 IOPS. Fr diese Einbrche
gibt es mehrere Grnde. In erster Linie
bersteigt ab 32 GByte die Daten-SetGre die Gre der SSD, die Gre des
RAMs spielt beim Lesen keine Rolle, da
der Page Cache nicht eingreift. Des Weiteren wurden die Fio-Tests ohne die Option

Testsetup
Das Testsetup setzt sich aus folgenden Komponenten zusammen:
nIntel(R) Xeon(R) CPU E5502 @ 1.87GHz
sowie 12 GByte RAM
nIntel Series 320 160 GByte, via Hostprotected-Area (HPA), reduziert auf 32
GByte. Die Reduzierung wurde vor allem
fr die Verkrzung der Performance-Tests
vorgenommen. Normalerweise erfolgt die
Limitierung mittels HPA nur auf 70 bis 80
Prozent [7]
n2 TByte Western Digital WD2002FYPS
Festplatte
nFlashcache Git Commit:
1.0-148-g332fe0fc55ca
n Fio in der Version 2.0.7
nUbuntu 12.04 mit den neuesten Updates

24

A D M I N -SS D -S p ec ia l

Abbildung 4: Zuflliger (Random) Lese-/Schreib-Test mit Flashcache.

norandommap aufgerufen, das heit


ein einmal gelesener Block wird nicht
noch ein zweites Mal gelesen. Zu Beginn des Tests liegen bei einem 64 GByte
Daten-Set circa die Hlfte auf der SSD.
Fordert Fio einen zuflligen Block an, der
auf der HDD liegt, wird dieser gelesen,
und Flashcache cacht den Block auf der
SSD. Dadurch ersetzt Flashcache einen
Block auf der SSD, den Fio zum spteren
Zeitpunkt vom Cache lesen htte knnen.
Den neuen, soeben gelesenen Block im
Cache wird Fio nicht mehr bentigen, da
er bereits einmal gelesen wurde.

Einen Versuch wert


Flashcache eignet sich hervorragend als
Einstieg in die SSD-Caching-Welt. Es ist
einfach zu verwenden, und die Konfigurations-Mglichkeiten sind vielfltig. Der
Aufbau auf dem Linux Device Mapper
verleiht Flashcache die ntige Flexibilitt,
um auch redundante Cache-Architekturen aufzubauen.
Der fehlende Hot-Spot-Algorithmus zur
Erkennung hufig bentigter Daten wird
etwas durch die beiden ReplacementPolicies und das berspringen von sequenziellen Zugriffen kompensiert. Ob
Flashcache mit den neuen Hot-Spot-Algorithmen gngiger Hardware-Controller
mithalten kann, muss sich noch zeigen.
In puncto Performance bringt Flashcache
bei einer Daten-Set-Gre kleiner als die
SSD-Gre kaum Overhead mit sich.
Sonst hngen die Ergebnisse stark vom
Zugriffsmuster der Anwendung ab.
Dem Nutzer von Flashcache wird es nicht
erspart bleiben, die I/O-Charakteristik

seiner Applikationen nher kennenzulernen.


Das soll nicht heien, dass sich SSDCaching ohne detaillierte Analyse des
eigenen Systems nicht einsetzen lsst.
Greren Nutzen wird aber derjenige aus
Flashcache ziehen, der den Cache auf
seine eigene Applikationen und Bedrfn
nisse abstimmt. (ofr)

Infos
[1] Flashcache:
[https://github.com/facebook/flashcache]
[2] Diagramm des Linux I/O Stack:
[http://www.thomaskrenn.com/en/oss/
linuxiostackdiagram.html]
[3] Flashcache Administrator Guide: [https://
github.com/facebook/flashcache/blob/
master/doc/flashcachesaguide.txt]
[4] Kernel Newbies ber Linux 2.6.37: [http://
kernelnewbies.org/Linux_2_6_37#head5b9d
7940fa4e8294ceaac86a74beb021b2fce3e3]
[5] Flashcache Google Group: [https://
groups.google.com/forum/#!topic/
flashcachedev/I0su4NKPQo]
[6] Martin Steigerwald, I/O-Benchmarks mit
Fio, ADMIN 05/2011:
[http://www.adminmagazin.de/DasHeft/
2011/05/IOBenchmarksmitFio]
[7] SSD Over-Provisioning mit hdparm:
[http://www.thomaskrenn.com/de/wiki/
SSD_OverProvisioning_mit_hdparm]
Der Autor
Georg Schnberger arbeitet als Technology Specialist bei der Thomas-Krenn.AG und ist Autor beim
Thomas-Krenn-Wiki. Seine Arbeitsschwerpunkte
reichen von Informationssicherheit ber Monitoring-Plugins bis hin zu Performance-Tests.

w w w. admin - maga z in . d e

SSD-Nachfolger

S S D -s p e i c h e r

ktsdesign, 123RF

Zuknftige Alternativen zu SSD und Co.

Wie wir morgen


speichern
Obwohl schnelle Flash-Speicher die Festplatten schon hier und da aus Servern wie Laptops verdrngen nicht
zu reden von Nischen, in denen Platten ohnehin keine Konkurrenten sind, etwa bei Smartphones oder Tablets
haben sie doch auch handfeste Nachteile. Deshalb wird an Alternativen mit Hochdruck geforscht. Einige stehen
bereits in den Startlchern. Jens-Christoph Brendel
Platten sind staunenswerte Wunderwerke. Vergrert man die immer strker
miniaturisierte Mechanik proportional
auf fassliche Dimensionen, dann wird
aus dem nur 20 Nanometer ber der
Plattenoberflche gleitenden Lesekopf
ein Jumbojet, der mit mehrfacher Schallgeschwindigkeit in Augenhhe ber die
Erde rast. Zugleich ist dieses Operieren an
den Grenzen der Physik auch die Achillesferse der Festplattentechnik, denn hier
begrenzen naturgesetzliche Schranken
die Schreib- und Leseleistung.
SSDs kommen komplett ohne mechanische Teile aus. Aus dem Stand sind sie
leicht um ein Vielfaches schneller als eine
Festplatte. Dazu verbrauchen sie weniger
Strom, sind mechanisch unempfindlich,
verursachen keine Gerusche und sind
viel leichter als Platten. Das alles folgt
aus ihrem Funktionsprinzip: SSDs bestehen aus vielen elektronischen Spei-

w w w. admin - maga z in . d e

cherzellen, bei denen zwischen einer


Quelle als Minuspol und einem Ausgang
ein Strom flieen kann (Abbildung 1),
den ein Steuerelement unterbricht oder
freigibt. Im ersteren Fall speichert die
Zelle den Zustand 1. Bis hierhin funktioniert sie wie ein normaler Transistor
und bruchte wie dieser auch eine permanent anliegende Spannung.
Im Unterschied zum Transistor kommt
hier aber ein neues, isoliertes Element
hinzu, das so genannte Floating Gate.
Im Zustand 1 es nicht geladen, das
Steuerelement ist negativ gepolt. Liegt
dagegen am Steuerelement eine positive
Spannung an, dann tunneln Elektronen
durch die umgebende Isolierschicht auf
das Floating Gate. Das unterbricht den
Stromfluss zwischen Quelle und Ausgang. Das Element speichert den Zustand
0. Einmal auf das Gate gelangt, sind die
Elektronen durch die Isolation dort gefan-

gen, wodurch die Zelle ihren Speicherzustand halten kann. Erst eine relative
hohe negative Steuerspannung leert das
Gate wieder und versetzt die Zelle in den
entgegengesetzten Zustand.

Inhrente Probleme
Mit dieser Funktionsweise verbinden sich
aber auch eine Reihe von Problemen. Damit der Speicherzustand lange gehalten
werden kann, bedarf es einer starken Isolation und um die wiederum beim Schreiben zu berwinden einer hohen Spannung. Eine hohe Spannung aufzubauen
kostet aber Zeit. Deshalb sind Flash-Speicher in der Klasse der Halbleiterspeicher
trotz allem eher lahme Gesellen, um Grenordnungen langsamer als RAM oder
CPU. Auerdem geht bei jedem Schreibvorgang ein winziger Bruchteil der Isolation verloren, sodass sich das Element

A D M I N -SS D -S p ec ia l

25

S S D -s p e i c h e r

SSD-Nachfolger

im Betrieb verbraucht und zum Schluss


so hoch im Vergleich zu herkmmlichen
bei Endverbraucher-SSDs nach vielleicht
SSDs), die sich schneller bereitstellen las10 000 Schreibvorgngen seine Funktion
sen. In der Folge berstehen die Zellen
verliert. Um diesen Effekt abzumildern, auerdem mehrere Tausend Mal so viele
mssen die Schreibvorgnge mglichst
Schreibzyklen. Eine entsprechende Techklug ber alle Zellen verteilt werden, was
nik wurde unter dem Namen SONOS (Siwiederum aufwndige, teure und auch
licon Oxide Nitride Oxide Silicon) bereits
nicht besonders schnelle Controller ntig in den 1970er Jahren entwickelt und auch
als Chip hergestellt. Zu den Anbietern gemacht.
Hinzu kommt, dass die Miniaturisierung hren Philips, Toshiba, Spansion oder Infineon. Bis heute ist die Fertigung jedoch
von SSD-Zellen inzwischen bereits weit
fortgeschritten ist. Manche Forscher mei- teuer, sodass sich Abnehmer vor allem
bei Militr und Raumfahrt finden, wo es
nen, eine weitere Verkleinerung knnte
auf Unempfindlichkeit gegenber radionur noch auf Kosten der Zuverlssigkeit,
aktiver Strahlung ankommt. Insgesamt
der Lebensdauer oder der Performance
erreicht werden. Heute markieren SSDs scheint im Moment nicht ganz klar, ob
diese Technik einmal die SSD-Nachfolge
den Stand der Technik, die in 25 nmZellen je 3 Bits speichern (Triple Level erobern kann.
Cells, TLC). Im Unterschied zum digitalen DRAM kann bei der Floating-GateTechnologie eine Zelle nmlich mehr als
ein Bit speichern. Das gelingt, indem
Eine weitere Entwicklungslinie setzt auf
sie anhand der Menge der auf das Gate die ferromagnetischen Eigenschaften
aufgebrachten Ladungstrger mehr als
spezieller Kristalle (etwa Bariumtitanat,
zwei Zustnde unterscheidet. Techniken
BaTiO3). Sie knnen unter dem Einfluss
fr vier oder fnf Bit pro Zelle zeichnen
eines elektrischen Feldes eine bestimmte
sich ab. Selbst unter der optimistischen Polaritt annehmen, die auch nach AbAnnahme, die Strukturbreiten auf dem schalten des Stroms erhalten bleibt. So
Chip wrden sich auf 6,5 nm verkleinern soll die Geschwindigkeit von DRAM und
lassen, wren nur SSDs mit hchstens 4,6
SRAM mit dem nicht flchtigen FlashTerabyte mglich. Erst TLC erlaubt 14
Speicher kombinierbar sein.
Terabyte. Doch je mehr Bits
pro Zelle gespeichert werden
Steuerelement
sollen, desto langsamer und
fehlertrchtiger sind prinzipFloating Gate
bedingt die Schreiboperationen. Die hhere SpeicherQuelle
Ausgang
dichte wird also durch Performanceeinbuen und hhere
Bitfehlerraten erkauft.

Magnete statt Strom

Nach dem heutigen Stand der Technik


sind mit einer solchen so genannten FeRAM-Zelle bis zu 100 Milliarden Schreib
operationen mglich, ehe sich auch diese
Speicherzelle erschpfen wrde der
Wert liegt fr praktische Belange schon
nahe der Unendlichkeit. Bis zu 10 Jahre
sollen die Informationen stromlos gespeichert bleiben. Es sind nur halb so hohe
Spannungen ntig wie bei Flash, deshalb
geht ein Schreibzyklus in nur 150 Nanosekunden ber die Bhne (Flash: 10
Mikrosekunden).
Zu den Nachteilen von FeRAM zhlen
heute die im Vergleich zu Flash geringere
Speicherdichte und die hheren Herstellungskosten. An der Entwicklung arbeiten gegenwrtig unter anderem Samsung,
Toshiba, Infineon, Symetrix oder die Universitten von Cambridge oder Toronto
und das Interuniversity Microelectronics
Centre (IMEC, Belgien).

Polaritt schaltbar

Ebenfalls auf Magnete, jedoch mit einem


komplett anderen Prinzip setzt MRAM.
Hier werden zwei Elemente miteinander kombiniert: ein winziger Permanentmagnet mit festem Nord- und Sdpol
und ein Elektromagnet, dessen Polarit
sich umschalten lsst. Durch
beide Magnete leitet man einen Messstrom (Abbildung
2). Sind nun beide Magnete
gegenstzlich polarisiert, ist
der Widerstand hoch, was
dem Wert 0 entspricht.
Sind die Magnete dagegen
in der gleichen Richtung polarisiert, ist der Widerstand
niedrig, was als 1 gewertet
wird. Das Prinzip ist mit dem
Magnetkernspeicher aus der
+
Steuerelement
Anfangszeit der Grorechner vergleichbar. Damit sind
Floating Gate
jetzt Speicherdichten im Terabit-Bereich pro Quadratzoll
Quelle
Ausgang
mglich, was dasselbe ist, als
knnte man den Inhalt von
25 DVDs auf der Flche einer
Briefmarke unterbringen.
Fertige MRAM-Chips gibt es
Abbildung 1: Das Arbeitsprinzip von Flash: Ein Steuerelement regelt den Zu- oder
seit etwa 2005, genutzt werAbfluss von Ladungstrgern auf das Floating Gate und damit den Stromfluss
den sie bislang aber nur in
zwischen Quelle und Ziel. Das Floating Gate verbleibt auch stromlos im einmal
Spezialbereichen wie der
eingenommenen Zustand, weil die umgebende Isolation seine Ladung festhlt.
Raumfahrt. Auch in Spiel-

SONOS
Aus diesem Grund hat man
sich schon lange nach alternativen, nicht-flchtigen Speichertechnologien umgesehen.
Die nchstliegende Lsung
orientiert sich sehr stark an
der Flash-Speichertechnik,
verwendet aber Siliziumnitrid statt Silizium fr das Gate.
Seine Molekularstruktur hlt
die Elektronen besser fest,
dadurch kann die Isolierung
dnner ausfallen, man braucht
geringere Spannungen (halb

26

A D M I N -SS D -S p ec ia l

w w w. admin - maga z in . d e

SSD-Nachfolger

S S D -s p e i c h e r

Nanorhrchen

Elektrode

Abbildung 3: Eine Spannung verbiegt die Nanorhre und erhht ihren StromAbbildung 2: Je nachdem, ob die benachbarten Magnete gleich oder entgegenge-

Widerstand. Dank molekularer Anziehungskrfte bleibt das winzige Rhrchen

setzt ausgerichtet sind, fliet ein geringer oder strkerer Messstrom.

gebogen, bis eine entgegengesetzte Spannung es wieder gerade ausrichtet.

automaten sichern MRAMs den Spielstand gegen Stromausfall. Die Entwicklung wird von groen Konzernen wie
Toshiba, IBM oder NEC vorangetrieben.
MRAMs sind schnell (theoretisch bis zu
1000mal schneller als Flash), preisgnstig
und leistungsarm, erreichen momentan
aber noch nicht die eigentlich mgliche
Packungsdichte und Performance. Ein
Problem bereitet vor allem die gegenseitige Beeinflussung der Magnetpartikel
beim Schreiben, das so genannte magnetische Klingeln. Eine Entwicklung der
Physikalisch-Technischen Bundesanstalt
in Braunschweig hat erst krzlich ein
Gegenmittel vorgestellt.
Einige MRAM-Hersteller prophezeien
einen baldigen Durchbruch im Massenmarkt. So hat Everspin Inc. nach eigenen
Angaben 2011 bereits 3 Millionen MRAMs
ausgeliefert und will es in diesem Jahr auf
5 Millionen bringen und damit DRAMs
Konkurrenz machen.

Bits als Rhrchen


Wieder einem anderen Prinzip ist NRAM
oder Nano-RAM verpflichtet. Hier sind es
winzige mechanische Schalter, nmlich
mikroskopisch kleine Rhrchen aus Kohlenstoff. Durch das Anlegen einer Spannung lassen sie sich verbiegen dann ist
ihr Widerstand hher oder wieder gerade ausrichten. Den gebogenen Zustand
kann das Rhrchen dank molekularer
Anziehungskrfte (Van-der-Waals-Kraft)
auch ohne Strom beibehalten (Abbildung
3). Momentan existieren jedoch nur Prototypen solcher Chips.
Ebenfalls nanomechanisch arbeitet der
Millipede-Speicher, der dazu mit Parallelisierung das Rennen machen will.

w w w. admin - maga z in . d e

Entwickelt wurde die Technik von dem


deutschen Physik-Nobelpreistrger Gerd
Binnig in einem IBM-Labor. Sie basiert
auf der mit von ihm erfundenen Rasterkraftmikroskoptechnologie. Winzige Silizium-Spitzen schmelzen dabei kleinste
Lcher in ein Polymer-Medium. Durch
Erhitzen der Lochrndern kann man die
Mini-Krater auch wieder fllen, um ein
Bit zu lschen. Das alles spielt sich im
Nanometerbereich ab. Weil die Vertiefungen viel weniger Platz wegnehmen als
eine elektronische Schaltung, ist damit
eine sehr hohe Speicherdichte realisierbar.
Damit auch eine hohe Schreib- und Lesegeschwindigkeit erreicht werden kann,
arbeitet man nicht mit einer, sondern mit
mehreren Tausend Nadeln, die gleichzeitig Lesen und Schreiben knnen. Unter
einem starren Block mit solchen Schreib-/
Lesespitzen wird das Medium mit einer
Genauigkeit von ein bis zwei Nanometern bewegt. Eine Serienproduktion solcher Speicher gibt es bislang nicht.

Widerstandsgedchtnis
Unter dem Namen ReRAM (Resistance
Random Access Memory) oder Memristor
ist eine weitere Speichertechnik schon
weit gediehen. Ihr Funktionsprinzip besteht darin, dass ein Dielektrikum zwischen zwei Elektroden durch Anlegen
einer Spannung so beeinflusst werden
kann, dass es seine Leitfhigkeit ndert.
Durch die Isolierschicht bilden sich leitfhige Kanle, die danach auch ohne Spannung erhalten bleiben. Der Memristor
merkt sich auf diese Weise quasi den
Widerstandswert. Eine umgekehrte Spannung zerstrt die Kanle wieder.

Erste Bauelemente sollen ab 2013 auf den


Markt kommen, unter anderem von HP.
Grere Stckzahlen sind vielleicht ab
2014 zu erwarten. Auch Hybrid-Speicher
aus SSD und ReRAM existieren bereits als
Prototyp, sie sollen die Leseleistung um
das elffache steigern knnen und sieben
Mal so lange leben wie reine SSDs. Aber
ReRAM wird nicht nur als Flash-Nachfolger, sondern auch als DRAM-Ersatz
gehandelt. Sollte sich das durchsetzen,
entfiele der Zeitbedarf beim Booten und
man knnte augenblicklich an den letzten Arbeitsstand anknpfen. Denselben
Effekt htte auch eine DRAM-Ablsung
durch MRAM (siehe oben).
Nach einem hnlichen Prinzip wie
ReRAM, aber mit anderen Materialien funktioniert CBRAM (Conductive
Bridging RAM). Hier trennt die Isolierschicht zwei Metallelektroden, von denen die eine vorwiegend elektrochemisch
inaktiv ist (etwa Wolfram), die andere aktiv (etwa Kupfer oder Silber). Eine Spannung bewirkt auch hier die Ausbildung
von Rhren im Nanometerbereich durch
die Isolierschicht, die den Widerstand
senken.

Fazit
Zwar gibt es heute noch keine Technik,
die mit derselben Verbreitung wie Flash
und zu niedrigen Kosten auf dem Massenmarkt verfgbar wre, aber es ist
klar, dass heutige SSDs ihrem Karriereende nhern. Deshalb wird aller Orten
an Alternativen geforscht. Mehrere viel
versprechende Entwicklungen sind schon
weit gediehen. Man darf gespannt sein,
welche Technologie sich zuerst durchsetzt.
n

A D M I N -SS D -S p ec ia l

27

Anda mungkin juga menyukai