Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
如何在托管计算环境中将现有适用于 Lustre 的 Amazon FSx 文件系统挂载到 AWS Batch 上?
我想在托管计算环境中将现有适用于 Lustre 的 Amazon FSx 文件系统挂载到 AWS Batch 上。
简短描述
将 Amazon Elastic Compute Cloud (Amazon EC2) 启动模板与 AWS Batch 配合使用。此配置无需创建自定义亚马逊机器映像 (AMI) 即可将现有适用于 Lustre 的 Amazon FSx 文件系统挂载到您的容器中。
**重要事项:**创建文件系统时,使用分配给您的计算环境的同一 Amazon Virtual Private Cloud (Amazon VPC) 和子网。
解决方法
**注意:**如果在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
要将现有适用于 Lustre 的 Amazon FSx 文件系统挂载到托管计算环境中的 AWS Batch,请完成以下步骤:
-
创建适用于 Lustre 的 Amazon FSx 文件系统。然后,选择永久或暂存文件系统部署类型。
**注意:**将永久文件系统用于长期存储和工作负载。将临时文件系统用于临时存储和短期数据处理。 -
复制您的文件系统 ID(例如,fs-0123456789abcdef0)。必须有文件系统 ID 才能运行启动模板。
-
创建包含用户数据部分并使用 MIME 多部分文件格式的启动模板。有关详细信息,请参阅 Cloud-init 网站上的 Mime 多部分存档。
请参阅以下 Amazon Linux 2 MIME 多部分文件示例。将 fs-0123456789abcdef0 替换为您的文件系统 ID,将 us-east-1 替换为您的 AWS 区域,将 xxxxxxxx 替换为您的八个字符的 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==--
**注意:**此示例 MIME 多部分文件将计算资源配置为从 Extras 库中安装 Lustre 2.10 软件包。该文件还会将现有适用于 Lustre 的 Amazon FSx 文件系统挂载在 /scratch 处。有关其他 Linux 发行版的安装说明,请参阅安装 Lustre 客户端。
-
启动模板以调用用户数据,如以下 Amazon Linux 2 示例所示:
{ "LaunchTemplateName": "user-data", "LaunchTemplateData": { "UserData": "TUlNRS1W...<base64 encoded userdata>..." } }
**注意:**如果您在 Amazon EC2 控制台的启动模板中添加用户数据,请确保执行以下操作之一:将用户数据作为纯文本粘贴,或者从文件上传用户数据。如果您使用 AWS CLI 或 AWS SDK,则必须先对用户数据进行 base64 编码。有关详细信息,请参阅 base64 编码网站上的编码为 base64 格式。然后,在调用 CreateLaunchTemplate 时将该字符串作为 UserData 参数的值提交。
-
创建一个名为 mount-fsx-lustre.json 的文件。
**注意:**根据您的用例调整卷大小。 -
运行 create-launch-template AWS CLI 命令,以根据您在步骤 5 中创建的 mount-fsx-lustre.json 文件创建启动模板。将 us-east-1 替换为您的区域:
aws ec2 --region us-east-1 create-launch-template --cli-input-json file://mount-fsx-lustre.json
输出示例:
{ "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 } }
-
创建新的计算环境并将该环境与您的启动模板相关联。当 AWS Batch 启动实例时,适用于 Lustre 的 Amazon FSx 文件系统现在已挂载在容器实例上。
**重要事项:**默认情况下,AWS Batch 托管计算环境使用经批准的 Amazon Elastic Container Service (Amazon ECS) 优化的 AMI 版本作为计算资源。您必须为 Amazon ECS 优化的 Amazon Linux 2 AMI 和其他 Linux 发行版明确设置 AMI ID。 -
要检查文件系统是否与容器实例一起挂载,请使用 SSH 连接到 AWS Batch 启动的实例。然后,运行以下 Linux df 命令:
$ df -h
输出示例:
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
注意:****/scratch 是自动挂载的。
-
{ "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": [] } }
-
要提交 AWS Batch 作业,请使用您在步骤 9 中创建的作业定义。
相关内容
- AWS 官方已更新 10 个月前
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 1 个月前