RAID-Controller-Praxis

Bernhard Haluschak war bis Anfang 2019 Redakteur bei der IDG Business Media GmbH. Der Dipl. Ing. FH der Elektrotechnik / Informationsverarbeitung blickt auf langjährige Erfahrungen im Server-, Storage- und Netzwerk-Umfeld und im Bereich neuer Technologien zurück. Vor seiner Fachredakteurslaufbahn arbeitete er in Entwicklungslabors, in der Qualitätssicherung sowie als Laboringenieur in namhaften Unternehmen.
Die RAID-Technologie ist die erste Wahl, wenn es um Ausfallsicherheit und Leistungsfähigkeit von Storage-Systemen geht. Wer die maximale Performance aus einem Controller herausholen will, muss diesen richtig konfigurieren. Wir zeigen Ihnen, welche Fallstricke auf Sie warten.

Von Bernhard Haluschak,

tecChannel.de

Aus professionellen Rechnersystemen sind RAID-Controller nicht mehr wegzudenken. Müssen Daten schnell und zuverlässig gespeichert werden oder abrufbar sein, ist der Einsatz eines RAID-Controllers nicht nur sinnvoll, sondern Pflicht. Als Option bieten die Hersteller Controller mit Cache-Speicher an. Diese besitzen zusätzlichen Speicher auf der Steckkarte, um die Daten zwischen Festplatte und Controller zwischenzuspeichern.

Der Vorteil einer solchen Lösung besteht in einem hohen Performance-Gewinn, da die Daten je nach Anwendung nicht erst von der Festplatte gelesen werden müssen, sondern im schnellen Cache-Speicher zur Verfügung stehen. Um diesen "Buffer" optimal zu nutzen, bieten die RAID-Controller diverse Konfigurationsmöglichkeiten - so genannte Policies - wie "Write Back", "Write Through", "Adaptive Read" oder "Read Ahead". Wer hier die falschen "Settings" vornimmt, verzichtet ungewollt auf bis zu 50 Prozent seiner Storage-Performance.

Unser Praxis-Beitrag erläutert anhand eines RAID-Controllers von LSI und Adaptec, welche Optionen diese Geräte dem Anwender bieten und was sie bedeuten. Zusätzlich zeigen wir auf, welche Leistung die verschiedenen Einstellmöglichkeiten bringen.

RAID-Adapter-Menüs

Rechnersysteme, die mit einem RAID-Controller ausgestattet sind, zeigen während der Bootphase nur rudimentäre Informationen über den Adapter und das installierte RAID-Level an. Allerdings kann der Anwender per Eingabe einer Tastenkombination in das interne Konfigurationsmenü des Adapters gelangen. Neben den verschiedenen RAID-Level-Optionen und deren Initialisierung sind darüber hinaus unterschiedliche Schreib-, Lese- und Cache-Einstellungen möglich. Diese so genannten Policies sind von dem eingesetzten RAID-Controller abhängig und können sich von Produkt zu Produkt unterscheiden. Diese oft wenig beachteten Funktionen haben bei einer falschen Einstellung enorme Auswirkungen auf die Leistung des Storage-Systems.

So bietet der Ultra-320-SCSI-RAID-Controller PERC 4/DC von Dell, der mit einem LSI-Logic-Chip und optionalem 128-MB-Cache-Modul ausgestattet ist, umfangreiche Einstelloptionen unter dem Menüpunkt Logical Drive. Dazu zählen die Read- und Write-Policy sowie die Cache-Policy mit den jeweiligen entsprechenden Einstelloptionen.

Wir wählten diesen Adapter für unseren Test aus, da er mit einen Controller-Baustein von LSI Logic bestückt ist und alle relevanten Einstellungen für unseren Praxistest bietet. Darüber hinaus besitzt LSI Logic nach eigenen Angaben im OEM-Server-Bereich mit diesen Produkten einen Marktanteil von etwa 80 Prozent.

