Flussi di integrità ReFSReFS integrity streams

Si applica a: Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server (canale semestrale), Windows 10Applies to: Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server (Semi-Annual Channel), Windows 10

I flussi di integrità sono una funzionalità facoltativa di ReFS che convalida e mantiene l'integrità dei dati mediante l'uso di checksum.Integrity streams is an optional feature in ReFS that validates and maintains data integrity using checksums. Anche se usa sempre checksum per i metadati, per impostazione predefinita ReFS non genera o convalida checksum per i dati di file.While ReFS always uses checksums for metadata, ReFS doesn't, by default, generate or validate checksums for file data. I flussi di integrità rappresentano una funzionalità opzionale che consente agli utenti di utilizzare i checksum per i dati dei file.Integrity streams is an optional feature that allows users to utilize checksums for file data. Quando i flussi di integrità sono abilitati, ReFS può determinare chiaramente se i dati sono validi o danneggiati.When integrity streams are enabled, ReFS can clearly determine if data is valid or corrupt. Inoltre, ReFS e Spazi di archiviazione possono correggere congiuntamente i dati e i metadati danneggiati in modo automatico.Additionally, ReFS and Storage Spaces can jointly correct corrupt metadata and data automatically.

Come funzionaHow it works

I flussi di integrità possono essere abilitati per file e directory individuali o per l'intero volume e le impostazioni di tali flussi possono essere attivate e disattivate in qualsiasi momento.Integrity streams can be enabled for individual files, directories, or the entire volume, and integrity stream settings can be toggled at any time. Inoltre, le impostazioni dei flussi di integrità di file e directory vengono ereditate dalle directory padre.Additionally, integrity stream settings for files and directories are inherited from their parent directories.

Una volta abilitati i flussi di integrità, ReFS crea e gestisce un checksum per i file specificati nei metadati dei file stessi.Once integrity streams is enabled, ReFS will create and maintain a checksum for the specified file(s) in that file's metadata. Questo checksum permette a ReFS di convalidare l'integrità dei dati prima di accedervi.This checksum allows ReFS to validate the integrity of the data before accessing it. Prima di restituire dati per cui sono abilitati i flussi di integrità, ReFS ne calcola prima di tutto il checksum:Before returning any data that has integrity streams enabled, ReFS will first calculate its checksum:

Calcolo del checksum per i dati dei file

Questo checksum viene quindi confrontato con il checksum contenuto nei metadati dei file.Then, this checksum is compared to the checksum contained in the file metadata. Se i checksum corrispondono, i dati vengono contrassegnati come validi e restituiti all'utente.If the checksums match, then the data is marked as valid and returned to the user. Se i checksum non corrispondono, i dati sono danneggiati.If the checksums don't match, then the data is corrupt. La resilienza del volume determina il modo in cui ReFS risponde alla situazione di danno.The resiliency of the volume determines how ReFS responds to corruptions:

  • Se ReFS è montato su uno spazio semplice non resiliente o su una semplice unità, mostra un errore all'utente senza restituire i dati danneggiati.If ReFS is mounted on a non-resilient simple space or a bare drive, ReFS will return an error to the user without returning the corrupted data.
  • Se ReFS è montato su uno spazio mirror o di parità resiliente, prova a correggere il problema.If ReFS is mounted on a resilient mirror or parity space, ReFS will attempt to correct the corruption.
    • Se il tentativo riesce, ReFS applica una scrittura correttiva per ripristinare l'integrità dei dati e restituisce i dati validi all'applicazione.If the attempt is successful, ReFS will apply a corrective write to restore the integrity of the data, and it will return the valid data to the application. All'applicazione non arriverà alcuna traccia o indicazione di dati danneggiati.The application remains unaware of any corruptions.
    • Se il tentativo non riesce, ReFS restituisce un errore.If the attempt is unsuccessful, ReFS will return an error.

ReFS registra tutti i danneggiamenti nel registro eventi di sistema, in cui viene indicato anche se i problemi sono stati corretti.ReFS will record all corruptions in the System Event Log, and the log will reflect whether the corruptions were fixed.

L'integrità dei dati per il ripristino della scrittura correttiva

PrestazioniPerformance

