1. Menü

Inhalt

Dieser Beitrag gibt einen Überblick über die verschiedenen Caching-Methoden, die ein HPE Proliant Gen 10 mit Smart Array Controller anbietet. Es gibt hier viele begriffliche Verwirrungen und Unklarheiten in der Konfiguration. Die Cache-Konfiguration hat große Auswirkungen auf das Performanceverhalten des Plattensystems. Um dies zu zeigen wurde einige Messungen mit Hilfe von CrystalDiskMark durchgeführt. Es geht hier aber NICHT darum, irgendwelche beeindruckenden Messwerte zu demonstrieren, sondern ausschließlich darum , die Auswirkungen der Cache-Konfiguration zu demonstrieren.

Test-Equipement

Hardware und Betriebssystem

Plattensystem

LaufwerkRaidOS-Formatierung
C: (Boot)Array A:
– 3x 480 GB SATA-SSD (P18422-B21)
Log-Laufwerk 1:
– RAID 1 ADM
– Strip-Size: 256KiB
NTFS – Blocksize 4K
D: (Daten1)Array B:
– 3x 800 GB SAS-SSD (P19913-B21)
Log. Laufwerk 2:
– RAID 1 ADM
– Strip-Size: 256KiB
NTFS – Blocksize 4K
E: (Daten2)Array C:
– 4x 2,4TB HDD (881457-B21)
Log. Laufwerk 3:
– RAID 5
– Strip-Size: 256KiB
NTFS – Blocksize 4K

Messwerkzeug

Einführung – Vier verschiedene Caching Methoden / Konfigurationsoptionen

Der Controller bietet vier verschiedenen Methoden an. Diese Methoden werden in der Regel auf Ebene des logischen Laufwerks konfiguriert.

  1. HP SmartCache
  2. SSD Smart Path
  3. Drive Write Cache
  4. Controller-Cache (das sind die im Controller integrierten 4 GB RAM)

HP SmartCache

HP SmartCache ermöglicht die Beschleunigung des Zugriffs auf magnetische Festplatten-Arrays durch Caching über ein SSD-Array. D.h. Die Daten werden zunächst auf ein schnelles SSD-Array geschrieben und dann später im Hintergrund auf ein langsameres Laufwerk geschrieben. Dieses Verfahren ist NICHT Gegenstand dieses Beitrags.

Info Lizenz notwendig

Falls Sie dieses Feature verwenden möchten, benötigen Sie dafür eine SmartCache Lizenz. Diese ist beim p816i Controller bereits integriert. Bei den kleineren Controllern muss man die Lizenz aber separat erwerben.

SmartCache Lizenz – Anzeige im Smart Storage Manager

SSD Smart Path

Ein Verständnis dieses HP-Features ist für die Praxis wichtig. Viele Autoren im Internet raten zur Abschaltung dieses Features. Zunächst macht es aber Sinn, die Funktion zu verstehen.

Funktionsweise von SSD Smart Path

Früher gab es häufig die Diskussion „Hardware-RAID“ versus „Software-RAID“. Diese Bezeichnungen waren schon immer unsinnig. Es geht dabei um die Frage, welcher Prozessor die Rechenarbeit (Parity-Bildung etc.) eines RAID-Systems leistet und in welchem Speicher ggf. Daten gepuffert werden.

Profis nutzen „natürlich“ schon immer Hardware RAID-Controller, weil dann die Rechenarbeit auf den Prozessor der RAID-Karte ausgelagert wird, und damit nicht die Haupt-CPU des Servers belastet. Dasselbe gilt für Cache-Speicher. Die RAID-Karte hat ihren eigenen Speicher und benötigt den Arbeitsspeicher des Systems nicht. Man geht daher davon aus, dass diese Konstruktion in jedem Falle „professioneller“, betriebssicherer und vor allem schneller ist. Vergessen wir bei diesem Vergleich aber nicht die Software. Beim Hardware-RAID-Controller steckt diese im ROM-BIOS des Controllers. Beim Software-RAID wird dies vom Betriebssystem bzw. einem passenden Treiber erledigt.

