Parità accelerata con mirrorMirror-accelerated parity

Si applica a: Windows Server 2019, Windows Server 2016Applies to: Windows Server 2019, Windows Server 2016

Spazi di archiviazione può fornire tolleranza di errore per i dati usando due tecniche fondamentali: mirror e parità.Storage Spaces can provide fault tolerance for data using two fundamental techniques: mirror and parity. In spazi di archiviazione diretta, refs introduce la parità con accelerazione del mirroring, che consente di creare volumi che usano la resilienza di mirroring e parità.In Storage Spaces Direct, ReFS introduces mirror-accelerated parity, which enables you to create volumes that use both mirror and parity resiliencies. La parità con accelerazione con mirroring offre una risorsa di archiviazione economica e con efficienza di spazio senza sacrificare le prestazioni.Mirror-accelerated parity offers inexpensive, space-efficient storage without sacrificing performance.

Mirror-Accelerated-parità-volume

BackgroundBackground

Gli schemi di resilienza mirror e di parità hanno caratteristiche di archiviazione e prestazioni sostanzialmente diverse:Mirror and parity resiliency schemes have fundamentally different storage and performance characteristics:

  • La resilienza del mirror consente agli utenti di ottenere prestazioni di scrittura veloci, ma la replica dei dati per ogni copia non è efficiente nello spazio.Mirror resiliency allows users to attain fast write performance, but replicating the data for each copy isn't space efficient.
  • La parità, d'altra parte, deve ricalcolare la parità per ogni scrittura, causando una riduzione delle prestazioni di scrittura casuali.Parity, on the other hand, must re-compute parity for every write, causing random write performance to suffer. La parità, tuttavia, consente agli utenti di archiviare i propri dati con maggiore efficienza dello spazio.Parity does, however, allow users to store their data with greater space efficiency. Per altre informazioni, vedere tolleranza di errore di spazi di archiviazione.For more info, see Storage Spaces fault tolerance.

Di conseguenza, mirror è predisposto per la distribuzione di risorse di archiviazione sensibili alle prestazioni mentre la parità garantisce un utilizzo migliorato della capacità di archiviazione.Thus, mirror is predisposed to deliver performance-sensitive storage while parity offers improved storage capacity utilization. Nella parità con accelerazione con mirroring, ReFS sfrutta i vantaggi di ogni tipo di resilienza per offrire sia l'archiviazione con efficienza della capacità che quella sensibile alle prestazioni, combinando entrambi gli schemi di resilienza all'interno di un singolo volume.In mirror-accelerated parity, ReFS leverages the benefits of each resiliency type to deliver both capacity-efficient and performance-sensitive storage by combining both resiliency schemes within a single volume.

Rotazione dei dati sulla parità con accelerazione del mirroringData rotation on mirror-accelerated parity

ReFS ruota attivamente i dati tra mirror e parità in tempo reale.ReFS actively rotates data between mirror and parity, in real-time. In questo modo, le Scritture in ingresso possono essere scritte rapidamente nel mirror, quindi ruotate alla parità per essere archiviate in modo efficiente.This allows incoming writes to be quickly written to mirror then rotated to parity to be stored efficiently. In questo modo, le operazioni di i/o in ingresso vengono gestite rapidamente in mirroring, mentre i dati a freddo vengono archiviati in modo efficiente, garantendo prestazioni ottimali e archiviazione con costo perduto nello stesso volume.In doing so, incoming IO is serviced quickly in mirror while cold data is stored efficiently in parity, delivering both optimal performance and lost-cost storage within the same volume.

Per ruotare i dati tra mirror e parità, ReFS divide logicamente il volume in aree di 64 MiB, ovvero l'unità di rotazione.To rotate data between mirror and parity, ReFS logically divides the volume into regions of 64 MiB, which are the unit of rotation. L'immagine seguente illustra un volume di parità con accelerazione speculare diviso in aree.The image below depicts a mirror-accelerated parity volume divided into regions.

Mirror-Accelerated-parità-volume-with-Storage-Containers

