Paridad acelerada por reflejoMirror-accelerated parity

Se aplica a: Windows Server 2019, Windows Server 2016Applies to: Windows Server 2019, Windows Server 2016

Los espacios de almacenamiento pueden proporcionar tolerancia a errores para los datos mediante dos técnicas fundamentales: reflejo y paridad.Storage Spaces can provide fault tolerance for data using two fundamental techniques: mirror and parity. En espacios de almacenamiento directo, ReFS introduce una paridad acelerada para el reflejo, que permite crear volúmenes que usan resistencias de reflejo y paridad.In Storage Spaces Direct, ReFS introduces mirror-accelerated parity, which enables you to create volumes that use both mirror and parity resiliencies. La paridad con aceleración de reflejo ofrece almacenamiento económico y rentable sin sacrificar el rendimiento.Mirror-accelerated parity offers inexpensive, space-efficient storage without sacrificing performance.

Mirror-Accelerated-Parity-Volume

Información previaBackground

Los esquemas de resistencia de reflejo y paridad tienen características de almacenamiento y rendimiento fundamentalmente diferentes:Mirror and parity resiliency schemes have fundamentally different storage and performance characteristics:

  • La resistencia reflejada permite a los usuarios lograr un rendimiento de escritura rápido, pero la replicación de los datos de cada copia no es eficaz.Mirror resiliency allows users to attain fast write performance, but replicating the data for each copy isn't space efficient.
  • La paridad, por otro lado, debe volver a calcular la paridad para cada escritura, lo que provocará que el rendimiento de escritura aleatorio se vea afectado.Parity, on the other hand, must re-compute parity for every write, causing random write performance to suffer. Sin embargo, la paridad permite que los usuarios almacenen sus datos con mayor eficacia de espacio.Parity does, however, allow users to store their data with greater space efficiency. Para obtener más información, consulte tolerancia a errores de espacios de almacenamiento.For more info, see Storage Spaces fault tolerance.

Por lo tanto, el reflejo se ha desechado para ofrecer almacenamiento sensible al rendimiento, mientras que la paridad ofrece una mejor utilización de la capacidad de almacenamiento.Thus, mirror is predisposed to deliver performance-sensitive storage while parity offers improved storage capacity utilization. En la paridad con aceleración de reflejo, ReFS aprovecha las ventajas de cada tipo de resistencia para ofrecer almacenamiento de gran capacidad y sensible al rendimiento mediante la combinación de los esquemas de resistencia de un solo volumen.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.

Rotación de datos en paridad de reflejo aceleradoData rotation on mirror-accelerated parity

ReFS gira activamente los datos entre el reflejo y la paridad, en tiempo real.ReFS actively rotates data between mirror and parity, in real-time. Esto permite escribir rápidamente las escrituras entrantes en el reflejo y luego girarlas a la paridad para que se almacenen de forma eficaz.This allows incoming writes to be quickly written to mirror then rotated to parity to be stored efficiently. Al hacerlo, la e/s de entrada se presta más rápido en el reflejo, mientras que los datos inactivos se almacenan de forma eficaz en paridad, lo que proporciona un rendimiento óptimo y almacenamiento de costos perdidos en el mismo volumen.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.

Para girar datos entre el reflejo y la paridad, ReFS divide lógicamente el volumen en regiones de 64 MiB, que son la unidad de rotación.To rotate data between mirror and parity, ReFS logically divides the volume into regions of 64 MiB, which are the unit of rotation. En la imagen siguiente se muestra un volumen de paridad acelerado para reflejo dividido en regiones.The image below depicts a mirror-accelerated parity volume divided into regions.

Mirror-Accelerated-Parity-Volume-with-Storage-containers

ReFS comienza a rotar las regiones completas de reflejo a paridad una vez que el nivel de reflejo ha alcanzado un nivel de capacidad especificado.ReFS begins rotating full regions from mirror to parity once the mirror tier has reached a specified capacity level. En lugar de mover inmediatamente los datos del reflejo a la paridad, ReFS espera y retiene los datos en el reflejo siempre que sea posible, lo que permite que ReFS siga proporcionando un rendimiento óptimo para los datos (vea "rendimiento de e/s" a continuación).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).

