Ops Manager可以将快照数据作为数据块写入 S3 存储桶并跟踪Ops Manager应用程序数据库中的元元数据,从而将快照存储在 S3 或 S3 兼容的对象存储中。通过不可变的 S3 快照, Ops Manager与 S3 对象锁或等效项集成,以提供以下功能:
快照数据和备份元数据一起存储在 S3 存储桶中。
保护快照对象不被删除或修改,直到定义的保留期到期(由对象存储强制执行)。
将快照从启用对象锁的存储桶导入到新的或重建的Ops Manager部署中,以进行灾难恢复或迁移。
使用此功能可保护备份免遭恶意或意外删除,例如勒索软件攻击或操作符错误。您可以仅使用存储在 S3 中的内容在新的Ops Manager实例中恢复备份。
重要
此功能需要Ops Manager 8.0.19 或更高版本。
不可变 S3Atlas 备份快照的工作原理
使用启用了对象锁的存储桶配置 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删除路径失败。
Considerations
规划不可变 S3 快照时,请考虑以下事项:
没有追溯不变性。启用不可变备份后, Ops Manager仅使用对象锁保护写入存储桶的快照。 Ops Manager不会应用现有快照对象。
对象锁配置。 Ops Manager不为不支持对象锁的 S3 存储桶提供不变性。您必须单独在存储桶上配置对象锁。在Ops Manager中配置对象锁设置或在创建存储桶后更新存储桶设置不会在存储桶上启用对象锁。
不会自动迁移现有数据。通过在 S3 存储之间迁移备份功能,您可以更改备份作业用于将来快照的 S3 快照存储。它不会在存储桶之间复制或移动现有快照数据。
托管存储上的保留和对象锁。当快照根据备份作业保留策略过期时, Ops Manager会停止公开快照并尝试删除相关对象。只有在对象锁定保留期到期后, Ops Manager才能删除对象。
导入存储上的保留。 Ops Manager从不删除导入存储中的数据。保留只影响Ops Manager中的元数据可见性。
配置不可变的 S3Atlas 备份快照
要配置不可变的 S3 快照,请完成以下任务:
在Ops Manager中启用不可变备份。
创建启用对象锁的 S3 存储桶。
在Ops Manager中配置新的 S3快照存储。
将现有备份作业切换到不可变的 S3存储。
启用不可变备份
Ops Manager中的功能标志控制不可变备份。在配置 S3快照存储之前,必须启用此标志。
创建启用对象锁的 S3 存储桶
注意
您无法在Ops Manager中为现有 S3快照存储启用对象锁。如果您已使用 S3 存储桶进行备份但需要不可变快照,请创建一个启用了对象锁的新存储桶并配置新的 S3快照存储。
在Ops Manager中配置新的 S3 快照存储
此快照存储用作不可变快照的目标。 Ops Manager会将使用此存储的备份的快照块和元数据写入存储桶。
注意
您仍然需要一个MongoDB实例来充当Ops Manager操作的元数据存储。
将现有备份作业切换到不可变的 S3 存储
对于要使用不可变快照保护的每个备份作业:
当您切换商店时:
现有快照保留在旧存储中。 Ops Manager不会移动切换之前拍摄的快照。根据您配置的保留策略,它们保留在原始 S3 存储桶中并从该存储中恢复,直到它们过期。
新存储上的第一个快照已满。这ACID 一致性保证Ops Manager将该快照的所有数据块存储在单个 S3 快照存储中。每次恢复只从一个存储中获取数据。
后续快照是增量的。新存储上第一个完整快照之后的Atlas 备份快照使用增量备份行为。
导入Atlas 备份快照以进行灾难恢复
如果需要从包含不可变快照和备份元数据的预先存在的 S3 存储桶中恢复数据,则可以将这些快照导入到Ops Manager部署中。将此工作流程用于灾难恢复场景,例如在重建Ops Manager后恢复备份。
重要
导入的快照仅用于一次性恢复操作。 Ops Manager不管理导入快照的生命周期,也不将其包含在活动备份计划中。
Ops Manager从不删除或整理导入的存储中的数据。您可以在对象存储层控制导入的快照对象的生命周期。
与 PITR 交互
时点恢复(PITR) 将基线快照与存储在oplog存储中的oplog数据相结合。不可变快照仅影响基线快照组件:
当您切换到不可变的 S3快照存储时,PITR 会继续使用现有快照和oplog数据。旧快照保留在其原始存储中,并且oplog存储配置不会更改。
在新存储上完成第一个完整不可变快照后,PITR 可以使用该快照作为基准,并继续跟踪已配置oplog存储中的 oplog。
PITR 不适用于导入的快照。您只能将导入的快照恢复到Ops Manager创建快照时的确切点。
故障场景和恢复
当您切换快照存储时,不可变的 S3 快照不会引入额外的数据丢失情况。每个快照都从单个存储中恢复,因此恢复逻辑不需要为一个快照使用来自多个存储桶的数据。
在新存储上创建第一个快照之前崩溃
所有现有快照都保留在原始 S3存储中,并且可以完全恢复。
PITR 根据最近完成的快照和oplog数据进行工作。
在新存储上创建第一个完整快照期间发生崩溃
Ops Manager将正在进行的新存储快照标记为失败或不完整,并且不会将其用于恢复。
原始存储中的最后一个成功快照仍然是最新的可恢复快照。
Ops Manager和集群恢复后, Ops Manager会在下一个快照窗口将新的完整快照计划到不可变存储。
由于新存储上的第一个快照始终是完整快照,并且每个快照都从单个存储中恢复,因此恢复逻辑不依赖于为单个快照混合来自多个 S3 存储桶的数据。