Freigeben über


Grundlegendes zum Speicherpoolcache

Gilt für: Azure Stack HCI, Versionen 22H2 und 21H2; Windows Server 2022, Windows Server 2019

Storage Spaces Direct, die grundlegende Speichervirtualisierungstechnologie hinter Azure Stack HCI und Windows Server, bietet einen integrierten serverseitigen Cache, um die Speicherleistung zu maximieren und gleichzeitig die Kosten zu reduzieren. Es handelt sich um einen großen, dauerhaften Lese-Cache und Schreib-Cache in Echtzeit, der bei Bereitstellung automatisch konfiguriert wird. In den meisten Fällen ist keine manuelle Verwaltung erforderlich. Die Funktionsweise des Caches hängt von den vorhandenen Laufwerktypen ab.

Antriebstypen und Bereitstellungsoptionen

Storage Spaces Direct funktioniert derzeit mit vier Laufwerkstypen.

Laufwerkstyp Beschreibung
PMem- PMem- bezieht sich auf beständigen Speicher, einen neuen Typ von geringer Latenz, hoher Leistung.
NVMe- NVMe (Non-Volatile Memory Express) bezieht sich auf Festkörperlaufwerke, die sich direkt auf dem PCIe-Bus befinden. Häufige Formfaktoren sind 2,5 Zoll U.2, PCIe Add-In-Card (AIC) und M.2. NVMe bietet einen höheren IOPS- und E/A-Durchsatz mit geringerer Latenz als jede andere Art von Laufwerk, die wir heute außer PMem unterstützen.
SSD SSD- bezieht sich auf Festkörperlaufwerke, die über herkömmliche SATA oder SAS verbunden sind.
HDD HDD- bezieht sich auf rotationale, magnetische Festplattenlaufwerke, die große Speicherkapazität zu geringen Kosten bieten.

Diese können auf verschiedene Arten kombiniert werden, die wir in zwei Kategorien gruppieren: "All-Flash" und "Hybrid". Bereitstellungen mit allen HDD werden nicht unterstützt.

Anmerkung

In diesem Artikel werden Cachekonfigurationen mit NVMe, SSD und HDD behandelt. Informationen zur Verwendung des beständigen Speichers als Cache finden Sie unter Grundlegendes und Bereitstellen des beständigen Speichers.

All-Flash-Bereitstellungsmöglichkeiten

All-Flash-Bereitstellungen zielen darauf ab, die Speicherleistung zu maximieren und keine HDD einzuschließen.

Diagramm zeigt All-Flash-Bereitstellungen, einschließlich NVMe für Kapazität, NVMe für Cache mit SSD für Kapazität und SSD für Kapazität.

Möglichkeiten zur Hybridbereitstellung

Hybridbereitstellungen zielen darauf ab, die Leistung und Kapazität zu ausgleichen oder die Kapazität zu maximieren und HDD einzuschließen.

Diagramm zeigt Hybridbereitstellungen, einschließlich NVMe für Cache mit HDD für Kapazität, SSD für Cache mit HDD für Kapazität und NVMe für Cache mit HDD plus SSD für Kapazität.

Anmerkung

Die Hybridbereitstellung wird in der Konfiguration mit nur einem Server nicht unterstützt. Alle konfigurationen für einen flachen Einzelnen Speichertyp (z. B. all-NVMe oder all-SSD) sind der einzige unterstützte Speichertyp für einzelne Server.

Cachelaufwerke werden automatisch ausgewählt.

Bei Bereitstellungen mit mehreren Laufwerktypen verwendet "Direkte Speicherplätze" automatisch alle Laufwerke des schnellsten Typs für die Zwischenspeicherung. Die verbleibenden Laufwerke werden zur Erweiterung der Kapazität verwendet.

Welcher Typ "am schnellsten" ist, wird gemäß der folgenden Hierarchie bestimmt.

Diagramm zeigt Datenträgertypen, die schneller und langsamer angeordnet sind, in der Reihenfolge NVMe, SSD, nicht bezeichneter Datenträger, der HDD darstellt.

Wenn Sie zum Beispiel NVMe und SSDs haben, verwenden Sie den NVMe-Cache für die SSDs.

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

Anmerkung

Cachelaufwerke tragen nicht zur verwendbaren Speicherkapazität für den Cluster bei. Alle im Cache gespeicherten Daten werden auch an anderer Stelle gespeichert oder werden es, sobald sie destagiert werden. Dies bedeutet, dass die gesamte rohe Speicherkapazität Ihres Clusters nur die Summe Ihrer Kapazitätslaufwerke ist.

