Come faccio a montare un file system Amazon FSx per Lustre esistente su Batch AWS in un ambiente di calcolo gestito?
Desidero montare un file system Amazon FSx per Lustre esistente su Batch AWS in un ambiente di calcolo gestito.
Breve descrizione
Usa un modello di avvio di Amazon Elastic Compute Cloud (Amazon EC2) con Batch AWS. Questa configurazione monta un file system Amazon FSx per Lustre esistente nei tuoi container senza la creazione di una Amazon Machine Image (AMI) personalizzata.
**Importante:**quando crei il file system, utilizza lo stesso Amazon Virtual Private Cloud (Amazon VPC) e le stesse sottoreti assegnati al tuo ambiente di calcolo.
Risoluzione
Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), consulta la sezione Troubleshoot AWS CLI errors. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Per montare un file system Amazon FSx per Lustre esistente su Batch AWS in un ambiente di calcolo gestito, completa i passaggi seguenti:
-
Crea un file system Amazon FSx per Lustre. Scegli un tipo di implementazione del file system persistente o scratch.
Nota: utilizza file system persistenti per archiviazione e carichi di lavoro a lungo termine. Utilizza file system scratch per l'archiviazione temporanea e l'elaborazione di dati a breve termine. -
Copia l'ID del tuo file system (ad esempio, fs-0123456789abcdef0). È necessario l'ID del file system per eseguire il modello di avvio.
-
Crea un modello di avvio che includa una sezione di dati utente e utilizzi il formato di file MIME multipart. Per ulteriori informazioni, consulta Mime multi-part archive sul sito web Cloud-init.
Vedi l'esempio seguente di file MIME multipart di Amazon Linux 2. Sostituisci fs-0123456789abcdef0 con l'ID del tuo file system, us-east-1 con la tua regione AWS exxxxxxxx con gli otto caratteri del tuo nome di montaggio Amazon FSx: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==--
Nota: questo file MIME multipart di esempio configura la risorsa di calcolo per installare il pacchetto Lustre 2.10 dalla libreria Extras. Il file monta anche un file system Amazon FSx per Lustre esistente su /scratch. Per le istruzioni di installazione per altre distribuzioni Linux, consulta Installing the Lustre client.
-
Avvia il modello per invocare i dati dell'utente, come mostrato nell'esempio di Amazon Linux 2 seguente:
{ "LaunchTemplateName": "user-data", "LaunchTemplateData": { "UserData": "TUlNRS1W...<base64 encoded userdata>..." } }
Nota: se aggiungi dati utente a un modello di avvio nella console Amazon EC2, assicurati di eseguire una delle operazioni seguenti: incollare i dati utente come testo normale o caricare i dati utente da un file. Se utilizzi AWS CLI o un AWS SDK, devi prima codificare in base64 i dati utente. Per ulteriori informazioni, consulta Encode to Base64 format sul sito web base64encode. Quindi invia la stringa come valore del parametro UserData quando chiami CreateLaunchTemplate.
-
Crea un file denominato mount-fsx-lustre.json.
Nota: regola la dimensione del volume in base al tuo caso d'uso. -
Esegui il comando AWS CLI create-launch-template per creare un modello di avvio basato sul file mount-fsx-lustre.json che hai creato nel passaggio 5. Sostituisci us-east-1 con la tua regione:
aws ec2 --region us-east-1 create-launch-template --cli-input-json file://mount-fsx-lustre.json
Esempio di output:
{ "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 } }
-
Crea un nuovo ambiente di calcolo e associalo al tuo modello di avvio. Quando Batch AWS crea le istanze, il file system Amazon FSx per Lustre viene ora montato sulle istanze di container.
Importante: per impostazione predefinita, gli ambienti di calcolo gestiti da Batch AWS utilizzano una versione approvata dell'AMI ottimizzata per Amazon Elastic Container Service (Amazon ECS) per le risorse di calcolo. Devi impostare in modo esplicito l'ID AMI per le AMI Amazon Linux 2 ottimizzate per Amazon ECS e altre distribuzioni Linux. -
Per verificare se il file system è montato con l'istanza di container, usa SSH per connetterti all'istanza avviata da Batch AWS. Quindi esegui il comando Linux df seguente:
$ df -h
Esempio di output:
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
Nota: /scratch viene montato automaticamente.
-
In AWS Batch Crea una definizione del processo che includa il volume e il punto di montaggio:
{ "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": [] } }
-
Per inviare un processo AWS Batch, utilizza la definizione del processo che hai creato nel passaggio 9.
Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 7 mesi fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata un anno fa