Cuando los datos se mueven del reflejo a la paridad, se leen los datos, se calculan las codificaciones de paridad y, a continuación, los datos se escriben en la paridad.When data is moved from mirror to parity, the data is read, parity encodings are computed, and then that data is written to parity. La animación siguiente muestra esto con una región reflejada triple que se convierte en una región codificada de borrado durante la rotación:The animation below illustrates this using a three-way mirrored region that is converted into an erasure coded region during rotation:

Reflejo-acelerado-paridad-rotación

E/s en paridad acelerada de reflejoIO on mirror-accelerated parity

Comportamiento de e/sIO behavior

Escrituras: ReFS Services entrantes escrituras de tres maneras distintas:Writes: ReFS services incoming writes in three distinct ways:

  1. Escribe en el reflejo:Writes to Mirror:

    • 1Una.1a. Si la escritura entrante modifica los datos existentes en el reflejo, ReFS modificará los datos en su lugar.If the incoming write modifies existing data in mirror, ReFS will modify the data in place.
    • ter.1b. Si la escritura entrante es una nueva escritura y ReFS puede encontrar correctamente suficiente espacio disponible en el reflejo para atender esta escritura, ReFS escribirá en el reflejo.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. Escritura en reflejoWrite-to-Mirror
  2. Escribe en el reflejo, reasignado desde la paridad:Writes to Mirror, Reallocated from Parity:

    Si la escritura entrante modifica los datos que están en paridad y ReFS puede encontrar correctamente suficiente espacio disponible en el reflejo para atender la escritura entrante, ReFS invalidará primero los datos anteriores en paridad y, a continuación, escribirá en el reflejo.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. Esta invalidación es una operación de metadatos rápida y económica que ayuda a mejorar de forma significativa el rendimiento de escritura realizado en la paridad.This invalidation is a quick and inexpensive metadata operation that helps meaningfully improve write performance made to parity. Reasignado: escrituraReallocated-Write

  3. Escribe en la paridad:Writes to Parity:

    Si ReFS no puede encontrar correctamente suficiente espacio disponible en el reflejo, ReFS escribirá nuevos datos en la paridad o modificará los datos existentes en la paridad directamente.If ReFS cannot successfully find enough free space in mirror, ReFS will write new data to parity or modify existing data in parity directly. En la sección "optimizaciones de rendimiento" se proporcionan instrucciones que ayudan a minimizar las escrituras en la paridad.The “Performance optimizations” section below provides guidance that helps minimize writes to parity. Escritura a paridadWrite-to-Parity

Lecturas: ReFS leerá directamente desde el nivel que contiene los datos pertinentes.Reads: ReFS will read directly from the tier containing the relevant data. Si la paridad se construye con HDD, la memoria caché de Espacios de almacenamiento directo almacenará en caché estos datos para acelerar las lecturas futuras.If parity is constructed with HDDs, the cache in Storage Spaces Direct will cache this data to accelerate future reads.

Nota

Las lecturas nunca provocan que las referencias vuelvan a girar los datos en el nivel de reflejo.Reads never cause ReFS to rotate data back into the mirror tier.

Rendimiento de e/sIO performance

Escrituras: Cada tipo de escritura descrito anteriormente tiene sus propias características de rendimiento.Writes: Each type of write described above has its own performance characteristics. En términos generales, las escrituras en el nivel de reflejo son mucho más rápidas que las escrituras reasignadas y las escrituras reasignadas son significativamente más rápidas que las escrituras realizadas directamente al nivel de paridad.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. Esta relación se muestra en la desigualdad siguiente:This relationship is illustrated by the inequality below:

  • Nivel de reflejo > escrituras reasignadas >> nivel de paridadMirror Tier > Reallocated Writes >> Parity Tier

Lecturas: No hay ningún impacto negativo significativo en el rendimiento al leer de la paridad:Reads: There is no meaningful, negative performance impact when reading from parity:

  • Si el reflejo y la paridad se construyen con el mismo tipo de medio, el rendimiento de lectura será equivalente.If mirror and parity are constructed with the same media type, read performance will be equivalent.
  • Si el reflejo y la paridad se construyen con distintos tipos de medios (SSD reflejadas, HDD de paridad, por ejemplo),la memoria caché de espacios de almacenamiento directo ayudará a almacenar en caché los datos activos para acelerar las lecturas de la paridad.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.

Compactación de ReFSReFS compaction

En esta versión semestral, ReFS incorpora compactación, lo que mejora considerablemente el rendimiento de los volúmenes de paridad acelerados para reflejos que están llenos en el 90%.In this Fall's semi-annual release, ReFS introduces compaction, which substantially improves performance for mirror-accelerated parity volumes that are 90+% full.

Información general: Anteriormente, a medida que los volúmenes de paridad acelerada de reflejo se llenaban, el rendimiento de estos volúmenes podía degradarse.Background: Previously, as mirror-accelerated parity volumes became full, the performance of these volumes could degrade. El rendimiento disminuye porque los datos activos y en frío se mezclan a lo largo de las horas extras del volumen.The performance degrades because hot and cold data become mixed throughout the volume overtime. Esto significa que los datos inactivos se pueden almacenar en reflejo, ya que los datos inactivos ocupan espacio en reflejo que, de otro modo, podrían usar los datos activos.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. Almacenar los datos activos en reflejo es fundamental para mantener un alto rendimiento, ya que las escrituras directamente en el reflejo son mucho más rápidas que las escrituras reasignadas y los pedidos de magnitud más rápido que las escrituras directamente en la paridad.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. Por lo tanto, tener los datos inactivos en el reflejo es incorrecto para el rendimiento, ya que reduce la probabilidad de que ReFS pueda realizar escrituras directamente en el reflejo.Thus, having cold data in mirror is bad for performance, as it reduces the likelihood that ReFS can make writes directly to mirror.

La compactación ReFS soluciona estos problemas de rendimiento liberando espacio en el reflejo de los datos activos.ReFS compaction addresses these performance issues by freeing up space in mirror for hot data. En primer lugar, la compactación consolida todos los datos (desde el reflejo y la paridad) en la paridad.Compaction first consolidates all data—from both mirror and parity—into parity. Esto reduce la fragmentación dentro del volumen y aumenta la cantidad de espacio direccionable en el reflejo.This reduces fragmentation within the volume and increases the amount of addressable space in mirror. Y lo que es más importante, este proceso permite a las referencias consolidar los datos activos en el servidor reflejado:More importantly, this process enables ReFS to consolidate hot data back into mirror:

  • Cuando llegan nuevas escrituras, se les presta servicio en el reflejo.When new writes come in, they will be serviced in mirror. Por lo tanto, los datos activos recién escritos se encuentran en el reflejo.Thus, newly written, hot data resides in mirror.
  • Cuando se realiza una escritura modificada en los datos en la paridad, ReFS realiza una escritura reasignada, por lo que esta escritura también se da servicio en el reflejo.When a modifying write is made to data in parity, ReFS makes a reallocated write, so this write is serviced in mirror as well. Por lo tanto, los datos activos que se movieron a la paridad durante la compactación se volverán a asignar en reflejo.Consequently, hot data that was moved into parity during compaction will be reallocated back into mirror.

Optimizaciones de rendimientoPerformance optimizations

Importante

Se recomienda colocar los VHD con mucha escritura en subdirectorios diferentes.We recommend placing write-heavy VHDs in different subdirectories. Esto se debe a que ReFS escribe los cambios de metadatos en el nivel de un directorio y sus archivos.This is because ReFS writes metadata changes at the level of a directory and its files. Por lo tanto, si distribuye archivos con mucha escritura a través de directorios, las operaciones de metadatos son más pequeñas y se ejecutan en paralelo, lo que reduce la latencia de las aplicaciones.So if you distribute write-heavy files across directories, metadata operations are smaller and run in parallel, reducing latency for apps.

Contadores de rendimientoPerformance counters

ReFS mantiene los contadores de rendimiento para ayudar a evaluar el rendimiento de la paridad con aceleración del reflejo.ReFS maintains performance counters to help evaluate the performance of mirror-accelerated parity.

  • Tal y como se describió anteriormente en la sección escritura en paridad, ReFS escribirá directamente en la paridad cuando no encuentre espacio disponible en el reflejo.As described above in the Write to Parity section, ReFS will write directly to parity when it can't find free space in mirror. Por lo general, esto ocurre cuando el nivel reflejado se llena más rápido que ReFS puede rotar los datos a la paridad.Generally, this occurs when the mirrored tier fills up faster than ReFS can rotate data to parity. En otras palabras, la rotación de ReFS no puede mantener el ritmo de la ingesta.In other words, ReFS rotation is not able to keep up with the ingestion rate. Los contadores de rendimiento que se indican a continuación identifican Cuándo ReFS escribe directamente en la paridad: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
    
  • Si estos contadores son distintos de cero, esto indica que ReFS no está girando los datos lo suficientemente rápido como para reflejarse.If these counters are non-zero, this indicates ReFS is not rotating data fast enough out of mirror. Para ayudar a mitigar esto, puede cambiar la intensidad de giro o aumentar el tamaño del nivel reflejado.To help alleviate this, one can either change the rotation aggressiveness or increase the size of the mirrored tier.

