Amazon FSx for Lustre 入门 - FSx for Lustre

Amazon FSx for Lustre 入门

接下来,您可以学习如何开始使用 Amazon FSx for Lustre。这些步骤将引导您创建 Amazon FSx for Lustre 文件系统并从您的计算实例访问该文件系统。或者,它们会向您展示如何使用您的 Amazon FSx for Lustre 文件系统通过基于文件的应用程序来处理 Amazon S3 桶中的数据。

此入门练习包括以下步骤。

先决条件

要进行此次入门练习,您需要:

  • 一个具有创建 Amazon FSx for Lustre 文件系统和 Amazon EC2 实例所需权限的 AWS 账户。有关更多信息,请参阅 设置 Amazon FSx for Lustre

  • 创建要与 FSx for Lustre 文件系统关联的 Amazon VPC 安全组,在创建文件系统后不要对其进行更改。有关更多信息,请参阅为 Amazon FSx 文件系统创建安全组

  • 基于 Amazon VPC 服务在您的虚拟私有云(VPC)中运行支持的 Linux 发行版的 Amazon EC2 实例。在此入门练习中,我们建议使用 Amazon Linux 2023。您将在此 EC2 实例上安装 Lustre 客户端,然后在 EC2 实例上挂载您的 FSx for Lustre 文件系统。有关创建 EC2 实例的更多信息,请参阅《Amazon EC2 用户指南》中的入门:启动实例启动您的实例

    Lustre 客户端支持 Amazon Linux;Amazon Linux 2;Amazon Linux 2023;Red Hat Enterprise Linux 7.7 through 7.9、8.2 - 8.10,以及 9.0、9.3 和 9.4;CentOS 7.7 至 7.9,以及 8.2 - 8.10;Rocky Linux 8.4 - 8.10,9.0、9.3 和 9.4;SUSE Linux Enterprise Server 12 SP3、SP4 和 SP5;以及 Ubuntu 18.04、20.04 和 22.04。有关更多信息,请参阅 Lustre 文件系统和客户端内核的兼容性

    在为此入门练习创建 Amazon EC2 实例时,请记住以下几点:

    • 我们建议您在默认 VPC 中创建实例。

    • 我们建议您在创建 EC2 实例时使用默认安全组。

  • 在每个 FSx for Lustre 文件系统中,每个元数据服务器 (MDS) 和每个存储服务器 (OSS) 各需要一个 IP 地址。

    • 对于具有元数据配置的 Persistent_2 文件系统,每个 12000 元数据 IOPS 值还需要在文件系统所处子网内有一个 IP 地址。

    • 持久性 SSD 文件系统为每个 OSS 预置 2.4TiB 的存储空间。

    • 吞吐能力为 12 MB/s/TiB 的持久性 HDD 文件系统为每个 OSS 预置 6TiB 的存储空间。

    • 吞吐能力为 40 MB/s/TiB 的持久性 HDD 文件系统为每个 OSS 预置 1.8TiB 的存储空间。

    • Scratch_2 文件系统为每个 OSS 预置 2.4TiB 的存储空间。

    • Scratch_1 文件系统为每个 OSS 预置 3.6TiB 的存储空间。

  • 一个 Amazon S3 桶,用于存储要处理的工作负载数据。S3 桶将成为您的 FSx for Lustre 文件系统的持久链接数据存储库。

  • 确定您要创建临时还是持久性 Amazon FSx for Lustre 文件系统。有关更多信息,请参阅 FSx for Lustre 文件系统的部署选项

步骤 1:创建 FSx for Lustre 文件系统

在 Amazon FSx 控制台中创建文件系统。

