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 | ||
Sdílené složky úrovně Standard (GPv2), GRS/GZRS | ||
Sdílené složky úrovně Premium (FileStorage), LRS/ZRS |
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:
- 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.
- 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.
- 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=8
sdí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.
Zjistili jsme následující výsledky, které provádí přírůstkovou kopii (rozdílová změna).
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.
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.
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.