Tous les produits
Search
Centre de documentation

File Storage NAS:FAQ sur les volumes NAS

Dernière mise à jour :Sep 22, 2026

Cette rubrique répond aux questions fréquemment posées concernant les volumes File Storage NAS (NAS).

Pourquoi le système affiche-t-il chown: Operation not permitted lors du montage d'un volume NAS ?

Problème

Le système affiche chown: Operation not permitted lors du montage d'un système de fichiers NAS.

Cause

Le rôle utilisé pour exécuter le conteneur ne dispose pas des autorisations nécessaires pour gérer le volume NAS.

Solution

  1. L'utilisateur qui lance le processus du conteneur ne dispose pas des privilèges root. Utilisez un compte root pour effectuer les opérations chown et chgrp. Lorsque le paramètre accessModes d'un volume persistant (PV) est défini sur ReadWriteOnce, vous pouvez également utiliser securityContext.fsGroup pour configurer les autorisations du volume et la politique de modification de propriété pour les pods. Pour plus d'informations, consultez Configurer les autorisations d'accès au volume et la politique de modification de propriété pour les pods.

  2. Si le problème persiste après l'utilisation d'un compte root, vérifiez si le groupe d'autorisations de la cible de montage NAS définit les autorisations utilisateur sur No Anonymity (no_squash). Cette configuration permet aux utilisateurs root d'accéder au système de fichiers. Pour plus d'informations, consultez Gérer les groupes d'autorisations.

Que faire si la file d'attente des tâches de alicloud-nas-controller est pleine et que les PV ne peuvent pas être créés lors de l'utilisation d'un volume NAS provisionné dynamiquement ?

Problème

Lorsque vous utilisez un volume NAS provisionné dynamiquement, si la vitesse de création des sous-répertoires est supérieure à celle de leur suppression, la file d'attente des tâches de alicloud-nas-controller peut se remplir, empêchant ainsi la création des PV.

Cause

Le paramètre reclaimPolicy est défini sur Delete et le paramètre archiveOnDelete est défini sur false dans la configuration de la StorageClass qui monte le volume NAS provisionné dynamiquement.

Solution

Définissez archiveOnDelete sur true. Ainsi, lors de la suppression d'un PV, seul le nom du sous-répertoire monté dans le système de fichiers NAS est modifié. Les fichiers contenus dans le sous-répertoire ne sont pas supprimés.

Vous devez supprimer ces fichiers manuellement. Par exemple, configurez un nœud pour qu'il supprime automatiquement les fichiers du répertoire racine selon une planification, ou lancez plusieurs pods pour supprimer simultanément des fichiers de formats spécifiques dans les sous-répertoires.

Pourquoi le montage d'un volume NAS prend-il beaucoup de temps ?

Problème

Le montage d'un volume NAS prend beaucoup de temps.

Cause

Si les conditions suivantes sont remplies, l'opération chmod ou chown est effectuée lors du montage des volumes, ce qui augmente le temps nécessaire.

  • Le paramètre AccessModes est défini sur ReadWriteOnce dans les modèles de volume persistant (PV) et de revendication de volume persistant (PVC).

  • Le paramètre securityContext.fsGroup est défini dans le modèle d'application.

Solution

  • Si le paramètre securityContext.fsGroup est défini dans le modèle d'application, supprimez le paramètre fsGroup de la section securityContext.

  • Si vous souhaitez configurer l'ID utilisateur (UID) et le mode des fichiers dans le répertoire monté, montez manuellement le répertoire sur une instance Elastic Compute Service (ECS). Exécutez ensuite les commandes chown et chmod via une interface CLI et provisionnez le volume NAS à l'aide du plug-in CSI. Pour plus d'informations sur l'utilisation du plug-in CSI pour monter des volumes NAS, consultez Utiliser des volumes NAS statiques ou Utiliser des volumes NAS dynamiques.

  • Outre les méthodes précédentes, pour les clusters Kubernetes 1.20 ou versions ultérieures, définissez le paramètre fsGroupChangePolicy sur OnRootMismatch. Ainsi, l'opération chmod ou chown n'est effectuée que lors du premier lancement du pod par le système. Le problème ne se produit pas lors du montage des volumes NAS après le premier lancement. Pour plus d'informations sur fsGroupChangePolicy, consultez Définir le contexte de sécurité pour un pod ou un conteneur.