Wenn alle Laufwerke denselben Typ aufweisen, wird kein Cache automatisch konfiguriert. Sie haben die Möglichkeit, Laufwerke mit höherer Lebensdauer manuell so zu konfigurieren, dass sie als Cache für Laufwerke mit geringerer Lebensdauer desselben Typs dienen – weitere Informationen finden Sie im Abschnitt Manuelle Konfiguration, um zu erfahren, wie das geht.

Tipp

In einigen Fällen ist die Verwendung des Speicherpoolcaches nicht sinnvoll. Beispielsweise kann in all-NVMe- oder all-SSD-Bereitstellungen, vor allem bei sehr kleinen Installationen, das Fehlen von für den Cache verwendeten Laufwerken die Speichereffizienz verbessern und die Leistung maximieren. Ebenso verfügen kleine Remote- oder Zweigstellenbereitstellungen möglicherweise über begrenzten Speicherplatz für Cachelaufwerke.

Das Cacheverhalten wird automatisch festgelegt.

Das Verhalten des Caches wird automatisch basierend auf den Laufwerkstypen bestimmt, für die gecached wird. Beim Zwischenspeichern für Flashlaufwerke (z. B. NVMe-Zwischenspeicherung für SSDs) werden nur Schreibvorgänge zwischengespeichert. Beim Zwischenspeichern für drehbare Datenträgerlaufwerke (z. B. SSDs-Zwischenspeicherung für HDDs) werden Lese- und Schreibvorgänge zwischengespeichert.

Diagrammvergleich zwischen All-Flash-Speicher, bei dem Schreibvorgänge zwischengespeichert und Lesevorgänge nicht zwischengespeichert werden, und Hybrid, bei dem sowohl Lese- als auch Schreibvorgänge zwischengespeichert werden.

Schreibgeschütztes Zwischenspeichern für Alle Flash-Bereitstellungen

Zwischenspeichern kann in einem Szenario mit allen Flashs verwendet werden, z. B. mithilfe von NVMe als Cache, um die Leistung von SSDs zu beschleunigen. Beim Zwischenspeichern für alle Flash-Bereitstellungen werden nur Schreibvorgänge zwischengespeichert. Dies reduziert den Verschleiß der Kapazitätslaufwerke, da viele Schreib- und Umschreibvorgänge im Cache zusammengeführt werden und dann nur bei Bedarf entladen werden können, wodurch der kumulative Verkehr zu den Kapazitätslaufwerken vermindert und ihre Lebensdauer verlängert wird. Aus diesem Grund empfehlen wir, höherer Belastbarkeit und schreiboptimierte Laufwerke für den Cache auszuwählen. Die Kapazitätslaufwerke können eine geringere Schreibfestigkeit aufweisen.

Da Lesevorgänge die Lebensdauer von Flash nicht erheblich beeinträchtigen und SSDs universell eine niedrige Leselatenz bieten, werden Lesevorgänge nicht zwischengespeichert: Sie werden direkt von den Kapazitätslaufwerken bereitgestellt (außer wenn die Daten so kürzlich geschrieben wurden, dass sie noch nicht destagiert wurden). Auf diese Weise kann der Cache vollständig für Schreibvorgänge reserviert werden, wodurch seine Effektivität maximiert wird.

Dies führt zu Schreibeigenschaften, z. B. schreiblatenz, die von den Cachelaufwerken diktiert werden, während die Leseeigenschaften von den Kapazitätslaufwerken bestimmt werden. Beide sind konsistent, vorhersehbar und einheitlich.

Zwischenspeichern mit Lese-/Schreibzugriff für Hybridbereitstellungen

Beim Caching für HDD werden sowohl Lesevorgänge als auch Schreibvorgänge zwischengespeichert, um eine flashähnliche Latenz (häufig ~10x besser) für beide bereitzustellen. Der Lesecache speichert kürzlich und häufig gelesene Daten für schnellen Zugriff und minimiert den zufälligen Datenverkehr an die HDDs. (Aufgrund von Such- und Drehverzögerungen ist die Latenz und die verlorene Zeit, die durch zufälligen Zugriff auf eine HDD entsteht, erheblich.) Schreibvorgänge werden zwischengespeichert, um Bursts zu absorbieren und wie zuvor Schreib- und Neuschreibungen zusammenzupacken und den kumulativen Datenverkehr auf die Kapazitätslaufwerke zu minimieren.

