全部產品
Search
文件中心

Cloud Parallel File Storage:ACS掛載CPFS智算版檔案系統

更新時間:Mar 25, 2026

本文介紹如何在容器計算服務(ACS)中掛載CPFS智算版檔案系統,支援多個Pod同時掛載實現資料共用。

前提條件

  • 已建立CPFS智算版檔案系統。具體操作,請參見建立檔案系統

  • ACS叢集中已安裝csi-provisioner組件。

    說明

    您可以在ACS叢集管理頁的左側導覽列單擊組件管理,然後在儲存頁簽下確認csi-provisioner組件的安裝情況。

步驟一:確定掛載方式

根據您的計算資源類型,確定網路方式並完成前置準備:

您的資源

對應網路

前置準備

GPU Pod(支援RDMA:GU8TF、GU8TEF、L20X、P16EN等)

RDMA

確保CPFS智算版的可用性區域(AZ)和叢集編號與所使用的靈駿GPU保持一致

GPU Pod(不支援RDMA:L20、G49E、T4、A10、G59等)

VPC

建立VPC掛載點

CPU Pod

VPC

建立VPC掛載點

如不確定您的GPU類型,請參見ACS支援的GPU卡型

步驟二:建立PV和PVC

CPFS智算版採用靜態掛載方式,需手動建立PV和PVC:

  • PV(PersistentVolume):持久卷,定義CPFS的串連資訊(檔案系統ID、網路類型、掛載路徑等)

  • PVC(PersistentVolumeClaim):持久卷聲明,Pod通過引用PVC使用儲存,實現儲存與應用的解耦

根據您的操作習慣選擇命令列或控制台方式。

kubectl命令列

根據步驟一確定的網路類型,選擇對應配置。

RDMA網路

適用於靈駿GPU(GU8TF、GU8TEF、L20X、P16EN等)。

  1. 建立cpfs-pv-pvc.yaml檔案,定義PV和PVC:

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: cpfs-test
      labels:
        alicloud-pvname: cpfs-test
    spec:
      accessModes:
      - ReadWriteMany
      capacity:
        storage: 10Ti
      csi:
        driver: bmcpfsplugin.csi.alibabacloud.com
        volumeAttributes:
          filesystemId: bmcpfs-*****
          path: /
        volumeHandle: bmcpfs-*****
    ---
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: cpfs-test
    spec:
      accessModes:
      - ReadWriteMany
      selector:
        matchLabels:
          alicloud-pvname: cpfs-test
      resources:
        requests:
          storage: 10Ti

    參數說明:

    • PV參數

      參數

      說明

      labels

      設定Label,以便PVC使用selector進行匹配綁定。

      accessModes

      PV的訪問模式。

      capacity.storage

      聲明儲存卷容量。

      csi.driver

      驅動類型,設定為povplugin.csi.alibabacloud.com

      csi.volumeAttributes

      CPFS儲存卷的屬性。

      • filesystemId:CPFS智算版檔案系統ID。

      • path:預設為/表示掛載CPFS檔案系統的根目錄,支援設定為子目錄,如/dir。如果子目錄不存在,會在掛載時被自動建立。

      csi.volumeHandle

      CPFS智算版檔案系統ID。

    • PVC參數

      參數

      說明

      accessModes

      PVC請求PV的訪問模式。

      selector

      使用PV上的Label進行匹配綁定。

      resources.requests.storage

      分配給Pod的儲存容量。不大於PV容量即可。

  2. 執行建立命令:

    kubectl create -f cpfs-pv-pvc.yaml
  3. 確認PVC已綁定PV。

    kubectl get pvc cpfs-test

    返回樣本如下(STATUS顯示Bound表示成功):

    NAME        STATUS   VOLUME           CAPACITY   ACCESS MODES   STORAGECLASS    VOLUMEATTRIBUTESCLASS   AGE
    cpfs-test   Bound    cpfs-test        10Ti       RWX            <unset>         <unset>                 10s

VPC網路

