配置备份
备份的先决条件
版本控制功能
必须启用版本控制,才能用 BackupPolicy
对桶进行配置。 有关如何配置版本控制的更多信息,请参阅版本控制 对象。
授权备份
您需要在源数据桶和目标之间创建 Service2Service 授权策略。
cloud-object-storage.backup-vault.sync
操作需要获得 BackupVault
的许可。 它是通过使用服务对服务策略授予的,即使备份桶和备份库在同一个账户或 serviceInstance 中,也必须进行配置。
有关配置服务到服务权限的更多详细信息,请参阅 《开始使用 IAM 和 Identity and Access Management 操作》。
为水桶添加备份策略
备份的配置方式是将 BackupPolicy
添加到备份桶中。 在任何时间点,水桶最多可以有三个 BackupPolicies
,每个 BackupPolicy
针对一个独特的 BackupVault
。 一旦水桶上设置了 BackupPolicy
,就必须先删除该策略,然后才能删除水桶。
创建备份策略
BackupPolicy
的创建是通过 POST /v1/buckets/{bucket_name}/backup_policies
请求完成的。 该请求要求具体说明以下内容:
元素 | 描述 |
---|---|
policy_name |
BackupPolicy 的名称,用于跟踪 BackupPolicy 和由此产生的 RecoveryRange。 |
target_backup_vault_crn |
应将备份数据写入的 BackupVault 的 CRN。BackupVaults 可以位于相同或不同的账户或 IBM Cloud Object Storage 区域内。 |
backup_type |
BackupPolicy 。 目前只支持连续备份 |
initial_retention |
在新创建的 RecoveryRange 上设置的初始保留配置。 创建保留配置后,可直接在 RecoveryRange 上进行控制,与使用 initial_retention 配置的初始设置无关。 |
当 BackupPolicy
配置到一个数据桶时,IBM Cloud Object Storage 就会启动一个一次性的过程,将当前所有对象版本从数据桶同步到 BackupVault
。 在此过程完成之前,BackupVault
上是看不到 RecoveryRange
的。 由于要同步的对象数量可能很大,因此这一初始化操作可能需要几个小时才能完成。
初始化完成后,写入数据桶的任何新数据都会同步到 RecoveryRange
,从而将时间范围向前扩展。 当 BackupPolicy
存在且同步操作成功时,就会出现这种情况。 同步操作的设计具有很强的弹性,在持续失败的同步操作触发 BackupPolicy
故障之前,会重试数天,之后将不再尝试同步操作。 用户必须监控同步操作是否出现故障,以帮助确保 BackupPolicy
不会进入故障状态。
您需要监控同步成功的备份策略
更新备份策略
备份策略一旦创建就不能修改。 对政策的任何更改都必须通过删除和重新创建政策来实现。 这触发了新恢复范围的创建。
删除或禁用备份策略
删除备份策略不会导致删除通过该备份策略创建的任何备份数据。
Monitoring
IBM Cloud Object Storage 用户可通过两种机制监控。BackupPolicies
监控备份策略
首选的方法是反省 BackupPolicy
的状况。 BackupPolicy 提供了与邮筒内容相关的更多详细信息。
示例请求
GET /buckets/myBucket/backup_policies HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
Host: config.cloud-object-storage.cloud.ibm.com
示例响应
{
"policy_name": "myBackupPolicy",
"initial_retention": {
"delete_after_days": 10
},
"backup_type": "continuous",
"policy_id": "44d3dd41-d616-4d25-911a-9ef7fbf28aef",
"policy_status": "pending",
"target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a1229395:1a0ec336-f391-4091-a6fb-5e084a4c56f4:backup-vault:backup-vault-name"
}
状态指示器 | 描述 |
---|---|
暂挂 | 已收到政策,并已开始对政策进行预处理。 |
初始化 | 正在对已有的对象版本进行初始同步。 在此状态下,响应包含一个 initial_sync_progress 条目,报告初始同步的完成百分比。 |
活动 | 策略已完成初始化,运行正常。 |
已降级 | 同步操作因服务器内部错误而失败,且无法通过任何用户操作进行修复。 如果这种状态持续存在,请联系支持部门。 |
需要采取的行动 | 同步操作因错误而失败,用户必须进行补救。 在此状态下,响应包含一个 error_cause 条目,报告出错原因。 |
失败 | 据观察,同步操作始终会失败,而且 IBM Cloud Object Storage 系统不会再重新尝试。 这是一种终端状态,表示 BackupPolicy 不再向 BackupVault 同步新数据。 要从这种状态恢复,用户必须删除 BackupPolicy 并重新创建。 |
什么是同步
以下内容同步到 BackupVault
:
- 在设置 BackupPolicy
- 在设置了 BackupPolicy
- 在设置了 BackupPolicy
- 在对象版本上设置对象标记
以下内容未同步到 BackupVault
:
- 桶配置(如加密、活动跟踪、权限等)
- 对象锁定、存档和对象-ACL 状态
- 生命周期政策触发的删除操作
- 版本删除操作(即删除特定版本)
- 使用 S3 复制时写入的对象
- 使用备份还原操作时写入的对象
- 同步时直接写入存档或存档的对象
- 使用 SSE-C 时加密的对象
版本删除互动
在启用版本管理后,S3 对象的 DELETE 操作是非破坏性操作,它会创建一个删除标记,成为对象当前的新版本。 之前的当前版本会变成保留在版本历史中的非当前版本。 备份支持删除标记的创建。
版本删除操作是一种 S3 对象 DELETE 操作,其中指定了 versionId。 这是一种破坏性操作,会从版本控制历史中删除对象版本。 备份为这些行动提供了有限的支持。
如果版本删除发生在尚未同步到 BackupVault, 的版本上,则 BackupPolicy
无法为对象创建后的任何时间点提供备份覆盖。 它会导致 BackupPolicy
失效。 要从这种情况下恢复,用户必须删除 BackupPolicy 并重新创建。
当前版本(即给定对象存在的最新版本)的版本删除操作不会同步到 BackupVault
,执行此操作后的任何时间点的还原操作都不会反映 version-delete
操作的结果。
对非当前版本(即版本历史中保留的版本)的版本删除操作可在已同步到 BackupVault
的版本上执行。 此类操作可在版本写入后等待足够的时间后进行。 通常不超过 1 小时,但如果 BackupPolicy
出现同步延迟(如 IAM 配置错误导致的延迟),时间可能会更长。 这些操作可以直接执行,也可以在使用 S3 生命周期过期策略时执行,该策略会在非当前版本超过一定天数后将其删除。
Object Storage 建议用户应通过自定义 IAM 角色授权访问源数据库,该角色不包括 或 操作,因为这些操作允许进行潜在有害的版本删除操作。cloud-object-storage.object.delete_version
cloud-object-storage.bucketput_lifecycle