Grundlagen der RAID-Konfiguration

Home » Server-Hardware » RAID-Controller » Grundlagen der RAID-Konfiguration
28. Mai 2015 RAID-Controller, Server-Hardware Keine Kommentare

 

Wer nach der Konfiguration des gewünschten RAID-Levels lediglich die Standard-Caching-Einstellungen im RAID-Controller-Bios beibehällt, verschenkt je nach Anwendung wertvolle Performance. Im Anschluss zum Artikel über die üblichen RAID-Level wollen wir uns in diesem Artikel die Konfiguration des RAID-Controllers sowie des RAID anhand der der wichtigsten Best-Practice Regeln und ein paar Anwendungsfällen genauer ansehen. Die meisten von uns vorgestellten Konfigurationen lassen sich nachträglich bei einem laufenden Server-System mittels Intel RAID-Web-Console durchführen. Auch ein Neustart Ihrer Server ist nicht erforderlich.

Hinweis:  Welche der von uns vorgestellten Einstellungen sich tatsächlich an Ihrem RAID-Controller konfigurieren lassen, hängt stark von dessen Modell ab. Cache-Spezifische Einstellungen lassen sich beispielsweise nur an RAID-Controllern mit eigenem Cache konfigurieren und ein Software (Firmware) RAID wie beispielsweise Intel RSTe oder ESRT2 lässt sich nur sehr eingeschränkt konfigurieren.

 

Grundsätze

 

Möchte man das Speicher-Volumen seines Servers optimieren, so ist es erforderlich das Zugriffsmuster der darauf laufenden Anwendung zu kennen:   Die Aufteilung zwischen Lese- und Schreibzugriffen ist wichtig, da jeder Schreibzugriff zumindest einen zusätzlichen Lesezugriff erfordert und somit wesentlich aufwendiger ist als ein einfacher Lesezugriff. Zufällige und sequentielle Zugriffe stellen ganz unterschiedliche Anforderungen an das Volumen, allgemein gillt:  SSDs sind stark bei zufälligen Zugriffen und HDDs bei sequentiellen. Zuletzt ist es entscheidend die Dateistruktur (wie groß sind die Daten) und die Auslastung (wie viele Nutzer etc.) zu kennen.

 

Aufteilung der Zugriffe Verhälltnis der Zugriffe Art der I/O Zugriffe
% lesen % schreiben zufällig sequentiell Größe in KB Häufigkeit und Anzahl

 

Bei einem laufenden System kann Ihnen Ihr Administrator oder Systemhaus des Vertrauens diese Werte zur Verfügung stellen. Für den Fall, dass Sie einen neuen Server kaufen möchten und noch keine Anhaltspunkte haben, haben wir Ihnen an dieser Stelle eine grobe Übersicht der Zugriffsmuster häufig eingesetzer Server-Anwendungen zusammen gestellt. Diese können Sie mit Unterstützung Ihres Administrators oder Systemhaus-Partners auf Basis der zu erwartenden Auslastung an Ihre Bedürfnisse an Sicherheit und Ziel-Performance anpassen. Denken Sie dabei unbedingt daran, dass Ihr Unternehmen wächst und somit auch die Anforderungen an das Speicher-System erfahrungsgemäß mit der Zeit steigen.

 

 

Anwendung Art der Zugriffe Verhälltnis der Zugriffe Art der I/O Zugriffe
Exchange 2013
Daten-Volume
lesen & schreiben zufällig Größe:

Daten-Volume >= 256 KB (Best-Practice)
Protokoll-Volume 64 KB (Best-Practice)


Häfigkeit und Anzahl in Abhängig von:

- Anzahl der Benutzer
- Benutzer Typ (Mails/ Tag)
- Größe des Postfächer
Exchange 2013
Protokoll-Volume
schreiben sequentiell
SQL Server lesen & schreiben sequentiell In der Regel 64KB - 256KB
In Außnahmefällen größer
Veeam schreiben sequentiell 256KB

 

 

