Todos los productos
Search
Centro de documentos

File Storage NAS:Preguntas frecuentes sobre volúmenes NAS

Última actualización: Sep 22, 2026

Este tema proporciona respuestas a algunas preguntas frecuentes sobre los volúmenes de File Storage NAS (NAS).

¿Por qué el sistema muestra chown: Operation not permitted al montar un volumen NAS?

Problema

El sistema muestra chown: Operation not permitted cuando se monta un sistema de archivos NAS.

Causa

El rol que se usa para ejecutar el contenedor no tiene los permisos necesarios para gestionar el volumen NAS.

Solución

  1. El usuario que inicia el proceso del contenedor no cuenta con permisos de root. Es necesario usar una cuenta root para ejecutar las operaciones chown y chgrp. Cuando el valor de accessModes de un volumen persistente (PV) es ReadWriteOnce, también puede utilizar securityContext.fsGroup para configurar los permisos del volumen y la política de cambio de propietario en los pods. Para más información, consulte Configure volume permission and ownership change policy for Pods.

  2. Si el problema persiste después de usar una cuenta root, compruebe si el grupo de permisos del destino de montaje NAS establece los permisos de usuario en No Anonymity (no_squash). Esta configuración permite que los usuarios root accedan al sistema de archivos. Para más información, consulte Manage permission groups.

¿Qué debo hacer si la cola de tareas de alicloud-nas-controller está llena y no se pueden crear PV al usar un volumen NAS aprovisionado dinámicamente?

Problema

Al usar un volumen NAS aprovisionado dinámicamente, si la velocidad de creación de subdirectorios supera la de eliminación, la cola de tareas de alicloud-nas-controller puede llenarse. Como resultado, no se crean los PV.

Causa

En la configuración de la StorageClass que monta el volumen NAS aprovisionado dinámicamente, el parámetro reclaimPolicy tiene el valor Delete y el parámetro archiveOnDelete tiene el valor false.

Solución

Establezca archiveOnDelete en true. De este modo, cuando se elimina un PV, solo se modifica el nombre del subdirectorio montado en el sistema de archivos NAS. Los archivos dentro del subdirectorio no se eliminan.

Usted debe eliminar estos archivos manualmente. Por ejemplo, configure un nodo para que elimine automáticamente los archivos del directorio raíz según una programación. Otra opción es iniciar varios pods para eliminar de forma concurrente los archivos con formatos específicos en los subdirectorios.

¿Por qué tarda mucho tiempo en montarse un volumen NAS?

Problema

El montaje de un volumen NAS toma demasiado tiempo.

Causa

Si se cumplen las siguientes condiciones, se ejecuta la operación chmod o chown durante el montaje de los volúmenes, lo cual aumenta el tiempo de ejecución.

  • El parámetro AccessModes tiene el valor ReadWriteOnce en las plantillas del volumen persistente (PV) y de la solicitud de volumen persistente (PVC).

  • El parámetro securityContext.fsGroup está definido en la plantilla de la aplicación.

Solución

  • Si el parámetro securityContext.fsGroup está definido en la plantilla de la aplicación, elimine el parámetro fsGroup de la sección securityContext.

  • Si necesita configurar el identificador de usuario (UID) y el parámetro mode de los archivos en el directorio montado, monte el directorio manualmente en una instancia de Elastic Compute Service (ECS). Después, ejecute los comandos chown y chmod mediante la CLI y aprovisione el volumen NAS a través del plugin CSI. Para más información sobre cómo usar el plugin CSI para montar volúmenes NAS, consulte Use static NAS volumes o Use NAS dynamic volumes.

  • Además de los métodos anteriores, en clústeres de Kubernetes 1.20 o versiones posteriores, establezca el parámetro fsGroupChangePolicy en OnRootMismatch. Así, la operación chmod o chown se ejecuta únicamente cuando el sistema inicia el pod por primera vez. El problema no ocurre al montar volúmenes NAS después de ese primer inicio. Para más información sobre fsGroupChangePolicy, consulte Set the security context for a pod or a container.

¿Qué debo hacer si no puedo crear ni modificar directorios en un volumen NAS?

Problema

No es posible crear ni modificar directorios dentro de un volumen NAS.

Causa

Los usuarios que no son root carecen de permisos para crear o modificar directorios en un PV.

Solución

Seleccione uno de los siguientes métodos para ejecutar el comando chmod o chown y modificar los permisos del directorio de montaje:

  • Inicie un init container con privilegios de root, monte un PV y ejecute el comando chmod o chown para modificar los permisos del directorio de montaje. Después podrá crear y modificar directorios en el PV.

  • Establezca el parámetro fsGroupChangePolicy en OnRootMismatch. Con esta configuración, cuando el sistema inicia el pod por primera vez, ejecuta el comando chmod o chown para modificar los permisos del directorio de montaje. Luego podrá crear y modificar directorios en el PV.

