

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Einen Cluster mit einem EFA-enabled FSx Lustre erstellen
<a name="tutorial-efa-enabled-fsx-lustre"></a>

In diesem Tutorial erstellen Sie einen Cluster, der ein EFA-enabled FSx Lustre-Dateisystem als gemeinsam genutzten Speicher verwendet. Die Verwendung eines FSx Lustre-Dateisystems mit aktiviertem EFA kann die Leistung um das bis zu 8-fache steigern. Um zu überprüfen, ob Sie ein EFA-enabled Dateisystem benötigen, schauen Sie sich den Abschnitt [Arbeiten mit EFA-enabled Dateisystemen](https://docs.aws.amazon.com/fsx/latest/LustreGuide/efa-file-systems.html) im *FSx for Lustre-Benutzerhandbuch an*.

Bei der Nutzung AWS ParallelCluster zahlen Sie nur für die AWS Ressourcen, die beim Erstellen oder Aktualisieren von AWS ParallelCluster Images und Clustern entstehen. Weitere Informationen finden Sie unter [AWS Dienste verwendet von AWS ParallelCluster](aws-services-v3.md).

## Voraussetzungen
<a name="tutorial-efa-enabled-fsx-lustre-requirements"></a>
+ Die AWS CLI ist [installiert und konfiguriert](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).
+ Die ParallelCluster CLI ist [installiert und konfiguriert](install-v3-parallelcluster.md).
+ Ein [Amazon EC2 EC2-Schlüsselpaar](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) für die Anmeldung beim Cluster.
+ Eine IAM-Rolle mit den [Berechtigungen, die für](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) die Ausführung der ParallelCluster CLI erforderlich sind.

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

Erstellen Sie zwei Sicherheitsgruppen in derselben VPC, in der der Cluster und das Dateisystem bereitgestellt werden: eine für den Client, der auf Clusterknoten ausgeführt wird, und eine für das Dateisystem.

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

Im weiteren Verlauf des Tutorials gehen `sg-client` wir von den Sicherheitsgruppen-IDs des Clients bzw. des Dateisystems aus. `sg-file-system`

Konfigurieren Sie die Sicherheitsgruppe für den Client so, dass der gesamte inbound/outbound Datenverkehr zum und vom Dateisystem zugelassen wird, wie [von EFA gefordert](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa-start.html#efa-start-security).

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

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

Konfigurieren Sie die Sicherheitsgruppe für das Dateisystem so, dass der gesamte inbound/outbound Datenverkehr innerhalb des Dateisystems und der gesamte eingehende Datenverkehr vom Client zugelassen werden, wie [von EFA gefordert](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}}
```

## Erstellen Sie das Dateisystem
<a name="tutorial-efa-enabled-fsx-lustre-create-filesystem"></a>

Erstellen Sie das Dateisystem in derselben Availability Zone (AZ), in der sich die Rechenknoten befinden werden, und `{{subnet-compute-nodes}}` ersetzen Sie es im folgenden Code durch seine ID. Dies ist erforderlich, damit EFA mit Ihrem Dateisystem arbeiten kann. Beachten Sie, dass wir EFA im Rahmen der Erstellung des Dateisystems mithilfe der EfaEnable Eigenschaft aktivieren.

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

Notieren Sie sich die Dateisystem-ID, die vom vorherigen Befehl zurückgegeben wurde. Ersetzen Sie diese Datei im Rest des Tutorials `{{fs-id}}` durch diese Dateisystem-ID.

## Den Cluster erstellen
<a name="tutorial-efa-enabled-fsx-lustre-create-cluster"></a>

1. Erstellen Sie den Cluster mit den folgenden Konfigurationen, die in der AWS ParallelCluster YAML-Konfigurationsdatei festgelegt sind:

   1. AMI basiert auf einem unterstützten Betriebssystem wie Ubuntu 22.04.

   1. Rechenknoten müssen einen von [EFA unterstützten Instance-Typ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html#efa-instance-types) mit [Nitro v4\+](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html) verwenden, z. B. g6.16xlarge.
      + Rechenknoten müssen sich in derselben AZ befinden, in der sich das Dateisystem befindet.
      + Rechenknoten müssen auf true [Efa/Enabled](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-Efa-Enabled)gesetzt sein.
      + Rechenknoten müssen den FSx Lustre-Client für die Verwendung von EFA konfigurieren, indem sie den [Abschnitt Konfiguration von EFA-Clients](https://docs.aws.amazon.com/fsx/latest/LustreGuide/configure-efa-clients.html) im *FSx* for Lustre-Benutzerhandbuch befolgen. Dieses Handbuch enthält das `configure-efa-fsx-lustre-client` Paket, das Sie herunterladen, extrahieren und mit dem Sie es ausführen können. `setup.sh` Um es automatisch auf jeden Rechenknoten anzuwenden, führen Sie diese Schritte von einer [OnNodeStart](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-CustomActions-OnNodeStart)benutzerdefinierten Aktion aus, wie unten gezeigt.
      + Erstellen Sie die Datei `configure-efa-fsx-lustre-client-wrapper.sh` und laden Sie sie beispielsweise in einen Bucket hoch`your-bucket`, der von den Rechenknoten aus erreichbar ist. Folgt man den Schritten in der FSx-Dokumentation, auf die oben verwiesen wurde, führt der Wrapper das Äquivalent von:

        ```
        #!/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 cp {{s3://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
        ```

1. Erstellen Sie eine Cluster-Konfigurationsdatei: `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
         Iam:
           S3Access:
             - BucketName: {{your-bucket}}
         CustomActions:
           OnNodeStart:
             # Point this at the wrapper script you created and hosted (see step above).
             Script: {{s3://your-bucket/configure-efa-fsx-lustre-client-wrapper.sh}}
   SharedStorage:
     - MountDir: /fsx
       Name: my-fsxlustre-efa-external
       StorageType: FsxLustre
       FsxLustreSettings:
         FileSystemId: {{fs-id}}
   ```

   Erstellen Sie dann einen Cluster mit dieser Konfiguration:

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

## Validieren Sie, dass FSx mit EFA funktioniert
<a name="tutorial-efa-enabled-fsx-lustre-validate"></a>

Um zu überprüfen, ob der Lustre-Netzwerkverkehr EFA verwendet, verwenden Sie das `lnetctl` Lustre-Tool, das den Netzwerkverkehr für eine bestimmte Netzwerkschnittstelle anzeigen kann. Führen Sie zu diesem Zweck die folgenden Befehle in einem Rechenknoten aus:

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

Wenn die Funktion funktioniert, wird die Anzahl der Pakete, die über die Schnittstelle fließen, voraussichtlich zunehmen.