すべてのプロダクト
Search
ドキュメントセンター

Cloud Parallel File Storage:ACK での CPFS for Lingjun ファイルシステムのマウント

最終更新日:Jul 30, 2026

Container Service for Kubernetes (ACK) は、CPFS for Lingjun ファイルシステムのマウントをサポートしています。複数のポッドで同時にマウントし、データを共有できます。

前提条件

  • ACK クラスターが作成されている必要があります。

    ACK の場合、CSI コンポーネント (bmcpfs-csi-controller、bmcpfs-csi-node、cnfs-nas-daemon) は ACK プラットフォームが管理します。コンポーネントのバージョン管理やアップグレードを行う必要はありません。
  • CPFS for Lingjun ファイルシステムを作成し、ファイルシステム ID を記録しておいてください。詳細については、「CPFS for Lingjun ファイルシステムの作成」をご参照ください。

  • ポッドが RDMA をサポートしていないノードにスケジューリングされる場合や、コンピューティングとストレージのアフィニティドメインをまたいでアクセスする場合は、事前に VPC マウントポイントを作成し、マウントポイントのドメイン名 (形式: cpfs-***-vpc-***.<Region>.cpfs.aliyuncs.com) を記録しておく必要があります。VPC マウントポイントは、ACK クラスターと同じ VPC に属している必要があります。詳細については、「VPC マウントポイントの管理」をご参照ください。

手順1:PV と PVC の作成

ポッドのタイプに応じて、適切なテンプレートを選択します。

  • コンピューティングとストレージのアフィニティドメインが同一である Lingjun GPU ポッド: 「方法A:RDMA」を使用します。

  • CPU ポッド、または コンピューティングとストレージのアフィニティドメインをまたいで Lingjun にアクセスする場合:「方法B:VPC マウントポイント」を使用します。

ACK Lingjun ポッドが CPFS と同じコンピューティングとストレージのアフィニティドメインにある場合、最高のパフォーマンスを得るために VSC + RDMA ダイレクトマウントを介してファイルシステムにアクセスします。CPU ポッドの場合、またはコンピューティングとストレージのアフィニティドメインをまたいで Lingjun にアクセスする場合、VPC マウントポイントを介してアクセスします。コンピューティングとストレージのアフィニティドメインの概念と判断方法については、「マウントアクセスの概要」をご参照ください。

RDMAネットワーク

kubectl CLI

  1. PV と PVC を定義するために、 cpfs-pv-pvc.yaml という名前のファイルを作成します。

    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

    パラメーターの説明:

    • PersistentVolume のパラメーター

      パラメーター

      説明

      labels

      PersistentVolume のラベル。PersistentVolumeClaim は、セレクター を使用してこれらのラベルを照合し、PersistentVolume にバインドします。

      accessModes

      PersistentVolume のアクセスモード。

      capacity.storage

      ボリュームの容量。

      csi.driver

      CSI ドライバー。値を bmcpfsplugin.csi.alibabacloud.com に設定します。

      csi.volumeAttributes

      CPFS ボリュームの属性。

      • filesystemId:CPFS for LINGJUN ファイルシステムの ID。

      • path:マウントするディレクトリ。デフォルト値は / で、CPFS ファイルシステムのルートディレクトリを示します。/dir のようなサブディレクトリを指定することもできます。サブディレクトリが存在しない場合、マウント時に自動的に作成されます。

      csi.volumeHandle

      CPFS for LINGJUN ファイルシステムの ID。

    • PersistentVolumeClaim のパラメーター

      パラメーター

      説明

      accessModes

      PersistentVolumeClaim が要求するアクセスモード。

      selector

      ラベルに基づいて、一致する PersistentVolume を見つけるためのセレクター。

      resources.requests.storage

      PersistentVolumeClaim が要求するストレージ量。この値は PersistentVolume の容量を超えることはできません。

  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

コンソール

  1. ACK コンソールにログインします。

  2. [クラスター] ページで、目的のクラスターの名前をクリックして、その管理ページに移動します。

  3. ナビゲーションペインで、[ストレージ] > [永続ボリューム要求] を選択し、[作成] をクリックして、次の設定を行います。

    パラメーター

    説明

    例

    [PVC タイプ]

    [CPFS] を選択します。

    CPFS

    [名前]

    PVC のカスタム名。命名要件については、画面上のプロンプトをご参照ください。

    cpfs-pvc

    [割り当てモード]

    必要に応じて、[既存のボリューム] または [ボリュームの作成] を選択します。

    [ボリュームの作成]

    [CPFS タイプ]

    [CPFS for Lingjun] を選択します。

    [CPFS for Lingjun]

    [アクセスモード]

    [ReadWriteMany] と [ReadWriteOnce] をサポートします。

    [ReadWriteMany]

    [ファイルシステムID]

    マウントする CPFS for Lingjun ファイルシステムの ID を設定します。

    bmcpfs-0115******13q5

  4. 作成された PV と PVC を表示します。

    [永続ボリューム要求] ページおよび [ボリューム] ページで、新しく作成された PV と PVC を確認できます。それらがバインドされていることを確認します。

VPCネットワーク

