As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Criando um cluster com um EFA-enabled FSx Lustre
Neste tutorial, você criará um cluster que usa um sistema de arquivos EFA-enabled FSx Lustre como armazenamento compartilhado. Usar um sistema de arquivos FSx Lustre com EFA ativado pode aumentar o desempenho em até 8 vezes. Para verificar se um sistema de EFA-enabled arquivos é o que você precisa, consulte Como trabalhar com sistemas de EFA-enabled arquivos no Guia do usuário do FSx for Lustre.
Ao usar AWS ParallelCluster, você paga apenas pelos AWS recursos criados ao criar ou atualizar AWS ParallelCluster imagens e clusters. Para obter mais informações, consulte AWS serviços usados por AWS ParallelCluster.
Requisitos
-
A AWS CLI está instalada e configurada.
-
A ParallelCluster CLI está instalada e configurada.
-
Um par de chaves do Amazon EC2 para fazer login no cluster.
-
Uma função do IAM com as permissões necessárias para executar a ParallelCluster CLI.
Criar security groups
Crie dois grupos de segurança na mesma VPC em que o cluster e o sistema de arquivos serão implantados: um para o cliente em execução nos nós do cluster e outro para o sistema de arquivos.
# Create security group for the FSx client aws ec2 create-security-group \ --group-name Fsx-Client-SecurityGroup \ --description "Allow traffic for the FSx Lustre client" \ --vpc-idvpc-cluster\ --regionregion# Create security group for the FSx file system aws ec2 create-security-group \ --group-name Fsx-FileSystem-SecurityGroup \ --description "Allow traffic for the FSx Lustre File System" \ --vpc-idvpc-cluster\ --regionregion
No restante do tutorial, assumiremos sg-client e sg-file-system somos os IDs do grupo de segurança do cliente e do sistema de arquivos, respectivamente.
Configure o grupo de segurança do cliente para permitir todo o inbound/outbound tráfego de e para o sistema de arquivos, conforme exigido pelo EFA.
# Allow all inbound traffic from the file system to the client aws ec2 authorize-security-group-ingress \ --group-idsg-client\ --protocol -1 \ --port -1 \ --source-groupsg-file-system\ --regionregion# Allow all outbound traffic from the client to the file system aws ec2 authorize-security-group-egress \ --group-idsg-client\ --protocol -1 \ --port -1 \ --source-groupsg-file-system\ --regionregion
Configure o grupo de segurança do sistema de arquivos para permitir todo o inbound/outbound tráfego interno e todo o tráfego de entrada do cliente, conforme exigido pelo EFA.
# Allow all inbound traffic within this security group aws ec2 authorize-security-group-ingress \ --group-idsg-file-system\ --protocol -1 \ --port -1 \ --source-groupsg-file-system\ --regionregion# Allow all outbound traffic within this security group aws ec2 authorize-security-group-egress \ --group-idsg-file-system\ --protocol -1 \ --port -1 \ --source-groupsg-file-system\ --regionregion# Allow all inbound traffic from the client aws ec2 authorize-security-group-ingress \ --group-idsg-file-system\ --protocol -1 \ --port -1 \ --source-groupsg-client\ --regionregion# Allow all outbound traffic to the client aws ec2 authorize-security-group-egress \ --group-idsg-file-system\ --protocol -1 \ --port -1 \ --source-groupsg-client\ --regionregion
Crie o sistema de arquivos
Crie o sistema de arquivos na mesma Zona de Disponibilidade (AZ) em que estarão os nós de computação e substitua por sua ID no código a seguir. Isso é necessário para permitir que o EFA trabalhe com seu sistema de arquivos. Observe que, como parte da criação do sistema de arquivos, habilitamos o EFA usando a EfaEnable propriedade.subnet-compute-nodes
aws fsx create-file-system \ --file-system-type LUSTRE \ --storage-capacity 38400 \ --storage-type SSD \ --subnet-idssubnet-compute-nodes\ --security-group-idssg-file-system\ --lustre-configuration DeploymentType=PERSISTENT_2,PerUnitStorageThroughput=125,EfaEnabled=true,MetadataConfiguration={Mode=AUTOMATIC} \ --regionregion
Anote o ID do sistema de arquivos retornado pelo comando anterior. No restante do tutorial, substitua por esse ID do sistema de arquivos.fs-id
Criar um cluster.
-
Crie o cluster com as seguintes configurações definidas no arquivo de configuração AWS ParallelCluster YAML:
-
AMI baseada em um sistema operacional compatível, como o Ubuntu 22.04.
-
Os nós de computação devem usar um tipo de instância compatível com EFA com Nitro v4+, como g6.16xlarge.
-
Os nós de computação devem estar na mesma AZ em que está o sistema de arquivos.
-
Os nós de computação devem ter sido Efa/Enableddefinidos como verdadeiros.
-
Os nós de computação devem configurar o cliente FSx Lustre para usar o EFA seguindo Como configurar clientes EFA no Guia do usuário do FSx for Lustre. Esse guia fornece o
configure-efa-fsx-lustre-clientpacote, que você baixa, extrai e executasetup.sh. Para aplicá-la automaticamente em cada nó de computação, execute essas etapas a partir de uma ação OnNodeStartpersonalizada, conforme mostrado abaixo. -
Crie o arquivo
configure-efa-fsx-lustre-client-wrapper.she faça o upload para um bucket, por exemployour-bucket, que possa ser acessado a partir dos nós de computação. Seguindo as etapas na documentação do FSx mencionada acima, o wrapper executa o equivalente a:#!/bin/bash set -euo pipefail # Download the FSx Lustre EFA client configuration package. # See: https://docs.aws.amazon.com/fsx/latest/LustreGuide/configure-efa-clients.html # Replace the source below with a location reachable from your compute nodes # (for example, your own S3 bucket populated from the FSx documentation package). cd /tmp aws s3 cps3://your-bucket/configure-efa-fsx-lustre-client.zip. unzip -o configure-efa-fsx-lustre-client.zip cd configure-efa-fsx-lustre-client # Configure the FSx Lustre client to use EFA. ./setup.sh
-
-
-
Crie um arquivo de configuração de cluster
config.yaml:Region:regionImage: Os: ubuntu2204 HeadNode: InstanceType: c5.xlarge Networking: SubnetId:subnet-xxxxxxxxxxAdditionalSecurityGroups: -sg-clientSsh: KeyName:my-ssh-keyScheduling: Scheduler: slurm SlurmQueues: - Name: q1 ComputeResources: - Name: cr1 Instances: - InstanceType: g6.16xlarge MinCount: 1 MaxCount: 3 Efa: Enabled: true Networking: SubnetIds: -subnet-xxxxxxxxxx# Subnet in the same AZ where the file system is AdditionalSecurityGroups: -sg-clientPlacementGroup: Enabled: false Iam: S3Access: - BucketName:your-bucketCustomActions: OnNodeStart: # Point this at the wrapper script you created and hosted (see step above). Script:s3://your-bucket/configure-efa-fsx-lustre-client-wrapper.shSharedStorage: - MountDir: /fsx Name: my-fsxlustre-efa-external StorageType: FsxLustre FsxLustreSettings: FileSystemId:fs-idEm seguida, crie um cluster usando essa configuração:
pcluster create-cluster \ --cluster-name fsx-efa-tutorial \ --cluster-configuration config.yaml \ --regionregion
Validar FSx com EFA está funcionando
Para verificar se o tráfego de rede do Lustre está usando o EFA, use a lnetctl ferramenta Lustre que pode mostrar o tráfego de rede de uma determinada interface de rede. Para isso, execute os seguintes comandos em um nó de computação:
# Take note of the number of packets flowing through the interface, # which are specified in statistics:send_count and statistics:recv_count sudo lnetctl net show --net efa -v # Generate traffic to the file system echo 'Hello World' > /fsx/hello-world.txt # Take note of the number of packets flowing through the interface, # which are specified in statistics:send_count and statistics:recv_count sudo lnetctl net show --net efa -v
Se o recurso estiver funcionando, espera-se que o número de pacotes que fluem pela interface aumente.