

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á.

# Criação de um cluster com um Lustre habilitado para EFA FSx
<a name="tutorial-efa-enabled-fsx-lustre"></a>

Neste tutorial, você criará um cluster que usa um sistema de arquivos FSx Lustre habilitado para EFA como armazenamento compartilhado. Usar um sistema de arquivos FSx Lustre com o EFA ativado pode aumentar o desempenho em até 8 vezes. Para verificar se um sistema de arquivos habilitado para EFA é o que você precisa, consulte [Trabalhando com sistemas de arquivos habilitados *FSx para* EFA](https://docs.aws.amazon.com/fsx/latest/LustreGuide/efa-file-systems.html) no Guia do usuário do 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](aws-services-v3.md).

## Requisitos
<a name="tutorial-efa-enabled-fsx-lustre-requirements"></a>
+ A AWS CLI está [instalada e](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) configurada.
+ A ParallelCluster CLI está [instalada e](install-v3-parallelcluster.md) configurada.
+ Um [par de chaves do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) para fazer login no cluster.
+ Uma função do IAM com as [permissões](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) necessárias para executar a ParallelCluster CLI.

## Criar security groups
<a name="tutorial-efa-enabled-fsx-lustre-security-groups"></a>

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-id vpc-cluster \
    --region region

# 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-id vpc-cluster \
    --region region
```

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 tráfego de saída para o sistema de arquivos, conforme [exigido pelo EFA](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa-start.html#efa-start-security).

```
# Allow all outbound traffic from the client to the file system
aws ec2 authorize-security-group-egress \
 --group-id sg-client \ 
 --protocol -1 \
 --port -1 \
 --source-group sg-file-system \
 --region region
```

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](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa-start.html#efa-start-security). 

```
# Allow all inbound traffic within this security group
aws ec2 authorize-security-group-ingress \
    --group-id sg-file-system \
    --protocol -1 \
    --port -1 \
    --source-group sg-file-system \
    --region region

# Allow all outbound traffic within this security group
aws ec2 authorize-security-group-egress \
    --group-id sg-file-system \
    --protocol -1 \
    --port -1 \
    --source-group sg-file-system \
    --region region

# Allow all inbound traffic from the client
aws ec2 authorize-security-group-ingress \
    --group-id sg-file-system \
    --protocol -1 \
    --port -1 \
    --source-group sg-client \
    --region region

# Allow all outbound traffic to the client
aws ec2 authorize-security-group-egress \
    --group-id sg-file-system \
    --protocol -1 \
    --port -1 \
    --source-group sg-client \
    --region region
```

## Crie o sistema de arquivos
<a name="tutorial-efa-enabled-fsx-lustre-create-filesystem"></a>

Crie o sistema de arquivos na mesma Zona de Disponibilidade (AZ) em que estarão os nós de computação e `subnet-compute-nodes` 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.

```
aws fsx create-file-system \
    --file-system-type LUSTRE \
    --storage-capacity 38400 \
    --storage-type SSD \
    --subnet-ids subnet-compute-nodes \
    --security-group-ids sg-file-system \
    --lustre-configuration DeploymentType=PERSISTENT_2,PerUnitStorageThroughput=125,EfaEnabled=true,MetadataConfiguration={Mode=AUTOMATIC} \
    --region region
```

Anote o ID do sistema de arquivos retornado pelo comando anterior. No restante do tutorial, `fs-id` substitua por esse ID do sistema de arquivos.

## Criar um cluster
<a name="tutorial-efa-enabled-fsx-lustre-create-cluster"></a>

1. Crie o cluster com as seguintes configurações definidas no arquivo de configuração AWS ParallelCluster YAML:

   1. AMI baseada em um sistema operacional compatível, como o Ubuntu 22.04.

   1. Os nós de computação devem usar um [tipo de instância compatível com EFA com](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html#efa-instance-types) [Nitro v4\$1](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html), 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 [Efa/Enabled definido como verdadeiro](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-Efa-Enabled).
      + Os nós de computação devem executar o script de configuração `configure-efa-fsx-lustre-client.sh` como uma ação [OnNodeStart](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-CustomActions-OnNodeStart)personalizada. O script, fornecido na [documentação FSx oficial](https://docs.aws.amazon.com/fsx/latest/LustreGuide/configure-efa-clients.html) e oferecido em nosso bucket público para sua conveniência, tem como objetivo configurar o cliente FSx Lustre em nós de computação para permitir que eles usem o EFA.

1. Crie um arquivo de configuração de cluster`config.yaml`:

   ```
   Region: region
   Image:
     Os: ubuntu2204
   HeadNode:
     InstanceType: c5.xlarge
     Networking:
       SubnetId: subnet-xxxxxxxxxx
       AdditionalSecurityGroups:
           - sg-client
     Ssh:
       KeyName: my-ssh-key
   Scheduling:
     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-client
           PlacementGroup:
             Enabled: false
         CustomActions:
           OnNodeStart:
             Script: https://us-east-1-aws-parallelcluster.s3.us-east-1.amazonaws.com/scripts/fsx-lustre-efa/configure-efa-fsx-lustre-client.sh
   SharedStorage:
     - MountDir: /fsx
       Name: my-fsxlustre-efa-external
       StorageType: FsxLustre
       FsxLustreSettings:
         FileSystemId: fs-id
   ```

   Em seguida, crie um cluster usando essa configuração:

   ```
   pcluster create-cluster \
       --cluster-name fsx-efa-tutorial \
       --cluster-configuration config.yaml \
       --region region
   ```

## Validar FSx com o EFA está funcionando
<a name="tutorial-efa-enabled-fsx-lustre-validate"></a>

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.