Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Gli spazi di archiviazione possono fornire una tolleranza agli errori per i dati utilizzando due tecniche fondamentali: mirroring e parità. In Storage Spaces Direct, ReFS introduce la parità accelerata tramite mirroring, che consente di creare volumi utilizzando sia la resilienza a mirror che a parità. La parità accelerata tramite mirroring offre un'archiviazione conveniente ed efficiente in termini di spazio senza sacrificare le prestazioni.
Background
Gli schemi di resilienza a specchio e a parità presentano caratteristiche di archiviazione e di prestazioni sostanzialmente diverse.
- La resilienza mirror 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 ricalcolare la parità per ogni scrittura, causando un calo delle prestazioni di scrittura casuali. La parità, tuttavia, consente agli utenti di archiviare i dati con maggiore efficienza nello spazio. Per altre informazioni, vedere Tolleranza di errore di Spazi di archiviazione.
Di conseguenza, il mirror è predisposto per offrire un'archiviazione ottimizzata per le prestazioni, mentre la parità offre un miglior utilizzo dello spazio di archiviazione. Nella parità accelerata tramite mirroring, ReFS sfrutta i vantaggi di ogni tipo di resilienza per offrire uno spazio di archiviazione efficiente e ottimizzato per le prestazioni, combinando entrambi gli schemi di resilienza all'interno di un singolo volume.
Rotazione dei dati sulla parità accelerata tramite mirroring
ReFS ruota attivamente i dati tra mirror e parità, in tempo reale. In questo modo le scritture in ingresso possono essere scritte rapidamente nel mirror e quindi trasferite alla parità per una memorizzazione efficiente. In questo modo, le operazioni di I/O in ingresso vengono gestite rapidamente nel mirroring, mentre i dati freddi vengono archiviati in modo efficiente in parità, offrendo prestazioni ottimali e archiviazione a basso costo 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 tramite mirroring diviso in regioni.
ReFS inizia a spostare le intere aree dal mirror alla parità una volta che il livello mirror ha raggiunto un certo livello di capacità. 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 le "prestazioni di I/O" di seguito).
Quando i dati vengono spostati dal mirror alla parità, vengono letti, vengono calcolate le codifiche di parità e quindi i dati vengono scritti in parità. L'animazione seguente illustra l'uso di una regione a tre vie con mirroring che viene convertita in una regione codificata con cancellazione durante la rotazione.
I/O con parità accelerata tramite mirroring
Comportamento di I/O
Scritture: ReFS esegue le operazioni di scrittura in tre modi distinti:
Scrive su Mirror:
- 1a. Se la scrittura in ingresso modifica i dati esistenti nel mirror, ReFS modificherà i dati direttamente.
- 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 mirror.
Scrittura su mirror, riallocata dalla 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 in relazione alla parità.
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" seguente fornisce indicazioni che consentono di ridurre al minimo le scritture di parità.
Lettura: ReFS leggerà direttamente dal livello che contiene i dati pertinenti. Se la parità viene costruita con unità HDD, la cache in Spazi di archiviazione diretta memorizza questi dati per accelerare le letture future.
Note
Le letture non causano mai che ReFS ruoti i dati nel livello mirror.
Prestazioni di I/O
Scritture: ogni tipo di scrittura descritto in precedenza presenta caratteristiche di prestazioni specifiche. In generale, le scritture nello strato mirror sono molto più veloci delle scritture riallocate e le scritture riallocate sono notevolmente più veloci rispetto alle scritture eseguite direttamente nello strato di parità. Questa relazione è illustrata dalla disuguaglianza seguente:
- Livello mirror > Scritture riallocate >> Livello di parità
Legge: non vi è alcun impatto significativo e negativo sulle prestazioni quando si legge dalla parità.
- Se mirror e parità vengono costruiti con lo stesso tipo di supporto, le prestazioni di lettura saranno equivalenti.
- Se mirror e parità vengono costruiti con diversi tipi di supporti (unità SSD con mirroring o unità disco rigido con parità, ad esempio), la cache in Spazi di archiviazione diretta consentirà di memorizzare i dati ad accesso frequente per accelerare le letture dalla parità.
Compattazione ReFS
La compattazione per ReFS è disponibile con Windows Server 2019 e versioni successive, migliorando sostanzialmente le prestazioni per i volumi di parità mirror-accelerati che sono oltre il 90% pieni.
Background: In precedenza, poiché si riempivano i volumi di parità accelerati con mirror, le loro prestazioni potevano peggiorare. Le prestazioni degradano perché i dati "caldi" e "freddi" si mescolano all'interno del volume nel tempo. Ciò significa che è possibile archiviare meno dati caldi nel mirror perché i dati freddi occupano spazio nel mirror che altrimenti potrebbe essere utilizzato dai dati caldi. L'archiviazione dei dati caldi nel mirror è fondamentale per mantenere prestazioni elevate, perché le scritture dirette nel mirror sono molto più veloci delle scritture riallocate e ordini di grandezza più veloci delle scritture dirette 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 prima 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 nello spazio a specchio. Ancora più importante, questo processo consente a ReFS di consolidare i dati ad accesso frequente nel mirror:
- Quando arrivano nuove scritture, verranno sincronizzate nel mirror. Di conseguenza, i dati nuovi e ad accesso frequente 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 caldi spostati in parità durante la compattazione verranno riallocati nella modalità mirror.
Ottimizzazioni delle prestazioni
Important
È consigliabile inserire dischi rigidi virtuali ad alta intensità 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 mantiene contatori delle prestazioni per aiutare a valutare la parità accelerata tramite mirroring.
Come descritto in precedenza nella sezione Scrittura in parità, ReFS eseguirà una scrittura diretta 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 di quanto ReFS possa trasferire i dati a parità. In altre parole, la rotazione ReFS non è in grado di tenere il passo con il tasso di ingestione. 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/secSe 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 rispecchiato.
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 scaricare in modo proattivo i dati e di ottimizzare meglio l'I/O in ingresso. Ciò è applicabile ai carichi di lavoro con un numero elevato di inserimenti, ad esempio l'archiviazione. Valori inferiori, tuttavia, potrebbero compromettere le prestazioni per i carichi di lavoro per utilizzo generico. Lo spostamento inutile dei dati dal livello mirror comporta un calo 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 in una distribuzione di Spazi di archiviazione diretta e, per rendere effettive le modifiche, è necessario un riavvio.
- Chiave: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Policies
- ValueName (DWORD): DataDestageSsdFillRatioThreshold
- ValueType: Percentuale
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 di 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 del mirroring
L'aumento delle dimensioni del livello di mirroring consente a ReFS di mantenere una parte più grande dell'insieme di lavoro 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 a specchio.
Resize-StorageTier -FriendlyName "Performance" -Size 20GB
Resize-StorageTier -InputObject (Get-StorageTier -FriendlyName "Performance") -Size 20GB
Tip
Assicurarsi di ridimensionare Partizione e Volume dopo aver ridimensionato StorageTier. Per altre informazioni ed esempi, vedere Estendere un volume di base.
Creazione di un volume di parità accelerata con mirror
Il seguente cmdlet di PowerShell crea un volume di parità accelerato tramite 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