

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Création d'un cluster avec un Lustre compatible EFA FSx
<a name="tutorial-efa-enabled-fsx-lustre"></a>

Dans ce didacticiel, vous allez créer un cluster qui utilise un système de fichiers FSx Lustre compatible EFA comme stockage partagé. L'utilisation d'un système de fichiers FSx Lustre avec EFA activé peut augmenter les performances jusqu'à 8 fois. *Pour vérifier si vous avez besoin d'un système de fichiers compatible EFA, consultez la section [Travailler avec des systèmes de fichiers compatibles EFA dans le guide](https://docs.aws.amazon.com/fsx/latest/LustreGuide/efa-file-systems.html) de l'utilisateur de for Lustre. FSx *

Lorsque vous les utilisez AWS ParallelCluster, vous ne payez que pour les AWS ressources créées lorsque vous créez ou mettez à jour AWS ParallelCluster des images et des clusters. Pour de plus amples informations, veuillez consulter [AWS services utilisés par AWS ParallelCluster](aws-services-v3.md).

## Prérequis
<a name="tutorial-efa-enabled-fsx-lustre-requirements"></a>
+ La AWS CLI est [installée et configurée](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).
+ La ParallelCluster CLI est [installée et configurée](install-v3-parallelcluster.md).
+ Une [paire de clés Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) pour se connecter au cluster.
+ Un rôle IAM doté des [autorisations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) requises pour exécuter la ParallelCluster CLI.

## Créer des groupes de sécurité
<a name="tutorial-efa-enabled-fsx-lustre-security-groups"></a>

Créez deux groupes de sécurité dans le même VPC où le cluster et le système de fichiers seront déployés : un pour le client exécuté sur les nœuds du cluster et un pour le système de fichiers.

```
# 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
```

Dans le reste du didacticiel, nous supposerons `sg-client` et `sg-file-system` sommes les identifiants des groupes de sécurité du client et du système de fichiers, respectivement.

Configurez le groupe de sécurité pour le client afin d'autoriser tout le trafic sortant vers le système de fichiers, comme l'[exige 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
```

Configurez le groupe de sécurité du système de fichiers afin d'autoriser tout le inbound/outbound trafic interne et tout le trafic entrant en provenance du client, comme l'[exige 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
```

## Création du système de fichiers
<a name="tutorial-efa-enabled-fsx-lustre-create-filesystem"></a>

Créez le système de fichiers dans la même zone de disponibilité (AZ) où se trouveront les nœuds de calcul ; et remplacez-le `subnet-compute-nodes` par son ID dans le code suivant. Cela est nécessaire pour permettre à EFA de fonctionner avec votre système de fichiers. Notez que, dans le cadre de la création du système de fichiers, nous activons EFA à l'aide de cette EfaEnable propriété.

```
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
```

Prenez note de l'identifiant du système de fichiers renvoyé par la commande précédente. Dans le reste du didacticiel, remplacez-le `fs-id` par cet identifiant de système de fichiers.

## Créer le cluster
<a name="tutorial-efa-enabled-fsx-lustre-create-cluster"></a>

1. Créez le cluster avec les configurations suivantes définies dans le fichier de configuration AWS ParallelCluster YAML :

   1. AMI basée sur un système d'exploitation compatible, tel qu'Ubuntu 22.04.

   1. Les nœuds de calcul doivent utiliser un [type d'instance compatible EFA](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html#efa-instance-types) doté de [Nitro v4\$1](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html), tel que g6.16xlarge.
      + Les nœuds de calcul doivent se trouver dans la même zone AZ que le système de fichiers.
      + Les nœuds de calcul doivent avoir [Efa/Enabled défini sur true](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-Efa-Enabled).
      + Les nœuds de calcul doivent exécuter le script de configuration `configure-efa-fsx-lustre-client.sh` en tant qu'action [OnNodeStart](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-CustomActions-OnNodeStart)personnalisée. Le script, fourni dans la [documentation FSx officielle](https://docs.aws.amazon.com/fsx/latest/LustreGuide/configure-efa-clients.html) et proposé dans notre bucket public pour votre commodité, est destiné à configurer le client FSx Lustre sur les nœuds de calcul pour leur permettre d'utiliser EFA.

1. Créez un fichier de configuration 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
   ```

   Créez ensuite un cluster à l'aide de cette configuration :

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

## Valider FSx avec EFA fonctionne
<a name="tutorial-efa-enabled-fsx-lustre-validate"></a>

Pour vérifier que le trafic réseau Lustre utilise EFA, utilisez l'`lnetctl`outil Lustre qui peut afficher le trafic réseau pour une interface réseau donnée. Pour ce faire, exécutez les commandes suivantes dans un nœud de calcul :

```
# 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
```

Si la fonctionnalité fonctionne, le nombre de paquets passant par l'interface devrait augmenter.