Auch der Mitbewerber Adaptec bietet RAID-Festplatten-Controller mit vergleichbaren Funktionen an. Der SATA-RAID-Adapter 2410SA mit Intel-I/O-Prozessor und 64 MB fest installiertem Cache-Speicher zum Beispiel besitzt neben einer Write-Cache- auch eine Read-Ahead-Funktion. Beide Optionen lassen sich aktivieren und deaktivieren und können je nach Anwendung die Storage-Leistung negativ oder positiv beeinflussen.

Damit Daten, die während einer Schreiboperation im Onboard-Cache zwischengespeichert werden, bei einem Stromausfall nicht verloren gehen, bieten die Hersteller für ihre RAID-Controller optionale, so genannte Battery Backup Units (BBU) an. Laut Herstellern wie IBM (ServeRAID-6i-Controller) oder Dell (PERC-4/DC-Controller) kann ein 64-MB-Speichermodul mit einer BBU etwa 72 Stunden und ein 128-MB-Modul bis zu zirka 48 Stunden mit Strom versorgt werden. Nach einem Stromausfall - sobald der Controller und die Festplatten wieder mit Energie versorgt werden - schreibt der Controller die gepufferten Daten im Cache ohne Datenverlust sofort auf die Festplatte.

Write Back und Write Through

Im Allgemeinen verfügen die meisten RAID-Controller über zwei unterschiedliche Strategien, um Daten vom Betriebssystem auf die Festplatten zu schreiben: Write Back und Write Through.

Beim Write Back schickt der RAID-Controller einen "Completion-Status" (Bestätigungsbefehl) an das Betriebssystem, sobald der Pufferspeicher des Controllers die Schreibdaten für die Festplatte vom System erhalten hat. Der Controller hält die Informationen so lange im Cache, bis der Controller einen geeigneten Zeitpunkt findet, die Daten an die Festplatte zu übertragen. Dies erfolgt zu einem Zeitpunkt, zu dem die Systemressourcen nicht voll beansprucht werden, so dass diese Strategie die Schreibleistung signifikant verbessert.

Allerdings hat das Write-Back-Verfahren auch Nachteile. Tritt eine Störung bei der Stromversorgung auf, sind unter Umständen wichtige Daten, die noch nicht vom Cache-Controller auf die Festplatte geschrieben wurden, unwiderruflich verloren. Deshalb ist es empfehlenswert, die meist optional erhältliche Batteriepufferung des Cache-Controllers mitzubestellen oder sich gleich für eine USV zu entscheiden.

Anders verhält sich die Write-Through-Strategie. Diese sendet einen "Completion-Status" erst dann an das Betriebssystem, wenn die Daten sicher auf die Festplatte geschrieben wurden. Deshalb kostet das Verfahren Übertragungs- beziehungsweise System-Performance, da die Informationen ohne Zwischenpufferung direkt, ohne Rücksicht auf aktuelle Systemressourcen, auf die Festplatte geschrieben werden. Darüber hinaus unterscheidet sich die Schreibleistung mit aktiviertem Write-Through-Cache kaum von der Performance eines Controllers ohne Cache-Unterstützung.

Read Ahead und Adaptive Read Ahead

Wie bei den Schreiboperationen bietet ein RAID-Controller auch für die Leseanweisungen verschiedene Caching-Strategien. Im Einzelnen sind dies Read Ahead (als Default-Einstellung), Adaptive Read und No Read Ahead.

Bei der Read-Ahead-Strategie fordert der RAID-Controller neben den tatsächlichen Daten auf der Festplatte auch die weiteren Informationen, die daneben liegen, an. Diese "vorweggenommenen" Daten werden in den Cache zwischengespeichert. Werden beim nächsten Request diese Daten verlangt, kann der Controller diese direkt aus dem Puffer lesen und an das Betriebssystem weiterleiten. Ein Zugriff auf die Festplatte ist dann nicht mehr erforderlich. Das spart Zeit und erhöht die Performance bei Datenanforderungen. Besonders bei zusammenhängenden Datenstrukturen, die sequenziell gelesen werden können, wie Video-Streams oder Audio-Files, kann dieses Verfahren seine besondere Stärke ausspielen. Auch die Defragmentierung einer Festplatte wirkt sich positiv auf die Performance des Storage-Systems aus, wenn die Read-Ahead-Funktion des Cache-RAID- Controllers aktiviert ist.

