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:
Odinstaluj udział.
Wyłącz idmapping przy użyciu:
sudo echo Y > /sys/module/nfs/parameters/nfs4_disable_idmapping
Zainstaluj udział z powrotem.
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ą:
- Warstwa — Premium
- Rodzaj konta — FileStorage
- Regiony — lista obsługiwanych regionów
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:
-
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:
-
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.
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.
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ż
- Rozwiązywanie problemów z Azure Files
- Rozwiązywanie problemów z wydajnością Azure Files
- Rozwiązywanie problemów z łącznością Azure Files (SMB)
- Rozwiązywanie problemów z uwierzytelnianiem i autoryzacją Azure Files (SMB)
- Rozwiązywanie Azure Files ogólnych problemów z protokołem SMB w systemie Linux
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.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla