Sdílet prostřednictvím


Migrace do sdílených složek Azure NFS

Tento článek popisuje základní aspekty migrace ze souborových serverů s Linuxem do sdílených složek Azure NFS, které jsou k dispozici pouze jako sdílené složky Premium (druh účtu FileStorage). Porovnáme také opensourcové nástroje pro kopírování souborů fpsync a rsync, abychom pochopili, jak fungují při kopírování dat do sdílených složek Azure.

Poznámka:

Služba Azure Files nepodporuje seznamy řízení přístupu nfs (ACL).

Platí pro

Typ sdílené složky SMB NFS
Sdílené složky úrovně Standard (GPv2), LRS/ZRS No No
Sdílené složky úrovně Standard (GPv2), GRS/GZRS No No
Sdílené složky úrovně Premium (FileStorage), LRS/ZRS No Yes

Požadavky

Budete potřebovat alespoň jednu sdílenou složku Azure NFS připojenou k virtuálnímu počítači s Linuxem. Pokud ho chcete vytvořit, přečtěte si téma Vytvoření sdílené složky Azure NFS a jeho připojení k virtuálnímu počítači s Linuxem. Pokud chcete použít více připojení TCP, doporučujeme připojit sdílenou složku pomocí nconnect. Další informace najdete v tématu Zlepšení výkonu sdílené složky Azure NFS.

Nástroje pro migraci

K dispozici je mnoho opensourcových nástrojů pro přenos dat do sdílených složek NFS. Ne všechny jsou ale efektivní při práci s distribuovaným systémem souborů s odlišnými aspekty výkonu v porovnání s místními nastaveními. V distribuovaném systému souborů zahrnuje každé síťové volání cestu na server, který nemusí být místní. Optimalizace času stráveného síťovým voláním je proto zásadní pro dosažení optimálního výkonu a efektivního přenosu dat přes síť.

Použití nástroje fpsync vs. rsync

I když je rsync s jedním vláknem, je univerzální opensourcový nástroj pro kopírování souborů. Může kopírovat místně, do/z jiného hostitele přes jakékoli vzdálené prostředí nebo do/z vzdáleného démona rsync. Nabízí mnoho možností a umožňuje flexibilní specifikaci sady souborů, které se mají kopírovat. fpsync je však multithreaded aplikace, a proto nabízí některé výhody, včetně možnosti paralelního spouštění úloh rsync.

V tomto článku použijeme nástroj fpsync k přesunu dat ze souborového serveru s Linuxem do sdílených složek Azure NFS.

K kopírování dat používá nástroj fpsync buď rsync (výchozí), cpio nebo nástroje tar. Vypočítá podmnožinu zdrojového adresáře src_dir/ a vytvoří úlohy synchronizace, které je synchronizují s cílovým adresářem dst_dir/. Provádí úlohy synchronizace průběžně a současně prochází systém souborů, což je užitečný nástroj pro efektivní migraci velkých systémů souborů a kopírování velkých datových sad s více soubory.

Poznámka:

Nástroj Fpsync synchronizuje pouze obsah adresáře, nikoli samotný zdrojový adresář. Na rozdíl od rsync vynucuje fpsync ve zdrojovém adresáři konečnou hodnotu /, což znamená, že po synchronizaci nebudete mít podadresář s názvem zdrojového adresáře v cílovém adresáři.

Instalace fpart

Pokud chcete použít protokol fpsync, budete muset nainstalovat nástroj fpart filesystem partitioner. Nainstalujte fpart do distribuce Linuxu podle vašeho výběru. Po instalaci byste měli vidět fpsync v části /usr/bin/.

V Ubuntu nainstalujte fpart pomocí správce balíčků apt.

sudo apt-get install fpart

Kopírování dat ze zdroje do cíle

Ujistěte se, že je cílová (cílová) sdílená složka Azure připojená k virtuálnímu počítači s Linuxem. Viz Požadavky.

Pokud provádíte úplnou migraci, zkopírujete data ve třech fázích:

  1. Základní kopie: Kopírování ze zdroje do cíle, pokud v cíli neexistují žádná data. Pro základní kopii doporučujeme jako nástroj pro kopírování použít fpsync s cpio.
  2. Přírůstkové kopírování: Zkopírujte pouze přírůstkové změny ze zdroje do cíle. Pro přírůstkovou synchronizaci doporučujeme jako nástroj pro kopírování použít fpsync s rsync. To by se mělo provést několikrát, aby bylo možné zachytit všechny změny.
  3. Konečný průchod: Poslední předání je potřeba k odstranění všech souborů v cíli, které ve zdroji neexistují.

Kopírování dat pomocí fpsync vždy zahrnuje určitou verzi tohoto příkazu:

fpsync -m <specify copy tool - rsync/cpio/tar> -n <parallel transfers> <absolute source path> <absolute destination path>

Základní kopie

Pro základní kopii použijte fpsync s cpio.

fpsync -m cpio -n <parallel transfers> <absolute source path> <absolute destination path>

Další informace naleznete v tématu Cpio a Tar podpora.

Přírůstková kopie

Pro přírůstkovou synchronizaci použijte nástroj fpsync s výchozím nástrojem pro kopírování (rsync). Pokud chcete zachytit všechny změny, doporučujeme tuto funkci spustit několikrát.