Konfiguration

 

Kennt man das Zugriffsmuster der eigenen Anwendung, kann man mit der Optimierung beginnen. Wir zeigen die Konfiguration anhand eines aktuellen Intel RS3DC080, sie können diese jedoch auch auf einen belibiegen anderen RAID-Controller übertragen. Bei dem System handelt es sich übrigens um ein Intel R2308WTTYS, die Screenshots des RAID-BIOS wurden mittels KVM (IPMI) erstellt.

 

RAID-Volumen

RAID anlegen

In unserem bebilderten Beispiel konfigurieren wir ein neues RAID1-Volumen direkt im RAID-Bios des RAID-Controllers. Es ist jedoch auch möglich mit der Intel RAID WEB Console 2 ein bereits bestehendes RAID nachträglich zu konfigurieren.

Zu beachten ist, dass sich das User-Interface je nach Typ des RAID-Controllers durchaus erheblich von dem hier abgebildeten unterscheiden kann. Auch das Feature-Level von unterschiedlichen RAID-Controller-Modellen kann sich erheblich unterscheiden. Sogenannte „Entry Level“ Modelle verfügen beispielsweise oft über keinen oder einen kleineren Cache und unterstützen nur eine begrenzte Anzahl an RAID-Modi.

 

 

 

 


 

Strip Size

Grundlagen

Ein RAID beschleunigt Festplatten-Zugriffe, indem es die Daten mittels striping, mirroring oder einer Kombination aus beidem auf mehrere Festplatten verteilt. Während beim mirroring die Daten lediglich gespiegelt werden, wird beim striping der Datenstrom in einzelne, gleich große Segmente (Stripes) aufgeteilt. Die so entstehenden Unter-Segmente nennt man Strip.

Konfiguration

Die Strip-Size lässt sich nur bei der Erstellung eines neuen RAIDs einrichten. Der RAID-Controller gibt bereits eine Größe abhängig von der Größe des Volumes vor, die jedoch je nach Nutzungs-Szenario angepasst werden sollte.

Strip(e) Size

Beispiel: Wählen wir eine Stripe-Size von 64KB für ein RAID 5, so schreibt der RAID-Controller abwechselnd 64KB an Datenenblöcken auf die einzelnen Platten.* Mit Ausnahme der Platte, auf die gerade die Paritätsdaten geschrieben werden.

Konfigurieren wir nun unser Dateisystem nach Wahl mit einer Clustergröße von 8KB, so schreibt der RAID-Controller abwechselnd 8 Cluster auf eine Festplatte, bevor er zur nächsten übergeht (8 Cluster mal 8 KB ergeben 64KB).

Von der Stripe Size hängt also ab, wie die Daten über die einzelnen Platten des RAID-Verbunds verteilt werden. Sie ist aber auch ausschlaggebend dafür, wie viele Festplatten für einen einzelnen Lese- oder Schreib-Zugriff angesprochen werden.

Optimierung:  Die Strip Size sollte auf die Eigenheiten der Anwendung angepast werden. Dabei ist zu beachten, ob die Anzahl der I/O Zugriffe oder die Datendurchsatz in MB/s entscheidend ist. Backup-Server oder Datei-Server profitieren in der Regel von einer kleinen Strip-Size während Datenbank-Server eher von einer großen Strip Size profitieren.

 

 


 

 

Read Ahead Policy

Read Ahead oder zu Deutsch im „vorraus lesen“ bestimmt, ob der Controller nur die Datenblöcke mit den von der Anwendung angeforderten Daten liest, oder aber das gesamte Stripe anfordert (siehe Stripe Size etwas weiter oben).

Je nach Generation und Typ des RAID-Controllers stehen hier folgende Einstellungen zur Verfügung:

Read Policy

No Read Ahead (Normal)

Im Werkszustand ist Read Ahead in der Regel deaktiviert. Diese Einstellung sollte gewählt werden, wenn die Lesezugriffe hauptsächlich zufällig über das RAID verteilt werden.

