Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Set directory quotas for dynamically provisioned NAS volumes

Dernière mise à jour :Aug 11, 2026

Le plug-in Container Storage Interface (CSI) prend en charge les quotas de répertoire sur les sous-répertoires des volumes NAS General-purpose. Lorsque vous montez des sous-répertoires NAS via la méthode subPath, les quotas de répertoire limitent indépendamment la capacité de chaque sous-répertoire, empêchant ainsi une application de consommer le stockage alloué à une autre. Lorsqu'un sous-répertoire atteint sa limite de quota, étendez-le en ligne en mettant à jour le PVC, sans redémarrage ni interruption de service.

Si vous utilisez CNFS pour gérer le NAS, la fonctionnalité de quota de répertoire est activée par défaut. Pour plus d'informations, consultez Utiliser CNFS pour étendre automatiquement les volumes NAS .

Limites

Les quotas de répertoire sont pris en charge uniquement pour les volumes NAS provisionnés dynamiquement qui remplissent toutes les conditions suivantes :

  • Protocole : NFS

  • Type de NAS : General-purpose NAS

  • Méthode de montage : subPath

Les volumes NAS provisionnés statiquement et les volumes NAS provisionnés dynamiquement montés via les méthodes sharepath ou filesystem ne prennent pas en charge les quotas de répertoire.

Pour la liste complète des limites relatives aux quotas de répertoire, consultez Quotas de répertoire .

Cas d'utilisation

Par défaut, lorsque vous montez un volume NAS dans un cluster ACK, la valeur de stockage déclarée dans la revendication de volume persistant (PVC) n'a aucun effet : le pod peut accéder à la capacité totale du système de fichiers NAS. Si le système de fichiers NAS est partagé entre plusieurs applications, utilisez les quotas de répertoire pour :

  • Définir une limite de capacité par sous-répertoire d'application

  • Étendre le quota d'un sous-répertoire en ligne sans interrompre les services en cours d'exécution

  • Améliorer l'utilisation des ressources et maîtriser les coûts de stockage

Les différents types de NAS ont des limites de capacité distinctes. Pour plus d'informations, consultez General-purpose NAS et Extreme NAS .

Prérequis

Avant de commencer, assurez-vous que :

Utiliser des volumes NAS provisionnés dynamiquement avec des quotas de répertoire

Étape 1 : Créer une StorageClass avec les quotas de répertoire activés

  1. Enregistrez le code YAML suivant sous le nom alicloud-nas-quota-sc.yaml. Remplacez la valeur server par l'adresse de la cible de montage de votre système de fichiers NAS.

    Pour activer la fonctionnalité de quota de répertoire, définissez allowVolumeExpansion ou volumeCapacity sur true . Si allowVolumeExpansion est défini sur true , le paramètre volumeCapacity n'a aucun effet, mais la fonctionnalité de quota de répertoire reste activée.
    Paramètre Description
    volumeAs Doit être subpath. Monte un sous-répertoire NAS en tant que PV.
    server Adresse de la cible de montage du système de fichiers NAS. Consultez Gérer les cibles de montage.
    path Sous-répertoire NAS à monter. La valeur par défaut est /. Pour Extreme NAS, doit commencer par /share.
    volumeCapacity Définissez sur "true" pour activer les quotas de répertoire. Si allowVolumeExpansion a la valeur true, ce paramètre n'a aucun effet, mais le quota reste activé.
    allowVolumeExpansion Définissez sur true pour activer les quotas de répertoire et autoriser l'extension en ligne du PVC. Disponible uniquement pour General-purpose NAS.
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-nas-quota-sc
    mountOptions:
      - nolock,tcp,noresvport
      - vers=3
    parameters:
      volumeAs: subpath         # Mount a subdirectory as a persistent volume (PV). Required for directory quotas.
      server: "0cd8b4a576-g****.cn-hangzhou.nas.aliyuncs.com"  # Mount target address
      archiveOnDelete: "false"
      path: "/test"             # Root subdirectory. Default: /. For Extreme NAS, must start with /share.
      volumeCapacity: "true"    # Enables the directory quota feature.
    provisioner: nasplugin.csi.alibabacloud.com
    reclaimPolicy: Delete
    allowVolumeExpansion: true  # Allows online PVC expansion. When set to true, volumeCapacity has no effect but directory quotas remain enabled.

    Paramètres clés : pour tous les paramètres, consultez Utiliser des volumes NAS provisionnés dynamiquement.

  2. Créez la StorageClass.

    kubectl apply -f alicloud-nas-quota-sc.yaml

