自动从 S3 桶导入更新。 - FSx 为了光泽

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

自动从 S3 桶导入更新。

您可以将 Lustre 配置 FSx 为在向 S3 存储桶中添加、更改对象或从中删除对象时自动更新文件系统中的元数据。 FSx for Lustre 创建、更新或删除与 S3 中的更改相对应的文件和目录列表。如果 S3 存储桶中已更改的对象不再包含其元数据, FSx 则 for Lustre 将保留该文件的当前元数据值,包括当前权限。

注意

f FSx or Lustre 文件系统和链接的 S3 存储桶必须位于同一存储桶中, AWS 区域 才能自动导入更新。

您可以在创建数据存储库关联时配置自动导入,也可以随时使用 FSx 管理控制台 AWS CLI、或 AWS API 更新自动导入设置。

注意

您可以在同一数据存储库关联上同时配置自动导入和自动导出。本主题仅介绍自动导入功能。

重要
  • 如果您在 S3 中修改某个对象,同时启用所有自动导入策略并禁用自动导出,则该对象的内容将始终导入文件系统中的相应文件。如果目标位置已存在文件,则该文件将被覆盖。

  • 如果同时在文件系统和 S3 中修改文件,并且启用所有自动导入和自动导出策略,则文件系统中的文件或 S3 中的对象可能被其他文件或对象覆盖。无法保证某个位置更晚的编辑会覆盖其他位置更早的编辑。如果您修改文件系统和 S3 存储桶中的同一个文件,则应确保应用程序级别的协调以防止此类冲突。 FSx for Lustre 并不能防止在多个位置发生冲突的写入。

导入策略指定了当链接 FSx 的 S3 存储桶中的内容发生变化时,Lustre 如何更新文件系统。数据存储库关联可能具有下面其中一种导入策略:

  • 增- FSx 仅当向链接的 S3 数据存储库添加新对象时,for Lustre 才会自动更新文件和目录元数据。

  • 已更改- FSx 仅当数据存储库中的现有对象发生更改时,for Lustre 才会自动更新文件和目录元数据。

  • 已删除-f FSx or Lustre 仅在删除数据存储库中的对象时才会自动更新文件和目录的元数据。

  • 当 S3 数据存储库中发生@@ 任何指定操作时,“新建”、“已更改” 和 “已删除 — FSx for Lustre” 的任意组合都会自动更新文件和目录元数据。例如,您可以指定在 S3 存储库中添加对象()或从 S3 存储库中删除对象(已删除)时更新文件系统,但在更改对象时不更新文件系统。

  • 未配置策略 — FSx 在 S3 数据存储库中添加对象、更改对象或从中删除对象时,For Lustre 不会更新文件系统上的文件和目录元数据。如果您未配置导入策略,则禁用数据存储库关联的自动导入。您仍然可以使用导入数据存储库任务来手动导入元数据更改,如使用数据存储库任务导入更改中所述。

重要

自动导入不会将以下 S3 操作与您的 Lustre 文件系统链接 FSx 同步:

  • 使用 S3 对象生命周期过期来删除对象

  • 永久删除已启用版本控制的桶中的当前对象版本

  • 取消删除已版本控制的桶中的对象

对于大多数使用案例,我们建议您将导入策略配置为已更改已删除。该策略确保链接的 S3 数据存储库中的所有更新都自动导入您的文件系统。

当您设置导入策略以根据链接的 S3 数据存储库中的更改更新文件系统文件和目录元数据时, FSx for Lustre 会在链接的 S3 存储桶上创建事件通知配置。事件通知配置的名称为 FSx。请勿修改或删除 S3 桶上的 FSx 事件通知配置,否则会阻止更新的文件和目录元数据自动导入文件系统。

当 f FSx or Lustre 更新链接的 S3 数据存储库上已更改的文件列表时,即使该文件已被写入锁定,它也会用更新的版本覆盖本地文件。

FSx for Lustre 会尽最大努力更新您的文件系统。 FSx for Lustre 在以下情况下无法更新文件系统:

  • 如果 FSx Lustre 没有权限打开已更改或新的 S3 对象。在这种情况下, FSx for Lustre 会跳过物体并继续。DRA 生命周期状态不受影响。

  • 如果 FSx for Lustre 没有存储桶级别的权限,例如。GetBucketAcl这将导致数据存储库生命周期状态变为错误配置。有关更多信息,请参阅 数据存储库关联生命周期状态

  • 如果链接的 S3 桶上的 FSx 事件通知配置已删除或更改。这将导致数据存储库生命周期状态变为错误配置。有关更多信息,请参阅 数据存储库关联生命周期状态

我们建议您开启 CloudWatch 日志记录功能,以记录任何无法自动导入的文件或目录的信息。日志中的警告和错误包含有关失败原因的信息。有关更多信息,请参阅 数据存储库事件日志

先决条件

Lustre 需要满足以下条件才能自动从链接的 S3 存储桶中导入新的、更改的或已删除的文件: FSx

  • 文件系统及其链接的 S3 桶位于相同的 AWS 区域。

  • S3 桶没有配置错误的生命周期状态。有关更多信息,请参阅 数据存储库关联生命周期状态

  • 您的账户拥有所需的权限,才能在链接的 S3 桶上配置和接收事件通知。

支持的文件更改类型

FSx for Lustre 支持导入链接的 S3 存储桶中发生的文件和目录的以下更改:

  • 对文件内容的更改。

  • 对文件或目录元数据的更改。

  • 对符号链接目标或元数据的更改。

  • 文件和目录的删除。如果您在链接的 S3 存储桶中删除与文件系统中的目录相对应的对象(即密钥名称以斜杠结尾的对象),for Lustre 仅在文件系统上的相应目录 FSx 为空时才会将其删除。

更新导入设置

在创建数据存储库关联时,您可以为链接的 S3 桶设置文件系统的导入设置。有关更多信息,请参阅 创建指向 S3 桶的链接

您还可以随时更新导入设置,包括导入策略。有关更多信息,请参阅 更新数据存储库关联设置

监控自动导入

如果您的 S3 存储桶中的更改速率超过自动导入可以处理这些更改的速率,则导入到 for Lustre 文件系统的相应元数据更改将被延迟。 FSx 如果发生这种情况,您可以使用 AgeOfOldestQueuedMessage 指标来监控等待自动导入处理的较早更改的期限。有关该指标的更多信息,请参阅FSx 获取 Lustre S3 存储库指标

如果元数据更改导入的延迟超过 14 天(使用 AgeOfOldestQueuedMessage 指标衡量),则 S3 桶中尚未被自动导入处理的更改不会导入文件系统。此外,您的数据存储库关联生命周期被标记为错误配置,并且自动导入停止。如果您启用了自动导出,则自动导出会继续监视您的 FSx for Lustre 文件系统是否有更改。但是,其他更改不会从您 FSx 的 for Lustre 文件系统同步到 S3。

要将您的数据存储库关联从错误配置生命周期状态恢复为可用生命周期状态,您必须更新您的数据存储库关联。您可以使用 update-data-repository-associationCLI 命令(或相应的 UpdateDataRepositoryAssociationAPI 操作)更新您的数据存储库关联。您唯一需要的请求参数是您要更新的数据存储库关联的 AssociationID

在数据存储库关联生命周期状态更改为可用后,自动导入(和自动导出,如果已启用)将重新启动。重新启动后,自动导出会继续将文件系统更改同步到 S3。要将 S3 中未导入或来自数据存储库关联配置错误状态时的新对象和已更改对象的元数据与 for Lustre 文件系统的元数据同步,请运行导入数据存储库任务。 FSx 导入数据存储库任务不会将 S3 存储桶中的删除内容与 for Lustre 文件系统中的删除内容同步。 FSx 如果您要将 S3 与文件系统完全同步(包括删除内容),您必须重新创建文件系统。

为确保元数据更改的导入延迟不超过 14 天,我们建议您对 AgeOfOldestQueuedMessage 指标设置警报,并在 AgeOfOldestQueuedMessage 指标超过警报阈值时减少 S3 桶中的活动。对于连接到 S3 存储桶的 for Lustre 文件系统,单个分片持续从 S3 发送尽可能多的可能更改,而 for Lustre 文件系统上仅运行自动导入,则自动导入可以在 14 天内处理 7 小时积压的 S3 更改。 FSx FSx

此外,通过单个 S3 操作,您可以生成的更改要多于自动导入在 14 天内处理的更改。这些类型的操作包括但不限于到 S3 的 AWS Snowball 上传和大规模删除。如果您对 S3 存储桶进行了大规模更改,并希望与 for Lustre 文件系统同步,为了防止自动导入更改超过 14 天,则应删除您的文件系统,并在 S3 更改完成后重新创建它。 FSx

如果您的 AgeOfOldestQueuedMessage 指标在增长,请查看您的 S3 桶 GetRequestsPutRequestsPostRequestsDeleteRequests 指标,了解可能导致发送到自动导入的更改速率和/或数量增加的活动更改。有关可用 S3 指标的信息,请参阅《Amazon S3 用户指南》中的监控 Amazon S3

有关所有可用的 Lustre 指标 FSx 的列表,请参阅使用 Amazon 进行监控 CloudWatch