Docs 菜单
Docs 主页
/ /

具有对象锁的不可变 S3Atlas 备份快照

Ops Manager可以将快照数据作为数据块写入 S3 存储桶并跟踪Ops Manager应用程序数据库中的元元数据,从而将快照存储在 S3 或 S3 兼容的对象存储中。通过不可变的 S3 快照, Ops Manager与 S3 对象锁或等效项集成,以提供以下功能:

  • 快照数据和备份元数据一起存储在 S3 存储桶中。

  • 保护快照对象不被删除或修改,直到定义的保留期到期(由对象存储强制执行)。

  • 将快照从启用对象锁的存储桶导入到新的或重建的Ops Manager部署中,以进行灾难恢复或迁移。

使用此功能可保护备份免遭恶意或意外删除,例如勒索软件攻击或操作符错误。您可以仅使用存储在 S3 中的内容在新的Ops Manager实例中恢复备份。

重要

此功能需要Ops Manager 8.0.19 或更高版本。

使用启用了对象锁的存储桶配置 S3快照存储并启用不可变备份后:

  • Ops Manager将快照块和恢复所需的元数据写入 S3 存储桶,而不是仅将元数据保存在Ops Manager应用程序数据库中。

  • 如果已配置, Ops Manager会延长每个快照的对象锁保留时间,以便对象存储在备份作业保留窗口结束之前防止删除或修改。

  • Ops Manager可以通过仅读取 S3 存储桶存储的内容,从预填充的存储桶中发现这些不可变的快照并将其导入到另一个Ops Manager实例中。

要使用不可变的 S3 快照,请确保您具备以下条件:

  • Ops Manager 8.0.19 或更高版本,包括对快照不变性和 S3 导入的支持。

  • 在Ops Manager中配置的 S3快照存储(块存储)。不可变快照仅支持基于 S3 的快照存储,而不支持MongoDB块存储或文件系统快照存储。

  • 支持对象锁的对象存储,例如 AWS S3 或兼容设备,且在存储桶上启用了对象锁。大多数 S3 提供程序需要对象版本控制才能使对象锁正常运行,而某些提供程序仅允许在存储桶创建期间使用对象锁。

  • 标准备份要求,例如在适当节点上启用备份的MongoDB 助手以及用于时间点恢复 (PITR) 的 oplog (操作日志)存储。

重要

不可变的 S3 快照仅保护快照数据。用于 PITR 的 oplog 切片继续使用您配置的oplog存储,该存储不支持对象锁。对 oplog 使用启用了对象锁的存储桶可能会导致oplog删除路径失败。

规划不可变 S3 快照时,请考虑以下事项:

  • 没有追溯不变性。启用不可变备份后, Ops Manager仅使用对象锁保护写入存储桶的快照。 Ops Manager不会应用现有快照对象。

  • 对象锁配置。 Ops Manager不为不支持对象锁的 S3 存储桶提供不变性。您必须单独在存储桶上配置对象锁。在Ops Manager中配置对象锁设置或在创建存储桶后更新存储桶设置不会在存储桶上启用对象锁。

  • 不会自动迁移现有数据。通过在 S3 存储之间迁移备份功能,您可以更改备份作业用于将来快照的 S3 快照存储。它不会在存储桶之间复制或移动现有快照数据。

  • 托管存储上的保留和对象锁。当快照根据备份作业保留策略过期时, Ops Manager会停止公开快照并尝试删除相关对象。只有在对象锁定保留期到期后, Ops Manager才能删除对象。

  • 导入存储上的保留。 Ops Manager从不删除导入存储中的数据。保留只影响Ops Manager中的元数据可见性。

要配置不可变的 S3 快照,请完成以下任务:

  1. 在Ops Manager中启用不可变备份。

  2. 创建启用对象锁的 S3 存储桶。

  3. 在Ops Manager中配置新的 S3快照存储。

  4. 将现有备份作业切换到不可变的 S3存储。

Ops Manager中的功能标志控制不可变备份。在配置 S3快照存储之前,必须启用此标志。

1

在Ops Manager托管上,打开配置文件。示例,conf-mms.properties

2

添加或更新以下属性:

brs.immutableBackupEnabled=true

此标志可为启用对象锁的存储桶支持的存储启用 S3快照不变性。

3

重新启动Ops Manager以使配置更改生效。

1