CPU ポッド、標準 GPU (T4 や A10 など)、およびコンピューティングとストレージのアフィニティドメインをまたぐ Lingjun GPU アクセスに適用されます。

  1. PV と PVC を定義するために、 cpfs-pv-pvc.yaml という名前のファイルを作成します。

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: cpfs-test
      labels:
        alicloud-pvname: cpfs-test   # [PV ラベル] PVC がこの PV にバインドする際に使用
    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: /
          autoSwitch: "true"    # オプション。VSC/VPC の自動切り替えを有効にします (Lingjun のクロス AZ シナリオで推奨)
        volumeHandle: bmcpfs-*****   # CPFS for Lingjun ファイルシステム ID に置き換えます
    ---
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: cpfs-test      # [PVC 名] デプロイメントから参照されます
    spec:
      accessModes:
      - ReadWriteMany
      selector:
        matchLabels:
          alicloud-pvname: cpfs-test    # [PVC セレクター] PV ラベルと一致させます
      resources:
        requests:
          storage: 10Ti

    パラメーターの説明:

    • PersistentVolume のパラメーター

      パラメーター

      説明

      labels

      PersistentVolume のラベル。PersistentVolumeClaim は、セレクター を使用してこれらのラベルを照合し、PersistentVolume にバインドします。

      accessModes

      PersistentVolume のアクセスモード。

      capacity.storage

      ボリュームの容量。

      csi.driver

      CSI ドライバー。値を nasplugin.csi.alibabacloud.com に設定します。

      csi.volumeAttributes

      CPFS ボリュームの属性。

      • mountProtocol:マウントプロトコル。値を efc に設定します。

      • server:CPFS ファイルシステムの VPC マウントターゲットドメイン名。

      • path:マウントするディレクトリ。デフォルト値は / で、CPFS ファイルシステムのルートディレクトリを示します。/dir のようなサブディレクトリを指定することもできます。サブディレクトリが存在しない場合、マウント時に自動的に作成されます。

      csi.volumeHandle

      CPFS for LINGJUN ファイルシステムの ID。

    • PersistentVolumeClaim のパラメーター

      パラメーター

      説明

      accessModes

      PersistentVolumeClaim が要求するアクセスモード。

      selector

      ラベルに基づいて、一致する PersistentVolume を見つけるためのセレクター。

      resources.requests.storage

      PersistentVolumeClaim が要求するストレージ量。この値は PersistentVolume の容量を超えることはできません。

    • autoSwitch:オプションのパラメーターです。"true" に設定すると、VSC/VPC の自動切り替えが有効になります。Lingjun GPU がアベイラビリティゾーンをまたいでアクセスする場合、システムは自動的に RDMA から VPC チャネルに切り替えます。

    説明

    VPC チャネルのスループットはネットワーク帯域幅によって制限され、最大で約 3.2 GB/s (25 Gbps) となり、直接 RDMA 接続よりも低くなります。パフォーマンスが重視されるシナリオでは、同じコンピューティングとストレージのアフィニティドメインにある CPFS インスタンスを優先することを推奨します。

  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

手順2:アプリケーションの作成と CPFS のマウント

PVC を参照するデプロイメントを作成し、ストレージをコンテナー内の特定のディレクトリにマウントします。お好みに応じて、kubectl CLI またはコンソールのいずれかを使用してください。

kubectl

  1. 次の内容で cpfs-test.yaml という名前のファイルを作成します。

    GPU アプリケーション

    次の YAML の例では、2つのポッドを持つデプロイメントを作成します。両方のポッドは、alibabacloud.com/compute-class: gpu ラベルを使用して GPU ベースのコンピューティング性能を要求し、cpfs-test という名前の永続ボリューム要求 (PVC) を使用してストレージリソースを要求します。両方のポッドのマウントパスは /data です。

    説明

    特定の GPU モデルの詳細については、「ACK GPU ポッドの GPU モデルとドライバーバージョンの指定」をご参照ください。

    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

    CPU アプリケーション

    次の YAML の例では、2つのポッドを持つデプロイメントを作成します。これらのポッドは、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
  2. デプロイメントを作成し、CPFS ボリュームをマウントします。

    kubectl create -f cpfs-test.yaml
  3. デプロイメント内のポッドのステータスを確認します。

    kubectl get pod | grep cpfs-test

    出力例のように、2つのポッドが 「Running」 状態と表示されます。

    cpfs-test-****-***a   1/1     Running   0          45s
    cpfs-test-****-***b   1/1     Running   0          45s
  4. マウントパスを確認します。

    このコマンドは、マウントされたディレクトリ (/data) の内容を一覧表示します。このディレクトリには、CPFS for Lingjun ファイルシステムのデータが含まれています。デフォルトでは、ディレクトリは空です。

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

コンソール

  1. クラスター管理ページのナビゲーションペインで、[ワークロード] >  >  > [デプロイメント] を選択します。

  2. 展開 ページで、イメージによる作成 をクリックします。

  3. デプロイメントのパラメーターを設定し、作成する をクリックします。

    主要なパラメーターを以下に示します。他のパラメーターはデフォルト値のままにできます。詳細については、「デプロイメントを使用したステートレスアプリケーションの作成」をご参照ください。

    GPU アプリケーション

    セクション

    パラメーター

    説明

    例

    [基本情報]

    [名前]

    デプロイメントの一意の名前を入力します。名前はページに表示される形式要件に従ってください。

    cpfs-test

    [Replicas:]

    デプロイメントのポッドレプリカ数。

    2

    [インスタンスタイプ]

    ポッドのハードウェアリソース (CPU や特定の GPU モデルなど) を指定します。

    説明

    特定の 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 アプリケーション

    セクション

    パラメーター

    説明

    例

    [基本情報]

    [名前]

    デプロイメントの一意の名前を入力します。名前はページに表示される形式要件に従ってください。

    cpfs-test

    [Replicas:]

    デプロイメントのポッドレプリカ数。

    2

    [インスタンスタイプ]

    ポッドのコンピューティングタイプ。

    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. ポッド タブで、ポッドの状態が「実行中」であることを確認します。

手順3:マウントの検証

前の例で作成した Deployment には 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