全部產品
Search
文件中心

File Storage NAS:通過NFS使用NAS靜態儲存卷

更新時間:Aug 06, 2025

NAS儲存卷是一種可共用訪問、彈性擴充、高可靠以及高效能的Distributed File System,適用於巨量資料分析、共用資料、Web應用以及儲存日誌等情境。通過CSI組件,您可以使用已有的NAS建立PV和PVC,並在工作負載中掛載,實現資料的持久化儲存和共用儲存。

前提條件

  • 叢集預設已安裝CSI組件。如需升級,請參見升級csi-plugin和csi-provisioner

    說明

    如果您叢集中使用Flexvolume組件,由於Flexvolume已廢棄,請參見遷移Flexvolume至CSI完成遷移後再進行掛載。您可以在營運管理 > 組件管理,在儲存頁簽下確認儲存群組件類型。

  • 確認已有NAS滿足以下條件,否則請重新建立檔案系統或者使用NAS動態儲存裝置卷

    • 協議類型為NFS。

      ACK不支援掛載SMB協議的NAS檔案系統。

    • 掛載點和叢集節點在同一VPC內,且狀態可用。如需添加掛載點,請參見管理掛載點

      NAS檔案系統只能掛載到相同VPC的Pod上,不支援跨VPC掛載。同一VPC下,NAS可以跨可用性區域掛載。

    說明

    如需加密NAS儲存卷中的資料,請在建立NAS檔案系統時配置加密類型。

注意事項

掛載NAS靜態儲存卷(kubectl)

步驟一:建立PV

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

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv-nas
      labels:
        alicloud-pvname: pv-nas
    spec:
      capacity:
        storage: 5Gi
      accessModes:
        - ReadWriteMany
      csi:
        driver: nasplugin.csi.alibabacloud.com
        volumeHandle: pv-nas   # 必須與PV Name保持一致。
        volumeAttributes:
          server: "0c47****-mpk25.cn-shenzhen.nas.aliyuncs.com"  # NAS掛載點地址。掛載點所屬VPC必須與叢集所屬VPC一致。
          path: "/csi"  # 掛載子目錄。
      mountOptions:
      - nolock,tcp,noresvport
      - vers=3

    參數

    說明

    name

    PV的名稱。

    labels

    設定PV的標籤。

    storage

    PV的容量。

    重要

    NAS儲存卷的實際可用容量不受該配置限制,由NAS檔案系統的規格決定,請參見通用型NAS極速型NAS確認具體可用容量。

    accessModes

    配置訪問模式,預設為ReadWriteMany,也支援ReadWriteOnceReadOnlyMany

    driver

    驅動類型。此處必須配置為nasplugin.csi.alibabacloud.com,表示使用阿里雲NAS CSI外掛程式。

    volumeHandle

    配置PV的唯一識別碼,必須與PV Name保持一致。若需要同時使用多個PV,則各個PV中該值須唯一。

    server

    NAS掛載點地址。掛載點所屬VPC必須與叢集所屬VPC一致。

    關於如何查看掛載點地址,請參見管理掛載點

    path

    要掛載的NAS子目錄。

    • 如果未設定,則預設掛載到根目錄。

    • 如果NAS中沒有該目錄,會自動建立後再進行掛載。

    說明

    通用型NAS的根目錄為/,極速型NAS的根目錄為/share。掛載極速型NAS的子目錄時,path必須以/share開頭,如/share/data

    mountOptions

    NAS的掛載參數,包括NFS協議版本等。推薦使用NFS v3協議,極速型NAS僅支援NFS v3。關於NFS協議的更多資訊,請參見NFS協議

  2. 建立PV。

    kubectl create -f pv-nas.yaml
  3. 查看PV。

    kubectl get pv

    預期返回:

    NAME     CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM    STORAGECLASS     VOLUMEATTRIBUTESCLASS   REASON   AGE
    pv-nas   5Gi        RWX            Retain           Available                             <unset>                          25s

步驟二:建立PVC

  1. 將以下YAML內容儲存至pvc-nas.yaml檔案。

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: pvc-nas
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 5Gi
      selector:
        matchLabels:
          alicloud-pvname: pv-nas

    參數

    說明

    name

    PVC名稱。

    accessModes

    訪問模式。預設為ReadWriteMany,也支援ReadWriteOnceReadOnlyMany

    storage

    聲明所需使用的儲存卷的容量。

    重要

    NAS儲存卷的實際可用容量不受該配置限制,由NAS檔案系統的規格決定,請參見通用型NAS極速型NAS確認具體可用容量。

    matchLabels

    輸入PV的標籤,用於關聯PV。

  2. 建立PVC。

    kubectl create -f pvc-nas.yaml
  3. 查看PVC。

    kubectl get pvc

    預期返回如下,可以看到PVC已關聯PV。

    NAME       STATUS   VOLUME    CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
    pvc-nas    Bound    pv-nas    5Gi        RWX                           <unset>                 5s

步驟三:建立應用並掛載NAS

  1. 將以下YAML內容儲存為nas.yaml。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nas-test
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            ports:
            - containerPort: 80
            volumeMounts:
              - name: pvc-nas
                mountPath: "/data"
          volumes:
            - name: pvc-nas
              persistentVolumeClaim:
                claimName: pvc-nas

    參數

    說明

    mountPath

    NAS在容器中掛載的位置。

    claimName

    PVC的名稱,用於綁定PVC。

  2. 建立Deployment並掛載NAS。

    kubectl create -f nas.yaml
  3. 查看Deployment中Pod的部署情況。

    kubectl get pod -l app=nginx

    預期返回:

    NAME                  READY   STATUS    RESTARTS   AGE
    nas-test-****-***a    1/1     Running   0          32s
    nas-test-****-***b    1/1     Running   0          32s

