从 Amazon Elastic Container Service 挂载 - FSx for Lustre
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

从 Amazon Elastic Container Service 挂载

您可以从 Amazon EC2 实例上的 Amazon Elastic Container Service (Amazon ECS) Docker 容器访问 FSx for Lustre 文件系统。您可以使用以下任一选项来执行此操作:

  1. 通过从托管您的 Amazon ECS 任务的 Amazon EC2 实例挂载 FSx for Lustre 文件系统,然后将此挂载点导出到容器。

  2. 通过将文件系统直接安装到任务容器中。

有关 Amazon ECS 的更多信息,请参阅什么是 Amazon Elastic Container Service?中的Amazon Elastic Container Service 开发指南.

我们建议使用选项 1 (从托管 Amazon ECS 任务的 Amazon EC2 实例挂载) 因为它提供了更好的资源利用,尤其是在同一个 EC2 实例上启动许多容器(超过五个)或者任务寿命短(不到 5 分钟)时。

使用选项 2 (从 Docker 容器上安装),如果您无法配置 EC2 实例,或者您的应用程序需要容器的灵活性。

注意

安装 FSx for Lustre 上的 LustreAmazon不支持 Fargate 启动类型。

以下各节介绍了从 Amazon ECS 容器装载 FSx for Lustre 文件系统的每个选项的过程。

从托管 Amazon ECS 任务的 Amazon EC2 实例挂载

此过程演示了如何在 EC2 实例上配置 Amazon ECS 以本地挂载 FSx for Lustre 文件系统。该过程使用volumesmountPoints容器属性以共享资源并使本地运行的任务可以访问此文件系统。有关更多信息,请参阅 。启动 Amazon ECS 容器实例中的Amazon Elastic Container Service 开发指南.

此过程适用于 Amazon ECS 优化的 Amazon Linux 2 AMI。如果您正在使用其他 Linux 分配,请参阅安装 Lustre 客户端.

从 Amazon ECS 挂载文件系统到 EC2 实例上

  1. 手动或使用 Auto Scaling 组启动 Amazon ECS 实例时,将以下代码示例中的行添加到用户数据字段中返回的子位置类型。替换示例中的以下项目:

    • Replacefile_system_dns_name使用实际文件系统的 DNS 名称。

    • Replacemountname使用文件系统的装载名称。

    • Replacemountpoint使用您需要创建的文件系统的挂载点。

    #!/bin/bash ...<existing user data>... fsx_dnsname=file_system_dns_name fsx_mountname=mountname fsx_mountpoint=mountpoint amazon-linux-extras install -y lustre2.10 mkdir -p "$fsx_mountpoint" mount -t lustre ${fsx_dnsname}@tcp:/${fsx_mountname} ${fsx_mountpoint} -o noatime,flock
  2. 创建 Amazon ECS 任务时,请添加以下内容volumesmountPointsJSON 定义中的容器属性。Replacemountpoint使用文件系统的挂载点(例如/mnt/fsx)。

    { "volumes": [ { "host": { "sourcePath": "mountpoint" }, "name": "Lustre" } ], "mountPoints": [ { "containerPath": "mountpoint", "sourceVolume": "Lustre" } ], }

从 Docker 容器上安装

以下过程显示了如何配置 Amazon ECS 任务容器以安装lustre-client将 FSx for Lustre 文件系统打包并挂载到其中。该过程使用亚马逊 Linux(amazonlinux) Docker 映像,但类似的方法可以适用于其他发行版。

从 Docker 容器挂载文件系统

  1. 安装lustre-client使用打包和挂载 FSx for Lustre 文件系统command财产。替换示例中的以下项目:

    • Replacefile_system_dns_name使用实际文件系统的 DNS 名称。

    • Replacemountname使用文件系统的装载名称。

    • Replacemountpoint使用文件系统的挂载点。

    "command": [ "/bin/sh -c \"amazon-linux-extras install -y lustre2.10; mount -t lustre file_system_dns_name@tcp:/mountname mountpoint -o noatime,flock;\"" ],
  2. AddSYS_ADMIN允许您的容器授权它为 Lustre 文件系统挂载 FSx,使用linuxParameters财产。

    "linuxParameters": { "capabilities": { "add": [ "SYS_ADMIN" ] } }