Migrowanie do udziałów plików platformy Azure w systemie plików NFS
W tym artykule opisano podstawowe aspekty migracji z serwerów plików systemu Linux do udziałów plików platformy Azure NFS, które są dostępne tylko jako udziały plików Premium (rodzaj konta FileStorage). Porównamy również narzędzia do kopiowania plików typu open source fpsync i rsync, aby zrozumieć, jak działają podczas kopiowania danych do udziałów plików platformy Azure.
Uwaga
Usługa Azure Files nie obsługuje list kontroli dostępu systemu plików NFS (ACL).
Dotyczy
Typ udziału plików | SMB | NFS |
---|---|---|
Udziały plików w warstwie Standardowa (GPv2), LRS/ZRS | ||
Udziały plików w warstwie Standardowa (GPv2), GRS/GZRS | ||
Udziały plików w warstwie Premium (FileStorage), LRS/ZRS |
Wymagania wstępne
Będziesz potrzebować co najmniej jednego udziału plików platformy Azure NFS zainstalowanego na maszynie wirtualnej z systemem Linux. Aby go utworzyć, zobacz Tworzenie udziału plików platformy Azure NFS i instalowanie go na maszynie wirtualnej z systemem Linux. Zalecamy zainstalowanie udziału za pomocą programu nconnect w celu korzystania z wielu połączeń TCP. Aby uzyskać więcej informacji, zobacz Zwiększanie wydajności udziału plików platformy Azure w systemie plików NFS.
Narzędzia migracji
Wiele narzędzi typu open source jest dostępnych do transferu danych do udziałów plików NFS. Jednak nie wszystkie z nich są wydajne w przypadku pracy z rozproszonym systemem plików z różnymi zagadnieniami dotyczącymi wydajności w porównaniu z konfiguracjami lokalnymi. W rozproszonym systemie plików każde wywołanie sieciowe obejmuje podróż okrężną do serwera, który może nie być lokalny. W związku z tym optymalizacja czasu poświęcanego na wywołania sieciowe ma kluczowe znaczenie dla osiągnięcia optymalnej wydajności i wydajnego transferu danych za pośrednictwem sieci.
Korzystanie z narzędzia fpsync a rsync
Mimo że jest jednowątkowy, rsync jest wszechstronnym narzędziem do kopiowania plików typu open source. Może on kopiować lokalnie, do/z innego hosta za pośrednictwem dowolnej zdalnej powłoki lub do/z zdalnego demona rsync. Oferuje wiele opcji i umożliwia elastyczną specyfikację zestawu plików do skopiowania. Jednak fpsync jest aplikacją wielowątkową i dlatego oferuje pewne korzyści, w tym możliwość równoległego uruchamiania zadań rsync.
W tym artykule użyjemy fpsync do przeniesienia danych z serwera plików systemu Linux do udziałów plików platformy Azure NFS.
Aby skopiować dane, fpsync używa narzędzi rsync (wartość domyślna), cpio lub tar. Oblicza podzestawy katalogu src_dir/
źródłowego i powoduje zduplikowania zadań synchronizacji w celu zsynchronizowania ich z katalogem dst_dir/
docelowym . Wykonuje zadania synchronizacji na bieżąco podczas jednoczesnego przeszukiwania systemu plików, dzięki czemu jest to przydatne narzędzie do wydajnego migrowania dużych systemów plików i kopiowania dużych zestawów danych z wieloma plikami.
Uwaga
Program Fpsync synchronizuje tylko zawartość katalogu, a nie sam katalog źródłowy. W przeciwieństwie do rsync, fpsync wymusza końcowy '/' w katalogu źródłowym, co oznacza, że nie uzyskasz podkatalogu o nazwie katalogu źródłowego w katalogu docelowym po synchronizacji.
Instalowanie składnika fpart
Aby użyć narzędzia fpsync, należy zainstalować partycjonator systemu plików fpart. Zainstaluj program fpart w wybranej dystrybucji systemu Linux. Po zainstalowaniu narzędzia fpsync powinny być widoczne w obszarze /usr/bin/
.
W systemie Ubuntu użyj menedżera pakietów apt, aby zainstalować program fpart.
sudo apt-get install fpart
Kopiowanie danych ze źródła do miejsca docelowego
Upewnij się, że docelowy (docelowy) udział plików platformy Azure jest zainstalowany na maszynie wirtualnej z systemem Linux. Zobacz Wymagania wstępne.
Jeśli wykonujesz pełną migrację, skopiujesz dane w trzech fazach:
- Kopia punktu odniesienia: kopiuj ze źródła do miejsca docelowego, gdy żadne dane nie istnieją w miejscu docelowym. W przypadku kopii bazowej zalecamy użycie narzędzia fpsync z procesorem cpio.
- Kopia przyrostowa: kopiuj tylko zmiany przyrostowe ze źródła do miejsca docelowego. W przypadku synchronizacji przyrostowej zalecamy użycie narzędzia do kopiowania za pomocą narzędzia do kopiowania za pomocą narzędzia fpsync z funkcją rsync. Należy to zrobić wiele razy, aby przechwycić wszystkie zmiany.
- Ostatnie przekazanie: końcowe przekazanie jest potrzebne do usunięcia wszystkich plików w miejscu docelowym, które nie istnieją w źródle.
Kopiowanie danych za pomocą funkcji fpsync zawsze wiąże się z pewną wersją tego polecenia:
fpsync -m <specify copy tool - rsync/cpio/tar> -n <parallel transfers> <absolute source path> <absolute destination path>
Kopia wg planu bazowego
W przypadku kopii bazowej użyj fpsync z procesorem cpio.
fpsync -m cpio -n <parallel transfers> <absolute source path> <absolute destination path>
Aby uzyskać więcej informacji, zobacz Obsługa technologii Cpio i Tar.
Kopia przyrostowa
W przypadku synchronizacji przyrostowej użyj narzędzia fpsync z domyślnym narzędziem do kopiowania (rsync). Aby przechwycić wszystkie zmiany, zalecamy uruchomienie tego kilka razy.
fpsync -n <parallel transfers> <absolute source path> <absolute destination path>
Domyślnie fpsync określi następujące opcje rsync: -lptgoD -v --numeric-ids
. Możesz określić dodatkowe opcje rsync, dodając -o option
do polecenia fpsync.
Ostatnie podanie
Po kilku synchronizacjach przyrostowych należy wykonać ostateczne przekazanie, aby usunąć wszystkie pliki w tym miejscu docelowym, które nie istnieją w źródle. Możesz to zrobić ręcznie rsync --delete
, aby usunąć dodatkowe pliki z /data/dst/
katalogu lub użyć funkcji fpsync z opcją -E. Aby uzyskać szczegółowe informacje, zobacz Końcowy dostęp.
Porównywanie rsync i fpsync z różnymi zestawami danych
W tej sekcji porównaliśmy wydajność rsync i fpsync z różnymi zestawami danych.
Zestawy danych i konfiguracja
W poniższej tabeli wymieniono różne zestawy danych używane do porównywania wydajności narzędzia do kopiowania w różnych obciążeniach.
Config # | Typ kopiowania | Liczba plików | Liczba katalogów | Rozmiar pliku | Całkowity rozmiar |
---|---|---|---|---|---|
1.1 | Kopia wg planu bazowego | 1 mln | 1 | 0-32 KiB | 18 GiB |
1.2 | Przyrostowe (zmiana różnicowa) | 1 mln | 1 | 0-32 KiB | 18 GiB |
2 | Kopia wg planu bazowego | 191,345 | 3,906 | 0-32 KiB | 3 GiB |
3 | Kopia wg planu bazowego | 5,000 | 1 | 10 MiB | 50 GiB |
Testy zostały wykonane na maszynach wirtualnych platformy Azure Standard_D8s_v3 z 8 procesorami wirtualnymi, 32 GiB pamięci i więcej niż 1 TiB miejsca na dysku dla dużych zestawów danych. Dla obiektu docelowego skonfigurowaliśmy udziały plików platformy Azure NFS z więcej niż 1 aprowizowaną wielkością TiB.
Eksperymenty i wyniki: rsync vs. fpsync
Na podstawie naszych eksperymentów z powyższymi konfiguracjami zaobserwowaliśmy, że fpsync działał najlepiej, gdy był używany z 64 wątkami z rsync i 16 wątkami z cpio dla udziału plików NFS platformy Azure zainstalowanego z nconnect=8
programem . Rzeczywiste wyniki będą się różnić w zależności od konfiguracji i zestawów danych.
Uwaga
Przepływność dla usługi Azure Files może być znacznie wyższa niż reprezentowana na poniższych wykresach. Niektóre eksperymenty zostały celowo przeprowadzone z małymi zestawami danych dla uproszczenia.
Konfiguracja 1
W przypadku pojedynczego katalogu z 1 milionem małych plików w sumie 18 GiB uruchomiliśmy ten test jako kopia bazowa i kopia przyrostowa.
Zaobserwowaliśmy następujące wyniki, wykonując kopię bazową ze źródła do miejsca docelowego.
Zaobserwowaliśmy następujące wyniki podczas kopiowania przyrostowego (zmiana różnicowa).
Konfiguracja 2
Zaobserwowaliśmy następujące wyniki, wykonując kopię bazową 191 345 małych plików w 3906 katalogach o całkowitym rozmiarze 3 GiB.
Konfiguracja 3
Zaobserwowaliśmy następujące wyniki, wykonując kopię bazową 5000 dużych plików (10 MiB) w jednym katalogu o całkowitym rozmiarze 50 GiB.
Podsumowanie wyników
Użycie aplikacji wielowątowych, takich jak fpsync, może zwiększyć przepływność i operacje we/wy na sekundę podczas migracji do udziałów plików platformy Azure NFS w porównaniu z narzędziami do kopiowania jednowątkowego, takimi jak rsync. Nasze testy pokazują, że:
- Dystrybucja danych w katalogu pomaga zrównać proces migracji, a tym samym osiąga lepszą wydajność.
- Kopiowanie danych z większych rozmiarów plików zapewnia lepszą wydajność niż kopiowanie danych z mniejszych rozmiarów plików.
Poniższa tabela zawiera podsumowanie wyników:
Config # | Liczba plików | Liczba katalogów | Rozmiar pliku | Całkowity rozmiar | czas trwania rsync | Przepływność rsync | czas trwania fpsync | Przepływność fpsync | Zysk przepływności |
---|---|---|---|---|---|---|---|---|---|
1.1 (punkt odniesienia) | 1 mln | 1 | 0-32 KiB | 18 GiB | 837,06 min | 0.33 MiB/s | 228,16 min | 1.20 MiB/s | 267% |
1.2 (przyrostowe) | 1 mln | 1 | 0-32 KiB | 18 GiB | 84,02 min | 3.25 MiB/s | 7,5 min | 36.41 MiB/s | 1,020% |
2 (punkt odniesienia) | 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 (punkt odniesienia) | 5,000 | 1 | 10 MiB | 50 GiB | 8,12 min | 105.04 MiB/s | 2,76 min | 308.90 MiB/s | 194% |
Zastrzeżenie dotyczące innych firm
Narzędzia typu open source wymienione w tym artykule są dobrze znanymi rozwiązaniami innych firm. Nie są one opracowywane, własnością lub obsługiwane przez firmę Microsoft bezpośrednio lub pośrednio. Klient ponosi odpowiedzialność za zbadanie licencji oprogramowania i oświadczenia o pomocy technicznej podanej w dokumentacji innej firmy.