Always Read Ahead

Beim lesen wird jeweils der gesamten Stripe in den Cache des RAID-Controllers geschrieben. Anwendungen, die hauptsächlich sequentielle Lesevorgänge verursachen, profitieren sehr stark von dieser Einstellung. (Jedoch nur, wenn die typischerweise bei einem Read Reqeust eingelesenen Daten kleiner sind, als die konfigurierte Stripe Size).

 

Adaptive Read Ahead

Bei Adaptive Read Ahead wechselt der Controller abhängig der letzten Lesezugriffe automatisch zwischen Read Ahead und No Read Ahead.


 

 

Write Policy

Die Write Policy kann einen großen Einfluss auf die Schreibperformance aber auch die Datensicherheit haben.

Write Policy

Write Through

Bei Write Through werden Schreibzugriffe nicht durch den Cache des RAID-Controllers gepuffert. Die Bestätigung, dass die Daten geschrieben wurden erfolgt erst nach dem erfolgreichen Schreibvorgang auf das RAID-Volumen.

 

Write Back

Beim Write Back werden die Daten zuerst in den Cache des RAID-Controllers geschrieben, der diese so lange vorhällt, bis ein guten Zeitpunkt zum Schreiben auf das RAID-Volumen gekommen ist. Dies beschleunigt in der Regel Lese- wie auch Schreibzugriffe von HDD-RAIDs, da Lastspitzen abgefangen werden.

Die Bestätigung für den erfolgreichen Schreibvorgang erfolgt schon, wenn die Daten im Cache des RAID-Controllers sind. Wird jedoch der Cache des RAID-Controllers zum Beispiel aufgrund eines Stromausfalls nicht mehr mit Energie versorgt, ist ein Datenverlust fast unausweichlich. Aus diesem Grund empfehlen wird dringend eine BBU/ MFBU einzusetzen und die Einstellung Write Back with BBU zu wählen.


 

I/O Policy

IO Policy

Die I/O Policy beeinflusst die Cache Strategie bei lesenden Zugriffen auf das RAID-Volumen, ist in der Regel jedoch deaktiviert (Direct I/O), da viele Anwendungen über einen eigenen Lesecache die Daten im Hauptspeicher vorhalten, auf die sehr häufig zugegriffen wird.

Wer möchte kann jedoch mit der Option Cached I/O häufig eingelesene Datenblöcke direkt im Cache des RAID-Controllers halten.

 

 

 

 


 

Disk Cache Policy

EmulationFestplatten und SSDs verfügen über einen eigenen Cache, der sich jedoch nicht so wie der Write Cache des RAID-Controllers mit einer BBU/MFBU puffern lässt. Um einem Datenverlust bei Stromausfall vorzubeugen sollte der Disk Cache in jedem Fall deaktiviert werden.

Die einzige Ausnahme zu dieser Regel bilden hochwertige Server-SSDs, die ihren Cache selbst durch Superkonsistoren puffern.

 

 

 

 


 

Controller Einstellungen

 

Controller Properties

Rebuild Rate

Die Rebuild Rate gibt an, wie viel Leistung der RAID-Controller beispielsweise beim Wechsel einer ausgefallenen Server-Festplatte für den Rebuild reservieren soll. Eine Hohe Rebuild-Rate erhöt die Geschwindikeit eines Rebuilds beträchtlich, kann aber auch sehr schnell dafür sorgen, dass die laufende Server-Anwendung nur noch im sehr langsam reagiert.

 

BGI Rate

Nachdem ein neues redundantes RAID-Volumen erstellt wurde, wird es einmalig initialisiert. Dieser Prozess läuft in der Regel im Hintergrund ab. BGI steht für Background Initialization Rate und gibt an wieviel Leistung der RAID-Controller für dieses Prozess reservieren soll.

 

CC Rate