Que faire s'il est impossible de créer ou de modifier des répertoires dans un volume NAS ?

Problème

Il est impossible de créer ou de modifier des répertoires dans un volume NAS.

Cause

Les utilisateurs non root ne disposent pas des autorisations nécessaires pour créer ou modifier des répertoires dans un PV.

Solution

Choisissez l'une des méthodes suivantes pour exécuter la commande chmod ou chown afin de modifier les autorisations du répertoire de montage :

  • Lancez un conteneur d'initialisation avec des privilèges root, montez un PV, puis exécutez la commande chmod ou chown pour modifier les autorisations du répertoire de montage. Vous pourrez ensuite créer et modifier des répertoires dans le PV.

  • Définissez le paramètre fsGroupChangePolicy sur OnRootMismatch. Ainsi, lors du premier lancement du pod par le système, la commande chmod ou chown est exécutée pour modifier les autorisations du répertoire de montage. Vous pourrez ensuite créer et modifier des répertoires dans le PV.

Pourquoi le système affiche-t-il unknown filesystem type "xxx" lors du montage d'un volume NAS ?

Problème

Le système affiche unknown filesystem type "xxx" lors du montage d'un volume NAS.

Cause

Les dépendances du volume NAS ne sont pas installées sur le nœud où l'application est déployée.

Solution

Vérifiez si le volume NAS est correctement configuré.

Pourquoi le système affiche-t-il NFS Stale File Handle lorsqu'un client lit ou écrit des données dans un volume NAS ?

Problème

Le système affiche NFS Stale File Handle lorsqu'un client lit ou écrit des données dans un volume NAS.

Cause

NAS ne garantit pas la cohérence des données après le montage d'un volume NAS sur un conteneur. Supposons qu'un volume NAS soit monté sur deux clients. Le client 1 ouvre un fichier dans le volume NAS pour obtenir le descripteur de fichier (FD) du fichier. Si le client 2 supprime le fichier, le client 1 ne peut ni lire ni écrire dans le fichier et le système affiche NFS Stale File Handle.

Solution

Résolvez les problèmes de cohérence des données en fonction de vos scénarios métier.

Que faire si un pod utilisant deux PVC pour monter deux volumes NAS différents reste dans l'état ContainerCreating ?

Problème

Le lancement d'un pod utilisant deux PVC pour monter des volumes NAS a échoué et le pod reste dans l'état ContainerCreating. Le pod peut être lancé si vous le configurez pour n'utiliser qu'un seul des PVC.

Cause

Les deux PV associés aux deux PVC utilisent la même valeur spec.csi.volumeHandle. Par conséquent, kubelet ne peut pas différencier les deux PV lors du traitement de la logique de montage des PV.

Solution

Définissez le paramètre spec.csi.volumeHandle de chaque PV sur le nom réel du PV.

Comment utiliser CSI pour monter un système de fichiers NAS avec TLS activé ?

NAS utilise TLS pour garantir la sécurité de la transmission des données entre le client NAS et le service NAS, et prévenir le vol et la falsification des données. CSI vous permet d'utiliser le client NAS (aliNAS) d'Alibaba Cloud pour monter des volumes et activer TLS.

Précautions

  • Le client NAS utilise le processus stunnel comme wrapper de chiffrement TLS. Pour les applications à haut débit, le processus stunnel consomme une grande quantité de ressources CPU pour effectuer le chiffrement et le déchiffrement. Dans les cas extrêmes, chaque opération de montage occupe un cœur. Pour plus d'informations, consultez Chiffrement en transit pour les systèmes de fichiers NFS.