ReFS inizia a ruotare le aree complete da mirror a parità quando il livello mirror ha raggiunto un livello di capacità specificato.ReFS begins rotating full regions from mirror to parity once the mirror tier has reached a specified capacity level. Anziché trasferire immediatamente i dati dal mirror alla parità, ReFS attende e mantiene i dati nel database mirror il più a lungo possibile, consentendo a ReFS di continuare a garantire prestazioni ottimali per i dati (vedere "prestazioni i/o" di seguito).Instead of immediately moving data from mirror to parity, ReFS waits and retains data in mirror as long as possible, allowing ReFS to continue delivering optimal performance for the data (see “IO performance” below).

Quando i dati vengono spostati da mirror a parità, i dati vengono letti, vengono calcolate le codifiche di parità, quindi i dati vengono scritti nella parità.When data is moved from mirror to parity, the data is read, parity encodings are computed, and then that data is written to parity. Nell'animazione seguente viene illustrato l'utilizzo di un'area con mirroring a tre vie convertita in un'area codificata di cancellazione durante la rotazione:The animation below illustrates this using a three-way mirrored region that is converted into an erasure coded region during rotation:

Speculare-accelerazione-parità-rotazione

I/o su parità con accelerazione speculareIO on mirror-accelerated parity

Comportamento IOIO behavior

Scritture: ReFS Services in ingresso scrive in tre modi distinti:Writes: ReFS services incoming writes in three distinct ways:

  1. Scritture nel database mirror:Writes to Mirror:

    • 1a.1a. Se la scrittura in ingresso modifica i dati esistenti in mirror, ReFS modificherà i dati sul posto.If the incoming write modifies existing data in mirror, ReFS will modify the data in place.
    • 1b.1b. Se la scrittura in arrivo è una nuova scrittura e ReFS è in grado di individuare correttamente lo spazio disponibile nel mirror per il servizio di questa scrittura, ReFS scriverà in mirror.If the incoming write is a new write, and ReFS can successfully find enough free space in mirror to service this write, ReFS will write to mirror. Write-to-mirrorWrite-to-Mirror
  2. Scrive nel mirror, riallocato dalla parità:Writes to Mirror, Reallocated from Parity:

    Se la scrittura in ingresso modifica i dati che sono in parità e ReFS riesce a trovare lo spazio disponibile in mirror per il servizio della scrittura in ingresso, ReFS invalida prima di tutto i dati precedenti nella parità e quindi scrive nel mirror.If the incoming write modifies data that's in parity, and ReFS can successfully find enough free space in mirror to service the incoming write, ReFS will first invalidate the previous data in parity and then write to mirror. Questa invalidazione è un'operazione di metadati rapida ed economica che consente di migliorare significativamente le prestazioni di scrittura apportate alla parità.This invalidation is a quick and inexpensive metadata operation that helps meaningfully improve write performance made to parity. Riallocato-scritturaReallocated-Write

  3. Scritture nella parità:Writes to Parity:

    Se ReFS non riesce a trovare lo spazio libero sufficiente nel mirror, ReFS scriverà nuovi dati in parità o modificherà direttamente i dati esistenti nella parità.If ReFS cannot successfully find enough free space in mirror, ReFS will write new data to parity or modify existing data in parity directly. Nella sezione "ottimizzazioni delle prestazioni" riportata di seguito vengono fornite indicazioni che consentono di ridurre al minimo le Scritture.The “Performance optimizations” section below provides guidance that helps minimize writes to parity. Scrittura a paritàWrite-to-Parity

Letture: ReFS viene letto direttamente dal livello che contiene i dati rilevanti.Reads: ReFS will read directly from the tier containing the relevant data. Se la parità viene costruita con HDD, nella cache Spazi di archiviazione diretta i dati vengono memorizzati nella cache per accelerare le letture future.If parity is constructed with HDDs, the cache in Storage Spaces Direct will cache this data to accelerate future reads.

Nota

Reads non fa mai in modo che ReFS ruoti i dati nel livello mirror.Reads never cause ReFS to rotate data back into the mirror tier.

Prestazioni i/oIO performance

