Table of contents
TOC
Inhaltsverzeichnis reduzieren
Inhaltsverzeichnis erweitern

Grundlegendes zum Cache in direkten Speicherplätzen

Cosmos Darwin|Zuletzt aktualisiert: 10.03.2017
|
1 Mitwirkender

Gilt für: Windows Server 2016

Direkte Speicherplätze verfügt über einen integrierten serverseitigen Cache zum Steigern der Speicherleistung. Es handelt sich um einen großen, persistenten Echtzeit-Cache für Lese- und Schreibvorgänge. Der Cache wird automatisch konfiguriert, wenn „Direkte Speicherplätze“ aktiviert wird. In den meisten Fällen sind keine manuellen Verwaltungsschritte erforderlich. Die Funktionsweise des Caches richtet sich nach den vorhandenen Laufwerktypen.

Laufwerktypen und Bereitstellungsoptionen

Direkte Speicherplätze funktionieren derzeit mit drei Arten von Speichergeräten:

NVMe (Non-Volatile Memory Express) – nicht flüchtiger Express-Speicher
SATA/SAS SSD (Solid-State Drive) – Festkörperlaufwerk
HDD (Hard Disk Drive) – Festplattenlaufwerk

Diese Komponenten können auf sechs verschiedene Arten kombiniert werden, die wir in zwei Kategorien unterteilen: „reine Flash-Bereitstellung“ und „Hybridbereitstellung“.

Möglichkeiten bei der reinen Flash-Bereitstellung

Das Ziel bei reinen Flash-Bereitstellungen besteht darin, die Speicherleistung zu steigern und keine Festplatten (HDDs) mit rotierenden Speichermedien zu verwenden.

All-Flash-Deployment-Possibilities

Möglichkeiten der Hybridbereitstellung

Bei Hybridbereitstellungen besteht das Ziel darin, eine gute Balance zwischen Leistung und Kapazität zu erzielen oder die Kapazität zu erhöhen und Festplatten (HDDs) mit rotierenden Speichermedien einzubinden.

Hybrid-Deployment-Possibilities

Automatische Auswahl von Cachelaufwerken

Bei Bereitstellungen mit mehreren Arten von Laufwerken werden für „Direkte Speicherplätze“ automatisch alle schnellsten Laufwerke für die Zwischenspeicherung verwendet. Die restlichen Laufwerke werden für Kapazitätszwecke genutzt.

Welche Art von Laufwerk am „schnellsten“ ist, wird anhand der folgenden Hierarchie ermittelt.

Drive-Type-Hierarchy

Wenn Sie beispielsweise über NVMe und SSDs verfügen, fungiert NVMe als Cache für die SSDs.

Wenn Sie SSDs und HDDs verwenden, dienen die SSDs als Cache für die HDDs.

Hinweis

Cachelaufwerke leisten keinen Beitrag zur nutzbaren Speicherkapazität. Alle im Cache gespeicherten Daten werden auch an einem anderen Ort gespeichert (spätestens nach Aufhebung der Bereitstellung). Dies bedeutet, dass die gesamte reine Speicherkapazität Ihrer Bereitstellung nur die Summe Ihrer Kapazitätslaufwerke ist.

Wenn alle Laufwerke den gleichen Typ haben, wird nicht automatisch ein Cache konfiguriert. Sie können manuell konfigurieren, dass Laufwerke mit höherer Belastbarkeit als Cache für Laufwerke desselben Typs dienen, die für geringere Belastungen ausgelegt sind. Informationen hierzu finden Sie im Abschnitt Manuelle Konfiguration.

Tipp

Bei reinen NVMe- oder SSD-Bereitstellungen (vor allem in kleinerem Umfang) kann die Speichereffizienz deutlich verbessert werden, wenn keine Laufwerke für den Cache reserviert werden.

Automatisches Festlegen des Cacheverhaltens