Ab Werk prüfen alle gängigen RAID-Controller regelmäßige die Konsistenz aller RAID-Volumen. Die Consistency Check Rate gibt an, wie viel Leistung der RAID-Controller für dieses Prozess reservieren soll. Der Zeitraum für diese Prüfung lässt sich in der Intel-RAID-Web-Console individuell festlegen, ab Werk ist bei aktuellen Intel-RAID-Controller Samstag Nacht eingestellt.

Da auch der Patrol Read Test ab Werk um diese Zeit durchgeführt wird, empfehlen wir den Test-Zeitraum mittels der Intel RAID Web Console zum Beispiel auf den Sonntag zu verschieben.

 

Recon. Rate

Die Reconstruction Rate gibt an, wie viel Leistung des RAID-Controllers in Prozent für eine reconstruktion (Rekonstruktion) eines RAIDs aufgebracht werden soll. Eine Rekonstruktion ist erforderlich, wenn man beispielsweise das RAID Volumen durch das hinzufügen oder entfernen von einzelnen Festplatten vergrößern oder verkleinern möchte.

 

Patrol Rate

Der Patrol Read Test überprüft das RAID regelmäßig auf physische Festplatten-Fehler und wird ebenso wie die Konsistenz-Prüfung ab Werk wöchentlich Samstags Nacht durchgeführt.

 

 

Cache flush Interval

Der Cache flush Interval gibt an, wie oft die regelmäßige Bereinigung des RAID-Controller-Caches durchgeführt werden soll. Es handelt sich dabei um einen Wert zwischen 0 und 100 Sekunden.

 

Spinup delay

Der spinup delay bestimmt den Intervall zwischen dem Start der an das System angeschlossenen Festplatten. Dies ist gerade bei Datei-Servern mit vielen Festplatten wichtig, da ein gleichzeitiger Start das Server-Netzteil überlasten könnte.

Eine übliche Festplatte (nicht-SSD) benötigt für das „anfahren/ starten“ wesentlich mehr Energie als für den Betrieb, da der Motor die Spindel mit dem Plattenstabel erst auf die vom Modell abhängige Umdrehungszahl (7.200 – 15.000 Umdrehungen pro Minute) bringen muss.

 

Spinup drive

 

Diese Funktion ist im aktuellen Intel-handbuch nicht korrekt dokumentiert und sollte daher nicht verändert werden. Wir gehen derzeit davon aus, dass es sich um die Spinup drive count handelt. Sobald Intel auf unsere diesbezügliche Partner-Anfrage antwortet, werden wir dieses Eintrag vervollständigen.

 

 

 

FBU/ MFBU

 

learn mode

Der Vollständigkeit halber soll auch die Konfigurations-Seite für die (Maintenace Free) Battery-Backup-Unit gezeigt werden. Wer sich dafür entschieden hat den Write Cache des RAID-Controllers zu nutzen und eine BBU oder MFBU installiert hat, kann über das RAID-Controller-BIOS deren Zustand kontrollieren.

Zu tun gibt es hier jedoch wenig, den Learn Mode der modernen MFBUs belässt man am besten auf Automatic.

 

 

 

 

 


Die im Artikel vorgeschlagenen Optimierungen können natürlich nur ihre volle Wirkung entfalten, wenn sich an anderer Stelle kein Flaschenhals befindet. So macht es einen wesentlichen Unterschied ob das Speichersystem aus Desktop- oder Server-Festplatten besteht oder aber SSDs eingesetzt wurden.

 

 

Weitere Informationen / Quellen

Intel® RAID-Controller Best-Practices-Whitepaper

Intel® RAID Software User Guide

12Gb/s Intel® RAID Controllers User Guide

Intel Server RAID Q1 2009 Bootcamp TrainingLab Demo Video

Intel Configuring RAID for Optimal Performance

Intel® Integrated RAID Module RMS25PB080, RMS25PB040, RMS25CB080 and RMS25CB040 Hardware User’s Guide

Exchange 2013-Speicherkonfigurationsoptionen

Disk Partition Alignment Best Practices for SQL Server

Tips for Designing a Well Performing Exchange Disk Subsystem