Delen via


Inzicht in de cache van de opslaggroep

Van toepassing op: Azure Stack HCI, versies 22H2 en 21H2; Windows Server 2022, Windows Server 2019

Belangrijk

Azure Stack HCI maakt nu deel uit van Azure Local. De naam van productdocumentatie wordt nog steeds bijgewerkt. Oudere versies van Azure Stack HCI, bijvoorbeeld 22H2, blijven verwijzen naar Azure Stack HCI en geven de naamwijziging niet weer. Meer informatie.

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 geen handmatig beheer vereist. 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 Beschrijving
PMem PMem verwijst naar permanent geheugen, een nieuw type lage latentie, opslag met hoge prestaties.
NVMe 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 hogere IOPS- en I/O-doorvoer met lagere latentie dan elk ander type station dat we vandaag ondersteunen, behalve PMem.
SSD SSD verwijst naar solid-state drives, die verbinding maken via conventionele SATA of SAS.
HDD HDD verwijst naar roterende, magnetische harde schijven, die een enorme opslagcapaciteit bieden tegen lage kosten.

Deze kunnen op verschillende manieren worden gecombineerd, die we in twee categorieën groeperen: 'all-flash' en 'hybride'. Implementaties met alle HDD's worden niet ondersteund.

Notitie

In dit artikel worden cacheconfiguraties behandeld met NVMe, SSD en HDD. Zie Permanent geheugen begrijpen en implementeren voor informatie over het gebruik van permanent geheugen als cache.

All-flash implementatiemogelijkheden

All-flash-implementaties zijn gericht op het maximaliseren van de opslagprestaties en bevatten geen HDD.

Diagram met all-flash-implementaties, waaronder NVMe voor capaciteit, NVMe voor cache met SSD voor capaciteit en SSD voor capaciteit.

Mogelijkheden voor hybride implementatie

Hybride implementaties streven ernaar om de prestaties en capaciteit te verdelen of om de capaciteit te maximaliseren, en omvatten HDD.

Diagram toont hybride implementaties, waaronder NVMe voor cache met HDD voor capaciteit, SSD voor cache met HDD voor capaciteit en NVMe voor cache met HDD plus SSD voor capaciteit.

Notitie

Hybride implementatie wordt niet ondersteund in de configuratie van één server. Alle configuraties van één opslagtype (bijvoorbeeld all-NVMe of all-SSD) zijn 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 resterende stations worden gebruikt voor capaciteit.

Welk type 'snelste' wordt bepaald volgens de volgende hiërarchie.

Diagram toont schijftypen die sneller zijn gerangschikt naar trager in de volgorde NVMe, SSD, niet-gelabelde schijf die HDD vertegenwoordigt.

Als u bijvoorbeeld NVMe en SSD'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 ergens anders 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 logisch. In all-NVMe- of all-SSD-implementaties, met name op zeer kleine schaal, kan het gebruik van schijven in de cache de opslagefficiëntie verbeteren en de prestaties maximaliseren. Op dezelfde manier kunnen kleine externe implementaties 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 SSD's opslaan in cache voor HDD's), worden zowel lees- als schrijfbewerkingen in de cache opgeslagen.

Diagram waarin caching voor all-flash wordt vergeleken, waarbij schrijfbewerkingen in de cache worden opgeslagen en leesbewerkingen niet, met hybride, waarbij zowel lees- als schrijfbewerkingen in de cache worden 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 SSD's te versnellen. Bij caching voor all-flash-implementaties worden alleen schrijfbewerkingen in de cache opgeslagen. Dit vermindert de slijtage van de capaciteitsstations omdat veel schrijf- en schrijfbewerkingen 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 schijven met een hoger uithoudingsvermogen, geoptimaliseerd voor schrijfbewerkingen voor de cache te selecteren. De capaciteitsstations kunnen redelijkerwijs een lagere schrijfduur hebben.

Omdat leesbewerkingen de levensduur van flash niet aanzienlijk beïnvloeden en omdat SSD's universeel 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 ze 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.

