跨区域复制
使用场景
跨区域复制能够为用户提供跨区域数据容灾的能力,满足用户数据复制到异地进行备份的需求。
跨区域复制是指通过创建跨区域复制规则,将一个桶(源桶)中的数据自动、异步地复制到不同区域的另外一个桶(目标桶)中,源桶和目标桶必须属于同一个账号,暂不支持跨账号复制。
在配置跨区域复制规则时,您可以按前缀匹配请求复制部分对象,也可以请求复制桶中的所有对象。复制到目标桶的对象是源桶中对象的精确副本。它们具有相同的对象名称和元数据,包括:对象内容、大小、最后修改时间、创建者、版本号、用户定义的元数据以及ACL。默认情况下复制对象的存储类别,与源对象保持一致。您也可以为复制对象指定一个存储类别。
- 合规性要求
虽然OBS默认跨多个地理位置较远的可用区存储数据,但是合规性要求所规定的数据存储距离可能更远。通过跨区域复制,可以在远距离OBS区域之间复制数据以满足这些合规性要求。
- 最大限度减少延迟
客户需要在多地访问相同的OBS资源。为了最大限度缩短访问对象时的延迟,您可以使用跨区域复制,在离客户较近的区域中创建对象副本。
- 数据复制
- 数据备份与容灾
出于对数据安全性以及可用性的考虑,您希望对所有写入OBS的数据,都在另一个区域的数据中心显式地创建一个备份,以防止在数据发生不可逆损毁时,有安全、可用的备份数据。
- 易维护
您在两个不同OBS区域中具有分析同一组对象的计算集群。您可能选择在这些区域中维护对象副本。
OBS帮助您将存储于华为云对象存储的业务数据复制到指定Region,但华为云并不感知您的数据的具体内容,也不对您使用本服务的合法合规性负责。如果您的复制涉及跨境传输,请确保您使用本服务符合法律法规的要求。
复制的内容
启用跨区域复制规则后,符合以下条件的对象会复制到目标桶中:
- 新上传的对象(归档存储或深度归档存储对象除外)。
- 有更新的对象,比如对象内容有更新或者已复制成功的对象ACL有更新。
- 桶中的历史对象(需要开启“同步历史对象”功能,且归档存储或深度归档存储对象除外)。
例如,7月28号,源桶开启了跨区域复制,上传了对象A和B,此时目标桶同步复制了A和B。7月29号,源桶上传了对象C,这个时候目标桶只会复制C,不会再次复制A和B。7月30号,源桶修改了对象A,目标桶只会复制A,不会再次复制B和C。
跨区域复制不支持SSE-C加密的对象复制。
约束与限制
桶版本限制
- 桶版本号为3.0及以上的桶支持跨区域复制功能。桶版本号可以在OBS管理控制台上,进入桶概览页后,在“基本信息”中查看。
源桶和目标桶状态限制:
- 源桶和目标桶的多版本控制状态必须保持一致。
功能限制:
- 源桶中归档存储或深度归档存储类型的对象不支持跨区域复制到目标桶。
- 如果目标桶所属区域不支持存储类别,则复制后对象的存储类别均为标准存储类型。
- OBS目前仅支持一个源桶同时复制到一个目标桶,不支持一个源桶同时复制到多个目标桶。允许修改目标桶,但修改目标桶会更改所有已创建规则的目标桶。
- 开启跨区域复制功能后,源桶将不再支持追加写对象。
- 同一个源桶只能创建一条复制所有对象的跨区域复制规则,或多条(最多100条)按前缀匹配的跨区域复制规则。
时间限制:
- 跨区域复制不保证时效性,配置跨区域复制规则后,可能会出现对象不会立即进行复制的情况,请耐心等待。
区域限制:
- 源桶和目标桶必须属于不同的区域,同区域的桶不能进行数据复制。
- 跨区域复制支持的区域情况如#obs_41_0034/fig1152534613411所示。√表示两个区域可连通,x表示两个区域不可连通。
图2 跨区域复制支持区域
同步历史对象相关:
- 启用跨区域复制功能之前上传的对象,默认不会被复制到目标桶,除非开启了“同步历史对象”功能。
- 启用历史对象复制后,修改跨区域复制配置可能导致历史对象不复制,建议在历史对象复制完成前不要改变该桶的跨区域复制配置。
多版本控制相关:
- 当源桶、目标桶多版本控制处于开启或暂停状态,且跨区域复制规则处于开启状态时,在源桶中不指定版本删除对象,目标桶会同步删除此对象。
- 在启用跨区域复制过程中,如果您修改目标桶的多版本控制状态,会导致对象复制失败;如果您尝试修改源桶多版本控制状态,必须先删除复制配置,然后才能进行修改。
权限相关:
- 源桶或目标桶都需要一直保证桶拥有者具有读写权限,以确保数据能够成功同步。如果源桶或目标桶的读写权限错误,导致系统没有读源对象或者写目标对象的权限,这种对象将一直复制不成功,即使将权限修改正确后,也不会重新复制。
- 不建议您对目标桶中的副本对象进行删除、覆盖或者修改ACL操作,此类操作可能导致目标桶中对象最新版本或者对象访问控制权限与源区域不一致。
- 如果已复制成功的源对象的ACL发生变化,在该对象匹配的复制策略未发生变化的情况下,这些变化会同步复制到对象副本,但已复制成功的历史对象不会同步源对象的ACL变化。
其他约束与限制
- 源桶中的对象只能被复制到一个目标桶中,且复制过去的对象不能再被复制到另外一个目标桶。例如有两个不同区域的桶A和桶B,桶A数据可以复制到桶B中,桶B数据也可以复制到桶A中,但桶B中存储的桶A数据的副本不会复制,同理桶A中存储的桶B数据的副本也不会复制。
- 在启用跨区域复制过程中,如果您删掉OBS云服务委托,会导致对象复制状态为FAILED。
使用方式
OBS支持通过控制台、API、SDK、obsutil方式配置跨区域复制。
支持的使用方式 |
参考文档 |
---|---|
控制台 |
|
SDK |
OBS支持多种语言SDK,请从SDK概述页面选择进入对应的开发指南查阅。 |
API |
|
obsutil |