Todos os produtos
Search
Central de documentação

Cloud Parallel File Storage:Montar um sistema de arquivos CPFS for Lingjun no ACS

Última atualização: Jul 29, 2026

O Container Compute Service (ACS) permite montar sistemas de arquivos CPFS for Lingjun. Vários pods podem montar o sistema simultaneamente para compartilhar dados.

Pré-requisitos

  • Você criou um cluster ACS.

    No ACS, a plataforma gerencia os componentes CSI (bmcpfs-csi-controller, bmcpfs-csi-node e cnfs-nas-daemon). Não é necessário gerenciar versões ou atualizações desses componentes.
  • Você criou um sistema de arquivos CPFS for Lingjun e registrou o ID do sistema de arquivos. Para mais informações, consulte Crie um sistema de arquivos CPFS for Lingjun.

  • Se um pod for agendado em um nó sem suporte a RDMA ou se o cenário envolver acesso entre domínios de afinidade computação-armazenamento diferentes, crie previamente um ponto de montagem VPC e anote o nome de domínio do ponto de montagem (no formato cpfs-***-vpc-***.<Region>.cpfs.aliyuncs.com). A VPC do ponto de montagem deve ser a mesma do cluster ACS. Para mais informações, consulte Gerencie pontos de montagem VPC.

Etapa 1: Criar um PV e um PVC

Escolha o modelo apropriado conforme o tipo de pod:

  • Pods GPU Lingjun no mesmo domínio de afinidade computação-armazenamento: Use o "Método A: RDMA".

  • Pods CPU ou acesso Lingjun entre domínios de afinidade computação-armazenamento: Use o "Método B: Ponto de montagem VPC".

Quando um pod Lingjun do ACS está no mesmo domínio de afinidade computação-armazenamento que o CPFS, ele acessa o sistema de arquivos via montagem direta VSC + RDMA para obter o melhor desempenho. Para pods CPU ou acesso Lingjun entre domínios de afinidade computação-armazenamento, o acesso ocorre por meio de um ponto de montagem VPC. Para entender o conceito e o método de determinação dos domínios de afinidade computação-armazenamento, consulte Overview of mount access .

Rede RDMA

kubectl CLI

  1. Crie um arquivo chamado cpfs-pv-pvc.yaml para definir o PV e o 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

    Descrição dos parâmetros:

    • Parâmetros do PersistentVolume

      Parâmetro

      Descrição

      labels

      Rótulos do PersistentVolume. Um PersistentVolumeClaim usa um selector para se vincular a um PersistentVolume correspondendo a esses rótulos.

      accessModes

      Modo de acesso do PersistentVolume.

      capacity.storage

      Capacidade do volume.

      csi.driver

      Driver CSI. Defina o valor como bmcpfsplugin.csi.alibabacloud.com.

      csi.volumeAttributes

      Atributos do volume CPFS.

      • filesystemId: ID do sistema de arquivos CPFS for LINGJUN.

      • path: Diretório a ser montado. O valor padrão é /, que indica o diretório raiz do sistema de arquivos CPFS. Também é possível especificar um subdiretório, como /dir. Se o subdiretório não existir, ele será criado automaticamente durante a montagem.

      csi.volumeHandle

      ID do sistema de arquivos CPFS for LINGJUN.

    • Parâmetros do PersistentVolumeClaim

      Parâmetro

      Descrição

      accessModes

      Modo de acesso solicitado pelo PersistentVolumeClaim.

      selector

      Seletor usado para localizar um PersistentVolume correspondente com base nos rótulos.

      resources.requests.storage

      Quantidade de armazenamento solicitada pelo PersistentVolumeClaim. O valor não pode exceder a capacidade do PersistentVolume.

  2. Execute o comando de criação:

    kubectl create -f cpfs-pv-pvc.yaml
  3. Confirme se o PVC está vinculado ao PV.

    kubectl get pvc cpfs-test

    Exemplo de saída (um status Bound indica sucesso):

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

Console

  1. Faça login no console do ACS.

  2. Na página Clusters, clique em o nome do cluster desejado para acessar sua página de gerenciamento.

  3. No painel de navegação à esquerda, escolha Storage > PersistentVolumeClaims, clique em Create e conclua a seguinte configuração:

    Parâmetro

    Descrição

    Exemplo

    PVC Type

    Selecione CPFS.

    CPFS

    Name

    Nome personalizado para o PVC. Para requisitos de nomenclatura, consulte as instruções na tela.

    cpfs-pvc

    Allocation Mode

    Selecione Existing Volume ou Create Volume conforme necessário.

    Create Volume

    CPFS Type

    Selecione CPFS for Lingjun.

    CPFS for Lingjun

    Access Mode

    Suporta ReadWriteMany e ReadWriteOnce.

    ReadWriteMany

    File System ID

    Configure o ID do sistema de arquivos CPFS for Lingjun a ser montado.

    bmcpfs-011513q5

  4. Visualize o PV e o PVC criados.

    Nas páginas PersistentVolumeClaims e Volumes, visualize o PV e o PVC recém-criados. Confirme se eles estão vinculados.

