Cache Einstellungen von RAID Controllern und Festplatten

Aus Thomas-Krenn-Wiki
Wechseln zu: Navigation, Suche

Dieser Artikel beschreibt die unterschiedlichen Einstellungsmöglichkeiten von Caches bei RAID Controllern und Festplatten. Dabei wird auch beschrieben, welche Einstellungen erforderlich sind, damit bei einem Stromausfall keine Daten verloren gehen (was die Gefahr einer Zerstörung des Dateisystems bergen könnte).

Involvierte Caches beim Datenzugriff

Beim Datenzugriff sind Caches auf unterschiedlichen Ebenen involviert. Diese werden hier kurz beschrieben.

Cache im Betriebssystem

Moderne Betriebssysteme nutzen einen sogenannten Page Cache. Wenn Daten geschrieben werden, kommen diese zuerst in diesen Cache. Der Inhalt dieses Caches wird regelmäßig (bzw. auch beim Aufruf von Systemcalls wie sync oder fsync) auf das darunterliegende Speichersystem weitergegeben. Dies kann ein RAID-Controller oder direkt eine Festplatte sein.

Unter Linux gibt das Kommando free -m in der Spalte cached an, wieviel MB des Arbeitsspeichers momentan für den Page Cache verwendet werden:

[root@testserver ~]# free -m
             total       used       free     shared    buffers     cached
Mem:         15976      15195        781          0        167       9153
-/+ buffers/cache:       5874      10102
Swap:         2000          0       1999
[root@testserver ~]# 

Weitere Informationen zum Thema liefert der Artikel Linux Page Cache Grundlagen.

Bei einem Stromausfall geht der Inhalt des Page Caches verloren.

Cache im RAID-Controller

Caches im RAID-Controller können die Performance beim Schreiben von Daten beträchtlich erhöhen. Typisch sind aktuell beispielsweise 256, 512 oder 1024 MB Cache. Bei einem Stromausfall geht der Inhalt dieses Caches verloren - außer man schützt den Inhalt durch eine BBU/BBM (Battery Backup Unit, Battery Backup Module). Die BBU/BBM hat einen Akku integriert, der den Inhalt des Caches meist bis zu 72 Stunden halten kann. Wird innerhalb der Akkulaufzeit der Server wieder hochgefahren, gehen keine Daten aus diesem Cache verloren.

Hinweis: Der Zustand des Akkus soll in regelmäßigen Abständen überprüft werden, da die Kapazität des Akkus mit der Zeit abnimmt. Wenn der Akku zu schwach wird (meist nach ca. 1-3 Jahren) soll dieser ersetzt werden (wie etwa auch ein Notebook-Akku). Wird der Zustand des Akkus nicht überprüft besteht nach mehreren Jahren die Gefahr, dass der Akku den Cache-Inhalt nur mehr für eine sehr kurze Dauer halten kann und somit Datenverlust droht falls der Stromausfall zu lange dauert. Detaillierte Informationen dazu liefert der Artikel Wartung der Battery Backup Unit (BBU/BBM) bei RAID-Controllern.

Hinweis: Bei RAID-Controllern, die zum Cache-Schutz keine BBU nutzen (sondern den Cache-Inhalt bei einem Stromausfall auf Flash-Speicher kopieren) ist keine spezielle Wartung des Cache-Schutzes notwendig. Diese Möglichkeit bieten die neuen Controller der Adaptec Series 5Z mit der sogenannten Zero Maintenance Cache Protection (ZMCP).

Cache in der Festplatte

Auch Festplatten haben einen Cache integriert. Aktuell sind hier 16-64 MB gängig. Der Inhalt dieses Caches kann nicht durch eine BBU/BBM geschützt werden. Neuere 3ware Controller schützen den Inhalt dieses Caches auf den Festplatten durch ein proprietäres write journal (Storsave Konfigurationsparameter). Im Normalfall geht aber sonst der Inhalt dieses Caches bei einem Stromausfall verloren.

Gefahren beim Verlust des Cache-Inhalts bei einem Stromausfall

Wenn der RAID-Controller bzw. die Festplatte dem Betriebssystem bestätigt, dass Daten geschrieben wurden - diese Daten aber tatsächlich nur im Cache abgelegt wurden - kann es im schlimmsten Fall zu einem kompletten Datenverlust bei einem plötzlichen Stromausfall kommen. Das kann z.B. dann auftreten, wenn es zahlreiche Updates für Dateisystem-Metadaten gibt, diese Updates aber nur teilweise geschrieben werden (und die restlichen Updates im Cache verloren gehen).

In einem solchen Fall hilft dann nur mehr ein aktuelles Backup. Cache Einstellungen für einen sicheren Betrieb (siehe unten) können diese Gefahren lindern, schränken aber natürlich die Performance teilweise etwas ein.

Einstellungen für sicheren Betrieb

Ziel bei einem sicheren Betrieb ist u.a. dass bei einem Stromausfall keine Daten aus dem RAID-Controller-Cache sowie dem Festplatten-Cache verloren gehen.