Das Verhalten des Caches wird automatisch anhand der Typen von Laufwerken bestimmt, für die die Zwischenspeicherung durchgeführt wird. Bei der Zwischenspeicherung für Festkörperlaufwerke (z. B. NVMe als Cache für SSDs) werden nur Schreibvorgänge zwischengespeichert. Beim Zwischenspeichern für Festplattenlaufwerke (z. B. SSDs als Cache für HDDs) werden sowohl Lese- als auch Schreibvorgänge zwischengespeichert.

Cache-Read-Write-Behavior

Ausschließliche Zwischenspeicherung von Schreibvorgängen für reine Flash-Bereitstellungen

Beim Zwischenspeichern für Festkörperlaufwerke (NVMe oder SSDs) werden nur Schreibvorgänge zwischengespeichert. Hierdurch wird die Belastung von Kapazitätslaufwerken reduziert, weil viele Schreibvorgänge und erneute Schreibvorgänge im Cache zusammengefügt werden können und die Aufhebung der Bereitstellung nur bei Bedarf durchgeführt wird. So wird der Gesamtdatenverkehr für die Kapazitätslaufwerke verringert und deren Lebensdauer erhöht. Aus diesem Grund empfehlen wir die Verwendung von Laufwerken, die für höhere Belastung ausgelegt und für Schreibvorgänge optimiert sind, als Cache. Als Kapazitätslaufwerke können Laufwerke genutzt werden, die für geringere Belastungen ausgelegt sind.

Da Lesevorgänge keine signifikante Auswirkung auf die Flash-Lebensdauer haben und Festkörperlaufwerke eine niedrige Leselatenz haben, werden Lesevorgänge nicht zwischengespeichert. Diese Daten werden direkt von den Kapazitätslaufwerken bereitgestellt (es sei denn, die Daten wurden erst vor so kurzer Zeit geschrieben, dass die Bereitstellung noch nicht aufgehoben wurde). So kann der Cache vollständig für Schreibvorgänge genutzt werden, um seine Effektivität zu erhöhen.

Dies führt dazu, dass Merkmale von Schreibvorgängen, z. B. die Schreiblatenz, von den Cachelaufwerken diktiert werden, während die Merkmale von Lesevorgängen von den Kapazitätslaufwerken vorgegeben werden. Beide sind konsistent, vorhersehbar und einheitlich.

Zwischenspeichern von Lese-/Schreibvorgängen für Hybridbereitstellungen

Beim Zwischenspeichern für Festplattenlaufwerke (HDDs) werden sowohl Lese- als auch Schreibvorgänge zwischengespeichert, um für beide Vorgänge eine Latenz wie bei Flash zu erzielen (häufig um den Faktor 10 schneller). Im Lesecache werden kürzlich und häufig gelesene Daten zwischengespeichert, um den schnellen Zugriff zu ermöglichen und zufälligen Datenverkehr für die HDDs zu verringern. (Da es aufgrund von Suchvorgängen und Rotationsbewegungen zu Verzögerungen kommt, ist die Latenz und verlorene Zeit durch zufällige Zugriffe auf eine HDD nicht zu vernachlässigen.) Schreibvorgänge werden zwischengespeichert, um Datenverkehrsspitzen aufzufangen und, wie zuvor, das Schreiben und erneute Schreiben zusammenzufügen und so den Gesamtdatenverkehr für die Kapazitätslaufwerke zu verringern.

Für „Direkte Speicherplätze“ wird ein Algorithmus implementiert, mit dem die Zufälligkeit von Schreibvorgängen beseitigt wird, bevor deren Bereitstellung aufgehoben wird. So soll ein E/A-Muster für das Laufwerk emuliert werden, das auch dann noch sequenziell erscheint, wenn die tatsächliche Eingabe/Ausgabe von der Workload (z. B. virtuelle Computer) zufälliger Art ist. Auf diese Weise werden der IOPS-Wert und der Durchsatz für die HDDs maximiert.

Zwischenspeicherung bei Bereitstellungen mit Laufwerken aller drei Typen