Scritture: Ogni tipo di scrittura descritto in precedenza ha caratteristiche di prestazioni specifiche.Writes: Each type of write described above has its own performance characteristics. Approssimativamente, le scritture nel livello mirror sono molto più veloci rispetto alle Scritture riallocate e le Scritture riallocate sono molto più veloci rispetto alle scritture effettuate direttamente nel livello di parità.Roughly speaking, writes to the mirror tier are much faster than reallocated writes, and reallocated writes are significantly faster than writes made directly to the parity tier. Questa relazione è illustrata dalla disuguaglianza seguente:This relationship is illustrated by the inequality below:

  • Il livello mirror > le Scritture riallocate >> livello di paritàMirror Tier > Reallocated Writes >> Parity Tier

Letture: Non vi è alcun impatto significativo sulle prestazioni durante la lettura dalla parità:Reads: There is no meaningful, negative performance impact when reading from parity:

  • Se mirror e parità sono costruiti con lo stesso tipo di supporto, le prestazioni di lettura saranno equivalenti.If mirror and parity are constructed with the same media type, read performance will be equivalent.
  • Se mirror e parità sono costruiti con diversi tipi di supporto, ad esempio le unità SSD con mirroring e la parità HDD,la cache in spazi di archiviazione diretta consentirà di memorizzare nella cache i dati attivi per accelerare le letture della parità.If mirror and parity are constructed with different media types—Mirrored SSDs, Parity HDDs, for example—the cache in Storage Spaces Direct will help cache hot data to accelerate any reads from parity.

Compattazione ReFSReFS compaction

In questa versione semestrale, ReFS introduce la compattazione, che migliora significativamente le prestazioni per i volumi di parità con accelerazione speculare che sono pieni del 90%.In this Fall's semi-annual release, ReFS introduces compaction, which substantially improves performance for mirror-accelerated parity volumes that are 90+% full.

Sfondo: In precedenza, poiché i volumi di parità con accelerazione speculare si sono riempiti, le prestazioni di questi volumi potrebbero peggiorare.Background: Previously, as mirror-accelerated parity volumes became full, the performance of these volumes could degrade. Le prestazioni diminuiscono perché i dati ad accesso frequente e ad accesso sporadico vengono combinati in tutto il volume.The performance degrades because hot and cold data become mixed throughout the volume overtime. Ciò significa che i dati meno attivi possono essere archiviati in mirror, perché i dati a freddo occupano spazio in mirror che altrimenti potrebbero essere usati da dati sensibili.This means less hot data can be stored in mirror since cold data occupies space in mirror that could otherwise be used by hot data. L'archiviazione dei dati sensibili in mirror è essenziale per mantenere prestazioni elevate poiché le Scritture direttamente nel mirror sono molto più veloci rispetto alle Scritture riallocate e agli ordini di magnitudo più veloci rispetto alle Scritture direttamente nella parità.Storing hot data in mirror is critical to maintaining high performance because writes directly to mirror are much faster than reallocated writes and orders of magnitude faster than writes directly to parity. In questo modo, la presenza di dati inattivi nel mirror non è valida per le prestazioni, in quanto riduce la probabilità che ReFS possa creare scritture direttamente nel mirror.Thus, having cold data in mirror is bad for performance, as it reduces the likelihood that ReFS can make writes directly to mirror.

La compattazione ReFS risolve questi problemi di prestazioni liberando spazio nel mirror per i dati sensibili.ReFS compaction addresses these performance issues by freeing up space in mirror for hot data. La compattazione consente innanzitutto di consolidare tutti i dati, dal mirror e dalla parità, alla parità.Compaction first consolidates all data—from both mirror and parity—into parity. In questo modo si riduce la frammentazione all'interno del volume e si aumenta la quantità di spazio indirizzabile in mirror.This reduces fragmentation within the volume and increases the amount of addressable space in mirror. Ancora più importante, questo processo consente a ReFS di consolidare i dati a caldo in mirror:More importantly, this process enables ReFS to consolidate hot data back into mirror:

  • Quando le nuove scritture vengono fornite, verranno gestite in mirror.When new writes come in, they will be serviced in mirror. Di conseguenza, i dati attivi appena scritti si trovano in mirror.Thus, newly written, hot data resides in mirror.
  • Quando viene apportata una modifica alla scrittura dei dati nella parità, ReFS esegue una scrittura riallocata, quindi questa scrittura viene gestita anche in mirror.When a modifying write is made to data in parity, ReFS makes a reallocated write, so this write is serviced in mirror as well. Di conseguenza, i dati attivi spostati nella parità durante la compattazione verranno riallocati nuovamente in mirror.Consequently, hot data that was moved into parity during compaction will be reallocated back into mirror.