Procédure

  1. Installez le client NAS.

    Modifiez le ConfigMap du composant csi-plugin pour redémarrer csi-plugin.

    cat <<EOF | kubectl apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: csi-plugin
      namespace: kube-system
    data:
      cnfs-client-properties: |
        alinas-utils=true
    EOF
    
    kubectl rollout restart ds -n kube-system csi-plugin
  2. Montez un volume NAS provisionné statiquement ou dynamiquement en vous basant sur l'exemple de code suivant :

    Monter un volume NAS provisionné dynamiquement

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-nas-tls
    mountOptions:
    - nolock,tcp,noresvport
    - vers=3
    - tls   # Add a TLS mount option. 
    parameters:
      volumeAs: subpath
      server: "0cd8b4a576-g****.cn-hangzhou.nas.aliyuncs.com:/k8s/"
      mountProtocol: alinas  # Declare to use the aliNAS client to mount the volume. 
    provisioner: nasplugin.csi.alibabacloud.com
    reclaimPolicy: Retain
    ---
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: nas-tls
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: alicloud-nas-tls
      resources:
        requests:
          storage: 20Gi

    Paramètre

    Description

    parameters.mountProtocol

    Définissez le paramètre sur alinas pour utiliser le client aliNAS afin de monter le volume. Par défaut, ce paramètre est laissé vide et NFS est utilisé pour monter le volume.

    mountOptions

    Ajoutez l'option tls pour activer TLS. Ajoutez cette option uniquement lorsque mountProtocol est défini sur alinas. Par défaut, TLS est désactivé.

    Monter un volume NAS provisionné statiquement

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv-nas-tls
      labels:
        alicloud-pvname: pv-nas-tls
    spec:
      capacity:
        storage: 5Gi
      accessModes:
        - ReadWriteMany
      csi:
        driver: nasplugin.csi.alibabacloud.com
        volumeHandle: pv-nas   # Enter the name of the PV. 
        volumeAttributes:
          server: "2564f4****-ysu87.cn-shenzhen.nas.aliyuncs.com"
          path: "/csi"
          mountProtocol: alinas # Declare to use the aliNAS client to mount the volume. 
      mountOptions:
      - nolock,tcp,noresvport
      - vers=3
      - tls # Add a TLS mount option.
    ---
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: pvc-nas-tls
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 5Gi
      selector:
        matchLabels:
          alicloud-pvname: pv-nas-tls

    Paramètre

    Description

    spec.csi.volumeAttributes.mountProtocol

    Définissez le paramètre sur alinas pour utiliser le client aliNAS afin de monter le volume. Par défaut, ce paramètre est laissé vide et NFS est utilisé pour monter le volume.

    spec.mountOptions

    Ajoutez l'option tls pour activer TLS. Ajoutez cette option uniquement lorsque mountProtocol est défini sur alinas. Par défaut, TLS est désactivé.

Que faire si le démontage du volume NAS expire et que le pod reste dans l'état Terminating ?

Problème

Lorsque vous supprimez un pod avec un volume NAS monté, le volume NAS ne peut pas être démonté et le pod reste dans l'état Terminating.

Cause

Le composant csi-plugin monte directement le répertoire /var/run. Exécutez la commande suivante. Si la sortie n'est pas vide, le composant csi-plugin monte directement le répertoire /var/run.

kubectl get ds -n kube-system csi-plugin -ojsonpath='{.spec.template.spec.volumes[?(@.hostPath.path=="/var/run/")]}'

Solution

Exécutez la commande suivante pour corriger manuellement le fichier YAML de csi-plugin et résoudre le problème :

kubectl patch -n kube-system daemonset csi-plugin -p '
spec:
  template:
    spec:
      containers:
        - name: csi-plugin
          volumeMounts:
            - mountPath: /host/var/run/efc
              name: efc-metrics-dir
            - mountPath: /host/var/run/ossfs
              name: ossfs-metrics-dir
            - mountPath: /host/var/run/
              $patch: delete
      volumes:
        - name: ossfs-metrics-dir
          hostPath:
            path: /var/run/ossfs
            type: DirectoryOrCreate
        - name: efc-metrics-dir
          hostPath:
            path: /var/run/efc
            type: DirectoryOrCreate
        - name: fuse-metrics-dir
          $patch: delete'