更新时间:2024-04-16 GMT+08:00

跨区域复制简介

跨区域复制能够为用户提供跨区域数据容灾的能力,满足用户数据复制到异地进行备份的需求。

跨区域复制是指通过创建跨区域复制规则,将一个桶(源桶)中的数据自动、异步地复制到不同区域的另外一个桶(目标桶)中,源桶和目标桶必须属于同一个账号,暂不支持跨账号复制。

在配置跨区域复制规则时,您可以按前缀匹配请求复制部分对象,也可以请求复制桶中的所有对象。复制到目标桶的对象是源桶中对象的精确副本。它们具有相同的对象名称和元数据,包括:对象内容、大小、最后修改时间、创建者、版本号、用户定义的元数据以及ACL。

图1 跨区域复制示意图

复制的内容

启用跨区域复制规则后,符合以下条件的对象会复制到目标桶中:

  • 新上传的对象。
  • 有更新的对象,比如对象内容有更新,或者某一对象跨区域复制成功后源桶对象ACL设置有更新。
  • 桶中的历史对象(需要开启“同步历史对象”功能)。

适用场景

  • 客户需要在多地访问相同的OBS资源。为了最大限度缩短访问对象时的延迟,您可以使用跨区域复制,在离客户较近的区域中创建对象副本。
  • 由于业务原因,您需要将OBS数据从一个区域的数据中心迁移至另一个区域的数据中心。
  • 出于对数据安全性以及可用性的考虑,您希望对所有写入OBS的数据,都在另一个区域的数据中心显式地创建一个备份,以防止在数据发生不可逆损毁时,有安全、可用的备份数据。

约束与限制

在使用跨区域复制过程中,存在如下的约束与限制:

  • 桶版本号为3.0及以上的桶支持跨区域复制功能。桶版本号可以在OBS管理控制台上,进入桶概览页后,在“基本信息”中查看。
  • 启用跨区域复制功能之前上传的对象,默认不会被复制到目标桶,除非开启了“同步历史对象”功能。
  • 源桶和目标桶必须属于不同的区域,同区域的桶不能进行数据复制。
  • 源桶和目标桶的多版本控制状态必须保持一致。
  • 源桶中的对象只能被复制到一个目标桶中,且复制过去的对象不能再被复制到另外一个目标桶。例如有两个不同区域的桶A和桶B,桶A数据可以复制到桶B中,桶B数据也可以复制到桶A中,但桶B中存储的桶A数据的副本不会复制,同理桶A中存储的桶B数据的副本也不会复制。
  • 当且仅当源桶、目标桶多版本控制状态开启,在源桶中不指定版本删除对象时,目标桶会同步删除此对象;除此之外,删除源桶对象时,目标桶默认不会同步删除操作。
  • 在启用跨区域复制过程中,如果您修改目标桶的多版本控制状态,会导致对象复制失败;如果您尝试修改源桶多版本控制状态,必须先删除复制配置,然后才能进行修改。
  • 源桶或目标桶都需要一直保证桶拥有者具有读写权限,以确保数据能够成功同步。如果源桶或目标桶的读写权限错误,导致系统没有读源对象或者写目标对象的权限,这种对象将一直复制不成功,即使将权限修改正确后,也不会重新复制。
  • 同一个源桶只能创建一条复制所有对象的跨区域复制规则,或多条(最多100条)按前缀匹配的跨区域复制规则。
  • OBS目前仅支持一个源桶同时复制到一个目标桶,不支持一个源桶同时复制到多个目标桶。允许修改目标桶,但修改目标桶会更改所有已创建规则的目标桶。
  • 在启用跨区域复制过程中,如果您删掉OBS云服务委托,会导致对象复制状态为FAILED。
  • 不建议您对目标桶中的副本对象进行删除、覆盖或者修改ACL操作,此类操作可能导致目标桶中对象最新版本或者对象访问控制权限与源区域不一致。
  • 启用历史对象复制后,修改跨区域复制配置可能导致历史对象不复制,建议在历史对象复制完成前不要改变该桶的跨区域复制配置。
  • 开启跨区域复制功能后,源桶将不再支持追加写对象。
  • 如果已经设置过桶的跨集群或跨区域复制配置,再次设置将会覆盖已有的复制策略。
  • 如果已复制成功的源对象的ACL发生变化,在该对象匹配的复制策略未发生变化的情况下,这些变化会同步复制到对象副本,但已复制成功的历史对象不会同步源对象的ACL变化。
  • 配置了2AZ容灾功能的桶,不支持另外配置跨区域复制规则;已经配置跨区域复制规则的桶,也不支持2AZ容灾。
  • 在主区域故障期间不支持查询桶、创建桶或者删除桶。