Ottimizzazioni delle prestazioniPerformance optimizations

Importante

Si consiglia di inserire dischi rigidi virtuali con intensa attività di scrittura in sottodirectory diverse.We recommend placing write-heavy VHDs in different subdirectories. Questo è dovuto al fatto che ReFS scrive le modifiche dei metadati a livello di una directory e dei relativi file.This is because ReFS writes metadata changes at the level of a directory and its files. Quindi, se si distribuiscono file con attività di scrittura in più directory, le operazioni sui metadati sono più piccole ed eseguite in parallelo, riducendo la latenza per le app.So if you distribute write-heavy files across directories, metadata operations are smaller and run in parallel, reducing latency for apps.

Contatori delle prestazioniPerformance counters

ReFS mantiene i contatori delle prestazioni per facilitare la valutazione delle prestazioni della parità con accelerazione del mirroring.ReFS maintains performance counters to help evaluate the performance of mirror-accelerated parity.

  • Come descritto in precedenza nella sezione scrivere nella parità, ReFS scrive direttamente nella parità quando non riesce a trovare lo spazio disponibile nel mirror.As described above in the Write to Parity section, ReFS will write directly to parity when it can't find free space in mirror. In genere, ciò si verifica quando il livello con mirroring si riempie più velocemente di ReFS che può ruotare i dati alla parità.Generally, this occurs when the mirrored tier fills up faster than ReFS can rotate data to parity. In altre parole, la rotazione ReFS non è in grado di rimanere al passo con la velocità di inserimento.In other words, ReFS rotation is not able to keep up with the ingestion rate. I contatori delle prestazioni seguenti identificano quando ReFS scrive direttamente nella parità:The performance counters below identify when ReFS writes directly to parity:

    # 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/sec
    
  • Se questi contatori sono diversi da zero, significa che i dati non vengono ruotati abbastanza rapidamente dal mirror.If these counters are non-zero, this indicates ReFS is not rotating data fast enough out of mirror. Per risolvere questo problema, è possibile modificare l'aggressività della rotazione o aumentare le dimensioni del livello con mirroring.To help alleviate this, one can either change the rotation aggressiveness or increase the size of the mirrored tier.

Aggressività della rotazioneRotation aggressiveness

ReFS inizia a ruotare i dati dopo che il mirror ha raggiunto una soglia di capacità specificata.ReFS begins rotating data once mirror has reached a specified capacity threshold.

  • I valori più alti di questa soglia di rotazione provocano la conservazione dei dati nel livello mirror più a lungo.Higher values of this rotation threshold cause ReFS to retain data in the mirror tier longer. Lasciare i dati attivi nel livello mirror è ottimale per le prestazioni, ma ReFS non sarà in grado di soddisfare in modo efficiente grandi quantità di i/o in ingresso.Leaving hot data in the mirror tier is optimal for performance, but ReFS will not be able to effectively service large amounts of incoming IO.
  • I valori inferiori consentono a ReFS di deinstallare in modo proattivo i dati e di inserire meglio i/o in ingresso.Lower values enable ReFS to proactively destage data and better ingest incoming IO. Questa operazione è applicabile ai carichi di lavoro con utilizzo intensivo di inserimento, ad esempio l'archiviazione dell'archivio.This is applicable to ingest-heavy workloads, such as archival storage. I valori più bassi, tuttavia, possono peggiorare le prestazioni per carichi di lavoro per utilizzo generico.Lower values, however, could degrade performance for general purpose workloads. La rotazione inutilmente dei dati dal livello mirror comporta una riduzione delle prestazioni.Unnecessarily rotating data out of the mirror tier carries a performance penalty.