➔ Aber nun zurück zu HP Smart Path.

SSDs require special tactics to capture the full advantage of their low-latency capabilities. HPE SSD
Smart Path enables the high performance of SSD-based logical volumes by allowing certain types of I/O
requests to take a more direct path to the physical disks, bypassing most of the firmware layers of the
RAID controller. SSD Smart Path is enabled by default when you create an array.

Zitat aus HP Smart Array Users Guide S. 35

Was heißt das nun konkret?

  1. Smart Path ist für jedes SSD-Array standardmäßig eingeschaltet.
  2. Smart Path nutzt einen „direkteren Weg“ zu den SSDs, es nutzt nicht die Firmware des RAID-Controllers und auch NICHT den Cache Speicher des Controllers! (Wie war das nochmal mit Hardware- und Software-RAID? :-))

Im Klartext:
Der Storage-Treiber wurde so geändert, dass wesentliche Teile (insbesondere der Controller Cache) NICHT mehr verwendet wird.

Der folgende Beitrag und das Video beschreiben die Funktionen im Detail:

HP SSD Smart Path not always a smart choice

Video von HP zu Smart Path

Bildauszug aus dem verlinkten HP-Video

Hier sieht man also genau, dass der RAID-Cache und auch die RAID-Engine umgangen wird. Die Arbeit muss also vom Treiber (sprich vom Betriebssystem) erledigt werden.

➔ Smart Path wird per Default bei SSD-Arrays aktiviert.

➔ Somit ist das Caching des Raid-Controller per Default deaktiviert!

Nun stellt sich die Frage, ob ein Raid-Laufwerk mit oder ohne Smart Path die höhere Performance aufweist. Auf diese Frage gibt es vermutlich keine eindeutige Antwort. Im oben verlinkten Beitrag wird es so dargestellt, dass Smart Path vermutlich bei RAID-Systemen mit vielen (schnellen) SSDs evtl. Vorteile bringt. Bei kleineren RAID-Systemen kann aber ein Abschalten von Smart Path die Performance verbessern.

Abschalten von Smart Path

Die Aktivierung oder Deaktivierung erfolgt im Storage Administrator auf Ebene des Arrays.

➔ Array markieren ➔ Smart Path deaktivieren

➔ Sobald Smart Path deaktiviert wurde, stehen die logischen Laufwerke dieses Array im Cache Manager zur Verfügung.

Drive Write Cache (Laufwerkscache)

Unabhängig vom Cache-Controller hat jedes Laufwerk einen eigenen, direkt im Laufwerk verbauten Cache-Speicher. Dieser wird in der Regel nur als Lesecache betrieben. Es ist aber auch möglich, diesen zum Puffern von Schreibzugriffen zu verwenden. Das Problem bei dieser Technik ist der Stromausfall. Bei Stromausfall gehen die Daten im Cache einfach verloren. Dies kann dann zu schwerwiegenden Problemen und inkonsistenten Daten führen!

Die Steuerung des Laufwerkscache wird auf Controllerebene verwaltet.

Info

In der Serverpraxis wird der Laufwerkspuffer aus Sicherheitsgründen nicht für Write-Caching verwendet. Das Thema wird daher in diesem Beitrag auch nicht weiter verfolgt.

Controller Caching

Der im Controller integrierte Cachespeicher wird über den Cache-Manager gesteuert.

➔ Cache Manager ➔ Einstellungen ändern

Info

Hier werden nur die logischen Laufwerke angeboten, bei deren Array Smart Path deaktiviert wurde!

Hier kann nun selektiv das Caching für jedes logische Laufwerk aktiviert / deaktiviert werden.

Außerdem kann bestimmt werden, wieviel Speicher für den Schreib- / Lesecache verwendet wird (Cache-Ratio).

Meist sind Lesezugriffe ohnehin sehr schnell, weil diese immer über den Lauwerkscache laufen. Die HP-Default-Cache-Einstellung ist daher 90/10 – das heißt 90% des Speichers wird zur Pufferung von Schreibzugriffen verwendet.

