Table of contents
TOC
Sbalit obsah
Rozbalit obsah

Klonování bloků v odolném systému souborů (ReFS)

Garrett Watumull|Poslední aktualizace: 13.01.2017
|
1 Přispěvatel

Platí pro: Windows Server 2016

Při klonování bloků dostává souborový systém pokyn zkopírovat jménem aplikace sadu bajtů v souboru. Cílový soubor může být přitom stejný jako zdrojový soubor, nebo se může jednat o odlišný cílový soubor. Operace kopírování jsou bohužel nákladné, protože aktivují nákladné operace čtení a zápisu podkladových fyzických dat.

Klonování bloků v odolném systému souborů (ReFS) ale namísto čtení a zápisu dat ze souboru provádí kopírování jako nenákladnou operaci s metadaty. V odolném systému souborů může několik souborů sdílet stejné logické clustery (fyzická umístění ve svazku), a proto operacím kopírování stačí přemapovat oblast souboru na jiné fyzické umístění. Z nákladné fyzické operace se tak stává rychlá, logická operace. To umožňuje rychlejší dokončení kopírování a generuje menší počet vstupně/výstupních operací v používaném úložišti. Toto vylepšení je přínosné také pro virtualizační úlohy, protože při použití operací klonování bloků se významně zrychlí operace sloučení kontrolních bodů. Navíc se zvýší kapacita úložiště, protože několik souborů může sdílet stejné logické clustery, a díku tomu nejsou identická data uložená vícekrát.

Jak to funguje

Při klonování bloků v odolném systému souborů (ReFS) se z operace s daty souboru stává operace s metadaty. Na podporu této optimalizace zavádí odolný systém souborů do svých metadat čítače odkazů pro zkopírované oblasti. Tyto čítače odkazů evidují počet různých oblastí v souborech, které se odkazují na stejné fyzické oblasti. Několik souborů tak může sdílet stejná fyzická data:

Ukazuje aktualizace čítače odkazů, když se na stejnou oblast odkazuje několik souborů.

Udržování čítačů odkazů pro každý logický cluster znamená, že odolný systému souborů nenarušuje izolaci mezi soubory: zápisy do sdílených oblastí aktivují mechanismus přidělení při zápisu. Odolný systém souborů pak pro příchozí zápis přidělí novou oblast. Tento mechanismus zachovává integritu sdílených logických clusterů.

Příklad

Předpokládejme, že existují dva soubory, X a Y. Každý z těchto souborů je tvořen třemi oblastmi a každá oblast je namapovaná na samostatné logické clustery.

Dva soubory, každý se třemi samostatnými oblastmi, které jsou všechny namapované na oblasti, jejichž čítače odkazů mají hodnotu 1

Předpokládejme teď, že si aplikace vyžádá operaci klonování bloku ze souboru X do souboru Y, při které se oblasti A a B mají zkopírovat na začátek oblasti E. To povede k následujícímu stavu souboru systémů:

Pro oblast naklonovanou jako blok ukazuje čítač odkazů hodnotu 2.

Systém souborů oznámí úspěšnou duplikaci oblasti naklonované jako blok. Odolný systém souborů provádí tuto operaci jen jako aktualizaci mapování čísel VCN na čísla LCN, a nedochází proto k žádnému čtení fyzických dat a nepřepisují se ani fyzická data v souboru Y. Soubory X a Y teď sdílejí logické clustery, což odrážejí hodnoty čítačů odkazů v tabulce. Protože se fyzicky nekopírují žádná data, spotřebovává odolný systém souborů na svazku menší kapacitu.

Předpokládejme teď, že se aplikace pokusí přepsat oblast A v souboru X. Odolný systém souborů zduplikuje sdílenou oblast, příslušným způsobem zaktualizuje čítače odkazů a provede příchozí zápis do nově zduplikované oblasti. Tím je zajištěna izolace mezi soubory.

Zachování izolace vyžaduje zápis do nové oblasti G a aktualizaci čítačů odkazů.

Po pozměňujícím zápisu oba soubory stále sdílejí oblast B. Pokud by oblast A byla větší než cluster, zduplikoval by se jenom pozměněný cluster a zbývající část by zůstala sdílená.

Omezení funkčnosti a poznámky

  • Zdrojová a cílová oblast musejí začínat a končit na hranici clusteru.
  • Délka klonované oblasti musí být menší než 4 GB.
  • Maximální počet oblastí souborů, které jde namapovat na stejnou fyzickou oblast, je 64 tisíc.
  • Cílová oblast nesmí přesahovat konec souboru. Pokud chce aplikace prostřednictvím naklonovaných dat cílový soubor rozšířit, musí nejdřív zavolat SetEndOfFile.
  • Pokud je zdrojová a cílová oblast ve stejném souboru, nesmí se tyto oblasti překrývat. (Aplikace může pokračovat tak, že operaci klonování bloku rozdělí na několik operací klonování bloků, které se už nepřekrývají.)
  • Zdrojový a cílový soubor musejí být na stejném svazku odolného systému souborů.
  • Zdrojový a cílový soubor musejí mít stejné nastavení streamů integrity.
  • Pokud je zdrojový soubor zhuštěný, musí být zhuštěný i cílový soubor.
  • Operace klonování bloku naruší sdílené příležitostné uzamčení (označované také jako příležitostné uzamčení úrovně 2).
  • Svazek odolného systému souborů musí být zformátovaný Windows Serverem 2016, a pokud se používá clustering s podporou převzetí služeb při selhání, funkční úroveň clusteringu musí být v době formátování nastavená jako Windows Server 2016 nebo novější.

Viz také

© 2017 Microsoft