Integrační proudy ReFS

Streamy integrity jsou volitelnou funkcí systému souborů ReFS, která ověřuje a udržuje integritu dat pomocí kontrolních součtů. I když ReFS vždy používá kontrolní součty pro metadata, ve výchozím nastavení negeneruje ani neověřuje kontrolní součty pro data souborů. Streamy integrity jsou volitelnou funkcí, která uživatelům umožňuje využívat kontrolní součty souborových dat. Pokud jsou datové proudy integrity povolené, může ReFS jasně určit, jestli jsou data platná nebo poškozená. ReFS a prostory úložiště navíc můžou automaticky opravovat poškozená metadata a data.

Jak to funguje

Streamy integrity lze povolit pro jednotlivé soubory, adresáře nebo celý svazek a nastavení streamu integrity lze kdykoli přepnout. Kromě toho se nastavení streamu integrity pro soubory a adresáře dědí z nadřazených adresářů.

Jakmile jsou streamy integrity povolené, reFS vytvoří a udržuje kontrolní součet pro zadané soubory v metadatech daného souboru. Tento kontrolní součet umožňuje systému souborů ReFS před přístupem k datům ověřit integritu. Před vrácením všech dat, která mají povolené streamy integrity, systém ReFS nejprve vypočítá kontrolní součet:

Vypočítat kontrolní součet pro data souboru

Tento kontrolní součet se pak porovná s kontrolním součtem obsaženým v metadatech souboru. Pokud se kontrolní součty shodují, data se označí jako platná a vrátí se uživateli. Pokud se kontrolní součty neshodují, jsou data poškozená. Odolnost svazku určuje, jak ReFS reaguje na poškození:

  • Pokud je odolný systém souborů (ReFS) připojen k neodolnému jednoduchému prostoru nebo jednotce bez ochrany, vrátí uživateli chybu bez vrácení poškozených dat.
  • Pokud je systém souborů ReFS připojen k odolnému zrcadlení nebo paritnímu prostoru, pokusí se o opravu poškození.
    • Pokud je pokus úspěšný, ReFS použije k obnovení integrity dat opravný zápis a vrátí platná data do aplikace. Aplikace nemá žádné poškození.
    • Pokud je pokus neúspěšný, ReFS vrátí chybu.

ReFS zaznamená všechna poškození v systémovém protokolu událostí a protokol bude odrážet, zda byla poškození opravena.

Opravný zápis obnoví integritu dat.

Performance

I když integritní streamy poskytují systému větší integritu dat, zvyšují nároky na výkon. Existuje několik různých důvodů:

  • Pokud jsou povolené integritní streamy, všechny operace zápisu se stanou operacemi alokace při zápisu. Tím se zabrání úzkým místům při operacích čtení-modifikace-zápis, protože ReFS nemusí číst ani upravovat žádná existující data. Nicméně dochází k fragmentaci souborových dat, což způsobuje zpoždění při čtení.
  • V závislosti na zatížení a základním úložišti systému můžou výpočetní náklady na výpočetní výkon a ověření kontrolního součtu způsobit zvýšení latence vstupně-výstupních operací.

Vzhledem k tomu, že datové proudy integrity mají výkonnostní náklady, doporučujeme nechat datové proudy integrity zakázané v systémech citlivých na výkon.

Čisticí zařízení integrity

Jak je popsáno výše, ReFS automaticky ověří integritu dat před přístupem k datům. Odolný systém souborů používá také scrubber na pozadí, který umožňuje systému souborů ReFS ověřovat zřídka přístupná data. Tento čistič pravidelně kontroluje svazek, identifikuje latentní poškození a iniciuje opravu všech poškozených dat.

Note

Čistič integrity dat může ověřovat pouze data souborů, u kterých jsou povoleny integritní streamy.

Ve výchozím nastavení se scrubber spouští každých čtyři týdny, i když tento interval lze nakonfigurovat v plánovači úloh v rámci Microsoft\Windows\Data Integrity Scan.

Examples

K monitorování a změně nastavení integrity dat souborů používá ReFS rutiny Get-FileIntegrity a Set-FileIntegrity .

Get-FileIntegrity

Pokud chcete zjistit, jestli streamy integrity jsou povolené pro data souborů, použijte rutinu Get-FileIntegrity.

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

Pomocí rutiny Get-Item můžete také získat nastavení streamu integrity pro všechny soubory v zadaném adresáři.

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

Set-FileIntegrity

Pokud chcete povolit nebo zakázat streamy integrity pro data souborů, použijte rutinu Set-FileIntegrity .

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

Pomocí rutiny Get-Item můžete také nastavit nastavení streamu integrity pro všechny soubory v zadané složce.

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

Rutinu Set-FileIntegrity je také možné použít přímo u svazků a adresářů.

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

Další odkazy