在 Azure 托管 Lustre 中使用自动导入功能

Azure 托管 Lustre 中的自动导入功能可实现将数据从 Azure Blob 存储容器无缝同步到 Azure 托管 Lustre 群集。 此功能允许客户将 Blob 存储视为冷层,将 Azure 托管 Lustre 视为高性能热层。 此方法会自动反映 Lustre 命名空间中的 Blob 存储中所做的更改。

自动导入功能的工作原理

Azure 托管 Lustre 中的自动导入功能通过持续监视关联的 Azure Blob 存储容器中的更改并利用 Azure Blob 存储更改源记录 功能来运行。

根据配置的导入策略,它会更新 Azure 托管 Lustre 命名空间的内容以反映这些更改。 自动导入功能为用户提供无缝和自动化的数据复制过程。

创建后,自动导入过程包括两个阶段:

  1. 第一个阶段是 完全同步 扫描。 完全同步扫描将 Blob 容器命名空间与 Azure 托管 Lustre 命名空间进行比较,并将任何新的或修改的文件导入 Azure 托管 Lustre 命名空间。

  2. 第二阶段是 Blob Sync 扫描。 Blob 同步扫描在完全同步扫描完成后开始。 Blob 同步扫描持续监控更改提要以获取更新,导入新文件或修改的文件,并在 Azure 托管的 Lustre 命名空间内处理删除。

有关定价详细信息,请参阅 更改源文档

先决条件

  • 需要现有的 Azure 托管 Lustre 文件系统。 可以使用 Azure 门户Azure 资源管理器Terraform 创建一个。 若要了解有关 Blob 集成的详细信息,请参阅 Blob 集成先决条件
  • 必须在与 Azure 托管 Lustre 文件系统关联的存储帐户上启用 Azure Blob 存储数据更改提要

    注释

    更改源 不支持 启用了分层命名空间功能的存储帐户。

  • 更改源保留期 必须 设置为 7 天或更长时间。 启用 Blob 更改源时,选择“ 保留所有日志 ”或将“ 删除更改源日志”设置为 7 或更高。
  • 不允许并发 Blob 集成作业。 启用自动导入功能之前,必须禁用自动导出功能以及任何手动导入或导出作业。

Configuration

在已配置关联 Blob 存储容器的现有 Azure 托管 Lustre 文件系统上,自动导入功能已启用。 自动导入是在 Azure 门户中的 Blob 集成设置中配置的。

若要创建新的自动导入作业,请执行以下步骤:

  1. 在 Azure 门户中,打开 Azure 托管 Lustre 文件系统。 在 “设置”下,选择 “Blob 集成”

  2. 选择 “+ 创建新作业”。

  3. “作业类型” 下拉菜单中,选择“ 自动导入”。

  4. “作业名称 ”字段中输入导入作业的名称。

  5. “冲突解决模式 ”字段选择一个值。 此设置确定导入作业如何处理文件系统中的现有文件与要导入的文件之间的冲突。 在此示例中,我们选择 “跳过”。 若要了解详细信息,请参阅 冲突解决模式

  6. 若要从 Blob 存储筛选数据,请输入导入前缀。 Azure 门户允许输入最多 10 个前缀。 在此示例中,我们指定前缀 /data/logs。 若要了解详细信息,请参阅 “导入前缀”。

  7. 确定是否要选择启用删除,以便将 Azure Blob 存储中的删除自动传播到 Azure 托管的 Lustre。

  8. 配置作业后,选择“ 开始”,开始导入过程。

监视和管理自动导入功能

创建自动导入作业后,可以在 Azure 门户中监视其进度。

Blob 集成窗格显示“最近作业”部分中的导入活动的详细信息,包括与自动同步相关的最近作业的状态和指标。

若要取消正在进行的作业,请选择“最近作业”表中该作业的“取消”链接。 “取消”链接仅适用于当前自动导入作业。

若要查看自动导入作业的指标,请选择作业的名称。 “ 指标 ”窗格显示在门户右侧。

Metrics

指标分为两个主要类别: 完全同步Blob 同步

