Parità accelerata con mirrorMirror-accelerated parity

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

Il sistema Spazi di archiviazione può fornire la tolleranza di errore per i dati tramite due tecniche fondamentali: mirroring e parità.Storage Spaces can provide fault tolerance for data using two fundamental techniques: mirror and parity. In Spazi di archiviazione diretta, ReFS introduce parità accelerata con mirroring, che consente di creare volumi che usano sia resilienze con mirroring che con 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à accelerata con mirroring offre una soluzione di archiviazione conveniente ed efficiente in termini di spazio senza compromettere le prestazioni.Mirror-accelerated parity offers inexpensive, space-efficient storage without sacrificing performance.

Volume-parità-accelerata-con-mirroring

InformazioniBackground

Gli schemi di resilienza con mirroring e con parità hanno caratteristiche di archiviazione e di prestazioni fondamentalmente 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.
  • Se si usa la parità, invece, è necessario ricalcolarla per ogni operazione di scrittura, causando 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 dati con una maggiore efficienza di 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.

Pertanto, il mirroring è predisposto per offrire una soluzione di archiviazione sensibile alle prestazioni, mentre la parità offre un migliore uso della capacità di archiviazione.Thus, mirror is predisposed to deliver performance-sensitive storage while parity offers improved storage capacity utilization. Nella parità accelerata con mirroring, ReFS sfrutta i vantaggi di ogni tipo di resilienza per offrire una soluzione di archiviazione efficiente in termini di capacità e sensibile alle prestazioni grazie alla combinazione di entrambi gli schemi di resilienza in 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 di dati sulla parità accelerata con mirrorData rotation on mirror-accelerated parity

ReFS ruota attivamente i dati tra mirroring e parità, in tempo reale.ReFS actively rotates data between mirror and parity, in real-time. In questo modo le scritture in ingresso vengono eseguite rapidamente nel mirroring e successivamente ruotate nella 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, i dati di I/O in ingresso vengono gestiti rapidamente nel mirroring mentre i dati ad accesso sporadico vengono archiviati in modo efficiente nella parità, offrendo sia prestazioni ottimali che archiviazione a basso costo 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 mirroring 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à accelerata con mirroring suddiviso in aree.The image below depicts a mirror-accelerated parity volume divided into regions.

Volume-parità-accelerata-con-mirroring-con-contenitori-archiviazione