¿Por qué el sistema muestra unknown filesystem type "xxx" al montar un volumen NAS?

Problema

El sistema muestra unknown filesystem type "xxx" cuando se monta un volumen NAS.

Causa

Las dependencias del volumen NAS no están instaladas en el nodo donde se despliega la aplicación.

Solución

Compruebe si el volumen NAS está configurado correctamente.

¿Por qué el sistema muestra NFS Stale File Handle cuando un cliente lee o escribe datos en un volumen NAS?

Problema

El sistema muestra NFS Stale File Handle cuando un cliente lee o escribe datos en un volumen NAS.

Causa

NAS no garantiza la consistencia de los datos después de montar un volumen NAS en un contenedor. Suponga que un volumen NAS está montado en dos clientes. El cliente 1 abre un archivo del volumen NAS para obtener el descriptor de archivo (FD). Si el cliente 2 elimina ese archivo, el cliente 1 no puede leerlo ni escribirlo, y el sistema muestra NFS Stale File Handle.

Solución

Debe resolver los problemas de consistencia de datos según los escenarios de su negocio.

¿Qué debo hacer si un pod que usa dos PVC para montar dos volúmenes NAS distintos permanece en el estado ContainerCreating?

Problema

El inicio de un pod que usa dos PVC para montar volúmenes NAS termina con errores, y el pod permanece en el estado ContainerCreating. El pod se inicia correctamente si se configura para usar solo uno de los PVC.

Causa

Los dos PV asociados a los dos PVC usan el mismo valor de spec.csi.volumeHandle. Por ello, kubelet no puede distinguirlos al procesar la lógica de montaje de los PV.

Solución

Establezca el parámetro spec.csi.volumeHandle de cada PV con el nombre real del PV correspondiente.

¿Cómo uso CSI para montar un sistema de archivos NAS con TLS habilitado?

NAS utiliza TLS para garantizar la seguridad de la transmisión de datos entre el cliente NAS y el servicio NAS, lo que evita el robo y la manipulación de la información. CSI le permite usar el cliente NAS (aliNAS) de Alibaba Cloud para montar volúmenes y habilitar TLS.

Precauciones

  • El cliente NAS emplea el proceso stunnel como capa de cifrado TLS. En aplicaciones de alto rendimiento, el proceso stunnel consume una gran cantidad de recursos de CPU para realizar el cifrado y descifrado. En casos extremos, cada operación de montaje ocupa un núcleo completo. Para más información, consulte Encryption in transit for NFS file systems.

Procedimiento

  1. Instale el cliente NAS.

    Modifique el ConfigMap del componente csi-plugin para reiniciar 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. Monte un volumen NAS aprovisionado estáticamente o uno aprovisionado dinámicamente con base en el siguiente código de ejemplo:

    Montaje de un volumen NAS aprovisionado dinámicamente

    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

    Parámetro

    Descripción

    parameters.mountProtocol

    Establezca este parámetro en alinas para usar el cliente aliNAS al montar el volumen. De forma predeterminada, el parámetro queda vacío y se utiliza NFS para el montaje.

    mountOptions

    Agregue la opción tls para habilitar TLS. Incluya esta opción únicamente cuando mountProtocol tenga el valor alinas. De forma predeterminada, TLS está deshabilitado.

    Montaje de un volumen NAS aprovisionado estáticamente

    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

    Parámetro

    Descripción

    spec.csi.volumeAttributes.mountProtocol

    Establezca este parámetro en alinas para usar el cliente aliNAS al montar el volumen. De forma predeterminada, el parámetro queda vacío y se utiliza NFS para el montaje.

    spec.mountOptions

    Agregue la opción tls para habilitar TLS. Incluya esta opción únicamente cuando mountProtocol tenga el valor alinas. De forma predeterminada, TLS está deshabilitado.

¿Qué debo hacer si el desmontaje del volumen NAS excede el tiempo de espera y el pod permanece en el estado Terminating?

Problema

Al eliminar un pod con un volumen NAS montado, el volumen no se desmonta y el pod permanece en el estado Terminating.

Causa

El componente csi-plugin monta directamente el directorio /var/run. Ejecute el siguiente comando; si el resultado no está vacío, significa que el componente csi-plugin monta directamente el directorio /var/run.

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

Solución

Ejecute el siguiente comando para corregir manualmente el archivo YAML de csi-plugin y resolver el problema:

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'