Die Adaptive-Read-Ahead-Option beinhaltet eine "intelligente" Read-Ahead-Strategie. Diese aktiviert Read-Ahead-Lesezugriffe erst dann, wenn zwei aufeinander folgende Read-Anweisungen Daten aus zwei hintereinander liegenden Sektoren der Festplatte auslesen. Erhält der RAID-Controller Daten aus zufälligen Sektoren der Festplatte, schaltet er in den No-Read-Ahead-Modus um. Der Controller wertet aber weiter alle Leseanweisungen aus, ob sie aus zwei hintereinander liegenden Sektoren kommen. Ist dies der Fall, kann er sofort wieder Read-Ahead-Zugriffe einleiten.

Im No-Read-Ahead-Modus liest der Storage-Controller nicht "vorausschauend" die Daten ein. Das heißt, es wird nur jeweils ein Sektor eingelesen, auch wenn der folgende Nachbarsektor die nächsten Lesedaten enthält. Welche Read-Strategie die bessere ist, hängt letztlich von der Anwendung ab und von deren Datenstruktur auf der Festplatte.

Cached I/O und Direct I/O

Die Cached- und Direct-I/O-Strategie bezieht sich jeweils auf ein logisches Laufwerk des RAID-Controllers. Darüber hinaus haben die beiden Cache-Optionen keine Auswirkungen auf die Read-Ahead-Einstellungen des RAID-Systems.

Die Cached-I/O-Einstellung der Cache-Policy spezifiziert, dass alle Lesezugriffe vom RAID-Controller zwischengespeichert werden. Das bedeutet, dass das Betriebssystem die Daten nicht direkt von der Festplatte erhält, sondern vom Cache des Controllers.

Dagegen erfolgen die Lesezugriffe im Direct-I/O-Modus nicht ausschließlich aus dem Cache-Speicher des Controllers. So werden während einer Leseanweisung die Daten simultan zum Controller-Cache und zum Betriebssystem übertragen. Falls ein nachfolgender Leseauftrag - ein so genannter Subsequent-Read - Daten aus dem gleichen Datenblock benötigt, können diese aus dem Controller-Cache direkt angefordert werden.

Benchmarks: Schreiben, Lesen und Kopieren

Die Einstelloptionen sind von Controller zu Controller unterschiedlich. Wir haben unser Augenmerk deshalb auf die wichtigsten und die am häufigsten verbreiteten Menüpunkte von RAID-Controllern wie Read Ahead, Adaptive Read, No Read Ahead, Write Trough, Write Back, Direct I/O und Cached I/O gerichtet. Mit dem Applikations-Benchmark tecMark testeten wir die unterschiedliche Performance der verschiedenen Optionen. Die Default-Einstellung des RAID-Controllers - grüner Balken im Diagramm - lautet: Read Ahead, Write Back und Direct I/O.

Um die Performance der RAID-Controller-Optionen in der Praxis zu untersuchen, führen wir mit unserem Applikations-Benchmark tecMark Schreib-, Lese- und Kopiertests unter realen Bedingungen durch. Der Lese- und Schreibtest von tecMark wird durch die Funktionen ReadFile() und WriteFile() realisiert. Der Benchmark erzeugt dabei Dateien und liest/schreibt eine konfigurierbare Menge von Daten in diese beziehungsweise aus diesen Dateien. Um das typische Verhalten von Applikationen zu berücksichtigen, die nur in den seltensten Fällen größere Datenblöcke lesen oder schreiben, erfolgt der Datentransfer in Blöcken der Größe 8 KByte. Der Kopiertest von tecMark nutzt die Betriebssystemfunktion CopyFile().

NetBench: Vorbetrachtung