Cache voor lezen/schrijven 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 gelezen gegevens 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 te absorberen 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 IO-patroon naar de schijf te emuleren, zelfs wanneer de werkelijke I/O die afkomstig is van de werkbelasting (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 in de cache opgeslagen 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 cachegedrag is voor elke implementatiemogelijkheid.

Implementatie Cachestations Capaciteitsstations Cachegedrag (standaard)
Alle NVMe's 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 en 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 door software gedefinieerde Windows-opslagstack bevindt, heeft deze geen kennis nodig van concepten zoals Opslagruimten of fouttolerantie. U kunt het beschouwen als het maken van 'hybride' stations (onderdeel flash, onderdeelschijf) die vervolgens aan het besturingssysteem worden gepresenteerd. Net als bij een echte hybride schijf is de realtime verplaatsing van hete en koude gegevens tussen de snellere en langzamere delen van de fysieke media bijna onzichtbaar voor de buitenkant.

Aangezien 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.

Diagram vertegenwoordigt drie servers die zijn gekoppeld door een spiegel in drie richtingen in een opslagruimtelaag, die toegang heeft tot een cachelaag van NVMe-stations die toegang hebben tot niet-gelabelde capaciteitsstations.

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 afzonderlijk cachestations of capaciteitsstations kunt toevoegen.

Diagram met animatie toont twee NVMe-cachestations die dynamisch worden toegewezen aan de eerste vier, vervolgens zes en vervolgens acht capaciteitsstations.

U wordt aangeraden 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 in cachestations afhandelen

Wanneer een cachestation uitvalt, gaan schrijfbewerkingen die nog niet zijn gedefaseerd verloren aan de lokale server, wat betekent dat ze alleen bestaan op de andere kopieën (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 weergegeven. Zodra de cache opnieuwbinding heeft plaatsgevonden (automatisch) en het herstellen van gegevens is voltooid (automatisch), worden ze weer weergegeven als in orde.

In dit scenario zijn minimaal twee cachestations per server vereist om de prestaties te behouden.

Diagram met animatie toont twee SSD-cachestations die zijn toegewezen aan zes capaciteitsstations totdat één cachestation mislukt, waardoor alle zes stations worden toegewezen aan het resterende cachestation.

Vervolgens kunt u het cachestation vervangen net als elke andere stationsvervanging.

Notitie

Mogelijk moet u inschakelen om NVMe die is invoegtoepassingskaart (AIC) of M.2-formulierfactor veilig te vervangen.

Relatie met andere caches

Er zijn verschillende andere niet-gerelateerde caches in de Windows-software-gedefinieerde opslagstack. Voorbeelden hiervan zijn de Opslagruimten cache voor write-back en de leescache cluster shared volume (CSV) in het geheugen.

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 niet 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 met ondersteuningsonderdelen van Health Service, zoals beschreven in het overzicht van Health Service.

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 kan onderscheiden, zoals schrijfduur, automatisch tussen stations van hetzelfde type.

Als u stations met een hoger uithoudingsvermogen wilt gebruiken voor cache 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 de modeltekenreeks exact overeenkomt zoals deze wordt weergegeven in de uitvoer van Get-PhysicalDisk.

Opmerking

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 de eigenschap Gebruik de tekst 'Logboek' bevat.

Mogelijkheden voor handmatige implementatie

Handmatige configuratie maakt de volgende implementatiemogelijkheden mogelijk:

Diagram toont implementatiemogelijkheden, waaronder NVMe voor zowel cache als capaciteit, SSD voor zowel cache als capaciteit, en SSD voor cache en gemengde SSD en HDD voor capaciteit.

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 om het gedrag te wijzigen, tenzij u zeker weet dat de standaardinstelling niet past bij uw workload.

Als u het gedrag wilt overschrijven, gebruikt u de cmdlet Set-ClusterStorageSpacesDirect en de parameters -CacheModeSSD en -CacheModeHDD . De parameter CacheModeSSD stelt het cachegedrag in bij het opslaan in cache voor SSD. De parameter CacheModeHDD stelt cachegedrag in bij het opslaan in cache voor HDD.

U kunt Get-ClusterStorageSpacesDirect gebruiken om te controleren of het gedrag is ingesteld.

Opmerking

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 een bepaald moment actief worden gelezen of geschreven) van uw toepassingen en workloads.

Dit is vooral belangrijk in 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. U kunt met name de cache miss reads/sec vergelijken met de teller voor hybride schijfclusteropslag die is ingesteld op de algemene lees-IOPS van uw implementatie. Elke hybride schijf komt overeen met één capaciteitsstation.

2 cachestations die zijn gebonden aan 4 capaciteitsstations, resulteert bijvoorbeeld in 4 exemplaren van hybride schijven per server.

Prestatiemeter.

Er is geen universele regel, maar als er te veel leesbewerkingen ontbreken in de cache, is deze mogelijk te klein en kunt u overwegen 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: