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!
Comment puis-je monter un système de fichiers Amazon FSx for Lustre existant sur AWS Batch dans un environnement de calcul géré ?
Je souhaite monter un système de fichiers Amazon FSx for Lustre existant sur AWS Batch dans un environnement de calcul géré.
Brève description
Utilisez un modèle de lancement Amazon Elastic Compute Cloud (Amazon EC2) avec AWS Batch. Cette configuration permet de monter un système de fichiers Amazon FSx for Lustre existant sur vos conteneurs sans créer d'Amazon Machine Image (AMI) personnalisée.
Important : Lorsque vous créez le système de fichiers, utilisez le même Amazon Virtual Private Cloud (Amazon VPC) et les mêmes sous-réseaux que ceux attribués à votre environnement de calcul.
Résolution
Remarque : si des erreurs surviennent lorsque vous exécutez des commandes de l’interface de la ligne de commande AWS (AWS CLI), consultez la page Résoudre les erreurs liées à AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l’AWS CLI.
Pour monter un système de fichiers Amazon FSx for Lustre existant sur AWS Batch dans un environnement de calcul géré, procédez comme suit :
-
Créez un système de fichiers Amazon FSx for Lustre. Puis, choisissez ensuite un type de déploiement de système de fichiers persistants ou scratch.
Remarque : Utilisez des systèmes de fichiers persistants pour le stockage et les charges de travail à long terme. Utilisez des systèmes de fichiers scratch pour le stockage temporaire et le traitement des données à court terme. -
Copiez l'ID de votre système de fichiers (par exemple, fs-0123456789abcdef0). Vous devez disposer de l'ID du système de fichiers pour exécuter votre modèle de lancement.
-
Créez un modèle de lancement qui inclut une section de données utilisateur et utilise le format de fichier en plusieurs parties MIME. Pour plus d'informations, consultez la page Archive en plusieurs parties Mime sur le site Web de Cloud-init.
Consultez l'exemple de fichier en plusieurs parties Amazon Linux 2 MIME suivant. Remplacez fs-0123456789abcdef0 par l'ID de votre système de fichiers, us-east-1 par votre région AWS et xxxxxxxx par le nom à huit caractères de votre montage 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==--
Remarque : Cet exemple de fichier en plusieurs parties MIME configure la ressource de calcul pour installer le package Lustre 2.10 à partir de la bibliothèque Extras. Le fichier monte également un système de fichiers Amazon FSx for Lustre existant sur /scratch. Pour obtenir des instructions d'installation pour d'autres distributions Linux, consultez la section Installation du client Lustre.
-
Lancez le modèle pour invoquer les données utilisateur, comme illustré dans l'exemple Amazon Linux 2 suivant :
{ "LaunchTemplateName": "user-data", "LaunchTemplateData": { "UserData": "TUlNRS1W...<base64 encoded userdata>..." } }
Remarque : Si vous ajoutez des données utilisateur à un modèle de lancement dans la console Amazon EC2, veillez à effectuer l'une des opérations suivantes : collez les données utilisateur en texte brut ou chargez les données utilisateur depuis un fichier. Si vous utilisez l'interface de ligne de commande AWS ou un kit SDK AWS, vous devez d'abord encoder les données utilisateur en base64. Pour plus d'informations, consultez la page Encoder au format base64 sur le site Web de base64encode. Puis, soumettez cette chaîne comme valeur du paramètre UserData lorsque vous appelez CreateLaunchTemplate.
-
Créez un fichier nommé mount-fsx-lustre.json.
Remarque : Ajustez la taille du volume en fonction de votre cas d'utilisation. -
Exécutez la commande de l'interface de ligne de commande AWS create-launch-template pour créer un modèle de lancement basé sur le fichier mount-fsx-lustre.json que vous avez créé à l'étape 5. Remplacez us-east-1 par votre région :
aws ec2 --region us-east-1 create-launch-template --cli-input-json file://mount-fsx-lustre.json
Exemple de sortie :
{ "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 } }
-
Créez un nouvel environnement de calcul et associez-le à votre modèle de lancement. Lorsqu'AWS Batch lance des instances, le système de fichiers Amazon FSx for Lustre est maintenant monté sur les instances de conteneur.
Important : Par défaut, les environnements de calcul gérés par AWS Batch utilisent une version approuvée de l'AMI optimisée Amazon Elastic Container Service (Amazon ECS) pour les ressources de calcul. Vous devez définir explicitement l'ID d'AMI pour les AMI Amazon Linux 2 optimisées pour Amazon ECS et les autres distributions Linux. -
Pour vérifier si le système de fichiers est monté avec l'instance de conteneur, utilisez SSH pour vous connecter à l'instance lancée par AWS Batch. Puis, exécutez la commande df Linux suivante :
$ df -h
Exemple de sortie :
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
Remarque : /scratch est monté automatiquement.
-
Créez une définition de tâche dans AWS Batch qui inclut le volume et le point de montage :
{ "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": [] } }
-
Pour soumettre une tâche AWS Batch, utilisez la définition de tâche que vous avez créée à l'étape 9.

Contenus pertinents
- Réponse acceptéedemandé il y a un an
- demandé il y a un an
- demandé il y a 2 ans
- AWS OFFICIELA mis à jour il y a un an
- AWS OFFICIELA mis à jour il y a 2 ans