Benché i flussi di integrità assicurino una maggiore integrità dei dati per il sistema, questo avviene ai danni delle prestazioni.Though integrity streams provides greater data integrity for the system, it also incurs a performance cost. I motivi sono due:There are a couple different reasons for this:

  • Se i flussi di integrità sono abilitati, tutte le operazioni di scrittura diventano operazioni di allocazione in fase di scrittura.If integrity streams are enabled, all write operations become allocate-on-write operations. Anche se in questo modo si evitano colli di bottiglia read-modify-write poiché ReFS non necessita di leggere o modificare i dati esistenti, i dati dei file diventano spesso frammentati, ritardando di conseguenza la lettura.Though this avoids any read-modify-write bottlenecks since ReFS doesn't need to read or modify any existing data, file data frequently becomes fragmented, which delays reads.
  • A seconda del carico di lavoro e delle risorse di archiviazione sottostanti del sistema, il costo del calcolo e della convalida del checksum può causare un aumento della latenza di I/O.Depending on the workload and underlying storage of the system, the computational cost of computing and validating the checksum can cause IO latency to increase.

Poiché i flussi di integrità implicano un costo in termini di prestazioni, è consigliabile lasciarli disabilitati in sistemi sensibili alle prestazioni.Because integrity streams carries a performance cost, we recommend leaving integrity streams disabled on performance sensitive systems.

Strumento di pulitura dell'integritàIntegrity scrubber

Come descritto in precedenza, ReFS convaliderà automaticamente l'integrità dei dati prima di accedervi.As described above, ReFS will automatically validate data integrity before accessing any data. ReFS usa anche uno strumento di pulitura in background, che gli permette di convalidare i dati a cui si accede raramente.ReFS also uses a background scrubber, which enables ReFS to validate infrequently accessed data. Questo strumento di pulitura analizza periodicamente il volume, identifica i danneggiamenti latenti e attiva in modo proattivo il ripristino di eventuali dati danneggiati.This scrubber periodically scans the volume, identifies latent corruptions, and proactively triggers a repair of any corrupt data.

Nota

Lo strumento di pulitura dell'integrità dei dati può convalidare i dati solo nel caso di file in cui sono abilitati i flussi di integrità.The data integrity scrubber can only validate file data for files where integrity streams is enabled.

Per impostazione predefinita, lo strumento di pulitura viene eseguito ogni quattro settimane, anche se questo intervallo può essere configurato in Utilità di pianificazione in Microsoft\Windows\Data Integrity Scan.By default, the scrubber runs every four weeks, though this interval can be configured within Task Scheduler under Microsoft\Windows\Data Integrity Scan.

EsempiExamples

Per monitorare e modificare le impostazioni di integrità dei dati dei file, ReFS usa i cmdlet Get-FileIntegrity e Set-FileIntegrity.To monitor and change the file data integrity settings, ReFS uses the Get-FileIntegrity and Set-FileIntegrity cmdlets.

Get-FileIntegrityGet-FileIntegrity

Per determinare se i flussi di integrità sono abilitati per i dati dei file, usa il cmdlet Get-FileIntegrity.To see if integrity streams is enabled for file data, use the Get-FileIntegrity cmdlet.

PS C:\> Get-FileIntegrity -FileName 'C:\Docs\TextDocument.txt'

Puoi anche usare il cmdlet Get-Item per ottenere le impostazioni dei flussi di integrità per tutti i file in una directory specificata.You can also use the Get-Item cmdlet to get the integrity stream settings for all the files in a specified directory.

PS C:\> Get-Item -Path 'C:\Docs\*' | Get-FileIntegrity

Set-FileIntegritySet-FileIntegrity

Per abilitare/disabilitare i flussi di integrità per i dati dei file, usa il cmdlet Set-FileIntegrity.To enable/disable integrity streams for file data, use the Set-FileIntegrity cmdlet.

PS C:\> Set-FileIntegrity -FileName 'H:\Docs\TextDocument.txt' -Enable $True

Puoi anche usare il cmdlet Set-Item per configurare le impostazioni dei flussi di integrità per tutti i file in una directory specificata.You can also use the Get-Item cmdlet to set the integrity stream settings for all the files in a specified folder.

PS C:\> Get-Item -Path 'H\Docs\*' | Set-FileIntegrity -Enable $True 

Il cmdlet Set-FileIntegrity può essere usato anche direttamente in volumi e directory.The Set-FileIntegrity cmdlet can also be used on volumes and directories directly.

PS C:\> Set-FileIntegrity H:\ -Enable $True
PS C:\> Set-FileIntegrity H:\Docs -Enable $True

Vedere ancheSee also