Wenn alle drei Laufwerkstypen vorhanden sind, übernehmen die NVMe-Laufwerke die Zwischenspeicherung für die SSDs und die HDDs. Das Verhalten ist wie oben beschrieben: Für die SSDs werden nur Schreibvorgänge zwischengespeichert, und für die HDDs werden sowohl Lese- als auch Schreibvorgänge zwischengespeichert. Die Last der Zwischenspeicherung für die HDDs wird gleichmäßig auf die Cachelaufwerke verteilt.

Zusammenfassung

In der folgenden Tabelle ist angegeben, welche Laufwerke zum Zwischenspeichern verwendet werden, welche als Kapazitätslaufwerke eingesetzt werden und welches Cacheverhalten für jede Bereitstellungsmöglichkeit gilt.

BereitstellungCachelaufwerkeKapazitätslaufwerkeCacheverhalten (Standard)
Nur NVMeKeine (Optional: manuelle Konfiguration)NVMeNur Schreibvorgänge (falls konfiguriert)
Nur SSDsKeine (Optional: manuelle Konfiguration)SSDNur Schreibvorgänge (falls konfiguriert)
NVMe und SSDNVMeSSDNur Schreibvorgänge
NVMe und HDDNVMeHDDLese- und Schreibvorgänge
SSD und HDDSSDHDDLese- und Schreibvorgänge
NVMe und SSD und HDDNVMeSSD und HDDLese- und Schreibvorgänge für HDD, nur Schreibvorgänge für SSD

Serverseitige Architektur

Der Cache wird auf Laufwerksebene implementiert: Einzelne Cachelaufwerke innerhalb eines Servers sind an mindestens ein Kapazitätslaufwerk auf demselben Server gebunden.

Da sich der Cache unterhalb der restlichen Elemente des per Software definierten Speicherstapels von Windows befindet, verfügt er über keinerlei Informationen zu vorhandenen Konzepten wie Speicherplätzen oder Fehlertoleranz (und dies ist auch nicht erforderlich). Sie können sich dies wie die Erstellung von „Hybridlaufwerken“ (teils Flash, teils Festplatte) vorstellen, die dann für Windows zur Verfügung gestellt werden. Wie bei einem richtigen Hybridlaufwerk auch, ist die Echtzeitverschiebung von heißen und kalten Daten zwischen den schnelleren und langsameren Teilen der physischen Medien von außen nahezu unsichtbar.

Wenn sichergestellt ist, dass die Resilienz in Direkte Speicherplätze mindestens auf Serverebene angeordnet ist (Datenkopien also immer auf unterschiedliche Server geschrieben werden und maximal eine Kopie pro Server vorliegt), profitieren die Daten im Cache von der gleichen Resilienz wie für Daten außerhalb des Cache.

Cache-Server-Side-Architecture

Bei Verwendung der Drei-Wege-Spiegelung werden beispielsweise drei Kopien aller Daten auf unterschiedliche Server geschrieben, wo sie im Cache abgelegt werden. Unabhängig davon, ob dafür später die Aufhebung der Bereitstellung durchgeführt wird, sind immer drei Kopien vorhanden.

Laufwerksbindungen sind dynamisch

Für die Bindung zwischen Cache- und Kapazitätslaufwerken kann ein beliebiges Verhältnis gelten, also von 1:1 bis zu 1:12 und mehr. Es wird jeweils dynamisch angepasst, wenn Laufwerke hinzugefügt oder entfernt werden, z. B. beim zentralen Hochskalieren oder nach Ausfällen. Dies bedeutet, dass Sie Cache- oder Kapazitätslaufwerke jederzeit unabhängig voneinander hinzufügen können.

Dynamic-Binding

Wir empfehlen, dass die Anzahl von Kapazitätslaufwerken aus Gründen der Symmetrie einem Vielfachen der Anzahl von Cachelaufwerken entspricht. Wenn Sie beispielsweise über vier Cachelaufwerke verfügen, ist die Leistung bei Verwendung von acht Kapazitätslaufwerken ausgeglichener (Verhältnis 1:2) als bei Verwendung von sieben oder neun Laufwerken.