掛載NAS靜態儲存卷(控制台)

步驟一:建立儲存卷(PV)

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇儲存 > 儲存卷

  3. 儲存卷頁面,單擊建立

  4. 在彈出的對話方塊中,完成參數配置,然後單擊建立

    配置項

    說明

    樣本值

    儲存卷類型

    選擇NAS

    NAS

    名稱

    儲存卷名稱。在叢集內必須唯一。

    pv-nas

    總量

    儲存卷的容量。

    重要

    NAS儲存卷的實際可用容量不受該配置限制,由NAS檔案系統的規格決定,請參見通用型NAS極速型NAS確認具體可用容量。

    5Gi

    訪問模式

    支援ReadWriteManyReadWriteOnce

    ReadWriteMany

    是否使用CNFS

    是否使用CNFS功能。基於CNFS託管NAS可以提升NAS的效能和QoS控制。

    本文主要介紹如何直接使用已有NAS建立儲存卷,不使用CNFS功能。如需使用CNFS配置已有NAS,請參見建立CNFS管理NAS檔案系統(推薦)

    不開啟

    掛載點網域名稱

    僅在未開啟CNFS時,需要設定。

    您可以通過選擇掛載點或者自訂的方式配置要掛載的NAS檔案系統目錄。關於如何查看掛載點地址,請參見管理掛載點

    0c47****-mpk25.cn-shenzhen.nas.aliyuncs.co

    進階選項(選填)

    掛載路徑

    要掛載的NAS子目錄。

    • 如果未設定,則預設掛載到根目錄。

    • 如果NAS中沒有該目錄,會自動建立後再進行掛載。

    說明

    通用型NAS的根目錄為/,極速型NAS的根目錄為/share。掛載極速型NAS的子目錄時,path必須以/share開頭,如/share/data

    /data

    回收策略

    預設為Retain。表示刪除PVC時,PV和NAS檔案不會被刪除,需要您手動刪除。

    說明

    Delete需配合archiveOnDelete一起使用。由於靜態PV暫不支援archiveOnDelete,僅在此處選擇Delete時,刪除PVC時,不會真正刪除PV和NAS檔案。如需配置archiveOnDelete,請使用NAS動態儲存裝置卷

    Retain

    掛載選項

    NAS的掛載參數,包括NFS協議版本等。推薦使用NFS v3協議,極速型NAS僅支援NFS v3。關於NFS協議的更多資訊,請參見NFS協議

    • nolock,tcp,noresvport

    • vers=3

    標籤

    為該儲存卷添加標籤。

    pv-nas

    建立完成後,在儲存卷頁面可以看到新建立的PV。

步驟二:建立儲存聲明(PVC)

  1. 在叢集管理頁左側導覽列,選擇儲存 > 儲存聲明

  2. 儲存聲明頁面,單擊建立

  3. 在彈出的對話方塊中,完成參數配置,然後單擊建立

    參數

    說明

    樣本值

    儲存宣告類型

    選擇NAS

    NAS

    名稱

    儲存聲明名稱在叢集內必須唯一。

    pvc-nas

    分配模式

    選擇已有儲存卷。

    說明

    若未建立儲存卷,您可以設定分配模式建立儲存卷,配置建立儲存卷參數。

    選擇已有儲存卷

    已有儲存卷

    單擊選擇已有儲存卷,在目標儲存卷右側操作列單擊選擇,選擇儲存卷。

    pv-nas

    總量

    聲明所需使用的儲存卷的容量。不能大於儲存卷的總量。

    重要

    NAS儲存卷的實際可用容量不受該配置限制,由NAS檔案系統的規格決定,請參見通用型NAS極速型NAS確認具體可用容量。

    5

    訪問模式

    預設為ReadWriteMany,也可選擇ReadWriteOnceReadOnlyMany

    ReadWriteMany

步驟三:建立應用並掛載NAS

  1. 在叢集管理頁左側導覽列,選擇工作負載 > 無狀態

  2. 無狀態頁面,單擊使用鏡像建立

  3. 配置建立應用的參數資訊,配置完成後,單擊建立

    主要參數如下,其他參數保持預設即可。更多資訊,請參見建立無狀態工作負載Deployment

    配置項

    參數

    說明

    樣本

    應用基本資料

    應用程式名稱

    Deployment名稱,自訂輸入。格式要求請參考介面提示。

    nas-test

    副本數量

    Deployment的副本數量。

    2

    容器配置

    鏡像名稱

    用於部署應用的鏡像地址。

    anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6

    所需資源

    所需的vCPU和記憶體資源。

    0.25 Core,512 MiB

    資料卷

    單擊增加雲端儲存聲明,然後完成參數配置。

    • 掛載源:選擇之前建立的PVC。

    • 容器路徑:輸入NAS檔案系統要掛載到的容器路徑。

    • 掛載源:pvc-nas

    • 容器路徑:/data

  4. 查看應用部署狀態。

    1. 無狀態頁面,單擊應用程式名稱。

    2. 容器組頁簽下,確認Pod已正常運行(狀態為Running)。

常見問題

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

相關文檔

通過CNFS可以實現對NAS檔案系統的獨立管理,提升NAS檔案系統的效能和QoS控制。具體操作,請參見通過CNFS管理NAS檔案系統(推薦)