全部產品
Search
文件中心

Container Service for Kubernetes:為NAS動態儲存裝置卷設定目錄配額

更新時間:Jul 19, 2025

CSI組件支援為通用型NAS儲存卷的子目錄設定配額限制。使用subPath方式掛載NAS子目錄時,可啟用目錄配額功能,限制子目錄容量,提升資源使用率。當子目錄儲存卷達到配額上限時,可通過更新PVC的storage實現線上擴容,無需中斷業務。

使用情境

預設情況下,在ACK叢集中掛載NAS儲存卷時,PVC中聲明的storage並不會生效,PV中實際可用的容量為NAS檔案系統的所有容量,您可根據NAS檔案系統的容量限制確認NAS儲存卷實際可用容量。

說明

各類NAS的容量限制不同,具體請參見通用型NAS極速型NAS

如您的NAS檔案系統被多個應用共用掛載,建議使用subPath方式掛載子目錄,並啟用目錄配額功能。啟用後,動態建立的子目錄PV容量將受PVC中聲明的storage限制。當容量達到上限時,可通過更新PVC的storage來實現線上擴容,無需中斷業務。 目錄配額功能允許您為不同應用掛載獨立子目錄並設定容量限制,從而更好地管理NAS檔案系統的資源分派,提升管理效率與資源使用率,同時有效控制儲存成本。

說明

如果通過CNFS託管NAS,預設已開啟目錄配額功能。更多資訊,請參見使用CNFS自動擴容NAS儲存卷

前提條件

  • 叢集中已安裝CSI組件,且組件版本為v1.18.8.45及以上。如需升級,請參見升級csi-plugin和csi-provisioner

  • 已建立NAS檔案系統和掛載點,且滿足以下條件:

    • NAS類型為通用型NAS,協議類型為NFS。如不滿足,請重新建立通用型NAS檔案系統

    • 掛載點和叢集節點在同一VPC內,且狀態可用。如不滿足,請重新建立掛載點,具體請參見管理掛載點

使用限制

僅NFS協議的通用型NAS,且通過subpath方式掛載的NAS動態儲存裝置卷支援目錄配額功能,NAS靜態儲存卷,以及通過sharepath或filesystem方式掛載的NAS動態儲存裝置卷不支援。

說明

更多關於目錄配額功能的限制資訊,請參見目錄配額

使用NAS動態儲存裝置卷並設定目錄配額

步驟一:建立StorageClass並開啟目錄配額功能

  1. 修改以下YAML內容,並儲存為alicloud-nas-quota-sc.yaml。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-nas-quota-sc
    mountOptions:
      - nolock,tcp,noresvport
      - vers=3
    parameters:
      volumeAs: subpath  # 此處必須為subpath掛載方式。
      server: "0cd8b4a576-g****.cn-hangzhou.nas.aliyuncs.com"  # NFS協議的通用型NAS的掛載點。
      archiveOnDelete: "false"
      path: "/test"
      volumeCapacity: "true" # 建立的動態磁碟區支援目錄配額功能。
    provisioner: nasplugin.csi.alibabacloud.com
    reclaimPolicy: Delete
    allowVolumeExpansion: true # 開啟目錄配額功能,允許動態磁碟區擴容。
    說明

    allowVolumeExpansionvolumeCapacity 配置為true均可開啟目錄配額功能。如果allowVolumeExpansion參數配置為truevolumeCapacity的參數配置將不會生效,目錄配額會始終開啟。

    需要注意的參數如下,更多資訊,請參見使用NAS動態儲存裝置卷

    參數

    說明

    parameters

    volumeAs

    使用目錄配額功能時,必須配置為subpath,表示建立子目錄類型的PV。

    server

    NAS檔案系統的掛載點地址。關於如何查看掛載點地址,請參見管理掛載點

    path

    掛載NAS檔案系統的子目錄,預設為/,極速型NAS需要以/share開頭。

    volumeCapacity

    是否開啟目錄配額功能。

    若同時配置了allowVolumeExpansiontrue,則該參數配置不會生效,配額會始終開啟。

    allowVolumeExpansion

    僅通用型NAS檔案系統支援設定此參數。開啟時,該StorageClass動態建立的PV將會被設定配額。

  2. 建立StorageClass。

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