Schwellenwert für Schreib-Cache
Wenn die zu schreibende Datenmenge größer ist als der eingestellte Wert, dann werden die Daten direkt auf die Platten geschrieben. Laut Dokumentation greift dies allerdings nur für „Non Parity RAID-Volumes“. Für Raid 5 / 6 werden die Daten also immer durch den Cache gepuffert. So hat die Raid-Engine mehr Zeit, um die Paritys zu berechnen.

Messungen

„Wer misst, misst Mist“. Das gilt besonders für Performance-Messungen an Plattensystemen. Messergebnisse sind oft mehr von den Messbedingungen als vom Prüfling abhängig. Verlässliche, nachprüfbare Messungen sind eine schwierige Aufgabe. In diesem Beitrag geht es nicht darum, mit irgendwelchen genialen Messwerten zu glänzen. Es geht nur darum, vergleichende Messungen mit und ohne Cache durchzuführen, um ZUMINDEST FÜR DAS VORLIEGENDE SYSTEM (und Messbedingungen) eine Aussage über die Wirkung des Cache zu machen.

Es geht also primär darum, das System so zu konfigurieren, dass die finanzielle Investition einen maximalen Nutzen hat und nicht durch Fehlkonfiguration unter den möglichen Werten bleibt. Wie bereits erwähnt wurden alle Messungen einfach mit Standardwerten CrystalDiskMark durchgeführt. In der Praxis macht es ggf. Sinn, die Messreihen auf das zu erwartende Verhalten der Zielapplikation abzustimmen.

Da die gemessenen Testdaten bei Aktivierung des Cache extrem dicht beieinander liegen, wurde vermutet, dass der Cache gar nicht geleert wird. Wir haben daher Experimente mit Reboot der Maschine und auch mit bewusstem Kopieren großer Datenmengen (unabhängig vom Messwerkzeug) gemacht.
➔ Die Messwerte blieben immer reproduzierbar.

Abkürzungen von CrystalDiskMark

Leerlaufmessung ohne Controller Caching

Zunächst wurde die drei Laufwerke ganz ohne Caching gemessen. Dies gibt einen Eindruck über die Leistungsfähigkeit der Laufwerke beim gewählten RAID-Level. Aus Sicht des RAID-Controller stellt dies eine Fehlkonfiguration dar, die er mit einer Warnung quittiert.

C: SATA-SSD – RAID 1 ADMD: SAS-SSD – RAID 1 ADME: SAS-HDD- RAID 5 (4 x HDD)
Ohne Controller Caching – ohne Smart Cache

Kommentar

Diese Messungen ohne Controller zeigen deutlich die quantitativen Unterschiede der verschiedenen Plattensysteme. Auch wenn das Controller Caching die Werte (scheinbar) egalisiert, sind diese „wirklichen“ Werte für den Dauerbetrieb bei hochbelasteten Systemen wichtig!

Messung mit verschiedenen Cache-Ratios

Messungen mit Schreibcache (90% Write) bei allen Arrays

➔ 90% Write Cache ist die Default-Einstellung von HP. Daher wurde auch diese Einstellung vermessen.

C: SATA-SSD – RAID 1 ADMD: SAS-SSD – RAID 1 ADME: SAS-HDD- RAID 5 (4 x HDD)
Controller Caching 90%Write / 10% Read – 4 GB Cache

Kommentar

Messungen mit Schreibcache (100% Write) bei allen Arrays

Microsoft empfiehlt, zum Beispiel bei Exchange Server mit 100% Write-Cache zu arbeiten. Daher wurde auch diese Konfiguration vermessen.

C: SATA-SSD – RAID 1 ADMD: SAS-SSD – RAID 1 ADME: SAS-HDD- RAID 5 (4 x HDD)
Controller Caching 100%Write / 0% Read – 4 GB Cache

Kommentar

FAZIT: Die HP-Defaultwerte 90/10 können einfach beibehalten werden.

Messungen mit ausgewogenem Cache
(50% Read / 50% Write) bei allen Arrays

C: SATA-SSD – RAID 1 ADMD: SAS-SSD – RAID 1 ADME: SAS-HDD- RAID 5 (4 x HDD)
Controller Caching 50%Write / 50% Read – 4 GB Cache