Rede VPC

Aplica-se a pods CPU, GPUs padrão (como T4 ou A10) e acesso GPU Lingjun entre domínios de afinidade computação-armazenamento.

  1. Crie um arquivo chamado cpfs-pv-pvc.yaml para definir o PV e o PVC:

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: cpfs-test
      labels:
        alicloud-pvname: cpfs-test   # [PV label] Used by the PVC to bind to this PV
    spec:
      accessModes:
      - ReadWriteMany
      capacity:
        storage: 10Ti
      csi:
        driver: nasplugin.csi.alibabacloud.com
        volumeAttributes:
          mountProtocol: efc
          server: cpfs-***-vpc-***.cn-wulanchabu.cpfs.aliyuncs.com  # Replace with your VPC mount point domain name
          path: /
          autoSwitch: "true"    # Optional. Enables automatic VSC/VPC switching (recommended for Lingjun cross-AZ scenarios)
        volumeHandle: bmcpfs-*****   # Replace with your CPFS for Lingjun file system ID
    ---
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: cpfs-test      # [PVC name] Referenced by the Deployment
    spec:
      accessModes:
      - ReadWriteMany
      selector:
        matchLabels:
          alicloud-pvname: cpfs-test    # [PVC selector] Must match the PV label
      resources:
        requests:
          storage: 10Ti

    Descrição dos parâmetros:

    • Parâmetros do PersistentVolume

      Parâmetro

      Descrição

      labels

      Rótulos do PersistentVolume. Um PersistentVolumeClaim usa um selector para se vincular a um PersistentVolume correspondendo a esses rótulos.

      accessModes

      Modo de acesso do PersistentVolume.

      capacity.storage

      Capacidade do volume.

      csi.driver

      Driver CSI. Defina o valor como nasplugin.csi.alibabacloud.com.

      csi.volumeAttributes

      Atributos do volume CPFS.

      • mountProtocol: Protocolo de montagem. Defina o valor como efc.

      • server: Nome de domínio do ponto de montagem VPC do sistema de arquivos CPFS.

      • path: Diretório a ser montado. O valor padrão é /, que indica o diretório raiz do sistema de arquivos CPFS. Também é possível especificar um subdiretório, como /dir. Se o subdiretório não existir, ele será criado automaticamente durante a montagem.

      csi.volumeHandle

      ID do sistema de arquivos CPFS for LINGJUN.

    • Parâmetros do PersistentVolumeClaim

      Parâmetro

      Descrição

      accessModes

      Modo de acesso solicitado pelo PersistentVolumeClaim.

      selector

      Seletor usado para localizar um PersistentVolume correspondente com base nos rótulos.

      resources.requests.storage

      Quantidade de armazenamento solicitada pelo PersistentVolumeClaim. O valor não pode exceder a capacidade do PersistentVolume.

    • autoSwitch: Parâmetro opcional. Quando definido como "true", ativa a alternância automática VSC/VPC. Se GPUs Lingjun acessarem recursos entre zonas de disponibilidade, o sistema alterna automaticamente de RDMA para o canal VPC.

    Nota

    O throughput do canal VPC é limitado pela largura de banda da rede, atingindo aproximadamente 3,2 GB/s (25 Gbps), valor inferior ao de uma conexão RDMA direta. Para cenários sensíveis a desempenho, recomendamos priorizar uma instância CPFS no mesmo domínio de afinidade computação-armazenamento.

  2. Execute o comando de criação:

    kubectl create -f cpfs-pv-pvc.yaml
  3. Confirme se o PVC está vinculado ao PV.

    kubectl get pvc cpfs-test

    Exemplo de saída (um status Bound indica sucesso):

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

Etapa 2: Criar uma aplicação e montar o CPFS

Crie um Deployment que referencie o PVC para montar o armazenamento em um diretório específico do contêiner. Escolha o método via CLI ou console conforme sua preferência.

kubectl

  1. Crie um arquivo chamado cpfs-test.yaml com o seguinte conteúdo.

    Aplicação GPU

    O exemplo YAML abaixo cria um Deployment com dois Pods. Ambos usam o rótulo alibabacloud.com/compute-class: gpu para solicitar poder de computação baseado em GPU e um PersistentVolumeClaim (PVC) chamado cpfs-test para solicitar recursos de armazenamento. O caminho de montagem para ambos os Pods é /data.

    Nota

    Para mais informações sobre modelos específicos de GPU, consulte Especifique modelos de GPU e versões de driver para Pods GPU do ACS.

    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
            # Specify the compute type as GPU.
            alibabacloud.com/compute-class: gpu
            # Specify the GPU model, for example, 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

    Aplicação CPU

    O exemplo YAML a seguir cria um Deployment com 2 pods, que solicitam recursos de armazenamento usando um PVC chamado cpfs-test e são ambos montados no caminho /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. Crie o Deployment e monte o volume CPFS.

    kubectl create -f cpfs-test.yaml
  3. Verifique o status dos Pods no Deployment.

    kubectl get pod | grep cpfs-test

    A saída esperada mostra dois Pods no estado 'Running'.

    cpfs-test-****-***a   1/1     Running   0          45s
    cpfs-test-****-***b   1/1     Running   0          45s
  4. Verifique o caminho de montagem.

    Este comando lista o conteúdo do diretório montado (/data), que contém dados do sistema de arquivos CPFS for LINGJUN. Por padrão, o diretório está vazio.

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