Für einen sicheren Betrieb können u.a. folgende Grundregeln herangezogen werden:

  1. Bei der Verwendung eines Caches im RAID-Controller diesen Cache-Inhalt durch eine BBU/BBM schützen. Der Zustand des Akkus soll regelmäßig überprüft werden. Meist müssen die Akkus alle 2-3 Jahre erneuert werden. Weiters ist zu beachten, dass eine BBU/BBM den Cache-Inhalt meist nur bis zu 72 Stunden sichern kann. Bei einem Stromausfall über mehrere Tage kann der Akku leer laufen, und somit der Cache-Inhalt verloren gehen. Bei Controllern mit Zero Maintenance Cache Protection (ZMCP) wird der Cache Inhalt automatisch dauerhaft gesichert.
  2. Der Cache auf den Festplatten kann im Normalfall nicht durch eine BBU/BBM gesichert werden. Daher diesen Cache deaktivieren.
    • Anmerkung: 3ware bietet bei neueren RAID-Controllern ein proprietäres write journal, das diese Cache-Inhalte schützt - bei der Konfiguration des Storsave Parameters auf Protection oder Balanced (im letzten Fall nur bei vorhandener BBU). Die genaue Funktionsweise ist nicht dokumentiert, da aber bei einem Stromausfall nach unseren Tests die Daten damit geschützt sind, müssen die Inhalte des Festplatten-Caches in irgendeiner Form ebenfalls im Cache des RAID Controllers (der durch die BBU geschützt wird) abgelegt sein.

Beispieltests

Mithilfe eines Perl Skripts haben wir unter Linux getestet, ob Daten bei einem Stromausfall verloren gehen können. Hintergrundinformationen zu diesem Skript gibt es hier: http://brad.livejournal.com/2116715.html

Die folgende Tabelle zeigt Tests mit unterschiedlichen RAID-Controllern und unterschiedlichen Einstellungen. Alle RAID-Controller wurden im Test mit BBU/BBM eingesetzt.

Test# Controller Firmware Cache Settings Ergebnis
1 Adaptec 5405 5.2-0 (15726) HDD Cache aktiviert max. Performance - Datenverlust mögl.
2 Adaptec 5405 5.2-0 (15726) HDD Cache deaktiviert (per arcconf CLI) Test fehlerfrei (kein Datenverl.)
3 Areca 1210 1.43 HDD Cache deaktiviert (Disk Write Cache Mode = Disabled) Test fehlerfrei (kein Datenverl.)
4 Areca 1210 1.43 HDD Cache aktiviert (Disk Write Cache Mode = Enabled) max. Performance - Datenverlust mögl.
5 onboard SATA - HDD Cache aktiviert max. Performance - Datenverlust mögl.
6 onboard SATA - HDD Cache deaktiviert (per hdparm -W0 /dev/sda) Test fehlerfrei (kein Datenverl.)
7 3ware 9550SX FE9X 3.02.00.016 HDD Cache vermutlich aktiviert (Storsave Perform) max. Performance - Datenverlust mögl.
8 3ware 9550SX FE9X 3.02.00.016 HDD Cache vermutlich aktiviert (Storsave Balanced) Test fehlerfrei (kein Datenverl.)
9 3ware 9550SX FE9X 3.02.00.016 HDD Cache vermutlich aktiviert (Storsave Protection) Test fehlerfrei (kein Datenverl.)

Hinweis: die obigen Ergebnisse spiegeln lediglich unsere Testergebnisse wider. Um für ein konkretes Server-System eine End-To-End Überprüfung durchzuführen, empfehlen wir dann auch den Test selbst durchzuführen.

Weitere Anmerkungen:

  • beim Adaptec 5405 wurde der Cache für die einzelnen HDDs wie folgt deaktiviert (Beispiel für erste HDD): arcconf SETCACHE 1 DEVICE 0 0 wt
  • beim onboard SATA Test haben wir den Cache der HDD wie folgt deakiviert: hdparm -W0 /dev/sda. Bei den meisten HDDs geht diese Einstellung nach einem Reboot verloren und muss nach dem Neustart wieder gesetzt werden. Dazu gibt es auch Informationen in der Microsoft KB.

Weitere Informationen


Foto Werner Fischer.jpg

Autor: Werner Fischer

Werner Fischer, tätig im Bereich Web Operations & Knowledge Transfer bei Thomas-Krenn, hat sein Studium zu Computer- und Mediensicherheit an der FH Hagenberg abgeschlossen. Er ist regelmäßig Autor in Fachzeitschriften und Speaker bei Konferenzen wie LinuxTag, LinuxCon Europe, OSMC u.v.m. Seine Freizeit gestaltet er sehr abwechslungsreich. In einem Moment absolviert er seinen Abschluss im Klavierspielen, im anderen läuft er beim Linzmarathon in der Staffel mit oder interessiert sich für OpenStreetMap.


Das könnte Sie auch interessieren

Erstellen eines Intel Onboard RAIDs
RAID-Controller Rebuild manuell starten
Wartung der Battery Backup Unit (BBU/BBM) bei RAID-Controllern