Sdílet prostřednictvím


Klonování bloků v systému souborů ReFS

Klonování bloků dává systému souborů pokyn ke zkopírování rozsahu bajtů souborů jménem aplikace, kde cílový soubor může být stejný jako zdrojový soubor nebo jiný než zdrojový soubor. Tradiční operace kopírování jsou bohužel nákladné, protože aktivují nákladné čtení a zápisy do podkladových fyzických dat.

Klonování bloků v systému souborů ReFS ale provádí kopie jako nízkonákladová operace metadat, nikoli čtení dat ze souboru a zápis do souborů. Vzhledem k tomu, že ReFS umožňuje více souborům sdílet stejné logické clustery (fyzická umístění na svazku), při operacích kopírování stačí pouze přemapovat oblast souboru na jiné fyzické umístění, čímž se drahá fyzická operace změní na rychlou logickou operaci. Díky tomu se kopie dokončí rychleji a vygenerují méně vstupně-výstupních operací do podkladového úložiště. Toto vylepšení také přináší výhody virtualizačních úloh, protože .vhdx operace sloučení kontrolních bodů se výrazně zrychlují při použití operací klonování bloků. Vzhledem k tomu, že několik souborů může sdílet stejné logické clustery, nejsou stejná data fyzicky uložená vícekrát, což zlepšuje kapacitu úložiště.

Jak to funguje

Klonování bloků v systému souborů ReFS převede operaci dat souboru na operaci metadat. Aby bylo možné tuto optimalizaci provést, reFS zavádí do svých metadat počet odkazů pro zkopírované oblasti. Tento referenční počet zaznamenává počet různých oblastí souborů, které odkazují na stejné fyzické oblasti. To umožňuje více souborům sdílet stejná fyzická data:

Zobrazení aktualizací počtu odkazů, když více souborů odkazuje na stejnou oblast

Udržováním počtu odkazů pro každý logický cluster ReFS neporuší izolaci mezi soubory: zápisy do sdílených oblastí aktivují mechanismus přidělení při zápisu, kdy ReFS přidělí novou oblast pro příchozí zápis. Tento mechanismus zachovává integritu sdílených logických clusterů.

Example

Předpokládejme, že existují dva soubory, X a Y, kde se každý soubor skládá ze tří oblastí a každá oblast se mapuje na samostatné logické clustery.

Dva soubory, každý se třemi odlišnými oblastmi, které se všechny mapují na oblasti s referenčním počtem 1

Předpokládejme, že aplikace vydává operaci klonování bloku ze souboru X do souboru Y pro oblasti A a B, které se mají zkopírovat s offsetem oblasti E. Výsledkem by byl následující stav systému souborů:

Počet referencí ukazuje 2 pro blokovanou klonovou oblast.

Tento stav systému souborů odhalí úspěšnou duplikaci naklonované oblasti bloku. Vzhledem k tomu, že ReFS provádí tuto operaci kopírování pouze aktualizací mapování VCN na LCN, nebyla načtena žádná fyzická data ani fyzická data v souboru Y přepsána. Soubor X a Y nyní sdílejí logické clustery, což se odráží v počtech referencí v tabulce. Vzhledem k tomu, že nebyla fyzicky zkopírována žádná data, reFS snižuje spotřebu kapacity na svazku.

Předpokládejme, že aplikace se pokusí přepsat oblast A v souboru X. ReFS duplikuje sdílenou oblast, odpovídajícím způsobem aktualizuje počet odkazů a provede příchozí zápis do duplikované oblasti. Tím se zajistí zachování izolace mezi soubory.

Izolace se zachová zápisem do nové oblasti G a aktualizací počtu odkazů

Po úpravě zápisu je oblast B stále sdílena oběma soubory. Pokud by byla oblast A větší než klastr, duplikoval by se pouze upravený klastr, a zbývající část by zůstala sdílená.

Omezení funkčnosti a poznámky

  • Zdrojová a cílová oblast musí začínat a končit na hranici clusteru.
  • Klonovaná oblast musí mít délku menší než 4 GB.
  • Maximální počet oblastí souborů, které lze mapovat na stejnou fyzickou oblast, je 8175.
  • Cílová oblast nesmí přesahovat konec souboru. Pokud chce aplikace rozšířit cíl o naklonovaná data, musí nejprve volat SetEndOfFile.
  • Pokud jsou zdrojové a cílové oblasti ve stejném souboru, nesmí se překrývat. (Aplikace může pokračovat rozdělením operace klonování bloku na více klonů bloků, které se už nepřekrývají).
  • Zdrojové a cílové soubory musí být na stejném svazku ReFS.
  • Zdrojové a cílové soubory musí mít stejné nastavení streamů integrity .
  • Pokud je zdrojový soubor řídký, musí být cílový soubor také řídký.
  • Operace klonování bloku přeruší sdílené opportunistické zámky (označované také jako opportunistické zámky úrovně 2).
  • Svazek ReFS musí být naformátovaný s Windows Serverem 2016 a pokud se používá clustering s podporou převzetí služeb při selhání, musí být funkční úroveň clusteringu Windows Server 2016 nebo novější v době formátování.
  • Počínaje buildy Windows 11 24H2 a Windows Server 2025 probíhá klonování bloků nativně v podporovaných operacích kopírování systému Windows.

Viz také