完全同步统计信息 自动导入的初始完全同步阶段的统计信息
导入的文件 初始完整同步阶段期间,从关联的 Blob 容器成功导入到 Lustre 命名空间的文件数量。
导入的目录 在初始完全同步阶段,从关联的 Blob 容器中成功导入到 Lustre 命名空间的目录数量。
导入的符号链接 在初始完全同步阶段,从关联的 Blob 存储容器成功导入到 Lustre 命名空间的符号链接数量。
预先存在的文件 Lustre 命名空间中已存在同一路径和名称文件的数量。 文件已包含作为相应 Blob 的预期数据和元数据。
预先存在的目录 在初始完整同步阶段,在 Lustre 命名空间中遇到的目录计数,这些目录已经包含作为相应 Blob 的预期元数据。
预先存在的符号链接 在初始完整同步阶段,Lustre 命名空间中遇到的符号链接计数,这些符号链接已包含预期的元数据,并且其目标已经设置为相应的 Blob。
导入的 Blob 总数 初始完整同步阶段时计算从 Blob 容器导入到 Lustre 命名空间的 Blob 数量。 该数字是导入的文件、目录和符号链接的超集。
Blob 导入速率 在初始完全同步阶段,从 Blob 导入到 Lustre 的每秒 blob 计数。
已遍历的 Blob 总数 在完整同步阶段扫描的 Blob 数目计数。
Blob 步行率 在完整同步阶段扫描的 blob 的每秒计数。
总冲突 与 Lustre 命名空间中现有对象具有相同路径和名称的 blob 的遭遇计数,但与一个或多个区域(包括对象、数据和元数据的类型)不同。
错误总数 初始完全同步阶段未能将 Blob 导入到 Lustre 文件系统的错误总数。 选择此链接可转到 “日志记录容器 ”页,查看与此自动导入作业关联的日志。
Blob 同步统计信息 与监视更改源相关的活动的统计信息
导入的文件 在初始完全同步阶段之后,已成功从关联的 Blob 容器导入 Lustre 命名空间的文件计数。
导入的目录 在初始完全同步阶段之后,从关联的 Blob 容器中成功导入到 Lustre 命名空间的目录数量。
导入的符号链接 在初始完全同步阶段之后,从关联的 Blob 容器成功导入到 Lustre 命名空间的符号链接计数。
预先存在的文件 在初始完整同步阶段(已包含预期数据和元数据作为相应 Blob)之后,Lustre 命名空间中已存在的同一路径和名称的文件计数。
预先存在的目录 在初始完整同步阶段之后,Lustre 命名空间中遇到的目录计数,这些目录已经包含作为相应 Blob 的预期元数据。
预先存在的符号链接 在初始完整同步阶段之后,Lustre 命名空间中遇到的符号链接计数,这些符号链接已经包含预期的元数据和作为相应 Blob 的目标。
导入的 Blob 总数 在初始完全同步阶段之后,从 Blob 容器导入到 Lustre 命名空间的 Blob 的计数。 该数字是导入的文件、目录和符号链接的超集。
Blob 导入速率 初始完全同步阶段之后,每秒从 Blob 导入到 Lustre 文件系统的 Blob 数量。
删除 在 Blob 同步阶段删除的文件计数。
总冲突 初始完全同步阶段之后,Lustre 命名空间中现有对象的路径和名称相同的 Blob 的遭遇计数,但与一个或多个区域不同。 例如,对象、数据和元数据的类型。
错误总数 初始完全同步阶段之后的导入失败总数。 选择此链接可转到 “日志记录容器 ”页,查看与此自动导入作业关联的日志。
上次更改订阅事件消费时间 为此自动导入作业处理的最后一个更改源事件的时间戳。
上次完全同步的时间 处理此自动导入作业的所有更改源事件时的最新时间戳。

注意事项和最佳做法

使用自动导入时,请考虑以下最佳做法以确保操作顺利进行:

  • 请务必查看更改源功能的行为,特别是 规范
  • 必须将更改源保留期设置为 7 天或更长时间。 启用 Blob 更改源时,选择“ 保留所有日志 ”或将“ 删除更改源日志”设置为 7 或更高。
  • 自动导入依赖于更改源。 它仅限于发布到更改源的事件的时效性。 更改馈送当前表示事件会在“几分钟内”发布。
  • 自动导入通常以每秒 2,000 次的速度导入更改。
  • 不能同时运行多个 Blob 集成作业。 启用自动导入后,无法创建更多导入或导出作业(手动或自动)。
  • lfs hsm_* 命令在自动导入期间不被支持,因为这可能会导致 Blob 与 Lustre 文件系统之间出现一致性问题。

下面是删除的最佳做法:

  • 删除是一种方式(blob > Lustre),并且仅适用于未来。

  • 自动导入过程始终从手动(完全同步)扫描开始。 该扫描不会生成双向映射,也不会尝试检测 Blob 是否被删除,并且文件是否仍然存在于 Lustre 中。因此,启用之前发生的删除在扫描期间不会被移除。

  • 在初始扫描期间,更改(包括删除)将延迟。 任何在初始扫描运行时发生的变更馈送事件(包括删除),都将在扫描完成后应用。 预计会有一个临时时段,在扫描期间 Lustre 文件系统可能仍会显示在 Blob 容器中已删除的文件。

  • 删除行为显式绑定到所选冲突模式。 下表演示在启用Enable deletions时每个模式的行为:

    文件以前在 Lustre 中被修改过吗? 冲突解决模式 执行删除?
    如果脏,则覆盖 Yes.
    跳过 No. 文件保留在 Lustre 中。
    如果脏,则覆盖 Yes.
    跳过 Yes.