Résoudre les problèmes liés aux partages de fichiers Azure NFS

Remarque

CentOS référencé dans cet article est une distribution Linux qui atteint la fin de vie (EOL). Tenez compte de votre utilisation et planifiez en conséquence. Pour plus d’informations, consultez Guide sur la fin de vie de CentOS.

Cet article répertorie les problèmes courants liés aux partages de fichiers Azure NFS et fournit des causes potentielles et des solutions de contournement.

Importante

Le contenu de cet article s’applique uniquement aux partages NFS. Pour résoudre les problèmes SMB dans Linux, consultez Résoudre les problèmes de Azure Files dans Linux (SMB). Les partages de fichiers Azure NFS ne sont pas pris en charge pour Windows.

S’applique à

Type de partage de fichiers SMB NFS
Partages de fichiers standard (GPv2), LRS/ZRS
Partages de fichiers standard (GPv2), GRS/GZRS
Partages de fichiers Premium (FileStorage), LRS/ZRS

échec de chgrp « filename » : argument non valide (22)

Cause 1 : idmapping n’est pas désactivé

Étant donné que Azure Files interdit l’UID/GID alphanumérique, vous devez désactiver le mappage d’idmapping.

Cause 2 : l’idmapping a été désactivé, mais a été réactivé après avoir rencontré un nom de fichier/dir incorrect

Même si vous désactivez correctement idmapping, il peut être automatiquement réactivé dans certains cas. Par exemple, quand Azure Files rencontre un nom de fichier incorrect, il renvoie une erreur. Après avoir vu ce code d’erreur, un client Linux NFS 4.1 décide de réactiver le mappage d’idmapping et envoie les demandes futures avec l’UID/GID alphanumérique. Pour obtenir la liste des caractères non pris en charge sur Azure Files, consultez cet article. Deux-points est l’un des caractères non pris en charge.

Solution de contournement

Vérifiez que vous avez désactivé l’idmapping et que rien ne le réactive. Effectuez ensuite les étapes suivantes :

  1. Démontez le partage.

  2. Désactivez idmapping avec :

    sudo echo Y > /sys/module/nfs/parameters/nfs4_disable_idmapping
    
  3. Montez le partage en arrière.

  4. Si vous exécutez rsync, exécutez rsync avec l’argument —numeric-ids à partir d’un répertoire qui n’a pas de nom de répertoire ou de fichier incorrect.

Impossible de créer un partage NFS

Cause : Paramètres de compte de stockage non pris en charge

NFS est disponible uniquement sur les comptes de stockage avec la configuration suivante :

Solution

Suivez les instructions fournies dans Comment créer un partage NFS.

Impossible de se connecter ou de monter un partage de fichiers Azure NFS

Cause 1 : La demande provient d’un client dans un réseau non approuvé/une adresse IP non approuvée

Contrairement à SMB, NFS n’a pas d’authentification basée sur l’utilisateur. L’authentification pour un partage est basée sur la configuration de votre règle de sécurité réseau. Pour vous assurer que les clients établissent uniquement des connexions sécurisées à votre partage NFS, vous devez utiliser le point de terminaison de service ou des points de terminaison privés. Pour accéder aux partages à partir d’un emplacement local en plus des points de terminaison privés, vous devez configurer une connexion VPN ou ExpressRoute. Les adresses IP ajoutées à la liste d’autorisation du compte de stockage pour le pare-feu sont ignorées. Vous devez utiliser l’une des méthodes suivantes pour configurer l’accès à un partage NFS :

  • GET mon profil

    • Accessible par le point de terminaison public.

    • Disponible uniquement dans la même région.

    • Vous ne pouvez pas utiliser le peering de réseaux virtuels pour l’accès au partage.

    • Vous devez ajouter chaque réseau virtuel ou sous-réseau individuellement à la liste d’autorisation.

    • Pour l’accès local, vous pouvez utiliser des points de terminaison de service avec ExpressRoute, des VPN de point à site et de site à site. Nous vous recommandons d’utiliser un point de terminaison privé, car il est plus sécurisé.

      Le diagramme suivant illustre la connectivité à l’aide de points de terminaison publics :

      Diagramme de la connectivité du point de terminaison public.

  • Point de terminaison privé

    • L’accès est plus sécurisé que le point de terminaison de service.

    • L’accès au partage NFS via une liaison privée est disponible à l’intérieur et à l’extérieur de la région Azure du compte de stockage (interrégion, local).

    • Le peering de réseaux virtuels avec des réseaux virtuels hébergés dans le point de terminaison privé donne au partage NFS l’accès aux clients dans des réseaux virtuels appairés.

    • Vous pouvez utiliser des points de terminaison privés avec ExpressRoute, des VPN point à site et des VPN de site à site.

      Diagramme de la connectivité des points de terminaison privés.

