Inzicht in de cache van de opslaggroep
Van toepassing op: Azure Stack HCI, versies 21H2 en 20H2; Windows Server 2022, Windows Server 2019
Opslagruimten Direct beschikt de basistechnologie voor opslagvirtualisatie achter Azure Stack HCI en Windows Server over een ingebouwde cache aan de serverzijde om de opslagprestaties te maximaliseren en tegelijkertijd de kosten te verlagen. Het is een grote, permanente, realtime lees- en schrijfcache die automatisch wordt geconfigureerd bij de implementatie. In de meeste gevallen is er geen handmatig beheer nodig. Hoe de cache werkt, is afhankelijk van de typen stations die aanwezig zijn.
Stationstypen en implementatieopties
Opslagruimten Direct werkt momenteel met vier typen stations:
| Type station | Description |
|---|---|
![]() |
PMem verwijst naar permanent geheugen, een nieuw type lage latentie, opslag met hoge prestaties. |
![]() |
NVMe (Non-Volatile Memory Express) verwijst naar solid-state drives die rechtstreeks op de PCIe-bus zitten. Veelvoorkomende formulierfactoren zijn 2,5" U.2, PCIe-invoegtoepassingskaart (AIC) en M.2. NVMe biedt een hogere IOPS- en I/O-doorvoer met lagere latentie dan elk ander type station dat momenteel wordt ondersteund, behalve PMem. |
![]() |
SSD verwijst naar solid-state drives, die verbinding maken via conventionele SATA of SAS. |
![]() |
HDD verwijst naar roterende, magnetische harde schijfstations, die een enorme opslagcapaciteit bieden tegen lage kosten. |
Deze kunnen op verschillende manieren worden gecombineerd, die we groeperen in twee categorieën: 'all-flash' en 'hybride'. Implementaties met alle HDD's worden niet ondersteund.
Notitie
In dit artikel worden cacheconfiguraties beschreven met NVMe, SSD en HDD. Zie Permanente geheugen begrijpen en implementeren voor meer informatie over het gebruik van permanent geheugen als cache.
All-flash implementatiemogelijkheden
All-flash-implementaties zijn bedoeld om de opslagprestaties te maximaliseren en bevatten geen HDD.

Hybride implementatiemogelijkheden
Hybride implementaties zijn bedoeld om de prestaties en capaciteit te verdelen of om de capaciteit te maximaliseren, en omvatten hdd's.

Notitie
Hybride implementatie wordt niet ondersteund in de configuratie van één server. Alle configuraties van één opslagtype (bijvoorbeeld all-NVMe of all-SSD) is het enige ondersteunde opslagtype voor één server.
Cachestations worden automatisch geselecteerd
In implementaties met meerdere typen stations gebruikt Opslagruimten Direct automatisch alle stations van het snelste type voor caching. De overige schijven worden gebruikt voor opslagcapaciteit.
Welk type 'snelste' wordt bepaald volgens de volgende hiërarchie.

Als u bijvoorbeeld NVMe en HD's hebt, wordt de NVMe in de cache opgeslagen voor de HD's.
Als u HDD's en HDD's hebt, worden de HDD's in de cache opgeslagen voor de HDD's.
Notitie
Cachestations dragen geen bruikbare opslagcapaciteit bij aan het cluster. Alle gegevens die in de cache zijn opgeslagen, worden ook elders opgeslagen of worden eenmaal gedefaseerd. Dit betekent dat de totale onbewerkte opslagcapaciteit van uw cluster alleen de som is van uw capaciteitsstations.
Wanneer alle stations van hetzelfde type zijn, wordt er geen cache automatisch geconfigureerd. U hebt de mogelijkheid om stations met een hoger uithoudingsvermogen handmatig te configureren voor cache voor stations met een lager uithoudingsvermogen van hetzelfde type. Zie de sectie Handmatige configuratie voor meer informatie.
Tip
In sommige gevallen is het gebruik van de cache van de opslaggroep niet zinvol. Zo kunnen in all-NVMe- of all-SSD-implementaties, met name op zeer kleine schaal, geen stations 'besteed' aan de cache de opslagefficiëntie verbeteren en de prestaties maximaliseren. Op dezelfde manier kunnen kleine implementaties van externe of filialen beperkte ruimte hebben voor cachestations.
Cachegedrag wordt automatisch ingesteld
Het gedrag van de cache wordt automatisch bepaald op basis van de typen stations waarvoor de cache wordt opgeslagen. Bij caching voor flashstations (zoals NVMe-caching voor SSD's), worden alleen schrijfbewerkingen in de cache opgeslagen. Bij caching voor draaiende schijfstations (zoals HDD's in cache opslaan voor HDD's), worden zowel lees- als schrijfbewerkingen in de cache opgeslagen.

Alleen-schrijven opslaan in cache voor all-flash-implementaties
Caching kan worden gebruikt in een all-flash-scenario, bijvoorbeeld het gebruik van NVMe als cache om de prestaties van INVOEGTOEPASSINGen te versnellen. Bij caching voor all-flash-implementaties worden alleen schrijfbewerkingen in de cache opgeslagen. Dit vermindert de slijtage op de capaciteitsstations omdat veel schrijf- en herschrijfbewerkingen in de cache kunnen worden samengevoegd en vervolgens alleen indien nodig de fase kunnen worden gedefaseerd, waardoor het cumulatieve verkeer naar de capaciteitsstations wordt verminderd en de levensduur ervan wordt verlengd. Daarom raden we u aan om stations met een hoger uithoudingsvermogen te selecteren die zijn geoptimaliseerd voor schrijfbewerkingen voor de cache. De capaciteitsstations kunnen redelijkerwijs een lagere schrijfduur hebben.
Omdat leesbewerkingen de levensduur van flash niet aanzienlijk beïnvloeden en omdat SSD's universeel een lage leeslatentie bieden, worden leesbewerkingen niet in de cache opgeslagen: ze worden rechtstreeks vanaf de capaciteitsstations geleverd (behalve wanneer de gegevens zo recent zijn geschreven dat deze nog niet zijn gedefaseerd). Hierdoor kan de cache volledig worden toegewezen aan schrijfbewerkingen, waardoor de effectiviteit ervan wordt gemaximaliseerd.
Dit resulteert in schrijfkenmerken, zoals schrijflatentie, die worden bepaald door de cachestations, terwijl leeskenmerken worden bepaald door de capaciteitsstations. Beide zijn consistent, voorspelbaar en uniform.
Lees-/schrijfcaching voor hybride implementaties
Bij caching voor HDD worden zowel lees- als schrijfbewerkingen in de cache opgeslagen, om flashachtige latentie (vaak ~10x beter) voor beide te bieden. De leescache slaat onlangs en regelmatig leesgegevens op voor snelle toegang en om willekeurig verkeer naar de HDD's te minimaliseren. (Vanwege zoek- en rotatievertragingen is de latentie en verloren tijd die wordt gemaakt door willekeurige toegang tot een HDD aanzienlijk.) Schrijfbewerkingen worden in de cache opgeslagen om bursts op te nemen en, zoals voorheen, om schrijf- en herschrijfbewerkingen samen te voegen en het cumulatieve verkeer naar de capaciteitsstations te minimaliseren.
Opslagruimten Direct implementeert een algoritme dat schrijfbewerkingen deselecteert voordat ze worden gedefaseerd, om een I/O-patroon naar schijf te emuleren dat sequentieel lijkt, zelfs wanneer de werkelijke I/O afkomstig is van de workload (zoals virtuele machines) willekeurig is. Hierdoor worden de IOPS en doorvoer naar de HDD's gemaximaliseerd.
Caching in implementaties met NVMe, SSD en HDD
Wanneer stations van alle drie de typen aanwezig zijn, bieden de NVMe-stations caching voor zowel de HDD's als de HDD's. Het gedrag is zoals hierboven beschreven: alleen schrijfbewerkingen worden in de cache opgeslagen voor de HDD's, en zowel lees- als schrijfbewerkingen worden opgeslagen in de cache voor de HDD's. De belasting van caching voor de HDD's wordt gelijkmatig verdeeld over de cachestations.
Samenvatting
Deze tabel bevat een overzicht van de stations die worden gebruikt voor caching, die worden gebruikt voor capaciteit en wat het cachinggedrag is voor elke implementatiemogelijkheid.
| Implementatie | Cachestations | Capaciteitsstations | Cachegedrag (standaard) |
|---|---|---|---|
| Alle NVMe | Geen (optioneel: handmatig configureren) | NVMe | Alleen-schrijven (indien geconfigureerd) |
| Alle SSD's | Geen (optioneel: handmatig configureren) | SSD | Alleen-schrijven (indien geconfigureerd) |
| NVMe + SSD | NVMe | SSD | Alleen-schrijven |
| NVMe + HDD | NVMe | HDD | Lezen en schrijven |
| SSD + HDD | SSD | HDD | Lezen en schrijven |
| NVMe + SSD + HDD | NVMe | SSD + HDD | Lezen + schrijven voor HDD, alleen schrijven voor SSD |
Architectuur aan serverzijde
De cache wordt geïmplementeerd op stationsniveau: afzonderlijke cachestations binnen één server zijn gebonden aan een of meer capaciteitsstations binnen dezelfde server.
Omdat de cache zich onder de rest van de Windows door software gedefinieerde opslagstack bevindt, heeft deze geen kennis nodig van concepten zoals Opslagruimten of fouttolerantie. U kunt het zien als het maken van 'hybride' stations (onderdeel flash, deelschijf) die vervolgens worden gepresenteerd aan het besturingssysteem. Net als bij een echte hybride schijf is de realtime verplaatsing van dynamische en koude gegevens tussen de snellere en langzamere delen van de fysieke media bijna onzichtbaar voor de buitenkant.
Gezien de tolerantie in Opslagruimten Direct ten minste serverniveau is (wat betekent dat gegevenskopieën altijd naar verschillende servers worden geschreven; ten hoogste één kopie per server), profiteren gegevens in de cache van dezelfde tolerantie als gegevens die niet in de cache staan.

Wanneer u bijvoorbeeld spiegeling in drie richtingen gebruikt, worden drie kopieën van gegevens naar verschillende servers geschreven, waar ze in de cache terechtkomen. Ongeacht of ze later zijn gedefaseerd of niet, zullen er altijd drie kopieën bestaan.
Stationsbindingen zijn dynamisch
De binding tussen cache- en capaciteitsstations kan elke verhouding hebben, van 1:1 tot 1:12 en hoger. Het wordt dynamisch aangepast wanneer stations worden toegevoegd of verwijderd, zoals bij het omhoog schalen of na fouten. Dit betekent dat u op elk gewenst moment onafhankelijk cachestations of capaciteitsstations kunt toevoegen.

We raden u aan om het aantal capaciteitsstations een veelvoud van het aantal cachestations te maken voor symmetrie. Als u bijvoorbeeld 4 cachestations hebt, zult u meer prestaties ervaren met 8 capaciteitsstations (verhouding 1:2) dan met 7 of 9.
Fouten met cachestations afhandelen
Wanneer een cachestation uitvalt, gaan schrijfbewerkingen die nog niet zijn gedefaseerd verloren aan de lokale server, wat betekent dat ze alleen op de andere kopieën bestaan (op andere servers). Net als na elke andere schijffout kan Opslagruimten automatisch herstellen door de overlevende kopieën te raadplegen.
Gedurende een korte periode worden de capaciteitsstations die zijn gebonden aan het verloren cachestation, beschadigd. Zodra de cacheherbinding is opgetreden (automatisch) en het herstellen van gegevens is voltooid (automatisch), worden ze weer weergegeven als in orde.
In dit scenario zijn ten minste twee cachestations per server vereist om de prestaties te behouden.

Vervolgens kunt u het cachestation vervangen, net als elke andere schijfvervanging.
Notitie
Mogelijk moet u de NVMe die is Add-In Card (AIC) of M.2-formulierfactor veilig vervangen.
Relatie met andere caches
Er zijn verschillende andere niet-gerelateerde caches in de Windows software-gedefinieerde opslagstack. Voorbeelden hiervan zijn de Opslagruimten write-back-cache en de leescache cluster shared volume (CSV).
Met Azure Stack HCI mag de Opslagruimten cache voor write-back niet worden gewijzigd op basis van het standaardgedrag. Parameters zoals -WriteCacheSize op de cmdlet New-Volume mogen bijvoorbeeld niet worden gebruikt.
U kunt ervoor kiezen om de CSV-cache te gebruiken of niet. Dit is aan u. Deze is standaard ingeschakeld in Azure Stack HCI, maar het conflicteert op geen enkele manier met de cache die in dit onderwerp wordt beschreven. In bepaalde scenario's kan dit waardevolle prestatieverbeteringen opleveren. Zie De leescache van csv in het geheugen gebruiken met Azure Stack HCI voor meer informatie.
Handmatige configuratie
Voor de meeste implementaties is handmatige configuratie niet vereist. Zie de volgende secties voor het geval u dit nodig hebt.
Als u na de installatie wijzigingen wilt aanbrengen in het cacheapparaatmodel, bewerkt u het document ondersteuningsonderdelen van de Health Service, zoals beschreven in Health Service overzicht.
Cachestationmodel opgeven
In implementaties waarbij alle stations van hetzelfde type zijn, zoals all-NVMe- of all-SSD-implementaties, wordt er geen cache geconfigureerd omdat Windows geen kenmerken zoals schrijfduur automatisch kan onderscheiden tussen stations van hetzelfde type.
Als u stations met een hoger uithoudingsvermogen wilt gebruiken om te cachen voor stations met een lager uithoudingsvermogen van hetzelfde type, kunt u opgeven welk stationsmodel moet worden gebruikt met de parameter -CacheDeviceModel van de cmdlet Enable-ClusterS2D . Alle stations van dat model worden gebruikt voor caching.
Tip
Zorg ervoor dat deze exact overeenkomt met de modeltekenreeks zoals deze wordt weergegeven in de uitvoer van Get-PhysicalDisk.
Voorbeeld
Haal eerst een lijst met fysieke schijven op:
Get-PhysicalDisk | Group Model -NoElement
Hier volgt een voorbeeld van uitvoer:
Count Name
----- ----
8 FABRIKAM NVME-1710
16 CONTOSO NVME-1520
Voer vervolgens de volgende opdracht in en geef het cacheapparaatmodel op:
Enable-ClusterS2D -CacheDeviceModel "FABRIKAM NVME-1710"
U kunt controleren of de stations die u bedoelde, worden gebruikt voor caching door Get-PhysicalDisk uit te voeren in PowerShell en te controleren of hun gebruikseigenschap'Logboek' bevat.
Handmatige implementatiemogelijkheden
Handmatige configuratie maakt de volgende implementatiemogelijkheden mogelijk:

Cachegedrag instellen
Het is mogelijk om het standaardgedrag van de cache te overschrijven. U kunt deze bijvoorbeeld instellen op leesbewerkingen in de cache, zelfs in een all-flash-implementatie. We raden u af het gedrag te wijzigen, tenzij u zeker weet dat de standaardinstelling niet past bij uw workload.
Gebruik de cmdlet Set-ClusterStorageSpacesDirect en de parameters -CacheModeSSD en -CacheModeHDD om het gedrag te overschrijven. De parameter CacheModeSSD stelt het cachegedrag in bij het opslaan in cache voor SSD. Met de parameter CacheModeHDD wordt cachegedrag ingesteld bij het opslaan in cache voor HDD.
U kunt Get-ClusterStorageSpacesDirect gebruiken om te controleren of het gedrag is ingesteld.
Voorbeeld
Haal eerst de Opslagruimten Direct-instellingen op:
Get-ClusterStorageSpacesDirect
Hier volgt een voorbeeld van uitvoer:
CacheModeHDD : ReadWrite
CacheModeSSD : WriteOnly
Ga als volgt verder:
Set-ClusterStorageSpacesDirect -CacheModeSSD ReadWrite
Get-ClusterS2D
Hier volgt een voorbeeld van uitvoer:
CacheModeHDD : ReadWrite
CacheModeSSD : ReadWrite
De grootte van de cache aanpassen
De cache moet worden aangepast aan de werkset (de gegevens die op elk gewenst moment actief worden gelezen of geschreven) van uw toepassingen en workloads.
Dit is vooral belangrijk bij hybride implementaties met harde schijven. Als de actieve werkset groter is dan de grootte van de cache of als de actieve werkset te snel afdrijdt, nemen leescachemissers toe en moeten schrijfbewerkingen agressief worden gedefaseerd, wat de algehele prestaties nadelig beïnvloedt.
U kunt het ingebouwde hulpprogramma Prestatiemeter (PerfMon.exe) in Windows gebruiken om de snelheid van cachemissers te controleren. In het bijzonder kunt u de Cache Miss Reads/sec vergelijken van het cluster Storage Hybrid Disk-teller ingesteld op de algemene lees-IOPS van uw implementatie. Elke hybride schijf komt overeen met één capaciteitsstation.
Twee cachestations die zijn gebonden aan 4 capaciteitsstations, resulteert bijvoorbeeld in 4 exemplaren van hybride schijven per server.

Er is geen universele regel, maar als er te veel leesbewerkingen ontbreken in de cache, is deze mogelijk te klein en kunt u overwegen om cachestations toe te voegen om uw cache uit te breiden. U kunt op elk gewenst moment afzonderlijk cachestations of capaciteitsstations toevoegen.
Volgende stappen
Zie ook voor meer informatie over opslag:



