Migrowanie do udziałów plików NFS na platformie Azure

✔️ Dotyczy: klasyczne udziały plików NFS utworzone za pomocą dostawcy zasobów Microsoft.Storage

✖️ Nie dotyczy: udziałów plików NFS utworzonych przy użyciu dostawcy zasobów Microsoft.FileShares ani klasycznych udziałów plików SMB utworzonych przy użyciu dostawcy zasobów Microsoft.Storage

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 SSD (Premium). Porównuje także narzędzia do kopiowania plików open source – fpsync i rsync, aby zrozumieć, jak działają podczas kopiowania danych do udostępnień plików Azure.

Uwaga

Usługa Azure Files nie obsługuje list kontroli dostępu systemu plików NFS (ACL).

Wymagania wstępne

Potrzebujesz co najmniej jednego udostępnionego pliku NFS Azure zamontowanego na wirtualnej maszynie Linux (VM). Aby utworzyć, zobacz Tworzenie klasycznego współdzielenia plików platformy Azure. Zamontuj udostępnienie, używając nconnect, aby użyć wielu połączeń TCP dla lepszej wydajności. Aby uzyskać więcej informacji, zobacz Poprawa wydajności zasobu współdzielonego plików Azure w systemie plików NFS.

Narzędzia migracji

Dostępnych jest wiele narzędzi 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 usługi Azure Storage Mover

Teraz możesz użyć usługi Azure Storage Mover do migrowania udziałów plików NFSv3 i NFSv4 do udziałów plików platformy Azure NFSv4.1. Azure Storage Mover to w pełni zarządzana usługa migracji, która umożliwia migrowanie lokalnych plików i folderów na platformę Azure przy jednoczesnym zminimalizowaniu przestojów.

Korzystanie z narzędzia fpsync a rsync

Pomimo jednowątkowego, rsync jest wszechstronnym, otwartoźródłowym narzędziem do kopiowania plików. Może kopiować pliki lokalnie, do lub z innego hosta za pośrednictwem dowolnej zdalnej powłoki albo do lub z zdalnego demona rsync. Oferuje wiele opcji i umożliwia elastyczne określenie zestawu plików do kopiowania. Jednak fpsync jest aplikacją wielowątkową i dlatego oferuje pewne korzyści, w tym możliwość równoległego uruchamiania zadań rsync.

Ten artykuł wyjaśnia, jak użyć fpsync do przenoszenia danych z serwera plików Linux do NFS Azure shares.

Aby skopiować dane, fpsync używa narzędzi rsync (wartość domyślna), cpio lub tar. Wyznacza podzestawy katalogu źródłowego src_dir/ i uruchamia zadania synchronizacji, aby zsynchronizować je z katalogiem docelowym dst_dir/. 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.

Zainstaluj fpart

Aby użyć fpsync, musisz zainstalować partycjoner systemu plików fpart. Zainstaluj program fpart w wybranej dystrybucji systemu Linux. Po instalacji fpsync pojawia się pod /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 docelowe udostępnienie plików platformy Azure jest zamontowane na maszynie wirtualnej z systemem Linux. Zobacz Wymagania wstępne.

Jeśli wykonujesz pełną migrację, skopiujesz dane w trzech fazach:

  1. Kopia podstawowa: Skopiuj ze źródła do miejsca przeznaczenia, gdy w miejscu przeznaczenia nie ma żadnych danych. W przypadku kopii bazowej zalecamy użycie narzędzia fpsync z narzędziem cpio do kopiowania.
  2. Kopia przyrostowa: Skopiuj tylko zmiany przyrostowe ze źródła do miejsca docelowego. Do synchronizacji inkrementalnej użyj fpsync with rsync jako narzędzia do kopiowania. Wykonaj to polecenie wielokrotnie, aby uchwycić wszystkie zmiany.
  3. Ostateczne przejście: Ostateczne przejście jest potrzebne do usunięcia jakichkolwiek 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 bazowa

W przypadku kopii bazowej użyj fpsync z 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

Do synchronizacji przyrostowej użyj fpsync z domyślnym narzędziem do kopiowania (rsync). Wykonaj to polecenie kilka razy, aby zarejestrować wszystkie zmiany.

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

Domyślnie określa fpsync następujące rsync opcje: -lptgoD -v --numeric-ids. Dodaj -o option do polecenia fpsync, aby określić dodatkowe opcje rsync.

Ostatnie podanie

Po kilku synchronizacjach przyrostowych należy wykonać ostateczny przegląd, aby usunąć wszystkie pliki w miejscu docelowym, które nie istnieją w źródle. Możesz to zrobić ręcznie, używając rsync --delete do usunięcia dodatkowych plików z katalogu /data/dst/, albo użyć fpsync z opcją -E. Aby uzyskać więcej informacji, zobacz Ostateczna Wersja.

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

Poniższa tabela przedstawia różne zbiory danych używane do porównania wydajności narzędzi kopiujących przy różnych obciążeniach.

Konfiguracja # Typ kopiowania Liczba plików Liczba katalogów Rozmiar pliku Całkowity rozmiar
1.1 Kopia bazowa 1 mln 1 0-32 KiB 18 GiB
1.2 Przyrostowe (zmiana różnicowa) 1 mln 1 0-32 KiB 18 GiB
2 Kopia bazowa 191,345 3,906 0-32 KiB 3 GiB
3 Kopia bazowa 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 Azure NFS o wielkości przekraczającej 1 TiB.

Eksperymenty i wyniki: rsync vs. fpsync

Testy pokazują, że fpsync działa najlepiej, gdy używasz 64 wątków z rsync i 16 wątków z cpio w przypadku udziału plików Azure NFS zamontowanego przy użyciu nconnect=8. Rzeczywiste wyniki różnią się w zależności od konfiguracji i zbioró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.

Poniższy wykres przedstawia wyniki kopii bazowej od źródła do miejsca docelowego.

Wykres przedstawiający wyniki testu konfiguracji 1 dla kopii punktu odniesienia.

Poniższy wykres przedstawia wyniki kopii przyrostowej (zmiany różnicowej).

Wykres przedstawiający wyniki testu konfiguracji 1 dla kopii przyrostowej.

Konfiguracja 2

Poniższy wykres przedstawia wyniki bazowej kopii 191 345 małych plików w 3 906 katalogach o łącznym rozmiarze 3 GiB.

Wykres przedstawiający wyniki testu konfiguracji 2 dla kopii punktu odniesienia.

Konfiguracja 3

Poniższy wykres przedstawia wyniki bazowej kopii 5 000 dużych plików (10 MiB) w jednym katalogu o łącznym rozmiarze 50 GiB.

Wykres przedstawiający wyniki testu konfiguracji 3 dla kopii punktu odniesienia.

Podsumowanie wyników

Użycie aplikacji wielowątkowych, takich jak fpsync, może zwiększyć przepustowość i IOPS podczas migracji do udziałów plików NFS Azure w porównaniu z narzędziami do kopiowania jednowątkowego, takimi jak rsync. Nasze testy pokazują, że:

  • Dystrybucja danych w katalogu pomaga zrównoleglić proces migracji, co pozwala osiągnąć 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:

Konfiguracja # Liczba plików Liczba katalogów Rozmiar pliku Całkowity rozmiar czas trwania rsync Przepływność rsync fpsync czas trwania 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 2164%
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 informacji osób trzecich

Narzędzia typu open source wymienione w tym artykule są dobrze znanymi rozwiązaniami innych firm. Microsoft nie rozwija, nie posiada ani nie wspiera tych narzędzi, ani bezpośrednio, ani pośrednio. Jesteś odpowiedzialny za przeanalizowanie licencji oprogramowania i oświadczenia wsparcia zawartego w dokumentacji strony trzeciej.

Następne kroki