Behandeln von Ausfällen von Cachelaufwerken

Wenn ein Cachelaufwerk ausfällt, gehen alle Schreibvorgänge, für die die Bereitstellung noch nicht aufgehoben wurde, auf dem lokalen Server verloren. Dies bedeutet, dass nur noch die anderen Kopien (auf anderen Servern) vorliegen. Wie auch für alle anderen Laufwerksausfälle gilt Folgendes: Für Speicherplätze kann und wird eine automatische Wiederherstellung durchgeführt, indem die noch vorhandenen Kopien genutzt werden.

Für einen kurzen Zeitraum werden die Kapazitätslaufwerke, die an das verloren gegangene Cachelaufwerk gebunden waren, als fehlerhaft angezeigt. Nachdem die Neueinbindung für den Cache (automatisch) durchgeführt und die Reparatur der Daten (automatisch) abgeschlossen wurde, werden sie wieder als fehlerfrei angezeigt.

Dies verdeutlicht, warum mindestens zwei Cachelaufwerke pro Server benötigt werden, um die Leistung aufrechtzuerhalten.

Handling-Failure

Sie können das Cachelaufwerk dann wie jedes andere Laufwerk auch normal austauschen.

Hinweis

Es kann erforderlich sein, das Gerät von der Stromversorgung zu trennen, damit Sie die NVMe-Komponente auf sichere Weise austauschen können, wenn es sich um den Formfaktor Erweiterungskarte (AIC) oder M.2 handelt.

Beziehung zu anderen Caches

Der per Software definierte Speicherstapel von Windows enthält mehrere andere Caches, die nicht miteinander in Beziehung stehen. Beispiele hierfür sind der Zurückschreibcache von Direkte Speicherplätze, der ReFS-Lesecache und der speicherinterne Lesecache vom Typ „Freigegebenes Clustervolume“ (Cluster Shared Volume, CSV).

Bei Direkte Speicherplätze sollte das Standardverhalten für den Zurückschreibcache von Direkte Speicherplätze und den ReFS-Lesecache nicht geändert werden. Vermeiden Sie es beispielsweise, Parameter wie -WriteCacheSize für das New-Volume-Cmdlet zu verwenden.

Sie können frei entscheiden, ob Sie den CSV-Cache verwenden möchten. Er ist in Direkte Speicherplätze standardmäßig deaktiviert, steht aber in keinerlei Konflikt mit dem neuen Cache, der in diesem Thema beschrieben wird. In bestimmten Szenarien können hiermit wertvolle Leistungssteigerungen erzielt werden. Weitere Informationen finden Sie unter How to Enable CSV Cache (Aktivieren des CSV-Caches).

Manuelle Konfiguration

Bei den meisten Bereitstellungen ist keine manuelle Konfiguration erforderlich. Lesen Sie weiter, falls Sie eine manuelle Konfiguration durchführen müssen.

Angeben des Cachelaufwerkmodells

Bei Bereitstellungen, bei denen alle Laufwerke den gleichen Typ haben, z. B. Bereitstellungen nur mit NVMe- oder SSD-Komponenten, wird kein Cache konfiguriert, da Windows für Laufwerke des gleichen Typs nicht automatisch zwischen Merkmalen wie der Schreibbelastbarkeit unterscheiden kann.

Wenn Sie Laufwerke mit höherer Belastbarkeit als Cache für Laufwerke des gleichen Typs mit geringerer Belastbarkeit verwenden möchten, können Sie angeben, welches Laufwerksmodell mit dem Parameter -CacheDeviceModel des Enable-ClusterS2D-Cmdlets verwendet werden soll. Nachdem Direkte Speicherplätze aktiviert wurde, werden alle Laufwerke dieses Modells für die Zwischenspeicherung verwendet.

Tipp

Achten Sie darauf, dass die Modellzeichenfolge genau wie in der Ausgabe von Get-PhysicalDisk angegeben ist.

Beispiel

PS C:\> Get-PhysicalDisk | Group Model -NoElement