Cause 2 : Le transfert sécurisé requis est activé

Actuellement, les partages de fichiers Azure NFS ne prennent pas en charge le double chiffrement. Azure fournit une couche de chiffrement pour toutes les données en transit entre les centres de données Azure à l’aide de MACSec. Vous pouvez uniquement accéder aux partages NFS à partir de réseaux virtuels approuvés et via des tunnels VPN. Aucun chiffrement de couche de transport supplémentaire n’est disponible sur les partages NFS.

Solution

Désactivez transfert sécurisé requis dans le panneau de configuration de votre compte de stockage.

Capture d’écran montrant le panneau de configuration du compte de stockage, en désactivant le transfert sécurisé requis.

Cause 3 : le package nfs-utils, nfs-client ou nfs-common n’est pas installé

Avant d’exécuter la mount commande, installez le package nfs-utils, nfs-client ou nfs-common.

Pour case activée si le package NFS est installé, exécutez :

Les mêmes commandes de cette section s’appliquent à CentOS et Oracle Linux.

sudo rpm -qa | grep nfs-utils

Solution

Si le package n’est pas installé, installez-le à l’aide de votre commande spécifique à la distribution.

Les mêmes commandes de cette section s’appliquent à CentOS et Oracle Linux.

Version du système d’exploitation 7.X

sudo yum install nfs-utils

Version 8.X ou 9.X du système d’exploitation

sudo dnf install nfs-utils

Cause 4 : Pare-feu bloquant le port 2049

Le protocole NFS communique avec son serveur sur le port 2049. Assurez-vous que ce port est ouvert sur le compte de stockage (le serveur NFS).

Solution

Vérifiez que le port 2049 est ouvert sur votre client en exécutant la commande suivante. Si le port n’est pas ouvert, ouvrez-le.

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

ls se bloque pour l’énumération de répertoires volumineux sur certains noyaux

Cause : Un bogue a été introduit dans le noyau Linux v5.11 et a été résolu dans la version 5.12.5

Certaines versions du noyau ont un bogue qui entraîne la création de listes de répertoires dans une séquence READDIR sans fin. Les petits répertoires où toutes les entrées peuvent être envoyées en un seul appel n’ont pas ce problème. Le bogue a été introduit dans le noyau Linux v5.11 et a été corrigé dans la version 5.12.5. Donc tout ce qui se trouve entre les deux a le bogue. RHEL 8.4 a cette version du noyau.

Solution de contournement : rétrograder ou mettre à niveau le noyau

La rétrogradation ou la mise à niveau du noyau vers tout ce qui est en dehors du noyau affecté doit résoudre le problème.

Les commandes système échouent avec l’erreur « Fichier introuvable »

Cause

Les applications Linux 32 bits qui s’appuient sur des nombres d’inodes peuvent ne pas fonctionner comme prévu avec Azure Files en raison de la mise en forme des numéros d’inode 64 bits générés par le service NFS.

Solution

Pour résoudre ce problème, appliquez l’une des méthodes suivantes :

  • Compressez les nombres inode 64 bits sur 32 bits à l’aide de l’option de démarrage du nfs.enable_ino64=0 noyau.

  • Définissez le paramètre de module en ajoutant options nfs enable_ino64=0 au fichier /etc/modprobe.d/nfs.conf et en redémarrant la machine virtuelle.

Vous pouvez également conserver cette option de démarrage du noyau dans le fichier grub.conf . Pour plus d’informations, consultez la documentation de votre distribution Linux.

Besoin d’aide ?

Si vous avez toujours besoin d’aide, contactez le support technique pour résoudre rapidement votre problème.

Voir aussi

Contactez-nous pour obtenir de l’aide

Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.