適用於CPU Pod,以及普通GPU(T4、A10等)。

  1. 建立cpfs-pv-pvc.yaml檔案,定義PV和PVC:

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: cpfs-test
      labels:
        alicloud-pvname: cpfs-test   # [PV標籤] PVC通過此綁定
    spec:
      accessModes:
      - ReadWriteMany
      capacity:
        storage: 10Ti
      csi:
        driver: nasplugin.csi.alibabacloud.com
        volumeAttributes:
          mountProtocol: efc
          server: cpfs-***-vpc-***.cn-wulanchabu.cpfs.aliyuncs.com  # 替換為VPC掛載點網域名稱
          path: /
        volumeHandle: bmcpfs-*****   # 替換為您的CPFS智算版檔案系統ID
    ---
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: cpfs-test      # [PVC名稱] Deployment通過此引用
    spec:
      accessModes:
      - ReadWriteMany
      selector:
        matchLabels:
          alicloud-pvname: cpfs-test    # [PVC選取器] 需與PV標籤一致
      resources:
        requests:
          storage: 10Ti

    參數說明:

    • PV參數

      參數

      說明

      labels

      設定Label,以便PVC使用selector進行匹配綁定。

      accessModes

      訪問模式。

      capacity.storage

      聲明儲存卷容量。

      csi.driver

      驅動類型,設定為nasplugin.csi.alibabacloud.com

      csi.volumeAttributes

      CPFS儲存卷的屬性。

      • mountProtocol:掛載協議,設定為efc

      • server:CPFS檔案系統的VPC掛載點網域名稱。

      • path:預設為/表示掛載CPFS檔案系統的根目錄,支援設定為子目錄,如/dir

      csi.volumeHandle

      CPFS智算版檔案系統ID。

    • PVC參數

      參數

      說明

      accessModes

      PVC請求PV的訪問模式。

      selector

      使用PV上的Label進行匹配綁定。

      resources.requests.storage

      分配給Pod的儲存容量。不大於PV容量即可。

  2. 執行建立命令:

    kubectl create -f cpfs-pv-pvc.yaml
  3. 確認PVC已綁定PV。

    kubectl get pvc cpfs-test

    返回樣本如下(STATUS顯示Bound表示成功):

    NAME        STATUS   VOLUME           CAPACITY   ACCESS MODES   STORAGECLASS    VOLUMEATTRIBUTESCLASS   AGE
    cpfs-test   Bound    cpfs-test        10Ti       RWX            <unset>         <unset>                 10s

控制台

控制台方式僅支援RDMA網路掛載GPU應用,VPC網路請使用kubectl方式。
  1. 登入容器計算服務控制台

  2. 叢集列表頁面,單擊目的地組群名稱,進入該叢集的管理頁面。

  3. 在左側導覽列選擇儲存 > 儲存聲明,單擊建立,完成以下配置:

    參數

    說明

    樣本

    儲存宣告類型

    選擇CPFS

    CPFS

    名稱

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

    cpfs-pvc

    分配模式

    根據需要選擇已有儲存卷建立儲存卷

    建立儲存卷

    CPFS類型

    選擇CPFS智算版

    CPFS智算版

    訪問模式

    支援ReadWriteManyReadWriteOnce

    ReadWriteMany

    檔案系統ID

    配置要掛載的CPFS智算版檔案系統ID。

    bmcpfs-0115******13q5

  4. 查看建立的PV和PVC。

    儲存聲明頁面和儲存卷頁面,可以看到新建立的PV和PVC,確認兩者已綁定。

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

建立Deployment應用,通過引用PVC將儲存掛載到容器指定目錄。根據您的操作習慣選擇命令列或控制台方式。

kubectl方式

根據您的應用類型選擇對應的配置。

GPU應用

適用於靈駿GPU(GU8TF等)和普通GPU(T4、A10等)。

  1. 建立cpfs-test.yaml檔案,定義Deployment並引用PVC:

    以下YAML樣本可以建立包含2個Pod的Deployment,2個Pod均通過alibabacloud.com/compute-class: gpu標籤聲明要使用GPU型算力,並且通過名為cpfs-test的PVC申請儲存資源,掛載路徑均為/data

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: cpfs-test
      labels:
        app: cpfs-test
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: cpfs-test
      template:
        metadata:
          labels:
            app: cpfs-test
            # 指定計算類型為GPU型
            alibabacloud.com/compute-class: gpu
            # 指定GPU型號,請按實際情況填寫,如T4
            alibabacloud.com/gpu-model-series: T4
            alibabacloud.com/compute-qos: default
        spec:
          containers:
          - name: nginx
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
            ports:
            - containerPort: 80
            volumeMounts:
              - name: pvc-cpfs
                mountPath: /data
          volumes:
            - name: pvc-cpfs
              persistentVolumeClaim:
                claimName: cpfs-test    # [Deployment] 需與PVC名稱一致
  2. 建立應用:

    kubectl create -f cpfs-test.yaml
  3. 確認Pod運行成功:

    kubectl get pod | grep cpfs-test

    返回樣本如下,已建立2個Pod。

    cpfs-test-****-***a   1/1     Running   0          45s
    cpfs-test-****-***b   1/1     Running   0          45s
  4. 驗證掛載成功

    命令樣本如下,預期會返回CPFS智算版檔案系統掛載目錄下的資料。預設為空白。

    kubectl exec cpfs-test-****-***a -- ls /data