ReFS inizia la rotazione di aree complete dal mirroring alla parità quando il livello di mirroring ha raggiunto un valore di capacità specificato.ReFS begins rotating full regions from mirror to parity once the mirror tier has reached a specified capacity level. Invece di spostare immediatamente i dati dal mirroring alla parità, ReFS attende e conserva i dati nel mirroring il più a lungo possibile, continuando in tal modo a offrire prestazioni ottimali per i dati (vedi "Prestazioni di 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 vengono spostati dal mirroring alla parità, i dati vengono letti, vengono calcolate le codifiche di parità e 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. L'animazione seguente illustra questo comportamento tramite un'area con mirroring a tre vie che viene 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:

Rotazione-parità-accelerata-con-mirroring

I/O su parità accelerata con mirroringIO on mirror-accelerated parity

Comportamento I/OIO behavior

Scritture: ReFS gestisce le scritture in ingresso in tre modi diversi: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 nel mirroring, 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 ingresso è una nuova scrittura e ReFS trova spazio libero sufficiente nel mirroring per gestire tale scrittura, ReFS scriverà nel mirroring.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. ](media/mirror-accelerated-parity/Write-to-Mirror.png) da ![Write a 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. Questo invalidamento rappresenta un'operazione sui metadati rapida e conveniente che consente di migliorare in modo significativo le prestazioni di scrittura nella parità.This invalidation is a quick and inexpensive metadata operation that helps meaningfully improve write performance made to parity. ](media/mirror-accelerated-parity/Reallocated-Write.png) di ![Reallocated scritturaReallocated-Write

  3. Scritture nella parità:Writes to Parity:

    Se ReFS non trova spazio libero sufficiente nel mirroring, scriverà nuovi dati nella parità o modificherà direttamente i dati esistenti in 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" seguente vengono fornite indicazioni per ridurre il numero di scritture nella parità.The “Performance optimizations” section below provides guidance that helps minimize writes to parity. ](media/mirror-accelerated-parity/Write-to-Parity.png) da ![Write a paritàWrite-to-Parity

Letture: ReFS leggerà 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, la cache in Spazi di archiviazione diretta memorizza tali dati per accelerare le letture successive.If parity is constructed with HDDs, the cache in Storage Spaces Direct will cache this data to accelerate future reads.

Nota

Le operazioni di lettura non causano mai la rotazione dei dati da parte di ReFS nel livello di mirroring.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 le proprie caratteristiche delle prestazioni.Writes: Each type of write described above has its own performance characteristics. In altre parole, le operazioni di scrittura nel livello di mirroring sono molto più veloci rispetto alle scritture riallocate e queste ultime sono notevolmente più rapide rispetto a scritture eseguite direttamente a 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: nessun impatto negativo significativo sulle prestazioni quando si esegue la lettura da parità:Reads: There is no meaningful, negative performance impact when reading from parity:

  • Se mirroring e parità vengono costruiti con lo stesso tipo di supporto, le prestazioni in termini di lettura saranno equivalenti.If mirror and parity are constructed with the same media type, read performance will be equivalent.
  • Se mirroring e parità sono costruiti da diversi tipi di supporti, ovvero con unità di mirroring SSD o unità di parità HDD, la cache in Spazi di archiviazione diretta consentirà di memorizzare dati ad accesso frequente per accelerare le letture da 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.

Background: in precedenza, quando i volumi di parità accelerata con mirroring erano completi, le prestazioni potevano diminuire.Background: Previously, as mirror-accelerated parity volumes became full, the performance of these volumes could degrade. Tale peggioramento è dovuto alla combinazione di dati ad accesso frequente e sporadico nel volume.The performance degrades because hot and cold data become mixed throughout the volume overtime. Ciò significa che nel mirroring possono essere archiviati meno dati ad accesso frequente perché lo spazio viene occupato anche dai dati ad accesso sporadico.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 ad accesso frequente nel mirroring è fondamentale per garantire prestazioni elevate perché le scritture dirette nel mirroring sono molto più veloci rispetto alle scritture riallocate e notevolmente più veloci delle scritture dirette 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. Di conseguenza la presenza di dati ad accesso sporadico nel mirroring non è un fattore positivo per le prestazioni, perché diminuisce la probabilità che ReFS possa scrivere direttamente nel mirroring.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 mirroring per i dati ad accesso frequente.ReFS compaction addresses these performance issues by freeing up space in mirror for hot data. La compattazione consolida prima tutti i dati, da mirroring e parità, in parità.Compaction first consolidates all data—from both mirror and parity—into parity. Ciò riduce la frammentazione all'interno del volume e aumenta la quantità di spazio indirizzabile nel mirroring.This reduces fragmentation within the volume and increases the amount of addressable space in mirror. Soprattutto, questo processo permette a ReFS di consolidare nel mirroring i dati ad accesso frequente:More importantly, this process enables ReFS to consolidate hot data back into mirror:

  • Quando sono presenti nuove operazioni di scrittura, verranno eseguite nel mirroring.When new writes come in, they will be serviced in mirror. Di conseguenza, i nuovi dati ad accesso frequente scritti si trovano nel mirroring.Thus, newly written, hot data resides in mirror.
  • Quando una scrittura di modifica viene eseguita su dati in parità, ReFS esegue una scrittura riallocata, in modo che anche questa venga gestita nel mirroring.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 ad accesso frequente spostati in parità durante la compattazione verranno riallocati nel mirroring.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 di prestazioniPerformance counters

ReFS gestisce contatori delle prestazioni per valutare le prestazioni della parità accelerata con 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 di mirroring si riempie più velocemente di quanto ReFS possa ruotare i dati in 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 tenere il passo con la frequenza di inserimento.In other words, ReFS rotation is not able to keep up with the ingestion rate. I contatori delle prestazioni seguenti identificano il momento in cui ReFS scrive direttamente in 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 diverso da zero, ReFS non ruota i dati in modo sufficientemente veloce all'esterno del mirroring.If these counters are non-zero, this indicates ReFS is not rotating data fast enough out of mirror. Per evitare 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 la rotazione dei dati quando il mirroring ha raggiunto una soglia di capacità specificata.ReFS begins rotating data once mirror has reached a specified capacity threshold.

  • Valori più elevati della soglia determinano un maggior tempo di permanenza dei dati nel livello di mirroring.Higher values of this rotation threshold cause ReFS to retain data in the mirror tier longer. Lasciare i dati ad accesso frequente nel livello di mirroring è una scelta ottimale per le prestazioni, ma ReFS non sarà in grado di gestire grandi quantità di dati 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.
  • Valori più bassi consentono a ReFS di rimuovere i dati e di inserire i dati di I/O in ingresso in modo efficiente.Lower values enable ReFS to proactively destage data and better ingest incoming IO. Ciò si applica ai carichi di lavoro con numerosi inserimenti, ad esempio memorizzazione di archivi.This is applicable to ingest-heavy workloads, such as archival storage. Valori più bassi, tuttavia, potrebbero compromettere le prestazioni per carichi di lavoro generale.Lower values, however, could degrade performance for general purpose workloads. Una rotazione dei dati non necessaria all'esterno del mirroring comporta una riduzione delle prestazioni.Unnecessarily rotating data out of the mirror tier carries a performance penalty.

ReFS introduce un parametro regolabile per modificare questa soglia, che può essere configurata con 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 di Spazi di archiviazione diretta ed è necessario riavviare il computer perché tutte le modifiche abbiano effetto.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: PercentageValueType: Percentage

Se tale chiave del Registro di sistema non è impostata, ReFS utilizzerà un valore predefinito di 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, mentre non sono consigliati valori inferiori al 50%.This default value is recommended for most deployments, and values below 50% are not recommended. Il comando PowerShell seguente illustra come impostare questa chiave del Registro di sistema con un valore pari al 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 ciascun nodo in una distribuzione di Spazi di archiviazione diretta, è possibile utilizzare 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 di mirroring permette a ReFS di mantenere una parte maggiore del working set nel mirroring.Increasing the size of the mirrored tier enables ReFS to retain a larger portion of the working set in mirror. Ciò aumenta la probabilità che ReFS scriva direttamente nel mirroring, con un conseguente incremento delle prestazioni.This improves the likelihood that ReFS can write directly to mirror, which will help achieve better performance. I cmdlet PowerShell seguente illustra come aumentare le dimensioni del livello di 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

Accertarsi di ridimensionare Partizione e Volume dopo il ridimensionamento di StorageTier.Make sure to resize the Partition and Volume after you resize the StorageTier. Per ulteriori informazioni ed esempi, vedere Ridimensionare volumi.For more information and examples, see Resize-Volumes.

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

Il cmdlet PowerShell seguente crea un volume con parità accelerata con mirroring con un rapporto mirror/parità del 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, vedi 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

Vedi ancheSee also