Console

  1. No painel de navegação à esquerda da página de gerenciamento do cluster, escolha Workloads > Deployments.

  2. Na página Deployments, clique em Create from Image.

  3. Configure os parâmetros do Deployment e clique em Create.

    Os principais parâmetros estão descritos abaixo. Mantenha os valores padrão para os demais parâmetros. Para mais informações, consulte Crie uma aplicação stateless usando um Deployment.

    Aplicação GPU

    Seção

    Parâmetro

    Descrição

    Exemplo

    Basic Information

    Application Name

    Insira um nome exclusivo para o Deployment. O nome deve obedecer aos requisitos de formato exibidos na página.

    cpfs-test

    Replicas:

    Número de réplicas de Pod para o Deployment.

    2

    Instance Type

    Especifica os recursos de hardware para os Pods, como CPU ou um modelo específico de GPU.

    Nota

    Para mais informações sobre modelos específicos de GPU, consulte Specify GPU models and driver versions for ACS GPU Pods.

    GPU, T4

    Container

    Image Name

    Imagem de contêiner usada para implantar a aplicação.

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

    Required Resources

    Quantidade de recursos de GPU, vCPU e memória a serem alocados para cada Pod.

    • GPU: 1

    • CPU: 2 vCPU

    • Memory: 2 GiB

    Volume

    Clique em Add PVC e configure os parâmetros.

    • Mount Source: Selecione o PersistentVolumeClaim existente.

    • Container Path: Insira o caminho dentro do contêiner onde o sistema de arquivos CPFS será montado.

    • Mount source: pvc-cpfs

    • Container path: /data

    Aplicação CPU

    Seção

    Parâmetro

    Descrição

    Exemplo

    Basic Information

    Application Name

    Insira um nome exclusivo para o Deployment. O nome deve obedecer aos requisitos de formato exibidos na página.

    cpfs-test

    Replicas:

    Número de réplicas de Pod para o Deployment.

    2

    Instance Type

    Tipo de computação do Pod.

    CPU, General Purpose

    Container

    Image Name

    Imagem de contêiner usada para implantar a aplicação.

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

    Required Resources

    Quantidade de recursos de vCPU e memória a serem alocados para cada Pod.

    • CPU: 0,25 vCPU

    • Memory: 0,5 GiB

    Volume

    Clique em Add PVC e configure os parâmetros.

    • Mount Source: Selecione o PersistentVolumeClaim existente.

    • Container Path: Insira o caminho dentro do contêiner onde o sistema de arquivos CPFS será montado.

    • Mount source: pvc-cpfs

    • Container path: /data

  4. Verifique o status da aplicação.

    1. Na página Deployments, clique em o nome da aplicação.

    2. Na aba Pods, verifique se os Pods estão no estado 'Running'.

Etapa 3: Verificar a montagem

O Deployment criado no exemplo anterior contém dois Pods, e ambos montam o mesmo sistema de arquivos CPFS. Siga os passos abaixo para validar o armazenamento compartilhado e persistente:

Valide a persistência do armazenamento reiniciando o Deployment e verificando se os dados permanecem nos novos Pods criados.

  1. Verifique os Pods.

    kubectl get pod | grep cpfs-test

    Exemplo de saída:

    cpfs-test-****-***a   1/1     Running   0          45s
    cpfs-test-****-***b   1/1     Running   0          45s
  2. Valide o armazenamento compartilhado.

    1. Crie um arquivo em um dos Pods.

      Este exemplo usa o Pod chamado cpfs-test-****-***a:

      kubectl exec cpfs-test-****-***a -- touch /data/test.txt
    2. Verifique a existência do arquivo no outro Pod.

      Este exemplo usa o Pod chamado cpfs-test-****-***b:

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

      A saída, test.txt, confirma que o armazenamento é compartilhado.

      test.txt
  3. Valide o armazenamento persistente.

    1. Reinicie o Deployment.

      kubectl rollout restart deploy cpfs-test
    2. Verifique o status dos Pods e aguarde a criação dos novos Pods.

      kubectl get pod | grep cpfs-test

      Exemplo de saída:

      cpfs-test-****-***c   1/1     Running   0          78s
      cpfs-test-****-***d   1/1     Running   0          52s
    3. Confirme se os dados persistem no novo Pod.

      Este exemplo usa o Pod chamado cpfs-test-****-***c:

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

      Esta saída confirma que os dados no sistema de arquivos CPFS persistem e estão acessíveis no diretório de montagem do novo Pod.

      test.txt