Étape 2 : Déployer une application avec un volume NAS

  1. Enregistrez le code YAML suivant sous le nom nas-sts.yaml. Le StatefulSet ci-dessous crée un pod avec un volume NAS provisionné dynamiquement de 20 Go, soutenu par la StorageClass avec les quotas de répertoire activés.

    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: nas-sts
    spec:
      selector:
        matchLabels:
          app: nginx
      replicas: 1
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            volumeMounts:
            - name: nas-pvc
              mountPath: /data
      volumeClaimTemplates:
      - metadata:
          name: nas-pvc
        spec:
          accessModes: [ "ReadWriteMany" ]
          storageClassName: "alicloud-nas-quota-sc"
          resources:
            requests:
              storage: 20Gi
  2. Créez le StatefulSet.

    kubectl apply -f nas-sts.yaml
  3. Vérifiez que le pod est en cours d'exécution.

    kubectl get pod -l app=nginx

    Sortie attendue :

    NAME          READY   STATUS    RESTARTS   AGE
    nas-sts-0     1/1     Running   0          24s
  4. Vérifiez que le PV a été créé et que le quota de répertoire est actif.

    1. Vérifiez le PV.

      kubectl get pv

      Sortie attendue (le PV a une capacité de 20 Go) :

      NAME                             CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                       STORAGECLASS            VOLUMEATTRIBUTESCLASS   REASON   AGE
      nas-****-c72c-497f-ab13-******   20Gi       RWX            Delete           Bound    default/nas-pvc-nas-sts-0   alicloud-nas-quota-sc   <unset>                          15m
    2. Confirmez le quota de répertoire dans la console NAS. Dans la console NAS, accédez à la page File System List. Dans la colonne Actions du système de fichiers cible, cliquez sur ![icon](https://help-static-aliyun-doc.aliyuncs.com/assets/img/en-US/5892161761/p537429.png) > Quota Management. Cliquez sur Manage Quotas pour afficher les détails. Le quota de répertoire est défini sur 20 Go. nas目录配额

Vérifier la limite du quota de répertoire

Étant donné que le volume possède un quota de 20 Go, toute écriture dépassant 20 Go dans le répertoire monté déclenche une erreur Disk quota exceeded.

  1. Écrivez 20 000 MiB (environ 19,53 Go) dans le répertoire monté /data.

    kubectl exec -it nas-sts-0 -- dd if=/dev/zero of=/data/20G.txt bs=1M count=20000
  2. Attendez 5 à 15 minutes, puis vérifiez le quota de répertoire dans la console NAS. Dans la console NAS, accédez à File System List. Dans la colonne Actions du système de fichiers cible, cliquez sur ![icon](https://help-static-aliyun-doc.aliyuncs.com/assets/img/en-US/5892161761/p537429.png) > Quota Management. Cliquez sur Manage Quotas pour afficher l'utilisation actuelle. Le répertoire indique désormais environ 19 Go utilisés.

    nas目录配额2

  3. Tentez d'écrire 1 Go supplémentaire pour dépasser le quota.

    kubectl exec -it nas-sts-0 -- dd if=/dev/zero of=/data/1G.txt bs=1M count=1024

    L'erreur suivante confirme que le quota est appliqué :

    dd: closing output file '/data/1G.txt': Disk quota exceeded

Étendre un volume NAS provisionné dynamiquement avec des quotas de répertoire

Étendez le volume en appliquant un correctif à la valeur de stockage du PVC. Cette opération n'interrompt pas les services en cours d'exécution.

Important

Le quota d'un répertoire NAS est mesuré en Go. Après avoir modifié le PVC, le plug-in CSI ajuste le quota du répertoire NAS monté à la nouvelle capacité de volume spécifiée par le PVC. Lors de cet ajustement, le plug-in CSI arrondit la valeur de capacité à l'entier supérieur le plus proche.

  1. Vérifiez la taille actuelle du PVC.

    kubectl get pvc

    Sortie attendue :

    NAME                STATUS   VOLUME                           CAPACITY   ACCESS MODES   STORAGECLASS            VOLUMEATTRIBUTESCLASS   AGE
    nas-pvc-nas-sts-0   Bound    nas-****-c72c-497f-ab13-******   20Gi       RWX            alicloud-nas-quota-sc   <unset>                 23m
  2. Étendez le PVC de 20 Go à 30 Go.

    kubectl patch pvc nas-pvc-nas-sts-0 -p '{"spec":{"resources":{"requests":{"storage":"30Gi"}}}}'
  3. Vérifiez l'extension en contrôlant le PV et le PVC.

    1. Vérifiez le PV.

      kubectl get pv

      Sortie attendue (la capacité est désormais de 30 Go) :

      NAME                             CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                       STORAGECLASS            VOLUMEATTRIBUTESCLASS   REASON   AGE
      nas-****-c72c-497f-ab13-******   30Gi       RWX            Delete           Bound    default/nas-pvc-nas-sts-0   alicloud-nas-quota-sc   <unset>                          25m
    2. Vérifiez le PVC.

      kubectl get pvc

      Sortie attendue :

      NAME                STATUS   VOLUME                           CAPACITY   ACCESS MODES   STORAGECLASS            VOLUMEATTRIBUTESCLASS   AGE
      nas-pvc-nas-sts-0   Bound    nas-****-c72c-497f-ab13-******   30Gi       RWX            alicloud-nas-quota-sc   <unset>                 26m
  4. Confirmez le quota mis à jour dans la console NAS. Dans la console NAS, accédez à File System List. Dans la colonne Actions du système de fichiers cible, cliquez sur ![icon](https://help-static-aliyun-doc.aliyuncs.com/assets/img/en-US/5892161761/p537429.png) > Quota Management. Cliquez sur Manage Quotas pour confirmer que le quota de répertoire est désormais de 30 Go.

    nas目录配额3

FAQ

Si vous rencontrez des problèmes lors du montage ou de l'utilisation de volumes NAS, consultez :

Étapes suivantes