Parità accelerata con mirroring

Si applica a: Windows Server 2022, Windows Server 2019, Windows Server 2016

Archiviazione Spazi può fornire la tolleranza di errore per i dati usando due tecniche fondamentali: mirror e parità. In Spazi di archiviazione diretta, ReFS introduce parità accelerata con mirroring, che consente di creare volumi che usano resilienza mirror e parità. La parità accelerata con mirroring offre spazio di archiviazione economico ed efficiente senza sacrificare le prestazioni.

Diagram depicting the mirror accelerated parity volume.

Background

Gli schemi di resilienza mirror e parità hanno caratteristiche di archiviazione e prestazioni sostanzialmente diverse:

  • La resilienza del mirroring consente agli utenti di ottenere prestazioni di scrittura veloci, ma la replica dei dati per ogni copia non è efficiente in termini di spazio.
  • La parità, d'altra parte, deve ricalcare la parità di calcolo per ogni scrittura, causando prestazioni di scrittura casuali a risentire. La parità, tuttavia, consente agli utenti di archiviare i dati con maggiore efficienza nello spazio. Per altre informazioni, vedi Archiviazione Tolleranza di errore di Spazi.

Di conseguenza, il mirror è predisposto per offrire spazio di archiviazione sensibile alle prestazioni, mentre la parità offre un miglioramento dell'utilizzo della capacità di archiviazione. Nella parità accelerata con mirroring ReFS sfrutta i vantaggi di ogni tipo di resilienza per offrire spazio di archiviazione efficiente e sensibile alle prestazioni combinando entrambi gli schemi di resilienza all'interno di un singolo volume.

Rotazione dei dati sulla parità accelerata con mirroring

ReFS ruota attivamente i dati tra mirror e parità, in tempo reale. In questo modo le scritture in ingresso devono essere scritte rapidamente nel mirror e quindi ruotate in parità per essere archiviate in modo efficiente. In questo modo, le operazioni di I/O in ingresso vengono gestite rapidamente nel mirroring, mentre i dati ad accesso sporadico vengono archiviati in modo efficiente in parità, offrendo prestazioni ottimali e archiviazione con costi persi all'interno dello stesso volume.

Per ruotare i dati tra mirror e parità, ReFS divide logicamente il volume in aree di 64 MiB, ovvero l'unità di rotazione. L'immagine seguente illustra un volume di parità accelerato con mirroring diviso in aree.

Diagram depicting mirror accelerated parity volume with storage containers.

ReFS inizia a ruotare le aree complete dal mirror alla parità dopo che il livello mirror ha raggiunto un livello di capacità specificato. Invece di spostare immediatamente i dati dal mirror alla parità, ReFS attende e mantiene i dati nel mirror il più a lungo possibile, consentendo a ReFS di continuare a offrire prestazioni ottimali per i dati (vedere "Prestazioni I/O" di seguito).

Quando i dati vengono spostati dal mirror alla parità, i dati vengono letti, vengono calcolate le codifiche di parità e quindi i dati vengono scritti in parità. L'animazione seguente illustra l'uso di un'area con mirroring a tre vie che viene convertita in un'area codificata con cancellazione durante la rotazione:

Animation showing mirror accelerated parity rotation.

I/O sulla parità accelerata con mirroring

Comportamento di I/O

Scritture: le scritture in ingresso dei servizi ReFS sono disponibili in tre modi diversi:

  1. Scritture nel mirror:

    • 1a. Se la scrittura in ingresso modifica i dati esistenti nel mirroring, ReFS modificherà i dati sul posto.
    • 1b. Se la scrittura in ingresso è una nuova scrittura e ReFS riesce a trovare spazio libero sufficiente nel mirror per gestire questa scrittura, ReFS scriverà nel mirroring. Screenshot showing how the ReFS service writes to mirror.
  2. Scrive nel mirror, riallocato da Parità:

    Se la scrittura in ingresso modifica i dati in parità e ReFS riesce a trovare spazio libero sufficiente nel mirror per gestire la scrittura in ingresso, ReFS invaliderà prima i dati precedenti in parità e quindi scriverà nel mirror. Questa invalidazione è un'operazione di metadati rapida e conveniente che consente di migliorare significativamente le prestazioni di scrittura apportate alla parità. Screenshot showing how the ReFS service writes to mirror, reallocated from parity.

  3. Scrive in parità:

    Se ReFS non riesce a trovare spazio libero sufficiente nel mirroring, ReFS scriverà nuovi dati in parità o modificherà direttamente i dati esistenti in parità. La sezione "Ottimizzazioni delle prestazioni" di seguito fornisce indicazioni che consentono di ridurre al minimo le scritture nella parità. Screenshot showing how the ReFS service writes to parity.

Letture: ReFS leggerà direttamente dal livello contenente i dati pertinenti. Se la parità viene costruita con unità HDD, la cache in Spazi di archiviazione diretta memorizza i dati nella cache per accelerare le letture future.

Nota

Le letture non causano mai la rotazione dei dati nel livello mirror.

Prestazioni di I/O

Scritture: ogni tipo di scrittura descritto in precedenza ha le proprie caratteristiche di prestazioni. Approssimativamente, le scritture nel livello mirror sono molto più veloci delle scritture riallocate e le scritture riallocate sono notevolmente più veloci rispetto alle scritture eseguite direttamente nel livello di parità. Questa relazione è illustrata dalla disuguaglianza seguente:

  • Livello > di parità delle scritture >> a livello mirror riallocato

Letture: non vi è alcun impatto significativo e negativo sulle prestazioni durante la lettura dalla parità:

Compattazione ReFS

La compattazione per ReFS è disponibile con Windows Server 2019 e versioni successive, che migliora notevolmente le prestazioni per i volumi di parità con accelerazione mirror che sono completi al 90%.