Auch diese Einstellung bringt keine Änderung der Messwerte. Der Controller-Cache ist in jedem gemessenen Falle groß genug, um alle Daten puffern zu können.

Summary Cache-Ration

➔ Relevante Aussagen über die Cache-Ratio lassen sich also aus diesen Messungen NICHT ableiten.
➔ Es ergibt Sinn die HP-Defaults für die Cache Ration 90/10 zu übernehmen.
➔ Das Controller Caching führt zu insgesamt sehr guten und sehr ausgewogenen Messwerten!

Messungen mit aktiviertem SSD Smart Path und 90/10 Controller Cache (für HDD-Array)

HP betreibt die Smart-Array-Controller standardmäßig mit folgenden Einstellungen:

C: SATA-SSD – RAID 1 ADMD: SAS-SSD – RAID 1 ADME: SAS-HDD- RAID 5 (4 x HDD)
Messung mit SSD-Smart Path – nur noch Laufwerk E: mit Controller Caching (90W/10R)

Kommentar

Vergleichen Sie diese Messungen mit Messungen ohne Smart Path und ohne Controller Cache!

FAZIT (für die hier gemessene Situation!)

➔ Abschalten des Controller-Caching ist nicht sinnvoll! Auch die SSDs profitieren deutlich vom Controller-Cache.
➔ SSD Smart Path sollte deaktiviert, Controller Caching sollte für alle Laufwerke mit 90/10 aktiviert werden.

Testdurchlauf mit wesentlich höheren Datenmengen

Die bisherigen Testdurchläufe (mit Controller-Cache) zeigen fast unabhängig von der Cache-Ration und unabhängig von Hardware und RAID-Level fast identische Messergebnisse. Nun soll abschließend noch die zu schreibende Datenmenge so stark erhöht werden, dass sicher nicht mehr alle Daten vom Cachespeicher aufgenommen werden können.

C: SATA-SSD – RAID 1 ADMD: SAS-SSD – RAID 1 ADME: SAS-HDD- RAID 5 (4 x HDD)
Messungen ohne Smart Path und mit aktiviertem Controller Cache (90W/10R) – Datenmenge 8 GiB

Kommentar

Man sieht nun deutlich, dass bei dauerhaft großen Datenmengen am Ende des Tages doch die Leistung der Speicherlaufwerke wichtig ist.

➔ Die „Traumzahlen“ sind nun weg!
➔ Trotzdem beschleunigt der Controller-Cache alle Laufwerke deutlich (gegenüber Betrieb ohne Cache).
➔ Die höchste Gesamtleistung hat das SAS-SSD-Array, aber auch die beiden anderen Laufwerke weisen sehr gute Werte auf.

Fazit: Empfehlungen für die Praxis

Zumindest bei kleineren RAID-Systemen mit wenigen SSDs sieht es so aus, dass sich die HP Smart Path Technik negativ auswirkt und zugunsten des klassischen Controller Cache deaktiviert werden soll.

➔ Diese Aussage gilt aber nur für dieses konkrete System und die hier gemessene Lastsituation.

Kein Messwerkzeug kann die tatsächliche Praxis, den konkreten Betrieb eines bestimmten Servers mit einer definierten Anwendung und mit dem tatsächlichen Lastverhalten der Benutzer nachbilden, weil diese Parameter nicht bekannt und natürlich auch nicht konstant sind! Insofern haben alle Labormessungen immer nur begrenzten Aussagewert. Allerdings können Labormessungen sehr wohl Tendenzen aufzeigen und Fehlkonfigurationen vermeiden helfen.

In der Praxis ist nicht die „faktische Leistung“ eines Speichersystems wichtig, sondern vielmehr die Frage, ob das Speichersystem auch in Spitzenzeiten die tatsächlichen Anfragen der Benutzer mit akzeptabler Latenz beantworten kann. Dies kann der Windows-Server-Administrator am besten an der Disk-Queue-Length des Laufwerks sehen.

➔ Die Disk-Queue-Length kann man direkt im Taskmanager live beobachten.

Disk-Queue-Lenght