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

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

从 Amazon Elastic Container Service

您可以从 Amazon EC2 实例上的亚马逊弹性容器服务 (亚马逊 ECS) Docker 容器访问您的 Amazon FSX for Lustre 文件系统。您可以使用以下任一选项来执行此操作:

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

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

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

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

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

注意

将 Amazon FSx 安装在Amazon不支持 Fargate 启动类型。

以下部分介绍了从亚马逊 ECS 容器挂载 Amazon FSX for Lustre 文件系统的每个选项的过程。

从 Amazon EC2 实例挂载 Amazon ECS 任务

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

此过程适用于亚马逊云服务器优化的亚马逊 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. 创建您的亚马逊云服务器任务时,请添加以下volumesmountPoints容器属性。Replacemountpoint与文件系统的挂载点(例如/mnt/fsx)。

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

从 Docker 容器挂载

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

从 Docker 容器挂载文件系统

  1. 安装lustre-client包,并将 Amazon 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功能添加到您的容器中,以授权它挂载您的 Amazon FSX for Lustre 文件系统,使用linuxParameters属性。

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