Storage Spaces Direct implementiert einen Algorithmus, der Schreibvorgänge vor der Weitergabe ableitet, um ein E/A-Muster auf die Festplatte zu emulieren, das sequenziell erscheint, auch wenn die tatsächliche E/A von der Arbeitslast (z. B. virtuelle Maschinen) zufällig ist. Dadurch werden die IOPS und der Durchsatz auf die HDDs maximiert.

Zwischenspeichern in Bereitstellungen mit NVMe, SSD und HDD

Wenn Laufwerke aller drei Typen vorhanden sind, bieten die NVMe-Laufwerke Cache sowohl für die SSDs als auch für die HDDs. Das Verhalten ist wie oben beschrieben: Nur Schreibvorgänge werden für die SSDs zwischengespeichert, und sowohl Lese- als auch Schreibvorgänge werden für die HDDs zwischengespeichert. Die Belastung der Zwischenspeicherung für die HDDs wird gleichmäßig auf die Cachelaufwerke verteilt.

Zusammenfassung

In dieser Tabelle wird zusammengefasst, welche Laufwerke für die Zwischenspeicherung verwendet werden, welche für die Kapazität verwendet werden und welches Zwischenspeicherungsverhalten für jede Bereitstellungsmöglichkeit besteht.

Einsatz Cachelaufwerke Kapazitätstreiber Cacheverhalten (Standard)
Alle NVMe-Modelle Keine (Optional: manuell konfigurieren) NVMe Schreibgeschützt (falls konfiguriert)
Alle SSD Keine (Optional: manuell konfigurieren) SSD Nur-Schreiben (falls konfiguriert)
NVMe + SSD NVMe SSD Nur schreiben
NVMe + HDD NVMe Festplatte Lesen/Schreiben
SSD + HDD SSD Festplatte Lesen + Schreiben
NVMe + SSD + HDD NVMe SSD + HDD Lese- und Schreibzugriff für HDD, Nur-Schreibzugriff für SSD

Serverseitige Architektur

Der Cache wird auf Laufwerksebene implementiert: Einzelne Cachelaufwerke innerhalb eines Servers sind an ein oder mehrere Kapazitätslaufwerke innerhalb desselben Servers gebunden.

Da sich der Cache unterhalb des restlichen, von softwaredefinierten Windows-Speicherstapels befindet, verfügt er nicht über das Verständnis für Konzepte wie Speicherplätze oder Fehlertoleranz. Sie können sich dies als das Erstellen von Hybridlaufwerken (teilweise Flash, teilweise Festplatte) vorstellen, die dann dem Betriebssystem präsentiert werden. Wie bei einem tatsächlichen Hybridlaufwerk ist die Echtzeitbewegung von Heiß- und Kaltdaten zwischen den schnelleren und langsameren Teilen der physischen Medien für den Außenbereich nahezu unsichtbar.

Da die Resilienz in "Direkte Speicherplätze" mindestens auf Serverebene liegt (d. h. Datenkopien werden immer auf unterschiedliche Server geschrieben; höchstens eine Kopie pro Server), profitieren Daten im Cache von der gleichen Resilienz wie Daten, die sich nicht im Cache befinden.

Diagramm stellt drei Server dar, die mit einer Drei-Wege-Spiegelung in einer Speicherebene verbunden sind, welche auf eine Cacheebene mit NVMe-Laufwerken zugreift, die auf unbenannte Kapazitätslaufwerke zugreifen.

Bei Verwendung der Drei-Wege-Spiegelung werden beispielsweise drei Kopien aller Daten auf verschiedene Server geschrieben, auf denen sie im Cache landen. Unabhängig davon, ob sie später entfernt werden oder nicht, gibt es immer drei Kopien.

Laufwerkbindungen sind dynamisch

Die Bindung zwischen Cache- und Kapazitätslaufwerken kann ein beliebiges Verhältnis aufweisen, von 1:1 bis 1:12 und darüber hinaus. Das System passt sich dynamisch an, wenn Laufwerke hinzugefügt oder entfernt werden, z. B. während der Skalierung oder nach Fehlfunktionen. Dies bedeutet, dass Sie Cachelaufwerke oder Kapazitätslaufwerke unabhängig voneinander hinzufügen können, wann immer Sie möchten.