在 S3 或 S3 兼容的对象存储系统中,创建一个专用于不可变MongoDB备份的新存储桶。

2

在创建存储桶期间启用对象锁。大多数 S3 提供程序都需要对象版本控制才能使对象锁发挥作用。

3

在对象存储中配置默认保留模式和期限。

注意

您无法在Ops Manager中为现有 S3快照存储启用对象锁。如果您已使用 S3 存储桶进行备份但需要不可变快照,请创建一个启用了对象锁的新存储桶并配置新的 S3快照存储。

1

在Ops Manager中,创建一个新的 S3快照存储,指向启用了对象锁的存储桶。

2

根据 S3提供商的要求,指定存储桶名称、端点、地区和凭证。确保Ops Manager中的对象锁定设置与 S3 存储桶上的设置匹配。

3

当您保存存储时, Ops Manager会自动验证连接。

此快照存储用作不可变快照的目标。 Ops Manager会将使用此存储的备份的快照块和元数据写入存储桶。

注意

您仍然需要一个MongoDB实例来充当Ops Manager操作的元数据存储。

对于要使用不可变快照保护的每个备份作业:

1

确认作业处于活动状态并使用 S3 作为其快照存储类型。

2

使用 Admin UI 或备份API将备份作业S3快照存储ID更新为新的不可变 S3存储。 Ops Manager将此分配存储在备份作业文档中。

3

更改存储后, Ops Manager会将下一个快照安排为新存储上的完整快照。任何进行中的快照都会针对原始存储继续进行。 Ops Manager强制以下快照成为新存储上的完整快照。

当您切换商店时:

  • 现有快照保留在旧存储中。 Ops Manager不会移动切换之前拍摄的快照。根据您配置的保留策略,它们保留在原始 S3 存储桶中并从该存储中恢复,直到它们过期。

  • 新存储上的第一个快照已满。这ACID 一致性保证Ops Manager将该快照的所有数据块存储在单个 S3 快照存储中。每次恢复只从一个存储中获取数据。

  • 后续快照是增量的。新存储上第一个完整快照之后的Atlas 备份快照使用增量备份行为。

如果需要从包含不可变快照和备份元数据的预先存在的 S3 存储桶中恢复数据,则可以将这些快照导入到Ops Manager部署中。将此工作流程用于灾难恢复场景,例如在重建Ops Manager后恢复备份。

重要

导入的快照仅用于一次性恢复操作。 Ops Manager不管理导入快照的生命周期,也不将其包含在活动备份计划中。

1

在Ops Manager中,将存储桶注册为导入快照存储。

2

运行快照导入工作流程以扫描存储桶、验证元数据并在目标项目中注册可用快照。

3

导入快照后,它们在项目中显示为一个独立的集群,与具有活动备份计划的集群分开。您可以使用这些快照进行恢复操作。

Ops Manager从不删除或整理导入的存储中的数据。您可以在对象存储层控制导入的快照对象的生命周期。

时点恢复(PITR) 将基线快照与存储在oplog存储中的oplog数据相结合。不可变快照仅影响基线快照组件:

  • 当您切换到不可变的 S3快照存储时,PITR 会继续使用现有快照和oplog数据。旧快照保留在其原始存储中,并且oplog存储配置不会更改。

  • 在新存储上完成第一个完整不可变快照后,PITR 可以使用该快照作为基准,并继续跟踪已配置oplog存储中的 oplog。

  • PITR 不适用于导入的快照。您只能将导入的快照恢复到Ops Manager创建快照时的确切点。

当您切换快照存储时,不可变的 S3 快照不会引入额外的数据丢失情况。每个快照都从单个存储中恢复,因此恢复逻辑不需要为一个快照使用来自多个存储桶的数据。

  • 所有现有快照都保留在原始 S3存储中,并且可以完全恢复。

  • PITR 根据最近完成的快照和oplog数据进行工作。

  • Ops Manager将正在进行的新存储快照标记为失败或不完整,并且不会将其用于恢复。

  • 原始存储中的最后一个成功快照仍然是最新的可恢复快照。

  • Ops Manager和集群恢复后, Ops Manager会在下一个快照窗口将新的完整快照计划到不可变存储。

由于新存储上的第一个快照始终是完整快照,并且每个快照都从单个存储中恢复,因此恢复逻辑不依赖于为单个快照混合来自多个 S3 存储桶的数据。

后退

直接 S3 恢复