要创建文件系统,请执行以下操作:
  1. 通过以下网址打开 Amazon FSx 控制台:https://console.aws.amazon.com/fsx/

  2. 在控制面板上,选择创建文件系统以启动文件系统创建向导。

  3. 选择 FSx for Lustre,然后选择下一步以显示创建文件系统页面。

  4. 文件系统详细信息部分提供信息:

    • 文件系统名称 – 可选部分为您的文件系统提供一个名称。您最多可以使用 256 个 Unicode 字母、空格和数字以及特殊字符 + - = . _ : /

    • 对于部署和存储类型,请选择以下任一选项:

      SSD 存储提供低延迟 IOPS 密集型工作负载,这些工作负载通常可操作小型随机文件。HDD 存储提供吞吐量密集型工作负载,这些工作负载通常可操作大型连续文件。

      有关存储类型的更多信息,请参阅 多种存储选项

      有关部署类型的更多信息,请参阅 FSx for Lustre 文件系统的部署选项

      有关可对传输中数据进行加密的 AWS 区域 的更多信息,请参阅 加密传输中数据

      • 对于长期存储和需要最高级别 IOPS/吞吐量的延迟敏感型工作负载,请选择持久性、SSD 部署类型。文件服务器具有高可用性,数据会在文件系统的可用区内自动复制,并且支持对传输中数据进行加密。持久性、SSD 使用最新一代持久性文件系统 Persistent 2。

      • 对于长期存储和侧重于吞吐量且对延迟不敏感的工作负载,请选择持久性、HDD。文件服务器具有高可用性,数据会在文件系统的可用区内自动复制,并且此类型支持对传输中数据进行加密。持久性、HDD 使用 Persistent 1 部署类型。

        选择使用 SSD 缓存来创建大小为您的 HDD 存储容量 20% 的 SSD 缓存,从而为经常访问的文件提供亚毫秒级延迟和更高的 IOPS。

      • 对于临时存储和短期数据处理,请选择 Scratch、SSD 部署类型。Scratch、SSD 使用 Scratch 2 文件系统,并提供传输中数据加密功能。

    • 选择文件系统所需的单位存储吞吐量。此选项仅对持久性部署类型有效。

      单位存储吞吐量指预置的每太字节(TiB)的读取和写入吞吐量,以 MB/s/TiB 为单位。您需要为预置吞吐量付费:

      • 对于持久性 SSD 存储,请选择 125MB/s/TiB、250MB/s/TiB、500MB/s/TiB 或 1000MB/TiB。

      • 对于持久性 HDD 存储,请选择 12MB/s/TiB 或 40MB/s/TiB。

      创建文件系统后,您可以根据需要增加或减少单位存储吞吐量。有关更多信息,请参阅 管理吞吐能力

    • 对于存储容量,请设置文件系统的存储容量,以 TiB 为单位:

      • 对于持久性、SSD 部署类型,请将该值设置为 1.2TiB、2.4TiB 或 2.4TiB 的增量。

      • 对于持久性、HDD 部署类型,如果是 12MB/s/TiB 文件系统,则此值可以是 6.0TiB 的增量;而如果是 40MB/s/TiB 文件系统,则此值可以是 1.8TiB 的增量。

      创建文件系统后,您可以根据需要增加存储容量。有关更多信息,请参阅 管理存储容量

    • 对于元数据配置,可以使用以下两个选项来预置文件系统的 Metadata IOPS 数:

      • 如果您希望 Amazon FSx 根据文件系统的存储容量自动在文件系统上预置和扩展元数据 IOPS,请选择自动(默认)。

      • 如果要指定 Metadata IOPS 数,请选择用户预调配,对文件系统进行预调配。有效值为 1500300060001200012000 的倍数,最大值为 192000

      有关元数据 IOPS 的更多信息,请参阅 Lustre 元数据性能配置

    • 对于数据压缩类型,选择以关闭数据压缩,或者选择 LZ4 以使用 LZ4 算法压缩数据。有关更多信息,请参阅 Lustre 数据压缩

    使用 Amazon FSx 控制台创建时,所有 FSx for Lustre 文件系统都基于 Lustre 版本 2.15 构建。

  5. 网络与安全部分,提供以下网络和安全组信息:

    • 对于虚拟私有云(VPC),请选择要与文件系统关联的 VPC。在此入门练习中,请选择与您为 Amazon EC2 实例选择的相同 VPC。

    • 对于 VPC 安全组,应该已经添加了您的 VPC 的默认安全组 ID。如果您未使用默认安全组,请确保将以下入站规则添加到您在此入门练习中使用的安全组中。

      类型 协议 端口范围 描述
      所有 TCP TCP 0-65535 自定义 the_ID_of_this_security_group 入站 Lustre 流量规则

      以下屏幕截图显示了编辑入站规则的示例。

      分配给 FSx for Lustre 文件系统的默认安全组的入站流量规则。
      重要

      确保您使用的安全组遵循 使用 Amazon VPC 进行文件系统访问控制 中提供的配置说明。您必须将安全组设置为允许 988 端口和 1018-1023 端口来自安全组本身或完整子网 CIDR 的入站流量,这样文件系统主机之间才能相互通信。

    • 对于子网,请从可用子网列表中选择任意值。

  6. 对于加密部分,可用选项因您要创建的文件系统类型而异:

    • 对于持久性文件系统,您可以选择 AWS Key Management Service(AWS KMS)加密密钥来加密文件系统上的静态数据。

    • 对于临时文件系统,使用由 AWS 托管的密钥对静态数据进行加密。

    • 对于 Scratch 2 和持久性文件系统,当从支持的 Amazon EC2 实例类型访问文件系统时,传输中数据会自动加密。有关更多信息,请参阅 加密传输中数据

  7. 对于数据存储库 Import/Export – 可选部分,系统会默认禁用将您的文件系统链接到 Amazon S3 数据存储库。有关启用此选项以及创建与现有 S3 桶关联的数据存储库的信息,请参阅 在创建文件系统时链接 S3 桶(控制台)

    重要
    • 选择此选项还会禁用备份,因此您在创建文件系统时将无法启用备份。

    • 如果您将一个或多个 Amazon FSx for Lustre 文件系统关联到 Amazon S3 桶,则要先删除所有链接的文件系统,再删除该 Amazon S3 桶。

  8. 对于日志记录 – 可选,系统默认情况下已启用日志记录。启用后,文件系统上的数据存储库活动故障和警告将记录到 Amazon CloudWatch Logs 中。有关配置日志记录的信息,请参阅 管理日志记录

  9. 备份和维护 – 可选中,您可以执行以下操作。

    对于每日自动备份:

    • 禁用每日自动备份。除非您启用了数据存储库 Import/Export,否则此选项默认处于启用状态。

    • 设置每日自动备份时段的开始时间。

    • 自动备份保留期设置为 1-35 天。

    有关更多信息,请参阅 使用备份

  10. 设置每周维护时段的开始时间,或者将其设置为默认的无首选项

  11. 对于根挤压(可选,根挤压默认禁用。有关启用和配置适用于根挤压的信息,请参阅 创建文件系统时启用根挤压(控制台)

  12. 创建您希望应用于文件系统的所有标签。

  13. 选择下一步以显示创建文件系统摘要页面。

  14. 查看 Amazon FSx for Lustre 文件系统的设置,然后选择创建文件系统

现在,您已经创建了文件系统,请记下其完全限定域名和挂载名称以供后续步骤使用。在缓存控制面板中选择文件系统的名称,然后选择附加,可以找到文件系统的完全限定域名和挂载名称。

步骤 2:安装和配置 Lustre 客户端

在从 Amazon EC2 实例访问 Amazon FSx for Lustre 文件系统之前,需要执行以下操作:

  • 验证 EC2 实例是否满足最低内核要求。

  • 需要时请更新内核。

  • 下载并安装 Lustre 客户端。

检查内核版本并下载 Lustre 客户端
  1. 在 EC2 实例上打开终端窗口。

  2. 通过运行以下命令确定您的计算实例上当前运行的是哪个内核。

    uname -r
  3. 请执行以下操作之一:

    • 如果该命令返回 6.1.79-99.167.amzn2023.x86_64(基于 x86 的 EC2 实例),或 6.1.79-99.167.amzn2023.aarch64 或更高版本(基于 Graviton2 的 EC2 实例),请使用以下命令下载并安装 Lustre 客户端。

      sudo dnf install -y lustre-client
    • 如果该命令返回的结果小于 6.1.79-99.167.amzn2023.x86_64(基于 x86 的 EC2 实例),或者小于 6.1.79-99.167.amzn2023.aarch64(基于 Graviton2 的 EC2 实例),请运行以下命令更新内核并重启您的 Amazon EC2 实例。

      sudo dnf -y update kernel && sudo reboot

      使用 uname -r 命令确认是否已更新内核。然后按照上述步骤下载并安装 Lustre 客户端。

    有关在其他 Linux 发行版上安装 Lustre 客户端的信息,请参阅 安装 Lustre 客户端

步骤 3:挂载文件系统

要装载文件系统,您需要创建一个挂载目录或挂载点,然后将文件系统挂载到客户端上,并验证客户端是否可以访问该文件系统。

要挂载您的文件系统,请执行以下操作:
  1. 使用以下命令为挂载点创建目录。

    sudo mkdir -p /mnt/fsx
  2. 将 Amazon FSx for Lustre 文件系统挂载到您所创建的目录中。使用以下命令并替换以下项目:

    • file_system_dns_name 替换为实际文件系统的域名系统(DNS)名称。

    • mountname 替换为文件系统的挂载名称,您可以通过运行 describe-file-systemsAWS CLI 命令或 DescribeFileSystems API 操作来获取该名称。

    sudo mount -t lustre -o relatime,flock file_system_dns_name@tcp:/mountname /mnt/fsx

    此命令使用 -o relatimeflock 两个选项挂载您的文件系统:

    • relatime – 选项 atime 会维护每次访问文件时的 atime 数据(索引节点访问时间),而选项 relatime 虽然会维护 atime 数据,但不是每次访问文件时都维护。启用选项 relatime 后,只有当文件在上次 atime 数据更新之后被修改(mtime),或者距离上次访问文件已超过一定时间(默认为 6 小时)的情况下,atime 数据才会被写入磁盘。使用选项 relatimeatime 将优化文件发布过程。

      注意

      如果您的工作负载需要精确的访问时间准确度,则可以使用 atime 挂载选项进行挂载。但是,这样做可能会增加保持精确访问时间值所需的网络流量,进而影响工作负载性能。

      如果您的工作负载不需要元数据访问时间,则使用 noatime 挂载选项禁用访问时间更新可以提高性能。请注意,诸如文件发布或数据发布有效性等注重 atime 的过程在发布中可能不准确。

    • flock – 为您的文件系统启用文件锁定。如果您不想启用文件锁定,请使用不启用 flockmount 命令。

  3. 使用以下命令列出挂载文件系统 /mnt/fsx 的目录的内容,验证挂载命令是否成功。

    ls /mnt/fsx import-path lustre $

    您也可以使用以下 df 命令。

    df Filesystem 1K-blocks Used Available Use% Mounted on devtmpf 1001808 0 1001808 0% /dev tmpfs 1019760 0 1019760 0% /dev/shm tmpfs 1019760 392 1019368 1% /run tmpfs 1019760 0 1019760 0% /sys/fs/cgroup /dev/xvda1 8376300 1263180 7113120 16% / 123.456.789.0@tcp:/mountname 3547698816 13824 3547678848 1% /mnt/fsx tmpfs 203956 0 203956 0% /run/user/1000

    结果显示 /mnt/fsx 上挂载的 Amazon FSx 文件系统。

步骤 4:运行工作流程

现在,您的文件系统已创建并挂载到计算实例,您可以用它来运行高性能计算工作负载。

您可以创建数据存储库关联,将您的文件系统链接到 Amazon S3 数据存储库。更多信息请参阅 将文件系统链接到 Amazon S3 存储桶

将文件系统链接到 Amazon S3 数据存储库后,您可以随时将写入文件系统的数据导回您的 Amazon S3 桶。在其中一个计算实例的终端上,运行以下命令将文件导出到 Amazon S3 桶。

sudo lfs hsm_archive file_name

有关如何快速在文件夹或大批量文件上运行此命令的更多信息,请参阅 使用 HSM 命令导出文件

第 5 步:清除 资源

完成本练习后,您应按照以下步骤清理资源并保护您的 AWS 账户。

清理资源
  1. 如果您想进行最终导出,请运行以下命令。

    nohup find /mnt/fsx -type f -print0 | xargs -0 -n 1 sudo lfs hsm_archive &
  2. 在 Amazon EC2 控制台上,终止您的实例。有关更多信息,请参阅《Amazon EC2 用户指南》中的终止实例

  3. 在 Amazon FSx for Lustre 控制台上,按照以下步骤删除您的文件系统:

    1. 在导航窗格中选择文件系统

    2. 选择要从控制面板的文件系统列表中删除的文件系统。

    3. 对于操作,选择删除文件系统

    4. 在随后显示的对话框中,选择是否要对文件系统进行最终备份。然后提供文件系统 ID 以确认删除。选择删除文件系统

  4. 如果您为此练习创建了 Amazon S3 桶,并且不想保留导出的数据,则现在可以将其删除。有关更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的删除桶