Animiertes Diagramm zeigt zwei NVMe-Cachelaufwerke, die zunächst auf vier, dann auf sechs und schließlich auf acht Kapazitätslaufwerke abgebildet werden.

Es wird empfohlen, die Anzahl der Kapazitätslaufwerke für die Symmetrie zu einem Vielfachen der Anzahl von Cachelaufwerken zu machen. Wenn Sie z. B. über vier Cachelaufwerke verfügen, erleben Sie eine gleichmäßigere Leistung mit 8 Kapazitätslaufwerken (Verhältnis 1:2) als bei 7 oder 9.

Behandeln von Cachelaufwerkfehlern

Wenn ein Cachelaufwerk fehlschlägt, gehen alle Schreibvorgänge, die noch nicht destagiert wurden, an den lokalen Serververloren, was bedeutet, dass sie nur auf den anderen Kopien (in anderen Servern) vorhanden sind. Genau wie nach einem anderen Laufwerksfehler können Speicherplätze automatisch wiederhergestellt werden, indem sie die überlebenden Kopien konsultieren.

Für einen kurzen Zeitraum scheinen die Kapazitätslaufwerke, die an das verlorene Cachelaufwerk gebunden waren, problemanfällig zu sein. Sobald die Cache-Neubindung erfolgt ist (automatisch) und die Datenreparatur abgeschlossen wurde (automatisch), werden sie wieder als fehlerfrei angezeigt.

In diesem Szenario sind mindestens zwei Cachelaufwerke pro Server erforderlich, um die Leistung zu erhalten.

Animiertes Diagramm zeigt zwei SSD-Cachelaufwerke, die sechs Kapazitätslaufwerken zugeordnet sind, bis ein Cachelaufwerk fehlschlägt. Dies bewirkt, dass alle sechs Laufwerke dem verbleibenden Cachelaufwerk zugeordnet werden.

Anschließend können Sie das Cachelaufwerk wie jedes andere Laufwerk austauschen.

Anmerkung

Möglicherweise müssen Sie das Gerät ausschalten, um die NVMe, die in Form einer Add-In-Karte (AIC) oder des M.2-Formfaktors vorliegt, sicher zu ersetzen.

Beziehung zu anderen Caches

Im softwaredefinierten Windows-Speicherstapel gibt es mehrere andere nicht verknüpfte Caches. Beispiele hierfür sind der Schreibcache für Speicherplätze und der CSV-Speicherlesecache (Cluster Shared Volume).

Bei Azure Stack HCI sollte der Schreibcache für Speicherplätze nicht aus dem Standardverhalten geändert werden. Parameter wie z. B. -WriteCacheSize für das Cmdlet New-Volume sollten nicht verwendet werden.

Sie können den CSV-Cache verwenden oder nicht – es liegt an Ihnen. Er ist standardmäßig in Azure Stack HCI aktiviert, aber er ist in keiner Weise mit dem in diesem Thema beschriebenen Cache in Konflikt. In bestimmten Szenarien kann es wertvolle Leistungsgewinne bieten. Weitere Informationen finden Sie unter Verwenden des CSV-Speicherlesecaches mit Azure Stack HCI.

Manuelle Konfiguration

Für die meisten Bereitstellungen ist keine manuelle Konfiguration erforderlich. Falls Sie dies benötigen, lesen Sie die folgenden Abschnitte.

Wenn Sie nach dem Setup Änderungen am Cache-Gerätemodell vornehmen müssen, bearbeiten Sie das Supportkomponentendokument des Gesundheitsdiensts, wie in Gesundheitsdienstübersichtbeschrieben.

Angeben des Cachelaufwerkmodells

In Bereitstellungen, bei denen alle Laufwerke vom gleichen Typ sind, z. B. alle NVMe- oder alle SSD-Bereitstellungen, wird kein Cache konfiguriert, da Windows keine Merkmale wie das automatische Schreiben zwischen Laufwerken desselben Typs unterscheiden kann.

Zum Zwischenspeichern von Laufwerken mit höherer Lebensdauer für Laufwerke mit niedrigerer Lebensdauer desselben Typs können Sie angeben, welches Laufwerkmodell mit dem -CacheDeviceModel Parameter des Cmdlets Enable-ClusterS2D verwendet werden soll. Alle Laufwerke dieses Modells werden für die Zwischenspeicherung verwendet.

Trinkgeld

Achten Sie darauf, die Modellzeichenfolge genau so abzugleichen, wie sie in der Ausgabe von Get-PhysicalDiskangezeigt wird.