Um die Performance der RAID-Controller im Server zu testen, integrieren wir das Testsystem in unser abgeschlossenes Labornetzwerk. Darin befinden sich 15 Windows-2000-Clients sowie ein Domänen-Controller mit Windows NT 4.0. Die Clients sind an einem Gbit-Switch angeschlossen: Fünf PCs mit einer Gbit-Netzwerkkarte, zehn PCs über eine Fast-Ethernet-Karte mit 100 Mbps. Der Server verwendet jeweils einen Gbit-Link zum Switch.

Für die Benchmarks verwenden wir NetBench 7.0.3 von Veritest. Das Programm ermittelt, mit welcher Performance Fileserver Dateianfragen von Clients erledigen. Es belastet überwiegend das Storage-Subsystem und arbeitet nahezu speicherunabhängig. Die Benchmark-Suite lässt in einer Netzwerkumgebung Clients mit steigender Anzahl auf den Server zugreifen. Zu Beginn arbeitet nur ein Client, am Schluss beanspruchen in unserem Netzwerklabor 15 Clients gleichzeitig das Testsystem. Dabei führt jeder Client insgesamt 18 Dateioperationen durch: Lesen, Schreiben, Löschen, Umbenennen, Erstellen, Suchen und Attribute setzen sind die wichtigsten.

Um die Netzwerklast zu erhöhen, erlaubt der Benchmark die Einstellung der "Think Time". Damit ist die Zeit gemeint, die zwischen zwei Dateianfragen verstreicht. Bei unseren Tests verwenden wir eine Think Time von null Sekunden. Die Clients belasten den Server somit ununterbrochen mit Dateioperationen.

NetBench: Durchsatz

Bei den Servern mit zwei Festplatten zählt die RAID-1-Konfiguration zur sinnvollsten und von den Herstellern empfohlenen Konfiguration. RAID 1 spiegelt die Daten auf ein zweites Laufwerk. Fällt beim RAID 1 eine Platte aus, sind die Daten auf den übrigen noch vollständig vorhanden. Der Datendurchsatz des Netzwerks und somit indirekt die Transferleistung unseres RAID-Controllers in einem Test-Server nach dem 15ten Client ist bei Default-Einstellungen mit 486 Mbit/s am höchsten und bricht bei Write Through auf rund ein Drittel ein.

Fazit

RAID-Controller in Servern und Workstations bilden ein zentrales Element für Performance und Datensicherheit bei Datentransfers zwischen Festplatte und Betriebssystem. Die optimale Leistung ist von den Einstelloptionen des eingesetzten RAID-Controllers abhängig. Wählt man hier die falsche Einstellung, sind nach unseren Tests schnell bis zu 66 Prozent an Transferleistung verloren.

Besonders die batteriegepufferte Write-Back-Option bringt einen hohen Leistungsgewinn, wie unsere Praxistests zeigen. Alle anderen Optionen wie Adaptive Read Ahead oder Cached I/0 erzielen nur geringfügig differierende Leistungswerte. Allerdings können diese je nach Anwendung der Hardware wie Datenbank-Server oder Streaming-System variieren und sollten vom User entsprechend optimiert werden.

In Verbindung mit einem RAID-Controller mit optionalem Cache offerieren die Hersteller ein Batterie-Pack zur Pufferung der Daten bei Stromausfall. Dieses Feature sollte der Anwender unbedingt mitbestellen, denn erst eine Batteriepufferung des RAID-Controller-Speichers ermöglicht die sichere Nutzung der Performance-steigernden Write-Back-Funktion und verhindert Datenverlust.

Wer allerdings das Maximum an Sicherheit haben will, sollte gleich auf eine entsprechende unterbrechungsfreie Stromversorgung (USV) setzen, die alle wich-tigen Komponenten auch bei einem Stromausfall mit Energie versorgt.

Dieser Beitrag stammt von tecChannel.de, dem Webzine für technikorientierte Computer- und Kommunikationsprofis. Unter www.tecChannel.de finden Sie weitere Beiträge zu diesem Thema.

Zur Startseite