跨区域复制(Cross-Region Replication)是跨不同OSS数据中心(地域)的存储空间(Bucket)自动、异步(近实时)复制文件(Object),它会将Object的创建、更新和删除等操作从源存储空间复制到不同区域的目标存储空间。

跨区域复制功能满足Bucket跨区域容灾或用户数据复制的需求。目标Bucket中的对象是源Bucket中对象的精确副本,它们具有相同的对象名、版本信息、元数据以及内容,例如创建时间、拥有者、用户定义的元数据、Object ACL、对象内容等。支持复制未加密的对象和使用SSE-KMS、SSE-OSS方式进行服务器端加密的对象,详情请参见服务器端加密

说明
  • 开启跨区域复制功能后,主从两个区域的Bucket在复制文件时会产生跨区域间的数据流量,OSS会收取跨区域复制流量费用。每同步1个Object,OSS会累计计算请求次数并进行按量计费。目前跨区域复制流量仅支持按量付费,不提供资源包。详情请参见计量项和计费项
  • 目前支持海外各地域之间、中国香港与海外各地域之间、中国内地各地域之间进行跨区域复制。
  • 目前海外各地域(除新加坡)之间、中国香港与海外各地域(除新加坡)之间进行跨区域复制时,支持使用BYOK密钥加密复制的对象。

使用场景

您可能基于各种原因对Bucket配置跨区域复制,这些原因包括:

  • 合规性要求:虽然OSS默认对每个存储的对象在物理盘上有多份副本,但合规性要求所规定的数据需要跨一定距离保存一份副本。通过跨区域复制,可以在远距离的 OSS 数据中心之间复制数据以满足这些合规性要求。
  • 最大限度减少延迟:客户处于两个地理位置。为了最大限度缩短访问对象时的延迟,可以在地理位置与用户较近的 OSS 数据中心中维护对象副本。
  • 数据备份与容灾:您对数据的安全性和可用性有极高的要求,对所有写入的数据,都希望在另一个数据中心显式地维护一份副本,以备发生特大灾难,如地震、海啸等导致一个OSS数据中心损毁时,还能启用另一个OSS数据中心的备份数据。
  • 数据复制:由于业务原因,需要将数据从OSS的一个数据中心迁移到另一个数据中心。
  • 操作原因:您在两个不同数据中心中拥有分析同一组对象的计算集群。您可以选择在两个不同区域中维护对象副本。

操作方式

操作方式 说明
控制台 Web应用程序,直观易用
Java SDK 丰富、完整的各类语言SDK demo

使用说明

跨区域复制支持异名Bucket的同步。如果您拥有的两个Bucket分属不同地域,可以通过配置同步规则,将源Bucket的数据实时同步到目标Bucket。目前支持以下特性:

  • 实时同步数据:数据实时同步,对于数据的增加、删除、修改能够实时监控同步到目标地域Bucket。对于2MB文件,能够做到分钟级别信息同步,保证两边数据的最终一致。
  • 历史数据迁移:迁移历史数据,让源Bucket中历史数据也能进行同步,形成相同的两份数据。
  • 实时获取同步进度:能够针对实时同步数据展示最近同步的时间节点,针对历史数据的迁移展示迁移的百分比。
  • 互通同步:您可以配置Bucket A到Bucket B的同步,然后配置Bucket B到Bucket A的同步,实现两个Bucket之间的互通同步。
  • 版本控制:如果开启版本控制,保证两边版本信息最终一致。如果数据同步方式为写同步(增/改),则源Bucket指定版本删除的操作不会同步到目标Bucket,源Bucket创建的删除标记会同步到目标Bucket。
  • KMS密钥加密:如果选择KMS密钥加密,OSS将使用指定的CMK(Customer Master Key)生成不同的密钥来加密复制到目标Bucket的Object,并将加密Object的CMK ID记录到Object的元数据中,具有解密权限的用户下载对象时会自动解密。

限制说明

  • 对于处于同步状态的两个Bucket,由于您可以同时操作这两个Bucket,源Bucket复制过去的Object可能存在覆盖目标Bucket中同名Object的风险。
  • 跨区域复制采用异步(近实时)复制,数据复制到目标Bucket需要一定的时间,通常几分钟到几小时不等,取决于数据的大小。
  • 开启跨区域同步的条件是同步的两个Bucket没有开启与其他Bucket的同步配置,同时不能被其他Bucket同步。例如Bucket A开启了到Bucket B的同步,那么您就不能再为Bucket A开启到Bucket C的同步,除非先删除Bucket A到Bucket B的同步配置。同理,若Bucket A开启了到Bucket B的同步,此时再开启Bucket C到Bucket B的同步也是不允许的。
  • 开启数据同步的两个Bucket必须分属两个地域,同地域的Bucket之间不能进行数据同步。
  • 仅允许同时处于非版本化或启用版本控制状态的两个Bucket开启数据同步。
  • 处于同步状态下的两个Bucket不允许改变其版本控制状态。