Beispiel

Rufen Sie zunächst eine Liste der physischen Datenträger ab:

Get-PhysicalDisk | Group Model -NoElement

Hier ist eine Beispielausgabe:

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

Geben Sie dann den folgenden Befehl ein, und geben Sie das Cachegerätemodell an:

Enable-ClusterS2D -CacheDeviceModel "FABRIKAM NVME-1710"

Sie können überprüfen, ob die gewünschten Laufwerke für das Caching verwendet werden, indem Sie den Befehl Get-PhysicalDisk in PowerShell ausführen und überprüfen, ob die Usage-Eigenschaft "Journal" lautet.

Manuelle Bereitstellungsmöglichkeiten

Die manuelle Konfiguration ermöglicht die folgenden Bereitstellungsmöglichkeiten:

Diagramm zeigt Bereitstellungsmöglichkeiten, einschließlich NVMe für Cache und Kapazität, SSD für Cache und Kapazität sowie SSD für Cache und gemischte SSD und HDD für Kapazität.

Festlegen des Cacheverhaltens

Es ist möglich, das Standardverhalten des Caches außer Kraft zu setzen. Sie können beispielsweise festlegen, dass auch in einer All-Flash-Bereitstellung Lesevorgänge zwischengespeichert werden. Es wird davon abgeraten, das Verhalten zu ändern, es sei denn, Sie sind sicher, dass die Standardeinstellung Ihrer Workload nicht entspricht.

Um das Verhalten außer Kraft zu setzen, verwenden Sie das Set-ClusterStorageSpacesDirect-Cmdlet und dessen -CacheModeSSD- und -CacheModeHDD-Parameter. Der CacheModeSSD Parameter legt das Cacheverhalten beim Zwischenspeichern für SSD fest. Der CacheModeHDD Parameter legt das Cacheverhalten beim Zwischenspeichern für HDD fest.

Sie können Get-ClusterStorageSpacesDirect verwenden, um zu überprüfen, ob das Verhalten festgelegt ist.

Beispiel

Rufen Sie zunächst die Einstellungen für Storage Spaces Direct ab.

Get-ClusterStorageSpacesDirect

Hier ist eine Beispielausgabe:

CacheModeHDD : ReadWrite
CacheModeSSD : WriteOnly

Gehen Sie dann wie folgt vor:

Set-ClusterStorageSpacesDirect -CacheModeSSD ReadWrite

Get-ClusterS2D

Hier ist eine Beispielausgabe:

CacheModeHDD : ReadWrite
CacheModeSSD : ReadWrite

Größe des Caches

Der Cache sollte so angepasst werden, dass der Arbeitssatz (die Daten, die zu einem bestimmten Zeitpunkt aktiv gelesen oder geschrieben werden) Ihrer Anwendungen und Arbeitsauslastungen berücksichtigt werden.

Dies ist besonders wichtig bei Hybridbereitstellungen mit Festplattenlaufwerken. Wenn der aktive Arbeitssatz die Größe des Caches überschreitet oder wenn der aktive Arbeitssatz zu schnell abdriftet, erhöhen sich Lesecache-Fehler und Schreibvorgänge müssen aggressiver destagiert werden, was die Gesamtleistung beeinträchtigt.

Sie können das integrierte Hilfsprogramm Performance Monitor (PerfMon.exe) in Windows verwenden, um die Rate von Cachefehlern zu überprüfen. Insbesondere können Sie die Cachefehler-Lesevorgänge/s vom Zählerpaket für den Clusterspeicher-Hybriddatenträger mit den allgemeinen Lese-IOPS Ihrer Bereitstellung vergleichen. Jeder "Hybriddatenträger" entspricht einem Kapazitätslaufwerk.

Beispielsweise ergeben 2 Cachelaufwerke, die an vier Kapazitätslaufwerke gebunden sind, 4 "Hybrid Disk"-Objektinstanzen pro Server.

Leistungsmonitor.

Es gibt keine universelle Regel, aber wenn zu viele Lesevorgänge den Cache verfehlen, ist er möglicherweise zu klein, und Sie sollten erwägen, Cache-Laufwerke hinzuzufügen, um den Cache zu erweitern. Sie können Cachelaufwerke oder Kapazitätslaufwerke unabhängig voneinander hinzufügen, wenn Sie möchten.

Nächste Schritte

Weitere Speicherkenntnisse finden Sie auch unter: