Problemen met NFS Azure-bestandsshares oplossen
Notitie
CentOS waarnaar in dit artikel wordt verwezen, is een Linux-distributie en bereikt het einde van de levensduur (EOL). Houd rekening met uw gebruik en plan dienovereenkomstig. Zie De richtlijnen voor het einde van de levensduur van CentOS voor meer informatie.
Dit artikel bevat veelvoorkomende problemen met betrekking tot NFS Azure-bestandsshares en biedt mogelijke oorzaken en tijdelijke oplossingen.
Belangrijk
De inhoud van dit artikel is alleen van toepassing op NFS-shares. Als u SMB-problemen in Linux wilt oplossen, raadpleegt u Problemen met Azure Files in Linux (SMB) oplossen. NFS Azure-bestandsshares worden niet ondersteund voor Windows.
Van toepassing op
Bestands sharetype | SMB | NFS |
---|---|---|
Standaardbestandsshares (GPv2), LRS/ZRS | ||
Standaardbestandsshares (GPv2), GRS/GZRS | ||
Premium bestandsshares (FileStorage), LRS/ZRS |
chgrp 'bestandsnaam' is mislukt: ongeldig argument (22)
Oorzaak 1: idmapping is niet uitgeschakeld
Omdat Azure Files alfanumerieke UID/GID niet toekent, moet u idmapping uitschakelen.
Oorzaak 2: idmapping is uitgeschakeld, maar opnieuw ingeschakeld na het tegenkomen van een ongeldig bestand/dir-naam
Zelfs als u idmapping correct uitschakelt, kan het in sommige gevallen automatisch opnieuw worden ingeschakeld. Wanneer Azure Files bijvoorbeeld een ongeldige bestandsnaam tegenkomt, wordt er een fout teruggestuurd. Wanneer u deze foutcode ziet, besluit een NFS 4.1 Linux-client om idmapping opnieuw in te schakelen en toekomstige aanvragen te verzenden met alfanumerieke UID/GID. Zie dit artikel voor een lijst met niet-ondersteunde tekens in Azure Files. Dubbele punt is een van de niet-ondersteunde tekens.
Tijdelijke oplossing
Zorg ervoor dat u idmapping hebt uitgeschakeld en dat er niets opnieuw wordt ingeschakeld. Voer vervolgens de volgende stappen uit:
Ontkoppel de share.
Idmapping uitschakelen met:
sudo echo Y > /sys/module/nfs/parameters/nfs4_disable_idmapping
Koppel de share terug.
Als u rsync uitvoert, voert u rsync uit met het
—numeric-ids
argument uit een map die geen onjuiste map of bestandsnaam heeft.
Kan geen NFS-share maken
Oorzaak: Niet-ondersteunde opslagaccountinstellingen
NFS is alleen beschikbaar voor opslagaccounts met de volgende configuratie:
- Laag - Premium
- Soort account - FileStorage
- Regio's - Lijst met ondersteunde regio's
Oplossing
Volg de instructies in Een NFS-share maken.
Kan geen verbinding maken met of koppelen aan een NFS Azure-bestandsshare
Oorzaak 1: Aanvraag is afkomstig van een client in een niet-vertrouwd netwerk/niet-vertrouwd IP-adres
In tegenstelling tot SMB heeft NFS geen verificatie op basis van gebruikers. De verificatie voor een share is gebaseerd op de configuratie van uw netwerkbeveiligingsregel. Om ervoor te zorgen dat clients alleen beveiligde verbindingen met uw NFS-share tot stand brengen, moet u het service-eindpunt of de privé-eindpunten gebruiken. Als u naast privé-eindpunten toegang wilt krijgen tot shares vanaf on-premises, moet u een VPN- of ExpressRoute-verbinding instellen. IP-adressen die zijn toegevoegd aan de acceptatielijst van het opslagaccount voor de firewall, worden genegeerd. U moet een van de volgende methoden gebruiken om toegang tot een NFS-share in te stellen:
-
Toegankelijk voor het openbare eindpunt.
Alleen beschikbaar in dezelfde regio.
U kunt geen sharetoegang verkrijgen met VNet-peering.
U moet elk virtueel netwerk of subnet afzonderlijk toevoegen aan de acceptatielijst.
Voor on-premises toegang kunt u service-eindpunten gebruiken met ExpressRoute, point-naar-site- en site-naar-site-VPN's. We raden aan een privé-eindpunt te gebruiken omdat dit veiliger is.
In het volgende diagram ziet u connectiviteit met behulp van openbare eindpunten:
-
Toegang is veiliger dan het service-eindpunt.
Toegang tot NFS-share via privékoppeling is beschikbaar van binnen en buiten de Azure-regio van het opslagaccount (cross-regio, on-premises).
Peering van virtuele netwerken met virtuele netwerken die worden gehost in het privé-eindpunt geeft de NFS-share toegang tot de clients in virtuele netwerken met peering.
U kunt privé-eindpunten gebruiken met ExpressRoute, point-naar-site-VPN's en site-naar-site-VPN's.
Oorzaak 2: Veilige overdracht is ingeschakeld
NFS Azure-bestandsshares bieden momenteel geen ondersteuning voor dubbele versleuteling. Azure biedt een laag versleuteling voor alle gegevens die worden verzonden tussen Azure-datacenters met behulp van MACSec. U hebt alleen toegang tot NFS-shares van vertrouwde virtuele netwerken en via VPN-tunnels. Er is geen extra transportlaagversleuteling beschikbaar op NFS-shares.
Oplossing
Schakel Beveiligde overdracht uit die is vereist op de configuratieblade van uw opslagaccount.
Oorzaak 3: nfs-utils, nfs-client of nfs-common pakket is niet geïnstalleerd
Voordat u de mount
opdracht uitvoert, installeert u het pakket nfs-utils, nfs-client of nfs-common.
U kunt controleren of het NFS-pakket is geïnstalleerd met de volgende opdracht:
Dezelfde opdrachten in deze sectie zijn van toepassing op CentOS en Oracle Linux.
sudo rpm -qa | grep nfs-utils
Oplossing
Als het pakket niet is geïnstalleerd, installeert u het pakket met behulp van uw distributiespecifieke opdracht.
Dezelfde opdrachten in deze sectie zijn van toepassing op CentOS en Oracle Linux.
Versie 7.X van het besturingssysteem
sudo yum install nfs-utils
Besturingssysteemversie 8.X of 9.X
sudo dnf install nfs-utils
Oorzaak 4: Firewall blokkeert poort 2049
Het NFS-protocol communiceert met de server via poort 2049. Zorg ervoor dat deze poort is geopend voor het opslagaccount (de NFS-server).
Oplossing
Controleer of poort 2049 is geopend op uw client door de volgende opdracht uit te voeren. Als de poort niet is geopend, opent u deze.
sudo nc -zv <storageaccountnamehere>.file.core.windows.net 2049
Oorzaak 5: Opslagaccount verwijderd
Als u de bestandsshare niet kunt koppelen vanwege een fout: er is een time-out opgetreden voor de verbinding, kan het opslagaccount met de bestandsshare per ongeluk worden verwijderd.
Oplossing
Herstel het opslagaccount. Verwijder vervolgens het privé-eindpunt en maak het opnieuw, zodat het is gekoppeld aan de resource-id van het nieuwe opslagaccount.
ls loopt vast voor grote directory-inventarisatie op sommige kernels
Oorzaak: Er is een fout geïntroduceerd in Linux-kernel v5.11 en is opgelost in v5.12.5
Sommige kernelversies hebben een fout waardoor directoryvermeldingen resulteren in een eindeloze READDIR-reeks. Kleine mappen waarin alle vermeldingen in één gesprek kunnen worden verzonden, hebben dit probleem niet. De fout is geïntroduceerd in Linux-kernel v5.11 en is opgelost in v5.12.5. Dus alles tussendoor heeft de bug. RHEL 8.4 heeft deze kernelversie.
Tijdelijke oplossing: de kernel downgraden of upgraden
Het probleem kan worden opgelost door de kernel te downgraden of te upgraden naar iets buiten de betreffende kernel.
Systeemopdrachten mislukken met de fout 'Bestand niet gevonden'
Oorzaak
Linux 32-bits toepassingen die afhankelijk zijn van inode-getallen werken mogelijk niet zoals verwacht met Azure Files vanwege de opmaak van de 64-bits inode-getallen die door de NFS-service worden gegenereerd.
Oplossing
Gebruik een van de volgende methoden om dit op te lossen:
Comprimeer de 64-bits inode-getallen naar 32 bits met behulp van de
nfs.enable_ino64=0
kernel-opstartoptie.Stel de moduleparameter in door het bestand /etc/modprobe.d/nfs.conf toe te voegen
options nfs enable_ino64=0
en de virtuele machine opnieuw op te starten.
U kunt deze kernel-opstartoptie ook behouden in het bestand grub.conf . Zie de documentatie voor uw Linux-distributie voor meer informatie.
Kan het eigendom van bestanden en mappen niet wijzigen
Oorzaak
Machtigingen voor NFS-bestandsshares worden afgedwongen door het client-besturingssysteem in plaats van de Azure Files-service. Als de instelling Root Squash is ingeschakeld op een NFS-bestandsshare, wordt de hoofdgebruiker op het clientsysteem behandeld als een anonieme (niet-bevoegde) gebruiker voor toegangsbeheerdoeleinden. Dit betekent dat zelfs als u bent aangemeld als root op het clientsysteem, u de chown
opdracht niet kunt gebruiken om het eigendom te wijzigen van bestanden en mappen die u niet bezit.
Oplossing
Navigeer in Azure Portal naar de bestandsshare en selecteer Eigenschappen. Wijzig de instelling Root Squash in No Root Squash. Zie Root squash configureren voor Azure Files voor meer informatie.
Als Geen root squash is ingeschakeld, heeft de hoofdgebruiker op het clientsysteem dezelfde bevoegdheden als de hoofdgebruiker op het serversysteem. U kunt nu het chown
eigendom van een bestand of map in de share wijzigen, ongeacht de huidige eigenaar. Nadat u de wijzigingen hebt aangebracht, kunt u root squash indien nodig opnieuw inschakelen.
Hulp nodig?
Als u nog steeds hulp nodig hebt, neemt u contact op met de ondersteuning om het probleem snel op te lossen.
Zie ook
- Problemen met Azure-bestanden oplossen
- Problemen met prestaties van Azure Files oplossen
- Problemen met Azure Files-connectiviteit (SMB) oplossen
- Problemen met Azure Files-verificatie en -autorisatie (SMB) oplossen
- Algemene SMB-problemen met Azure Files in Linux oplossen
Contacteer ons voor hulp
Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Azure-feedbackcommunity.