Agresividad de giroRotation aggressiveness

ReFS comienza a rotar los datos una vez que el reflejo ha alcanzado un umbral de capacidad especificado.ReFS begins rotating data once mirror has reached a specified capacity threshold.

  • Los valores más altos de este umbral de rotación hacen que las referencias retengan los datos en el nivel de reflejo más tiempo.Higher values of this rotation threshold cause ReFS to retain data in the mirror tier longer. La salida de los datos activos en el nivel de reflejo es óptima para el rendimiento, pero ReFS no podrá atender eficazmente grandes cantidades de e/s entrantes.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.
  • Los valores inferiores permiten a ReFS desorganizar los datos de forma proactiva y mejorar la ingesta de entrada y salida.Lower values enable ReFS to proactively destage data and better ingest incoming IO. Esto se aplica a cargas de trabajo con una gran cantidad de ingesta, como el almacenamiento de archivo.This is applicable to ingest-heavy workloads, such as archival storage. Sin embargo, los valores inferiores podrían degradar el rendimiento de las cargas de trabajo de uso general.Lower values, however, could degrade performance for general purpose workloads. La rotación innecesaria de datos fuera del nivel de reflejo conlleva una reducción del rendimiento.Unnecessarily rotating data out of the mirror tier carries a performance penalty.

ReFS introduce un parámetro ajustable para ajustar este umbral, que se puede configurar mediante una clave del registro.ReFS introduces a tunable parameter to adjust this threshold, which is configurable using a registry key. Esta clave del registro debe configurarse en cada nodo de una implementación de espacios de almacenamiento directoy se requiere un reinicio para que los cambios surtan efecto.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.

  • Clave: HKEY_LOCAL_MACHINE \System\CurrentControlSet\PoliciesKey: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Policies
  • ValueName (DWORD): DataDestageSsdFillRatioThresholdValueName (DWORD): DataDestageSsdFillRatioThreshold
  • ValueType: ProporciónValueType: Percentage

Si no se establece esta clave del registro, ReFS usará un valor predeterminado de 85%.If this registry key is not set, ReFS will use a default value of 85%. Este valor predeterminado se recomienda para la mayoría de las implementaciones y no se recomiendan los valores por debajo del 50%.This default value is recommended for most deployments, and values below 50% are not recommended. El siguiente comando de PowerShell muestra cómo establecer esta clave del registro con un valor de 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

Para configurar esta clave del registro en cada nodo de una implementación de Espacios de almacenamiento directo, puede usar el siguiente comando de PowerShell: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}

Aumentar el tamaño del nivel reflejadoIncreasing the size of the mirrored tier

Aumentar el tamaño del nivel reflejado permite a ReFS conservar una parte más grande del espacio de trabajo en el reflejo.Increasing the size of the mirrored tier enables ReFS to retain a larger portion of the working set in mirror. Esto mejora la probabilidad de que ReFS pueda escribir directamente en el reflejo, lo que le ayudará a lograr un mejor rendimiento.This improves the likelihood that ReFS can write directly to mirror, which will help achieve better performance. Los cmdlets de PowerShell siguientes muestran cómo aumentar el tamaño del nivel reflejado: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

Sugerencia

Asegúrese de cambiar el tamaño de la partición y el volumen después de cambiar el tamaño de StorageTier.Make sure to resize the Partition and Volume after you resize the StorageTier. Para obtener más información y ejemplos, consulte cambiar el tamaño de los volúmenes.For more information and examples, see Resize-Volumes.

Creación de un volumen de paridad acelerado para reflejoCreating a mirror-accelerated parity volume

El siguiente cmdlet de PowerShell crea un volumen de paridad acelerada para el reflejo con una proporción de paridad: paridad de 20:80, que es la configuración recomendada para la mayoría de las cargas de trabajo.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. Para obtener más información y ejemplos, consulte creación de volúmenes en espacios de almacenamiento directo.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

Referencias adicionalesAdditional References