CPU應用

  1. 建立cpfs-test.yaml檔案。

    以下YAML樣本可以建立包含2個Pod的Deployment,通過名為cpfs-test的PVC申請儲存資源,掛載路徑均為/data

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: cpfs-test
      labels:
        app: cpfs-test
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: cpfs-test
      template:
        metadata:
          labels:
            app: cpfs-test
        spec:
          containers:
          - name: nginx
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
            ports:
            - containerPort: 80
            volumeMounts:
              - name: pvc-cpfs
                mountPath: /data
          volumes:
            - name: pvc-cpfs
              persistentVolumeClaim:
                claimName: cpfs-test     # [Deployment] 需與PVC名稱一致
  2. 建立Deployment並掛載CPFS。

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

    kubectl get pod | grep cpfs-test

    返回樣本如下,已建立2個Pod。

    cpfs-test-****-***a   1/1     Running   0          45s
    cpfs-test-****-***b   1/1     Running   0          45s
  4. 查看掛載路徑。

    命令樣本如下,預期會返回CPFS智算版檔案系統掛載目錄下的資料。預設為空白。

    kubectl exec cpfs-test-****-***a -- ls /data

控制台

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

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

  3. 完成Deployment的參數配置,單擊建立

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

    GPU應用

    配置頁

    參數

    說明

    樣本

    應用基本資料

    應用程式名稱

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

    cpfs-test

    副本數量

    配置Deployment的副本數量。

    2

    執行個體類型

    選擇Pod的計算類型。

    說明

    關於GPU卡具體型號,請參見為ACS GPU Pod指定GPU型號和驅動版本

    GPU,T4

    容器配置

    鏡像名稱

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

    registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest

    所需資源

    設定所需的GPU、vCPU和記憶體資源。

    • GPU:1

    • CPU:2 vCPU

    • 記憶體:2 GiB

    資料卷

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

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

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

    • 掛載源:pvc-cpfs

    • 容器路徑:/data

    CPU應用

    配置頁

    參數

    說明

    樣本

    應用基本資料

    應用程式名稱

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

    cpfs-test

    副本數量

    配置Deployment的副本數量。

    2

    執行個體類型

    選擇Pod的計算類型。

    CPU,通用型

    容器配置

    鏡像名稱

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

    registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest

    所需資源

    設定所需的vCPU和記憶體資源。

    • CPU:0.25 vCPU

    • 記憶體:0.5 GiB

    資料卷

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

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

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

    • 掛載源:pvc-cpfs

    • 容器路徑:/data

  4. 查看應用部署情況。

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

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

步驟四:驗證掛載結果

按照上文樣本建立的Deployment中含有2個Pod,2個Pod同時掛載了同一CPFS檔案系統。您可以通過以下方式進行驗證:

重建Deployment,然後在新建立的Pod中查看檔案系統中的資料是否存在,以此來驗證持久化儲存。

  1. 查看Pod資訊。

    kubectl get pod | grep cpfs-test

    返回樣本如下:

    cpfs-test-****-***a   1/1     Running   0          45s
    cpfs-test-****-***b   1/1     Running   0          45s
  2. 驗證共用儲存。

    1. 在一個Pod中建立檔案。

      以名為cpfs-test-****-***a的Pod作為樣本:

      kubectl exec cpfs-test-****-***a -- touch /data/test.txt
    2. 在另一個Pod中查看檔案。

      以名為cpfs-test-****-***b的Pod作為樣本:

      kubectl exec cpfs-test-****-***b -- ls /data

      預期返回如下,可以看到已共用建立的檔案test.txt

      test.txt
  3. 驗證持久化儲存。

    1. 重建Deployment。

      kubectl rollout restart deploy cpfs-test
    2. 查看Pod,等待新Pod建立成功。

      kubectl get pod | grep cpfs-test

      返回樣本如下:

      cpfs-test-****-***c   1/1     Running   0          78s
      cpfs-test-****-***d   1/1     Running   0          52s
    3. 在新Pod中查看檔案系統中的資料是否存在。

      以名為cpfs-test-c***的Pod作為樣本:

      kubectl exec cpfs-test-****-***c -- ls /data

      預期返回如下,可以看到CPFS檔案系統中的資料依然存在,在新Pod的掛載目錄下可以重新擷取。

      test.txt