

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Creazione di un cluster con un Lustre abilitato per EFA FSx
<a name="tutorial-efa-enabled-fsx-lustre"></a>

In questo tutorial, creerai un cluster che utilizza un file system FSx Lustre abilitato all'EFA come storage condiviso. L'utilizzo di un file system FSx Lustre con EFA abilitato può fornire un incremento delle prestazioni fino a 8 volte. *Per verificare se un file system compatibile [con EFA è ciò di cui hai bisogno, consulta la sezione Utilizzo dei file system abilitati per EFA nella Guida per l'utente di for Lustre](https://docs.aws.amazon.com/fsx/latest/LustreGuide/efa-file-systems.html). FSx *

Quando si utilizza AWS ParallelCluster, si pagano solo AWS le risorse create durante la creazione o l'aggiornamento di immagini e cluster. AWS ParallelCluster Per ulteriori informazioni, consulta [AWS servizi usati da AWS ParallelCluster](aws-services-v3.md).

## Requisiti
<a name="tutorial-efa-enabled-fsx-lustre-requirements"></a>
+ La AWS CLI è [installata e](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) configurata.
+ La ParallelCluster CLI è [installata e](install-v3-parallelcluster.md) configurata.
+ Una [coppia di chiavi Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) per accedere al cluster.
+ Un ruolo IAM con le [autorizzazioni](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) necessarie per eseguire la ParallelCluster CLI.

## Creazione di gruppi di sicurezza
<a name="tutorial-efa-enabled-fsx-lustre-security-groups"></a>

Crea due gruppi di sicurezza nello stesso VPC in cui verranno distribuiti il cluster e il file system: uno per il client in esecuzione sui nodi del cluster e uno per il file system.

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

Nel resto del tutorial, assumeremo `sg-client` e `sg-file-system` siano gli ID dei gruppi di sicurezza rispettivamente del client e del file system.

Configura il gruppo di sicurezza per il client per consentire tutto il traffico in uscita verso il file system, come [richiesto da](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa-start.html#efa-start-security) EFA.

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

Configura il gruppo di sicurezza per il file system per consentire tutto il inbound/outbound traffico interno e tutto il traffico in entrata dal client, come [richiesto](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa-start.html#efa-start-security) dall'EFA. 

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

## Crea il file system
<a name="tutorial-efa-enabled-fsx-lustre-create-filesystem"></a>

Crea il file system all'interno della stessa zona di disponibilità (AZ) in cui si troveranno i nodi di elaborazione e `subnet-compute-nodes` sostituiscilo con il relativo ID nel codice seguente. Ciò è necessario per consentire a EFA di funzionare con il file system. Nota che, come parte della creazione del file system, abilitiamo EFA utilizzando la EfaEnable proprietà.

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

Prendete nota dell'id del file system restituito dal comando precedente. Nel resto del tutorial, sostituiscilo `fs-id` con questo id del file system.

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

1. Crea il cluster con le seguenti configurazioni impostate nel file di configurazione AWS ParallelCluster YAML:

   1. AMI basata su un sistema operativo supportato, come Ubuntu 22.04.

   1. I nodi di calcolo devono utilizzare un [tipo di istanza supportato da EFA con [Nitro v4\$1](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html), ad esempio](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html#efa-instance-types) g6.16xlarge.
      + I nodi di calcolo devono trovarsi nella stessa AZ in cui si trova il file system.
      + I nodi di calcolo devono avere [Efa/Enabled](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-Efa-Enabled) impostato su true.
      + I nodi di calcolo devono eseguire lo script di configurazione `configure-efa-fsx-lustre-client.sh` come azione personalizzata. [OnNodeStart](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-CustomActions-OnNodeStart) Lo script, fornito nella [documentazione FSx ufficiale](https://docs.aws.amazon.com/fsx/latest/LustreGuide/configure-efa-clients.html) e offerto nel nostro bucket pubblico per comodità, ha lo scopo di configurare il client FSx Lustre sui nodi di calcolo per consentire loro di utilizzare EFA.

1. Crea un file di configurazione del 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
   ```

   Quindi crea un cluster utilizzando quella configurazione:

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

## La convalida FSx con EFA funziona
<a name="tutorial-efa-enabled-fsx-lustre-validate"></a>

Per verificare che il traffico di rete Lustre utilizzi EFA, utilizzate `lnetctl` lo strumento Lustre in grado di mostrare il traffico di rete per una determinata interfaccia di rete. A tal fine, esegui i seguenti comandi in un nodo di calcolo:

```
# 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 la funzionalità funziona, si prevede che il numero di pacchetti che fluiscono attraverso l'interfaccia aumenti.