O cloud Parallel File Storage (CPFS) é um sistema de arquivos paralelos totalmente gerenciado para cenários de computação de alto desempenho (HPC) com suporte a expansão sob demanda. O CPFS permite acesso simultâneo de centenas a milhares de máquinas, oferecendo dezenas de GB de throughput, milhões de IOPS e latência sub-milissegundo. Monte um volume estático do CPFS em um pod do ACS para fornecer armazenamento compartilhado, persistente e de alto desempenho às suas aplicações.
Observações de uso
O CPFS for Lingjun (invitational preview) é ideal para cenários de computação de IA, como conteúdo gerado por IA (AIGC) e direção autônoma. Antes de montar um volume, atente-se aos seguintes pontos:
Preview por convite: O CPFS for Lingjun suporta redes Remote Direct Memory Access (RDMA) ponta a ponta. Esta edição está disponível apenas em regiões e zonas específicas.
Requisito de rede RDMA: Ao acessar o CPFS for Lingjun por uma rede RDMA, o pod e o sistema de arquivos devem estar na mesma hpn-zone.
Armazenamento compartilhado: É possível montar um único volume CPFS em vários pods.
Classes de computação compatíveis: O CPFS pode ser montado em pods do ACS de qualquer tipo de CPU, mas apenas em pods do ACS de modelos específicos de gpu. Para mais informações, abra um ticket.
Pré-requisitos
O add-on managed-csiprovisioner deve estar instalado no cluster ACS.
Acesse a página de gerenciamento de clusters do ACS no console do ACS. No painel de navegação à esquerda, clique em Components and Add-ons. Na aba Storage, verifique se o managed-csiprovisioner está instalado.
Criar um sistema de arquivos CPFS
CPFS for Lingjun
-
Create a CPFS for Lingjun file system.
Após criar o sistema de arquivos, anote o id do sistema de arquivos.
-
(Opcional) Create a VPC mount target.
Para pods que não suportam o protocolo RDMA, como pods de CPU e alguns pods de gpu, crie um destino de montagem VPC para acessar o CPFS pela VPC.
Use a Virtual Private Cloud (VPC) e o vSwitch do cluster ACS para criar o destino de montagem VPC e gerar um endereço de montagem. Após a criação do destino de montagem, registre o nome de domínio correspondente. O nome de domínio segue o formato
cpfs-***-vpc-***.<Region>.cpfs.aliyuncs.com.Na página de detalhes do sistema de arquivos, clique em Mounting no painel de navegação à esquerda. Na aba Mount Target, localize o destino de montagem VPC criado. Clique no ícone de visualizar detalhes à direita do endereço de montagem para obter o endereço completo e copiá-lo.
Montar um volume CPFS
Etapa 1: Criar um PV e um PVC
kubectl
-
Salve o conteúdo yaml a seguir em um arquivo chamado
cpfs-pv-pvc.yaml.Escolha também o yaml conforme a classe de computação dos pods a serem montados.
CPFS for Lingjun
ImportanteO CPFS for Lingjun só pode ser montado em pods de modelos específicos de gpu. Para os modelos de gpu que suportam o protocolo RDMA, consulte Supported GPU types.
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: mountpointAutoSwitch: "true" # Enables automatic switchover between the RDMA mount address and the VPC mount address vpcMountTarget: cpfs-***-vpc-***.<Region>.cpfs.aliyuncs.com 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-
Parâmetros do PV:
Parâmetro
Descrição
labelsDefine um rótulo para que o PVC possa usar o
selectorpara corresponder e vincular o PV.accessModesModo de acesso do PV.
capacity.storageCapacidade declarada do volume.
csi.driverTipo de driver. Defina o valor como
bmcpfsplugin.csi.alibabacloud.com.csi.volumeAttributesAtributos do volume CPFS.
filesystemId: id do sistema de arquivos CPFS for Lingjun.path: o valor padrão/monta o diretório raiz do sistema de arquivos CPFS. Opcionalmente, especifique um subdiretório, como/dir. Se o subdiretório não existir, ele será criado automaticamente durante a montagem do volume.csi.volumeHandleid do sistema de arquivos CPFS for Lingjun.
-
Parâmetros do PVC:
Parâmetro
Descrição
accessModesModo de acesso solicitado pelo PVC ao PV.
selectorCorresponde e vincula o PV com base no rótulo definido no PV.
resources.requests.storageCapacidade de armazenamento alocada ao pod. O valor não deve exceder a capacidade do PV.
-
-
Crie o PV e o PVC.
kubectl create -f cpfs-pv-pvc.yaml -
Verifique se o PVC está vinculado ao PV.
kubectl get pvc cpfs-testA saída retornada será semelhante a esta:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE cpfs-test Bound cpfs-test 10Ti RWX <unset> <unset> 10s
Console
Faça login no console do ACS.
Na página Clusters, clique no nome do cluster para acessar a página de gerenciamento do cluster.
No painel de navegação à esquerda da página de gerenciamento do cluster, escolha Volumes > Persistent Volume Claims.
Na página Persistent Volume Claims, clique em Create.
-
Na caixa de diálogo exibida, configure os parâmetros e clique em Create.
A tabela a seguir descreve os parâmetros para criar um PV juntamente com um PVC. Alternativamente, crie primeiro o PV e depois o PVC.
NotaAtualmente, o console não suporta a montagem do CPFS for Lingjun para aplicações de CPU por meio de um destino de montagem VPC.
Parâmetro
Descrição
Exemplo
PVC Type
Selecione CPFS.
CPFS
Name
Nome do PVC. Insira um nome personalizado. Para requisitos de formato, consulte as dicas na página.
cpfs-test
Allocation Mode
Selecione Existing Volumes ou Create PV conforme sua necessidade.
Create PV
CPFS Type
Escolha ou conforme sua necessidade. Selecione CPFS for LINGJUN.
CPFS for LINGJUN
Access Mode
Tanto ReadWriteMany quanto ReadWriteOnce são compatíveis.
ReadWriteMany
Mount Target Domain Name:
Se utilizar o CPFS de uso geral, especifique o diretório do sistema de arquivos CPFS que deseja montar. Caso insira apenas o endereço de montagem, como
cpfs--.cn-wulanchabu.cpfs.aliyuncs.com, o diretório raiz (/) do sistema de arquivos CPFS será montado. Se inserir o endereço de montagem e um subdiretório, comocpfs--.cn-wulanchabu.cpfs.aliyuncs.com:/dir, o diretório/dirdo sistema de arquivos CPFS será montado. Caso o diretório/dirnão exista, ele será criado automaticamente.cpfs--.cn-wulanchabu.cpfs.aliyuncs.com -
Visualize o PVC e o PV criados.
Nas páginas File System ID: e Persistent Volume Claims, o novo PVC e PV aparecerão. Verifique se estão vinculados.
Etapa 2: Criar uma aplicação e montar o CPFS
kubectl
-
Salve o conteúdo yaml a seguir em um arquivo chamado
cpfs-test.yaml.Aplicação gpu
O exemplo yaml a seguir cria um Deployment contendo dois pods. Ambos os pods usam o rótulo
alibabacloud.com/compute-class: gpupara declarar a necessidade de poder de computação gpu, solicitam recursos de armazenamento por meio do PVC chamadocpfs-teste montam o volume no caminho/data.NotaPara os modelos específicos de gpu, consulte Specify GPU models and driver versions for ACS GPU-accelerated pods.
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 # Specifies the GPU compute class alibabacloud.com/compute-class: gpu # Specifies the GPU model. Set this value based on your actual model, such as 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-testAplicação CPU
O exemplo yaml a seguir cria um Deployment contendo dois pods. Os pods solicitam recursos de armazenamento através do PVC chamado
cpfs-teste montam o volume 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 -
Crie o Deployment e monte o CPFS.
kubectl create -f cpfs-test.yaml -
Verifique o status dos pods no Deployment.
kubectl get pod | grep cpfs-testA saída retornada será semelhante a esta. Dois pods foram criados.
cpfs-test-****-***a 1/1 Running 0 45s cpfs-test-****-***b 1/1 Running 0 45s -
Visualize o caminho de montagem.
O comando abaixo serve como exemplo. Ele lista o conteúdo do diretório de montagem do sistema de arquivos CPFS. Em um novo sistema de arquivos, o diretório está vazio por padrão, portanto nenhuma saída será retornada.
kubectl exec cpfs-test-****-***a -- ls /data
Console
No painel de navegação à esquerda da página de gerenciamento do cluster, escolha Persistent Volumes > Workloads.
Na página Deployments, clique em Deployments.
-
Configure os parâmetros do Deployment e clique em Create from Image.
As tabelas a seguir descrevem os parâmetros que exigem atenção. Utilize os valores padrão para os demais parâmetros. Para mais informações, consulte Create a stateless workload Deployment.
Aplicação gpu
Página de configuração
Parâmetro
Descrição
Exemplo
Create
Basic Information
Nome do Deployment. Insira um nome personalizado. Para requisitos de formato, consulte as dicas na página.
cpfs-test
Application Name
Número de réplicas do Deployment.
2
Replicas:
Selecione a classe de computação dos pods.
NotaPara os modelos específicos de gpu, consulte Specify GPU models and driver versions for ACS GPU-accelerated pods.
gpu, T4
Instance Type
Container
Insira o endereço da imagem usada para implantar a aplicação.
registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
Image Name
Defina os recursos necessários de gpu, vCPU e memória.
gpu: 1. CPU: 2 vCPUs. Memória: 2 GiB.
Required Resources
Clique em Volume e configure os parâmetros. Add PVC: selecione o PVC criado. Mount Source: insira o caminho do contêiner onde deseja montar o sistema de arquivos CPFS.
Container Path: pvc-cpfs. Mount Source: /data
Aplicação CPU
Página de configuração
Parâmetro
Descrição
Exemplo
Container Path
Basic Information
Nome do Deployment. Insira um nome personalizado. Para requisitos de formato, consulte as dicas na página.
cpfs-test
Application Name
Número de réplicas do Deployment.
2
Replicas:
Selecione a classe de computação dos pods.
CPU, uso geral
Instance Type
Container
Insira o endereço da imagem usada para implantar a aplicação.
registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
Image Name
Defina os recursos necessários de vCPU e memória.
CPU: 0,25 vCPUs. Memória: 0,5 GiB.
Required Resources
Clique em Volume e configure os parâmetros. Add PVC: selecione o PVC criado. Mount Source: insira o caminho do contêiner onde deseja montar o sistema de arquivos CPFS.
Container Path: pvc-cpfs. Mount Source: /data
-
Verifique o status da aplicação.
Na página Container Path, clique no nome da aplicação.
Na aba Deployments, confirme se os pods estão em execução. O status deve ser Running.
Verificar o armazenamento compartilhado e persistente do CPFS
O Deployment criado no exemplo anterior contém dois pods que montam o mesmo sistema de arquivos CPFS. Valide as capacidades de armazenamento das seguintes formas:
Crie um arquivo em um pod e visualize-o no outro pod para confirmar o armazenamento compartilhado.
Reinicie o Deployment e verifique se os dados do sistema de arquivos ainda existem nos novos pods para validar o armazenamento persistente.
-
Visualize as informações dos pods.
kubectl get pod | grep cpfs-testA saída retornada será semelhante a esta:
cpfs-test-****-***a 1/1 Running 0 45s cpfs-test-****-***b 1/1 Running 0 45s Valide o armazenamento compartilhado.
-
Crie um arquivo em um dos pods.
O exemplo abaixo utiliza o pod chamado
cpfs-test-****-***a:kubectl exec cpfs-test-****-***a -- touch /data/test.txt -
Visualize o arquivo no outro pod.
O exemplo abaixo utiliza o pod chamado
cpfs-test-****-***b:kubectl exec cpfs-test-****-***b -- ls /dataA saída retornada será semelhante a esta. O novo arquivo
test.txtfoi compartilhado.test.txt Valide o armazenamento persistente.
-
Reinicie o Deployment para recriar seus pods.
kubectl rollout restart deploy cpfs-test -
Visualize os pods e aguarde até que os novos pods sejam criados.
kubectl get pod | grep cpfs-testA saída retornada será semelhante a esta:
cpfs-test-****-***c 1/1 Running 0 78s cpfs-test-****-***d 1/1 Running 0 52s -
Verifique se os dados do sistema de arquivos ainda existem no novo pod.
O exemplo abaixo utiliza o pod chamado
cpfs-test-****-***c:kubectl exec cpfs-test-****-***c -- ls /dataA saída retornada será semelhante a esta. Os dados no sistema de arquivos CPFS permanecem intactos e disponíveis no diretório de montagem do novo pod.
test.txt