iX 2/2018
S. 46
Titel
Storage III
Aufmacherbild

SSD-RAID-Verbünde performant konfigurieren

Schnellspeichern

Immer mehr Festplatten-RAIDs werden durch SSD-RAIDs ersetzt. Viele Grundlagen gelten dabei weiterhin, eine optimale Performance erfordert jedoch angepasste Einstellungen – vor allem beim Cache.

Ein Speichersystem muss ausreichend Speicherplatz bieten und diesen mit akzeptabler Performance bereitstellen. Um diese Anforderungen zu erfüllen, bieten RAID-Systeme (Redundant Array of Independent Disks) mehrere Stellschrauben, wie die Auswahl des RAID-Levels und der Speichermedien oder die Konfiguration der Cache-Parameter. Da in den vergangenen Jahren die Preise für Flash-basierte Datenträger deutlich gesunken sind, betreiben immer mehr Rechenzentrumsverantwortliche ihre Systeme mit reinen Flash-Medien (Full-Flash-Systeme). Obwohl diese Flash-Systeme um ein Vielfaches schneller als herkömmliche Systeme mit Festplatten sind, ist es dennoch wichtig, auf die Auswahl des RAID-Levels und des Cachings zu achten. Nur mit den richtigen Einstellungen erreicht man die maximal mögliche Performance.

Der Artikel zeigt die Auswirkungen der unterschiedlichen Einstellungen anhand einiger Testläufe mit dem Open-Source-Performance-Tool TKperf. Dieses Tool testet automatisiert die I/O-Geschwindigkeit mit fio (Flexible IO Tester) und beachtet dabei die SNIA (Storage Networking Industry Association) Solid State Storage (SSS) Performance Test Specification (PTS) zur Messung von IOPS, Übertragungsrate und Latenz. Details zum Testaufbau beschreibt der Kasten „Das Testsystem“.

Testaufbau und Messungen

Insgesamt haben die Autoren 20 Tests durchgeführt und dabei die verschiedenen RAID-Levels abhängig von Device-Anzahl und Cache-Einstellung unterschieden. Getestet wurden die RAID-Levels 0, 1, 5, 6 und 10. Die Anzahl der Devices variierte je nach Level. Bei den Cache-Einstellungen wurde entweder der Modus Write-through oder Write-back gewählt. Bei Write-through (WT) ist der Write-Cache deaktiviert, daher gehen alle Schreiboperationen direkt auf das RAID beziehungsweise dessen darunterliegende Medien. Bei Write-back (WB) hingegen ist der Write-Cache aktiv, jede Schreibsequenz speichert das System zuerst im 1 GByte großen Cache, bevor es die Daten direkt auf das RAID schreibt.

Bei diesen Tests liegt ein besonderes Augenmerk auf Geschwindigkeit und Verzögerung (siehe Kasten „IOPS, Übertragungsrate und Latenz“). TKperf erstellt per Konfigurationsskript automatisiert ein RAID-Volume, auf dem anschließend IOPS, Durchsatz und Latenz gemessen werden.

Single-Drive und RAID 0

Einzelne SSD als RAID 0 konfiguriert: Die DC S3610 liefert mit 1-MByte-Blöcken eine Übertragungsrate von 500 MByte/s beim Lesen und von 420 MByte/s beim Schreiben. Die Anzahl an IOPS variiert abhängig von der Blockgröße und dem Verhältnis von Lese- zu Schreiboperationen (Abb. 1).

Zur Einordnung der späteren Testergebnisse haben wir zuerst eine einzelne SSD vom Typ Intel DC S3610 (RAID 0 mit nur einer SSD) getestet. Die dabei gemessenen Werte unterscheiden sich geringfügig von den Herstellerangaben, weil der RAID-Controller dazwischengeschaltet ist und bei diesen Tests TKperf/fio unter Linux statt IOmeter unter Windows zum Einsatz kommt (siehe Abbildung 1).

Tabelle
Tabelle: Single-Drive- und RAID-0-Tests

Eine komplette Testreihe wird nun auf Basis eines RAID-0-Verbunds durchgeführt. Bei einem RAID 0 werden die Daten auf mehrere Datenträger verteilt. Aufgrund des parallelen Zugriffs auf mehrere Datenträger steigen die Lese- und die Schreibperformance. Dieses Aufteilen der Daten, auch Striping genannt, führt jedoch dazu, dass der Datenbestand auf einem RAID 0 keinerlei Redundanz bietet. Fällt ein Datenträger aus, sind alle Daten verloren. Deswegen findet dieser RAID-Level fast keine Anwendung im Produktiveinsatz. Dennoch kann das Striping für bestimmte Anwendungsfälle interessant sein, etwa bei temporären Dateispeichern oder Streaming-Plattformen, die eine besonders hohe Lese- und Schreibperformance erfordern. Je mehr SSDs man in einem RAID 0 zusammenfasst, desto höher die IOPS-Werte und die Übertragungsrate, die Latenz bleibt etwa auf dem gleichen Niveau. Die IOPS-Werte beim Lesen unterscheiden sich zwischen vier und acht SSDs jedoch kaum, hier kommt der MegaRAID-Controller an seine Grenzen.

