Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
Wie stelle ich ein vorhandenes Amazon FSx für Lustre-Dateisystem in AWS Batch in einer verwalteten Rechenumgebung bereit?
Ich möchte ein vorhandenes Amazon FSx für Lustre-Dateisystem in AWS Batch in einer verwalteten Rechenumgebung bereitstellen.
Kurzbeschreibung
Verwenden Sie eine Amazon Elastic Compute Cloud (Amazon EC2)-Startvorlage mit AWS Batch. Diese Konfiguration mountet ein vorhandenes Amazon FSx für Lustre-Dateisystem in Ihre Container, ohne dass ein benutzerdefiniertes Amazon Machine Image (AMI) erstellt werden muss.
Wichtig: Verwenden Sie beim Erstellen des Dateisystems dieselbe Amazon Virtual Private Cloud (Amazon VPC) und dieselben Subnetze, die Ihrer Rechenumgebung zugewiesen sind.
Lösung
**Anmerkung:**Wenn bei der Ausführung von AWS Command Line Interface (AWS CLI)-Befehlen Fehler auftreten, finden Sie weitere Informationen unter Troubleshoot AWS CLI errors. Stellen Sie außerdem sicher, dass Sie die neueste Version von AWS CLI verwenden.
Gehen Sie wie folgt vor, um ein vorhandenes Amazon FSx für Lustre-Dateisystem in AWS Batch in einer verwalteten Rechenumgebung zu mounten:
-
Erstellen Sie ein Amazon FSx für Lustre-Dateisystem. Wählen Sie anschließend als Bereitstellungstyp ein persistentes oder ein Scratch-Dateisystem aus.
Hinweis: Verwenden Sie persistente Dateisysteme für längerfristige Speicherung und Workloads. Verwenden Sie Scratch-Dateisysteme für die temporäre Speicherung und kurzfristige Datenverarbeitung. -
Kopieren Sie die Dateisystem-ID (z. B. fs-0123456789abcdef0). Sie benötigen die Dateisystem-ID, um Ihre Startvorlage ausführen zu können.
-
Erstellen Sie eine Startvorlage, die einen Abschnitt mit Benutzerdaten enthält und das mehrteilige MIME-Dateiformat verwendet. Weitere Informationen finden Sie unter Mehrteiliges MIME-Archiv auf der Cloud-init-Website.
Sehen Sie sich das folgende Beispiel für eine mehrteilige Amazon Linux 2-MIME-Datei an. Ersetzen Sie fs-0123456789abcdef0 durch Ihre Dateisystem-ID, us-east-1 durch Ihre AWS-Region und xxxxxxxx durch Ihren achtstelligen Amazon FSx-Mount-Namen:Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" MIME-Version: 1.0 --==MYBOUNDARY== Content-Type: text/cloud-boothook; charset="us-ascii" file_system_id=fs-0123456789abcdef0 region=us-east-1 fsx_directory=/scratch fsx_mount_name=xxxxxxxx amazon-linux-extras install -y lustre2.10 mkdir -p ${fsx_directory} mount -t lustre -o noatime,flock ${file_system_id}.fsx.${region}.amazonaws.com@tcp:/${fsx_mount_name} ${fsx_directory} --==MYBOUNDARY==--
Hinweis: In dieser mehrteiligen MIME-Beispieldatei wird die Rechenressource so konfiguriert, dass sie das Lustre 2.10-Paket aus der Extras-Bibliothek installiert. Die Datei stellt zudem ein vorhandenes Amazon FSx für Lustre-Dateisystem unter /scratch bereit. Installationsanweisungen für andere Linux-Distributionen finden Sie unter Installation des Lustre-Clients.
-
Starten Sie die Vorlage, um die Benutzerdaten aufzurufen, wie im folgenden Amazon Linux 2-Beispiel gezeigt:
{ "LaunchTemplateName": "user-data", "LaunchTemplateData": { "UserData": "TUlNRS1W...<base64 encoded userdata>..." } }
Hinweis: Wenn Sie Benutzerdaten zu einer Startvorlage in der Amazon EC2-Konsole hinzufügen, stellen Sie sicher, dass Sie einen der folgenden Schritte ausführen: Fügen Sie die Benutzerdaten als Klartext ein oder laden Sie die Benutzerdaten aus einer Datei hoch. Bei Verwendung der AWS CLI oder eines AWS SDK müssen Sie zuerst die Benutzerdaten mit Base64 codieren. Weitere Informationen finden Sie unter In das Base64-Format kodieren auf der Base64encode-Website. Senden Sie diese Zeichenfolge dann als Wert des Parameters UserData, wenn Sie CreateLaunchTemplate aufrufen.
-
Erstellen Sie eine Datei mit dem Namen mount-fsx-lustre.json.
Hinweis: Passen Sie die Volumengröße an Ihren Anwendungsfall an. -
Führen Sie den AWS-CLI-Befehl create-launch-template aus, um eine Startvorlage zu erstellen, die auf der Datei mount-fsx-lustre.json basiert, die Sie in Schritt 5 erstellt haben. Ersetzen Sie us-east-1 durch Ihre Region:
aws ec2 --region us-east-1 create-launch-template --cli-input-json file://mount-fsx-lustre.json
Beispielausgabe:
{ "LaunchTemplate": { "LaunchTemplateId": "lt-08cb09d54bcf551f3", "LaunchTemplateName": "fsx-test", "CreateTime": "2020-06-30T17:13:22.000Z", "CreatedBy": "arn:aws:iam::12345678999:user/test", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }
-
Erstellen Sie eine neue Rechenumgebung und verknüpfen Sie diese Umgebung mit Ihrer Startvorlage. Wenn AWS Batch Instances hochfährt, ist das Amazon FSx für Lustre-Dateisystem nun auf den Container-Instances bereitgestellt.
Wichtig: Standardmäßig verwenden von AWS Batch verwaltete Rechenumgebungen eine genehmigte Version des für Amazon Elastic Container Service (Amazon ECS) optimierten AMI für Rechenressourcen. Sie müssen die AMI-ID für Amazon ECS-optimierte Amazon Linux 2-AMIs und andere Linux-Distributionen explizit festlegen. -
Um zu überprüfen, ob das Dateisystem mit der Container-Instance gemountet ist, verwenden Sie SSH, um eine Verbindung zu der von AWS Batch gestarteten Instance herzustellen. Führen Sie dann den folgenden Linux-df-Befehl aus:
$ df -h
Beispielausgabe:
Filesystem Size Used Avail Used% Mounted ondevtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 448K 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/xvda1 30G 4.2G 25G 15% / 172.31.79.79@tcp:/xxxxxxxx 1.1T 4.5M 1.1T 1% /scratch tmpfs 798M 0 798M 0% /run/user/1000
Hinweis: /scratch wird automatisch gemountet.
-
Erstellen Sie eine Auftragsdefinition in AWS Batch, die das Volume und den Mount-Punkt enthält:
{ "jobDefinitionName": "Fsx-sample", "jobDefinitionArn": "arn:aws:batch:us-east-1:12345678999:job-definition/userdata:1", "revision": 1, "status": "ACTIVE", "type": "container", "parameters": {}, "containerProperties": { "image": "busybox", "vcpus": 1, "memory": 1024, "command": [], "volumes": [ { "host": { "sourcePath": "/scratch" }, "name": "Scratch" } ], "environment": [], "mountPoints": [ { "containerPath": "/scratch", "sourceVolume": "Scratch" } ], "ulimits": [], "resourceRequirements": [] } }
-
Verwenden Sie die Auftragsdefinition, die Sie in Schritt 9 erstellt haben, um einen AWS Batch-Auftrag zu senden.

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 8 Monaten