Count Name
----- ----
    8 FABRIKAM NVME-1710
   16 CONTOSO NVME-1520

PS C:\> Enable-ClusterS2D -CacheDeviceModel "FABRIKAM NVME-1710"

Sie können überprüfen, ob die gewünschten Laufwerke für die Zwischenspeicherung verwendet werden, indem Sie Get-PhysicalDisk in PowerShell ausführen und sicherstellen, dass für die Usage-Eigenschaft der Wert "Journal" angegeben ist.

Möglichkeiten der manuellen Bereitstellung

Bei der manuellen Konfiguration haben Sie die folgenden Bereitstellungsmöglichkeiten:

Exotic-Deployment-Possibilities

Festlegen des Cacheverhaltens

Es ist möglich, das Standardverhalten des Caches außer Kraft zu setzen. Beispielsweise können Sie auch für eine reine Flash-Bereitstellung festlegen, dass Lesevorgänge zwischengespeichert werden sollen. Es ist nicht ratsam, das Verhalten zu ändern (es sei denn, Sie sind sich sicher, dass die Standardeinstellungen für Ihre Workloads nicht geeignet sind).

Verwenden Sie zum Außerkraftsetzen dieses Verhaltens das Set-ClusterS2D-Cmdlet mit den Parametern -CacheModeSSD und -CacheModeHDD. Mit dem Parameter CacheModeSSD wird das Cacheverhalten für die Zwischenspeicherung für Festkörperlaufwerke festgelegt. Mit dem Parameter CacheModeHDD wird das Cacheverhalten für die Zwischenspeicherung für Festplattenlaufwerke festgelegt. Dies ist jederzeit nach dem Aktivieren von Direkte Speicherplätze möglich.

Sie können Get-ClusterS2D verwenden, um sich zu vergewissern, dass das Verhalten festgelegt ist.

Beispiel

PS C:\> Get-ClusterS2D

CacheModeHDD : ReadWrite
CacheModeSSD : WriteOnly
...

PS C:\> Set-ClusterS2D -CacheModeSSD ReadWrite

PS C:\> Get-ClusterS2D

CacheModeHDD : ReadWrite
CacheModeSSD : ReadWrite
...

Festlegen der Größe des Caches

Die Größe des Caches sollte so gewählt werden, dass sie für den Arbeitssatz (die Daten, die aktiv gelesen oder geschrieben werden) Ihrer Anwendungen und Workloads ausreicht.

Dies ist besonders bei Hybridbereitstellungen mit Festplattenlaufwerken wichtig. Wenn der aktive Arbeitssatz die Größe des Caches übersteigt oder sich zu schnell verändert, kommt es vermehrt zu Lesecachefehlern, und die Aufhebung der Bereitstellung von Schreibvorgängen muss aggressiver erfolgen, wodurch die Gesamtleistung beeinträchtigt wird.

Sie können das integrierte Hilfsprogramm „Systemmonitor“ (PerfMon.exe) unter Windows verwenden, um die Cachefehlerrate zu überprüfen. Genauer gesagt: Sie können den Wert Cache Miss Reads/sec des Indikatorsatzes Cluster Storage Hybrid Disk mit dem IOPS-Gesamtwert für Lesevorgänge Ihrer Bereitstellung vergleichen. Jedes Hybridlaufwerk („Hybrid Disk“) entspricht einem Kapazitätslaufwerk.

Wenn beispielsweise zwei Cachelaufwerke an vier Kapazitätslaufwerke gebunden sind, ergibt dies vier „Hybrid Disk“-Objektinstanzen pro Server.

Performance-Monitor

Es gibt keine allgemeingültige Regel, aber wenn es für zu viele Lesevorgänge zu Cachefehlern kommt, reicht die Größe ggf. nicht aus, und Sie sollten erwägen, zur Erweiterung des Caches mehr Cachelaufwerke hinzuzufügen. Sie können Cache- oder Kapazitätslaufwerke jederzeit unabhängig voneinander hinzufügen.

Weitere Informationen

© 2017 Microsoft