Sicherheit durch Spiegel-RAID

Ein RAID mit Level 1 findet in zahlreichen Systemen Verwendung. Dabei werden zwei Datenträger gespiegelt, Mirror genannt. Einsatz findet RAID 1 vor allem bei Betriebssysteminstallationen und kleineren Serversystemen mit nur zwei Datenträgern. Ein gespiegeltes Volume legt bei jedem Schreibvorgang die Daten auf beiden Datenträgern ab, weshalb die Performance bei schreibenden Operationen vergleichbar mit der einer einzelnen SSD ist. Bei Lesezugriffen auf die Daten spielt RAID 1 jedoch den Vorteil der redundanten Daten aus, der RAID-Controller kann sie von beiden Laufwerken gleichzeitig anfordern und somit die Leseperformance beinahe verdoppeln. Bei den Testläufen erreicht das RAID 1 aus zwei SSDs eine gute Performance. Bei 4-KByte-Blöcken lassen sich lesend etwa 144 000 IOPS erzielen und knapp 42 000 beim Schreiben. Bei den Übertragungsratentests kommt das RAID 1 auf fast 1 GByte/s beim Lesen, beim sequenziellen Schreiben sind es 400 MByte/s. Die Latenz spielt bei diesem RAID keine große Rolle, sie bewegt sich zwischen 0,05 und 0,1 Millisekunden.

Um die Vorteile des Schreibcache testen zu können, wird der Write-Cache im Controller für das bestehende RAID 1 aktiviert und der Test wiederholt. Das lässt die IOPS-Werte sinken, bei Lesezugriffen um gut 10 000. Beim Schreiben lässt der aktivierte Cache die IOPS um 15 000 fallen. In den sequenziellen Übertragungsratentests steigert der Write-Cache jedoch die geschriebenen MByte/s um über 100 Prozent, somit schafft das RAID 1 nun etwa 850 MByte/s. Der Anstieg der Latenz und die Verringerung der IOPS-Zahlen ist auf den aktivierten Zwischenlayer zurückzuführen. Der Cache ist eine weitere Komponente, welche die Daten zwischenspeichern muss, weshalb einige schnell aufeinanderfolgende Operationen sich nicht mehr so effizient ausführen lassen.

RAID-Level 5 und 6 verglichen

Um die Datenträgerkapazität optimal zu nutzen, wird oftmals auf RAID 5 und 6 zurückgegriffen. Diese RAID-Levels arbeiten mit Paritäten und können ab drei (bei RAID 5) beziehungsweise vier Datenträgern (bei RAID 6) verwendet werden. Ein RAID 5 verkraftet mit seiner einfachen Parität den Ausfall einer Disk, bei RAID 6 können dank doppelter Paritäten zwei Datenträger ausfallen, ohne dass es zu einem Datenverlust kommt. Das Berechnen der Paritäten verlangt dem RAID-Controller jedoch einiges ab, dies macht sich in den Performancetests deutlich bemerkbar. Bei RAID 6 ist der Performanceeinbruch etwas höher als bei RAID 5, weil der Controller auf zwei Datenträgern Paritätsinformationen schreiben muss.

Mit TKperf erstellte Grafiken: Eine Übersicht über IOPS, Übertragungsrate und Latenz der RAID-5-Tests (Abb. 2)

Auch bei dieser Testreihe wird abwechselnd mit und ohne Schreibcache (Write-Cache) getestet, die Testergebnisse fallen ähnlich wie bei RAID 1 aus. Die gemessenen IOPS verringern sich mit aktiviertem Cache, gleichzeitig steigt die Übertragungsrate bei den sequenziellen Schreibvorgängen deutlich an. Anders als bei RAID 1 sinkt die Latenz bei den Schreibvorgängen. Die Erklärung dafür ist einfach: Der Controller muss nicht sofort die Parität berechnen und damit ein kostspieliges Read-Modify-Write durchführen, sondern kann aus dem Cache heraus rechnen und anschließend wieder möglichst sequenziell auf die darunterliegenden Datenträger schreiben (siehe Abbildung 2).