Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Opslagruimten kunnen fouttolerantie bieden voor gegevens met behulp van twee fundamentele technieken: spiegeling en pariteit. In Opslagruimten Direct introduceert ReFS gespiegelde pariteit, waarmee u volumes kunt maken die gebruikmaken van zowel spiegelings- als pariteitstoleranties. Gespiegelde, versnelde pariteit biedt goedkope en ruimte-efficiënte opslag zonder in te boeten aan prestaties.
Background
Spiegel- en pariteitstolerantieschema's hebben fundamenteel verschillende opslag- en prestatiekenmerken:
- Dankzij spiegeltolerantie kunnen gebruikers snelle schrijfprestaties bereiken, maar het repliceren van de gegevens voor elke kopie is niet ruimte efficiënt.
- Pariteit moet daarentegen pariteit voor elke schrijfbewerking opnieuw berekenen, waardoor de prestaties van willekeurige schrijfbewerkingen afnemen. Pariteit biedt gebruikers echter de mogelijkheid om hun gegevens op te slaan met een grotere ruimte-efficiëntie. Zie Fouttolerantie voor Opslagruimten voor meer informatie.
Mirroring is dus voorbestemd om prestatiekritische opslag te leveren, terwijl bij pariteit sprake is van een efficiënter gebruik van de opslagcapaciteit. In pariteit met versnelling op basis van spiegeling maakt ReFS gebruik van de voordelen van elk tolerantietype om zowel capaciteitsefficiënte als prestatiegevoelige opslag te bieden door beide tolerantieschema's binnen één volume te combineren.
Gegevensrotatie op gespiegelde, versnelde pariteit
Gegevens worden met ReFS actief geroteerd tussen spiegeling en pariteit, in realtime. Hierdoor kunnen binnenkomende schrijfbewerkingen snel worden geschreven naar spiegeling en vervolgens worden geroteerd naar pariteit om efficiënt te worden opgeslagen. Hierdoor wordt binnenkomende IO snel met spiegeling verwerkt, terwijl koude gegevens efficiënt worden opgeslagen in pariteit, waardoor zowel optimale prestatie als lage-kostenopslag kunnen worden geleverd binnen hetzelfde volume.
Als u gegevens wilt draaien tussen spiegeling en pariteit, verdeelt ReFS het volume logisch in regio's van 64 MiB, die de draaieenheid zijn. In de onderstaande afbeelding ziet u een spiegel-versneld pariteitsvolume dat is onderverdeeld in regio's.
ReFS begint met het roteren van volledige regio's van spiegeling naar pariteit zodra de gespiegelde laag een opgegeven capaciteitsniveau heeft bereikt. In plaats van direct gegevens te verplaatsen van spiegeling naar pariteit, wacht En bewaart ReFS gegevens zo lang mogelijk in de spiegel, zodat ReFS optimale prestaties voor de gegevens kan blijven leveren (zie 'IO-prestaties' hieronder).
Wanneer gegevens worden verplaatst van spiegeling naar pariteit, worden de gegevens gelezen, pariteitscoderingen berekend en worden die gegevens naar pariteit geschreven. In de onderstaande animatie ziet u dit met behulp van een drievoudig gespiegelde regio die tijdens de rotatie wordt geconverteerd naar een erasure gecodeerde regio.
I/O op spiegelversnelde pariteit
IO-gedrag
Schrijft: ReFS-services verwerken binnenkomende schrijfbewerkingen op drie verschillende manieren:
Schrijft naar spiegel:
- 1a. Als de binnenkomende schrijfbewerking bestaande gegevens in de spiegel aanpast, zal ReFS de gegevens ter plaatse wijzigen.
- 1b. Als de binnenkomende schrijfbewerking een nieuwe schrijfbewerking is en ReFS voldoende vrije ruimte in spiegeling kan vinden om deze schrijfbewerking te kunnen uitvoeren, schrijft ReFS naar mirror.
Schrijft naar de spiegel, herverdeeld van pariteit:
Als de binnenkomende schrijfbewerking gegevens wijzigt die zich in pariteit bevinden en ReFS voldoende vrije ruimte in de spiegeling kan vinden om de binnenkomende schrijfbewerking te verwerken, zal ReFS eerst de eerdere gegevens in pariteit ongeldig maken en vervolgens naar de spiegel schrijven. Deze invalidatie is een snelle en goedkope bewerking van metagegevens die helpt de schrijfprestaties bij pariteit zinvol te verbeteren.
Schrijven naar pariteit:
Als ReFS niet voldoende vrije ruimte in de gespiegelde laag kan vinden, schrijft ReFS nieuwe gegevens naar pariteit of wijzigt reFS bestaande gegevens rechtstreeks in pariteit. De sectie 'Prestatieoptimalisaties' hieronder bevat richtlijnen waarmee schrijfbewerkingen naar pariteit worden geminimaliseerd.
Leest: ReFS leest rechtstreeks vanuit de laag die de relevante gegevens bevat. Als pariteit is samengesteld met HDD's, zal de cache van Storage Spaces Direct deze gegevens opslaan om toekomstige leesbewerkingen te versnellen.
Note
Leesbewerkingen zorgen er nooit voor dat ReFS gegevens terug naar de gespiegelde laag verplaatst.
I/O-prestaties
Schrijft: Elk type schrijfbewerking dat hierboven wordt beschreven, heeft zijn eigen prestatiekenmerken. Grofweg zijn schrijfbewerkingen naar de gespiegelde laag veel sneller dan opnieuw toegewezen schrijfbewerkingen, en opnieuw toegewezen schrijfbewerkingen zijn aanzienlijk sneller dan schrijfbewerkingen die direct op de pariteitslaag worden uitgevoerd. Deze relatie wordt geïllustreerd door de onderstaande ongelijkheid:
- Spiegelingslaag > voor opnieuw toegewezen schrijfbewerkingen >> Pariteitslaag
Leest: Er is geen zinvolle, negatieve invloed op de prestaties bij het lezen vanaf een pariteitsschijf.
- Als spiegeling en pariteit zijn samengesteld met hetzelfde mediatype, zijn de leesprestaties gelijk.
- Als spiegeling en pariteit zijn samengesteld met verschillende mediatypen, gespiegelde SSD's, pariteits-HDD's, bijvoorbeeld, helpt de cache in Opslagruimten Direct bij het cachen van veelgebruikte gegevens om leest van pariteit te versnellen.
ReFS-compressie
Compressie voor ReFS is beschikbaar met Windows Server 2019 en nieuwere versies, waardoor de prestaties aanzienlijk worden verbeterd voor pariteitsvolumes met versnelling op basis van spiegeling die 90+% vol zijn.
Achtergrond: Eerder konden de prestaties van deze volumes afnemen wanneer spiegelversnelde pariteitsvolumes vol raakten. De prestaties verslechteren omdat hete en koude gegevens in de loop der tijd over het gehele volume worden gemengd. Dit betekent dat er minder dynamische gegevens in de spiegel kunnen worden opgeslagen, omdat koude gegevens ruimte in de spiegel in beslag nemen die anders door dynamische gegevens kunnen worden gebruikt. Het opslaan van actieve gegevens in een gespiegelde omgeving is essentieel voor het onderhouden van hoge prestaties, omdat schrijfbewerkingen die rechtstreeks naar de spiegel worden geschreven veel sneller zijn dan opnieuw toegewezen schrijfbewerkingen en orde van grootte sneller dan schrijfbewerkingen rechtstreeks naar pariteit. Het gebruik van koude gegevens in mirroring is dus slecht voor de prestaties, omdat het de kans vermindert dat ReFS schrijfbewerkingen rechtstreeks naar de spiegel kan uitvoeren.
ReFS-compactie lost deze prestatieproblemen op door ruimte vrij te maken in de gespiegelde opslag voor actieve gegevens. Met compressie worden eerst alle gegevens, van zowel spiegeling als pariteit, samengevoegd tot pariteit. Dit vermindert fragmentatie binnen het volume en verhoogt de hoeveelheid adresseerbare ruimte in de spiegel. Belangrijker is dat met dit proces ReFS dynamische gegevens weer in de gespiegelde laag kan samenvoegen:
- Wanneer er nieuwe schrijfbewerkingen binnenkomen, worden ze in de spiegel verwerkt. Nieuw geschreven, hete gegevens bevinden zich dus in de spiegel.
- Wanneer er een wijzigingsschrijf wordt gedaan naar gegevens in pariteit, maakt ReFS een herverdeelde schrijfbewerking, zodat deze schrijfbewerking ook in spiegelmodus wordt uitgevoerd. Daarom worden actieve gegevens die tijdens het samenvoegen naar pariteit zijn verplaatst, weer naar spiegeling verplaatst.
Prestatieoptimalisaties
Important
U wordt aangeraden schrijfintensieve VHD's in verschillende submappen te plaatsen. Dit komt doordat ReFS metagegevenswijzigingen schrijft op het niveau van een map en de bijbehorende bestanden. Dus als u schrijfintensieve bestanden over mappen distribueert, zijn metagegevensbewerkingen kleiner en worden ze parallel uitgevoerd, waardoor de latentie voor apps wordt verminderd.
Prestatiestatistieken
ReFS onderhoudt prestatiestatistieken om de prestaties van mirror-versnelde pariteit te evalueren.
Zoals hierboven beschreven in de sectie Schrijven naar pariteit, schrijft ReFS rechtstreeks naar pariteit wanneer er geen vrije ruimte in de spiegel kan worden gevonden. Over het algemeen gebeurt dit wanneer de gespiegelde laag sneller vol raakt dan ReFS gegevens naar pariteit kan draaien. Met andere woorden, ReFS-rotatie kan de opnamesnelheid niet bijhouden. De onderstaande prestatie-indicatoren geven aan wanneer ReFS rechtstreeks naar pariteit schrijft.
# Windows Server 2016 ReFS\Data allocations slow tier/sec ReFS\Metadata allocations slow tier/sec # Windows Server 2019 ReFS\Allocation of Data Clusters on Slow Tier/sec ReFS\Allocation of Metadata Clusters on Slow Tier/secAls deze tellers niet nul zijn, betekent dit dat ReFS niet snel genoeg gegevens roteert buiten de spiegel. Om dit te verlichten, kan men de rotatie-agressiviteit wijzigen of de grootte van de gespiegelde laag vergroten.
Rotatie-agressiviteit
ReFS begint met het roteren van gegevens zodra de spiegel een opgegeven capaciteitsdrempel heeft bereikt.
- Hogere waarden van deze rotatiedrempel zorgen ervoor dat ReFS gegevens langer in de gespiegelde laag bewaart. Het verlaten van dynamische gegevens in de mirrorlaag is optimaal voor prestaties, maar ReFS kan grote hoeveelheden binnenkomende IO niet effectief verwerken.
- Lagere waarden zorgen ervoor dat ReFS proactief gegevens affaseert en binnenkomende IO beter kan opnemen. Dit is van toepassing op opname-intensieve werkbelastingen, zoals archiveringsopslag. Lagere waarden kunnen echter de prestaties voor werkbelastingen voor algemeen gebruik verminderen. Het onnodig verplaatsen van gegevens uit de gespiegelde laag resulteert in prestatieverlies.
ReFS introduceert een instelbare parameter om deze drempelwaarde aan te passen, die kan worden geconfigureerd met behulp van een registersleutel. Deze registersleutel moet worden geconfigureerd op elk knooppunt in een Opslagruimten Direct-implementatie en opnieuw opstarten is vereist om wijzigingen door te voeren.
- Sleutel: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Policies
- ValueNaam (DWORD): DataDestageSsdFillRatioThreshold
- ValueType: Procent
Als deze registersleutel niet is ingesteld, gebruikt ReFS een standaardwaarde van 85%. Deze standaardwaarde wordt aanbevolen voor de meeste implementaties en waarden onder de 50% worden niet aanbevolen. De onderstaande PowerShell-opdracht laat zien hoe u deze registersleutel instelt met de waarde 75%:
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Policies -Name DataDestageSsdFillRatioThreshold -Value 75
Als u deze registersleutel wilt configureren voor elk knooppunt in een Storage Spaces Direct-implementatie, kunt u de Onderstaande PowerShell-opdracht gebruiken:
$Nodes = 'S2D-01', 'S2D-02', 'S2D-03', 'S2D-04'
Invoke-Command $Nodes {Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Policies -Name DataDestageSsdFillRatioThreshold -Value 75}
De grootte van de gespiegelde laag vergroten
Door de grootte van de gespiegelde laag te vergroten, kan ReFS een groter deel van de werkset in de gespiegelde laag behouden. Dit verbetert de kans dat ReFS rechtstreeks naar mirror kan schrijven, wat helpt betere prestaties te bereiken. De onderstaande PowerShell-cmdlets laten zien hoe u de grootte van de gespiegelde laag kunt vergroten:
Resize-StorageTier -FriendlyName "Performance" -Size 20GB
Resize-StorageTier -InputObject (Get-StorageTier -FriendlyName "Performance") -Size 20GB
Tip
Zorg ervoor dat u het formaat van de partitie en het volume wijzigt nadat u de grootte van de StorageTier hebt aangepast. Zie Een standaardvolume uitbreiden voor meer informatie en voorbeelden.
Een met spiegelversnelling versneld pariteitsvolume maken
Met de onderstaande PowerShell-cmdlet wordt een pariteitsvolume met spiegelversnelling gemaakt met een spiegel:pariteit-verhouding van 20:80, wat de aanbevolen configuratie is voor de meeste workloads. Zie Volumes maken in Opslagruimten Direct voor meer informatie en voorbeelden.
New-Volume -FriendlyName "TestVolume" -FileSystem CSVFS_ReFS -StoragePoolFriendlyName "StoragePoolName" -StorageTierFriendlyNames Performance, Capacity -StorageTierSizes 200GB, 800GB
Aanvullende verwijzingen
- Overzicht van ReFS
- ReFS-blok-klonen
- ReFS-integriteitsstromen
- Overzicht van Storage Spaces Direct