Rozwiązywanie problemów z udziałami plików platformy Azure systemu plików NFS

Uwaga

CentOS, do którego odwołuje się ten artykuł, jest dystrybucją systemu Linux i osiągnie koniec życia (EOL). Rozważ użycie i odpowiednio zaplanuj. Aby uzyskać więcej informacji, zobacz Wskazówki dotyczące końca życia systemu CentOS.

Ten artykuł zawiera listę typowych problemów związanych z udziałami plików platformy Azure systemu plików NFS i zawiera potencjalne przyczyny i obejścia.

Ważna

Zawartość tego artykułu dotyczy tylko udziałów NFS. Aby rozwiązać problemy z protokołem SMB w systemie Linux, zobacz Rozwiązywanie problemów z Azure Files w systemie Linux (SMB). Udziały plików platformy Azure w systemie NFS nie są obsługiwane w systemie Windows.

Informacje zawarte w tym artykule dotyczą

Typ udziału plików SMB NFS
Standardowe udziały plików (GPv2), LRS/ZRS
Standardowe udziały plików (GPv2), GRS/GZRS
Udziały plików Premium (FileStorage), LRS/ZRS

chgrp "nazwa pliku" nie powiodła się: Nieprawidłowy argument (22)

Przyczyna 1: aplikacja idmapping nie jest wyłączona

Ponieważ Azure Files nie zezwala na alfanumeryczne identyfikatory UID/GID, należy wyłączyć idmapping.

Przyczyna 2: aplikacja idmapping została wyłączona, ale została ponownie włączona po napotkaniu nieprawidłowej nazwy pliku/dir

Nawet jeśli poprawnie wyłączysz idmapping, w niektórych przypadkach można go automatycznie ponownie włączyć. Na przykład gdy Azure Files napotka nieprawidłową nazwę pliku, wysyła z powrotem błąd. Po wyświetleniu tego kodu błędu klient systemu NFS 4.1 z systemem Linux decyduje się ponownie włączyć idmapping i wysyła przyszłe żądania z alfanumerycznym identyfikatorem UID/GID. Aby uzyskać listę nieobsługiwanych znaków na Azure Files, zobacz ten artykuł. Dwukropek jest jednym z nieobsługiwanych znaków.

Obejście problemu

Upewnij się, że wyłączono idmapping i że nic nie powoduje jego ponownego włączenia. Następnie wykonaj następujące kroki:

  1. Odinstaluj udział.

  2. Wyłącz idmapping przy użyciu:

    sudo echo Y > /sys/module/nfs/parameters/nfs4_disable_idmapping
    
  3. Zainstaluj udział z powrotem.

  4. W przypadku uruchamiania narzędzia rsync uruchom polecenie rsync z —numeric-ids argumentem z katalogu, który nie ma nieprawidłowego katalogu lub nazwy pliku.

Nie można utworzyć udziału systemu plików NFS

Przyczyna: Ustawienia nieobsługiwanego konta magazynu

System plików NFS jest dostępny tylko na kontach magazynu z następującą konfiguracją:

Rozwiązanie

Postępuj zgodnie z instrukcjami w temacie Jak utworzyć udział NFS.

Nie można nawiązać połączenia z udziałem plików NFS platformy Azure ani zainstalować go

Przyczyna 1. Żądanie pochodzi od klienta w niezaufanej sieci/niezaufanym adresie IP

W przeciwieństwie do protokołu SMB system plików NFS nie ma uwierzytelniania opartego na użytkownikach. Uwierzytelnianie udziału jest oparte na konfiguracji reguły zabezpieczeń sieci. Aby upewnić się, że klienci ustanawiają tylko bezpieczne połączenia z udziałem systemu plików NFS, należy użyć punktu końcowego usługi lub prywatnych punktów końcowych. Aby uzyskać dostęp do udziałów ze środowiska lokalnego oprócz prywatnych punktów końcowych, należy skonfigurować połączenie sieci VPN lub usługi ExpressRoute. Adresy IP dodane do listy dozwolonych konta magazynu dla zapory są ignorowane. Aby skonfigurować dostęp do udziału NFS, należy użyć jednej z następujących metod:

  • Punkt końcowy usługi

    • Dostęp do publicznego punktu końcowego.

    • Dostępne tylko w tym samym regionie.

    • Nie można używać komunikacji równorzędnej sieci wirtualnych na potrzeby dostępu do udziału.

    • Należy dodać każdą sieć wirtualną lub podsieć osobno do listy dozwolonych.

    • W przypadku dostępu lokalnego można używać punktów końcowych usługi z usługą ExpressRoute, sieciami VPN typu punkt-lokacja i lokacja-lokacja. Zalecamy używanie prywatnego punktu końcowego, ponieważ jest on bezpieczniejszy.

      Na poniższym diagramie przedstawiono łączność przy użyciu publicznych punktów końcowych:

      Diagram łączności publicznego punktu końcowego.

  • Prywatny punkt końcowy

    • Dostęp jest bezpieczniejszy niż punkt końcowy usługi.

    • Dostęp do udziału NFS za pośrednictwem łącza prywatnego jest dostępny z poziomu regionu platformy Azure konta magazynu i spoza niej (między regionami, lokalnie).

    • Komunikacja równorzędna sieci wirtualnych z sieciami wirtualnymi hostowanymi w prywatnym punkcie końcowym zapewnia dostęp do udziału NFS klientom w równorzędnych sieciach wirtualnych.

    • Prywatnych punktów końcowych można używać z usługą ExpressRoute, sieciami VPN typu punkt-lokacja i sieciami VPN typu lokacja-lokacja.

      Diagram łączności prywatnego punktu końcowego.

Przyczyna 2. Wymagany bezpieczny transfer jest włączony

Udziały plików platformy Azure systemu plików NFS nie obsługują obecnie podwójnego szyfrowania. Platforma Azure zapewnia warstwę szyfrowania dla wszystkich danych przesyłanych między centrami danych platformy Azure przy użyciu protokołu MACSec. Dostęp do udziałów systemu plików NFS można uzyskiwać tylko z zaufanych sieci wirtualnych i za pośrednictwem tuneli sieci VPN. W udziałach systemu plików NFS nie jest dostępne żadne dodatkowe szyfrowanie warstwy transportu.

Rozwiązanie

Wyłącz wymagany bezpieczny transfer w bloku konfiguracji konta magazynu.

Zrzut ekranu przedstawiający blok konfiguracji konta magazynu z wyłączeniem wymaganego bezpiecznego transferu.

Przyczyna 3: pakiety nfs-utils, nfs-client lub nfs-common nie są zainstalowane

Przed uruchomieniem mount polecenia zainstaluj pakiet nfs-utils, nfs-client lub nfs-common.

Aby sprawdzić, czy pakiet NFS jest zainstalowany, uruchom polecenie:

Te same polecenia w tej sekcji dotyczą systemów CentOS i Oracle Linux.

sudo rpm -qa | grep nfs-utils

Rozwiązanie

Jeśli pakiet nie jest zainstalowany, zainstaluj pakiet przy użyciu polecenia specyficznego dla dystrybucji.

Te same polecenia w tej sekcji dotyczą systemów CentOS i Oracle Linux.

System operacyjny w wersji 7.X

sudo yum install nfs-utils

System operacyjny w wersji 8.X lub 9.X

sudo dnf install nfs-utils

Przyczyna 4: Zapora blokująca port 2049

Protokół NFS komunikuje się ze swoim serwerem za pośrednictwem portu 2049. Upewnij się, że ten port jest otwarty dla konta magazynu (serwera NFS).

Rozwiązanie

Sprawdź, czy port 2049 jest otwarty na kliencie, uruchamiając następujące polecenie. Jeśli port nie jest otwarty, otwórz go.

sudo nc -zv <storageaccountnamehere>.file.core.windows.net 2049

Przyczyna 5. Usunięcie konta magazynu

Jeśli nie możesz zainstalować udziału plików z powodu błędu: upłynął limit czasu połączenia, konto magazynu zawierające udział plików może zostać przypadkowo usunięte.

Rozwiązanie

Odzyskaj konto magazynu. Następnie usuń i ponownie utwórz prywatny punkt końcowy, aby był skojarzony z nowym identyfikatorem zasobu konta magazynu.

ls zawiesza się w przypadku wyliczania dużych katalogów na niektórych jądrach

Przyczyna: Usterka została wprowadzona w jądrze systemu Linux w wersji 5.11 i została naprawiona w wersji 5.12.5

Niektóre wersje jądra mają usterkę, która powoduje, że listy katalogów powodują nieskończoną sekwencję READDIR. Małe katalogi, w których wszystkie wpisy mogą być wysyłane w jednym wywołaniu, nie mają tego problemu. Usterka została wprowadzona w jądrze systemu Linux w wersji 5.11 i została naprawiona w wersji 5.12.5. Więc wszystko pomiędzy ma usterkę. RHEL 8.4 ma tę wersję jądra.

Obejście: Obniżanie lub uaktualnianie jądra

Obniżenie lub uaktualnienie jądra do dowolnego elementu poza jądrem, którego dotyczy problem, powinno rozwiązać ten problem.

Polecenia systemowe nie powiodły się z powodu błędu "Nie znaleziono pliku"

Przyczyna

Aplikacje 32-bitowe systemu Linux korzystające z numerów węzłów mogą nie działać zgodnie z oczekiwaniami w przypadku Azure Files ze względu na formatowanie 64-bitowych numerów węzłów węzłów generowanych przez usługę NFS.

Rozwiązanie

Aby rozwiązać ten problem, zastosuj jedną z następujących metod:

  • Skompresuj liczby węzłów 64-bitowych do 32 bitów przy użyciu opcji rozruchu nfs.enable_ino64=0 jądra.

  • Ustaw parametr modułu, dodając options nfs enable_ino64=0 plik /etc/modprobe.d/nfs.conf i ponownie uruchamiając maszynę wirtualną.

Tę opcję rozruchu jądra można również utrwalić w pliku grub.conf . Aby uzyskać więcej informacji, zobacz dokumentację dystrybucji systemu Linux.

Potrzebujesz pomocy?

Jeśli nadal potrzebujesz pomocy, skontaktuj się z pomocą techniczną , aby szybko rozwiązać problem.

Zobacz też

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii platformy Azure.