Background: in precedenza, man mano che i volumi di parità accelerati con mirroring diventavano completi, le prestazioni di questi volumi potevano peggiorare. Le prestazioni diminuiscono perché i dati ad accesso frequente e sporadico vengono mescolati nel corso del volume nel tempo. Ciò significa che è possibile archiviare meno dati ad accesso frequente nel mirror perché i dati ad accesso sporadico occupano spazio nel mirror che altrimenti potrebbero essere usati dai dati ad accesso frequente. L'archiviazione dei dati ad accesso frequente nel mirror è fondamentale per mantenere prestazioni elevate perché le scritture direttamente nel mirror sono molto più veloci rispetto alle scritture riallocate e agli ordini di grandezza più veloci rispetto alle scritture direttamente nella parità. Di conseguenza, la presenza di dati ad accesso sporadico nel mirror è negativa per le prestazioni, in quanto riduce la probabilità che ReFS possa eseguire operazioni di scrittura direttamente nel mirroring.

La compattazione ReFS risolve questi problemi di prestazioni liberando spazio nel mirroring per i dati ad accesso frequente. La compattazione consolida innanzitutto tutti i dati, sia dal mirror che dalla parità, in parità. Ciò riduce la frammentazione all'interno del volume e aumenta la quantità di spazio indirizzabile nel mirroring. Ancora più importante, questo processo consente a ReFS di consolidare i dati ad accesso frequente nel mirror:

  • Quando arrivano nuove scritture, verranno gestite nel mirror. Di conseguenza, i dati ad accesso frequente appena scritti risiedono nel mirroring.
  • Quando viene eseguita una scrittura di modifica ai dati in parità, ReFS esegue una scrittura riallocata, quindi questa scrittura viene eseguita anche nel mirror. Di conseguenza, i dati ad accesso frequente spostati in parità durante la compattazione verranno riallocati nel mirror.

Ottimizzazioni delle prestazioni

Importante

È consigliabile inserire dischi rigidi virtuali con intensa attività di scrittura in sottodirectory diverse. Questo avviene perché ReFS scrive le modifiche ai metadati a livello di una directory e dei relativi file. Pertanto, se si distribuiscono file con intensa attività di scrittura tra directory, le operazioni sui metadati sono più piccole ed eseguite in parallelo, riducendo la latenza per le app.

Contatori delle prestazioni

ReFS gestisce i contatori delle prestazioni per valutare le prestazioni della parità accelerata con mirroring.

  • Come descritto in precedenza nella sezione Scrittura in parità, ReFS scriverà direttamente in parità quando non riesce a trovare spazio libero nel mirror. In genere, ciò si verifica quando il livello con mirroring si riempie più velocemente rispetto a ReFS può ruotare i dati in parità. In altre parole, la rotazione ReFS non è in grado di tenere il passo con la velocità di inserimento. I contatori delle prestazioni seguenti identificano quando ReFS scrive direttamente in parità:

    # 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, questo indica che ReFS non ruota i dati abbastanza velocemente fuori dal mirror. Per alleviare questo problema, è possibile modificare l'aggressività della rotazione o aumentare le dimensioni del livello con mirroring.

Aggressività di rotazione

ReFS inizia a ruotare i dati dopo che il mirror ha raggiunto una soglia di capacità specificata.

  • I valori più elevati di questa soglia di rotazione causano la conservazione dei dati nel livello mirror più a lungo. Lasciare i dati ad accesso frequente nel livello mirror è ottimale per le prestazioni, ma ReFS non sarà in grado di gestire in modo efficace grandi quantità di operazioni di I/O in ingresso.
  • I valori inferiori consentono a ReFS di destagere in modo proattivo i dati e di inserire meglio I/O in ingresso. Ciò è applicabile ai carichi di lavoro con un numero elevato di inserimenti, ad esempio l'archiviazione di archiviazione. Valori inferiori, tuttavia, potrebbero compromettere le prestazioni per i carichi di lavoro per utilizzo generico. La rotazione inutilmente dei dati dal livello mirror comporta una riduzione delle prestazioni.

ReFS introduce un parametro ottimizzabile per regolare questa soglia, configurabile tramite una chiave del Registro di sistema. Questa chiave del Registro di sistema deve essere configurata in ogni nodo di una distribuzione Spazi di archiviazione diretta e per rendere effettive le modifiche è necessario un riavvio.

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

Se questa chiave del Registro di sistema non è impostata, ReFS userà un valore predefinito pari all'85%. Questo valore predefinito è consigliato per la maggior parte delle distribuzioni e i valori inferiori al 50% non sono consigliati. Il comando di PowerShell seguente illustra come impostare questa chiave del Registro di sistema con un valore pari al 75%:

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

Per configurare questa chiave del Registro di sistema in ogni nodo in una distribuzione Spazi di archiviazione diretta, è possibile usare il comando di PowerShell seguente:

$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 mirroring

L'aumento delle dimensioni del livello con mirroring consente a ReFS di mantenere una parte più grande del working set nel mirror. Ciò migliora la probabilità che ReFS possa scrivere direttamente nel mirror, che consentirà di ottenere prestazioni migliori. I cmdlet di PowerShell seguenti illustrano come aumentare le dimensioni del livello con mirroring:

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 Archiviazione Tier. Per altre informazioni ed esempi, vedere Estendere i volumi.

Creazione di un volume di parità con accelerazione mirror

Il cmdlet di PowerShell seguente crea un volume di parità con accelerazione mirror con un rapporto Mirror:Parity di 20:80, che è la configurazione consigliata per la maggior parte dei carichi di lavoro. Per altre informazioni ed esempi, vedere Creazione di volumi in Spazi di archiviazione diretta.

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

Riferimenti aggiuntivi