fpsync -n <parallel transfers> <absolute source path> <absolute destination path>

Ve výchozím nastavení bude fpsync určovat následující možnosti rsync: -lptgoD -v --numeric-ids. Další možnosti rsync můžete zadat přidáním -o option do příkazu fpsync.

Konečný průchod

Po několika přírůstkových synchronizacích je potřeba provést poslední předání, abyste odstranili všechny soubory v tomto cíli, které ve zdroji neexistují. Můžete to udělat ručně rsync --delete , pokud chcete odstranit další soubory z /data/dst/ adresáře, nebo můžete použít fpsync s možností -E. Podrobnosti najdete v části Konečný průchod.

Porovnání rsync a fpsync s různými datovými sadami

Tato část porovnává výkon rsync a fpsync s různými datovými sadami.

Datové sady a konfigurace

Následující tabulka uvádí různé datové sady, které jsme použili k porovnání výkonu nástroje kopírování v různých úlohách.

Config # Typ kopírování Počet souborů Počet adresářů Velikost souboru Celková velikost
1,1 Základní kopie 1 milion 0 0-32 KiB 18 GiB
1.2 Přírůstková (rozdílová změna) 1 milion 0 0-32 KiB 18 GiB
2 Základní kopie 191,345 3,906 0-32 KiB 3 GiB
3 Základní kopie 5 000 0 10 MiB 50 GiB

Testy byly provedeny na virtuálních počítačích Azure Standard_D8s_v3 s 8 virtuálními procesory, 32 GiB paměti a více než 1 TiB místa na disku pro velké datové sady. Pro cíl jsme nakonfigurovali sdílené složky Azure NFS s více než 1 tiB zřízenou velikostí.

Experimenty a výsledky: rsync vs. fpsync

Na základě našich experimentů s výše uvedenými konfiguracemi jsme zjistili, že fpsync se při použití s 64 vlákny s rsync a 16 vlákny s cpio pro sdílenou složku Azure NFS připojenou ke nconnect=8sdílené složce Azure NFS. Skutečné výsledky se budou lišit v závislosti na vaší konfiguraci a datových sadách.

Poznámka:

Propustnost služby Azure Files může být mnohem vyšší než znázorněná v následujících grafech. Některé experimenty byly záměrně prováděny s malými datovými sadami kvůli jednoduchosti.

Konfigurace 1

Pro jeden adresář s 1 milionem malých souborů celkem 18 GiB jsme tento test spustili jako základní kopii i přírůstkovou kopii.

Zjistili jsme následující výsledky při kopírování podle směrného plánu ze zdroje do cíle.

Chart showing the test results of configuration 1 for a baseline copy.

Zjistili jsme následující výsledky, které provádí přírůstkovou kopii (rozdílová změna).

Chart showing the test results of configuration 1 for an incremental copy.

Konfigurace 2

Zjistili jsme následující výsledky a provedli jsme základní kopii 191 345 malých souborů ve 3 906 adresářích s celkovou velikostí 3 GiB.

Chart showing the test results of configuration 2 for a baseline copy.

Konfigurace 3

Zjistili jsme následující výsledky, které provádějí základní kopii 5 000 velkých souborů (10 MiB) v jednom adresáři s celkovou velikostí 50 GiB.

Chart showing the test results of configuration 3 for a baseline copy.

Souhrn výsledků

Použití vícevláknových aplikací, jako je fpsync, může zlepšit propustnost a IOPS při migraci do sdílených složek Azure NFS v porovnání s nástroji kopírování s jedním vláknem, jako je rsync. Naše testy ukazují, že:

  • Distribuce dat v rámci adresáře pomáhá paralelizovat proces migrace a dosáhnout tak lepšího výkonu.
  • Kopírování dat z větších velikostí souborů přináší lepší výkon než kopírování dat z menších velikostí souborů.

Následující tabulka shrnuje výsledky:

Config # Počet souborů Počet adresářů Velikost souboru Celková velikost doba trvání rsync Propustnost rsync Doba trvání protokolu fpsync Propustnost fpsync Získání propustnosti
1.1 (směrný plán) 1 milion 0 0-32 KiB 18 GiB 837,06 min 0.33 MiB/s 228,16 min 1.20 MiB/s 267%
1.2 (přírůstkové) 1 milion 0 0-32 KiB 18 GiB 84,02 min 3.25 MiB/s 7,5 min 36.41 MiB/s 1,020%
2 (směrný plán) 191,345 3,906 0-32 KiB 3 GiB 191,86 min. 0.27 MiB/s 8,47 min 6.04 MiB/s 2,164%
3 (směrný plán) 5 000 0 10 MiB 50 GiB 8,12 min 105.04 MiB/s 2,76 min 308.90 MiB/s 194%

Zřeknutí se odpovědnosti za informace třetích stran

Open source nástroje uvedené v tomto článku jsou známá řešení třetích stran. Nejsou vyvíjeny, vlastněné ani podporovány společností Microsoft, ať už přímo nebo nepřímo. Je zodpovědností zákazníka prozkoumat softwarovou licenci a prohlášení o podpoře uvedené v dokumentaci třetí strany.

Další kroky