ReFS introduce un parametro ottimizzabile per regolare questa soglia, che può essere configurata tramite una chiave del registro di sistema.ReFS introduces a tunable parameter to adjust this threshold, which is configurable using a registry key. Questa chiave del registro di sistema deve essere configurata in ogni nodo in una distribuzione spazi di archiviazione direttaed è necessario riavviare il sistema per rendere effettive le modifiche.This registry key must be configured on each node in a Storage Spaces Direct deployment, and a restart is required for any changes to take effect.

  • Chiave: HKEY_LOCAL_MACHINE \System\CurrentControlSet\PoliciesKey: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Policies
  • ValueName (DWORD): DataDestageSsdFillRatioThresholdValueName (DWORD): DataDestageSsdFillRatioThreshold
  • ValueType: PercentualeValueType: Percentage

Se questa chiave del registro di sistema non è impostata, ReFS utilizzerà il valore predefinito 85%.If this registry key is not set, ReFS will use a default value of 85%. Questo valore predefinito è consigliato per la maggior parte delle distribuzioni e non è consigliabile usare valori inferiori al 50%.This default value is recommended for most deployments, and values below 50% are not recommended. Il comando di PowerShell seguente illustra come impostare la chiave del registro di sistema con un valore pari a 75%:The PowerShell command below demonstrates how to set this registry key with a value of 75%:

Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Policies -Name DataDestageSsdFillRatioThreshold -Value 75

Per configurare questa chiave del registro di sistema in ogni nodo di una distribuzione di Spazi di archiviazione diretta, è possibile usare il comando PowerShell seguente:To configure this registry key across each node in a Storage Spaces Direct deployment, you can use the PowerShell command below:

$Nodes = 'S2D-01', 'S2D-02', 'S2D-03', 'S2D-04'
Invoke-Command $Nodes {Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Policies -Name DataDestageSsdFillRatioThreshold -Value 75}

Aumento delle dimensioni del livello con mirroringIncreasing the size of the mirrored tier

L'aumento delle dimensioni del livello con mirroring consente a ReFS di conservare una parte più ampia del working set in mirror.Increasing the size of the mirrored tier enables ReFS to retain a larger portion of the working set in mirror. Ciò migliora la probabilità che ReFS possa scrivere direttamente nel mirror, consentendo di ottenere prestazioni migliori.This improves the likelihood that ReFS can write directly to mirror, which will help achieve better performance. I cmdlet di PowerShell riportati di seguito illustrano come aumentare le dimensioni del livello con mirroring:The PowerShell cmdlets below demonstrate how to increase the size of the mirrored tier:

Resize-StorageTier -FriendlyName “Performance” -Size 20GB
Resize-StorageTier -InputObject (Get-StorageTier -FriendlyName “Performance”) -Size 20GB

Suggerimento

Assicurarsi di ridimensionare la partizione e il volume dopo aver ridimensionato il StorageTier.Make sure to resize the Partition and Volume after you resize the StorageTier. Per ulteriori informazioni ed esempi, vedere Resize-Volumes.For more information and examples, see Resize-Volumes.

Creazione di un volume di parità con accelerazione con mirroringCreating a mirror-accelerated parity volume

Il cmdlet di PowerShell seguente crea un volume di parità con accelerazione speculare con un rapporto Mirror: parità di 20:80, ovvero la configurazione consigliata per la maggior parte dei carichi di lavoro.The PowerShell cmdlet below creates a mirror-accelerated parity volume with a Mirror:Parity ratio of 20:80, which is the recommended configuration for most workloads. Per ulteriori informazioni ed esempi, vedere creazione di volumi in spazi di archiviazione diretta.For more information and examples, see Creating volumes in Storage Spaces Direct.

New-Volume – FriendlyName “TestVolume” -FileSystem CSVFS_ReFS -StoragePoolFriendlyName “StoragePoolName” -StorageTierFriendlyNames Performance, Capacity -StorageTierSizes 200GB, 800GB

Altri riferimentiAdditional References