步驟二:建立應用並掛載NAS儲存卷

  1. 使用以下YAML內容,建立nas-sts.yaml檔案。

    以下YAML將建立一個StatefulSet,包含1個Pod,Pod中關聯了開啟目錄配額功能的StorageClass,系統會自動建立對應的NAS動態儲存裝置卷並掛載到Pod上,該NAS儲存卷的容量為20 GiB。

    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. 建立StatefulSet。

    kubectl apply -f nas-sts.yaml
  3. 查看StatefulSet中Pod的部署情況。

    kubectl get pod -l app=nginx

    預期返回:

    NAME          READY   STATUS    RESTARTS   AGE
    nas-sts-0     1/1     Running   0          24s
  4. 查看PV,並確認目錄配額已經生效。

    1. 查看PV。

      kubectl get pv

      預期返回如下,可以已動態建立PV,PV的容量為20 GiB。

      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. 在NAS控制台查看目錄配額詳情。

      NAS控制台檔案系統列表頁面,單擊目標檔案系統對應的操作列下的表徵圖,然後單擊配額管理。在配額管理頁面可以看到已自動產生對應的目錄配額,單擊管理配額可查看詳細資料。

      樣本如下,可以看到目錄的容量限制為20 GiB。

      nas目錄配額

驗證目錄配額限制

由於以subpath方式掛載的NAS動態儲存裝置卷開啟了目錄配額功能,且聲明容量為20 GiB,因此當掛載目錄下寫入的資料超過20 GiB時,系統會提示磁碟超出配額。

  1. 向掛載目錄寫入資料。

    命令樣本如下,表示向掛載目錄/data寫入20000 MiB(約19.53 GiB)的資料。

    kubectl exec -it nas-sts-0 -- dd if=/dev/zero of=/data/20G.txt bs=1M count=20000
  2. 等待5~15分鐘後,在NAS控制台查看目錄配額詳情。

    NAS控制台檔案系統列表頁面,單擊目標檔案系統對應的操作列下的表徵圖,然後單擊配額管理。在配額管理頁面,單擊目錄對應的管理配額可查看詳細資料。

    樣本如下,可以看到目錄的當前容量顯示為19 GiB。

    nas目錄配額2

  3. 再次向掛載目錄寫入資料,使其容量達到目錄配額限制,將觸發磁碟超出配額的報錯。

    命令樣本如下,向掛載目錄/data寫入1 GiB的資料時,將超出目錄配額限制。

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

    預期返回如下,提示超出磁碟配額。

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

擴容設定了目錄配額的NAS動態儲存裝置卷

通過更新PVC的storage的方式,您可以對動態建立的PV進行容量擴容,並查看目錄配額確認NAS儲存卷容量是否擴容成功。此擴容操作不影響線上業務,不會中斷業務。

  1. 查看擴容前的PVC。

    kubectl get pvc

    預期返回:

    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. 修改PVC,擴容NAS儲存卷的容量。

    kubectl patch pvc nas-pvc-nas-sts-0 -p '{"spec":{"resources":{"requests":{"storage":"30Gi"}}}}'
    重要

    NAS目錄配額的單位為GiB,CSI將按照擴容後的PVC容量為NAS目錄設定配額,實際設定的容量上限為將PVC容量按GiB單位向上取整後的值。

  3. 查看擴容後的PV和PVC。

    從返回資訊中的CAPACITY欄位可以確認NAS儲存卷對應的目錄配額已由20 GiB擴容為30 GiB。

    1. 查看PV。

      kubectl get pv

      預期返回:

      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. 查看PVC。

      kubectl get pvc

      預期返回:

      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. 在NAS控制台查看目錄配額詳情。

    NAS控制台檔案系統列表頁面,單擊目標檔案系統對應的操作列下的表徵圖,然後單擊配額管理。在配額管理頁面,單擊目錄對應的管理配額可查看詳細資料。

    樣本如下,可以看到目錄的容量限制已擴容到30 GiB。

    nas目錄配額3

常見問題

在掛載和使用NAS儲存卷的過程中,如果遇到問題,可參考以下文檔進行排查。

相關文檔

  • 如需瞭解更多關於NAS目錄配額功能的資訊,請參見目錄配額

  • 對NAS儲存卷設定目錄配額後,如需監控NAS儲存卷使用方式,您可以通過node_volume_capacity_bytes_used儲存指標,參見建立Prometheus警示規則配置警示進行儲存容量監控。