跨区域复制(Cross-Region Replication)是跨不同OSS数据中心(地域)的存储空间(Bucket)自动、异步(近实时)复制文件(Object),它会将Object的创建、更新和删除等操作从源存储空间复制到不同区域的目标存储空间。
跨区域复制功能满足Bucket跨区域容灾或用户数据复制的需求。目标Bucket中的Object是源Bucket中Object的精确副本,它们具有相同的Object名、版本信息、元数据以及内容,例如创建时间、拥有者、用户定义的元数据、Object ACL、Object内容等。
操作方式
OSS目前支持通过OSS管理控制台和Java SDK配置跨区域复制规则:
使用场景
您可能基于各种原因对Bucket配置跨区域复制,这些原因包括:
合规性要求
虽然OSS默认对每个存储的Object在物理盘上有多份副本,但合规性要求所规定的数据需要跨一定距离保存一份副本。通过跨区域复制,可以在远距离的OSS数据中心之间复制数据以满足这些合规性要求。
最大限度减少延迟
客户处于两个地理位置。为了最大限度缩短访问Object时的延迟,可以在地理位置与用户较近的OSS数据中心维护Object副本。
数据备份与容灾
您对数据的安全性和可用性有极高的要求,对所有写入的数据,都希望在另一个数据中心显式地维护一份副本,以备发生特大灾难(如地震、海啸等)导致一个OSS数据中心损毁时,还能启用另一个OSS数据中心的备份数据。
数据迁移
由于业务原因,需要将数据从OSS的一个数据中心迁移到另一个数据中心。
操作原因
您在两个不同数据中心中拥有分析同一组Object的计算集群。您可以选择在两个不同区域中维护Object副本。
支持特性
跨区域复制支持异名Bucket的同步。如果您拥有的两个Bucket分属不同地域,可以通过配置同步规则,将源Bucket的数据实时同步到目标Bucket。目前支持以下特性:
实时同步数据
对于数据的增加、删除、修改能够实时监控并同步到目标地域Bucket。对于2 MB以下文件,能够做到分钟级别信息同步,保证两边数据的最终一致。
历史数据迁移
迁移历史数据,让源Bucket中历史数据也能进行同步,形成相同的两份数据。
实时获取同步进度
能够针对实时同步数据展示最近同步的时间节点,针对历史数据的迁移展示迁移的百分比。
互通同步
您可以配置Bucket A到Bucket B的同步,然后配置Bucket B到Bucket A的同步,实现两个Bucket之间的互通同步。
版本控制
如果开启版本控制,保证两边版本信息最终一致。如果数据同步方式为写(增、改)同步,则源Bucket指定版本删除的操作不会同步到目标Bucket,源Bucket创建的删除标记会同步到目标Bucket。
传输加速
OSS支持通过传输加速功能提高中国内地各地域与非中国内地各地域之间进行跨区域复制时的数据传输速度。传输加速功能详情请参见
说明 中国内地是指除中国香港地域以外的其他中国地域。
复制加密数据
支持复制未加密的Object和使用SSE-KMS、SSE-OSS方式进行服务器端加密的Object。详情请参见
使用限制
使用跨区域复制时,有如下限制:
地域限制
开启数据同步的两个Bucket必须分属两个地域,同地域的Bucket之间不能进行数据同步。
中国内地各地域与非中国内地各地域之间进行跨区域复制时,必须开启传输加速功能。
目前仅在以下地域进行跨区域复制时支持设置标签规则:
源地域为华东1(杭州),目标地域为除华东1(杭州)以外的任意地域。
源地域为澳大利亚(悉尼),目标地域为除中国内地和澳大利亚(悉尼)以外的任意地域。
相关费用
开启跨区域复制功能后,主从两个区域的Bucket在复制文件时会产生跨区域间的数据流量,OSS会收取跨区域复制流量费用。详情请参见
每同步1个Object,OSS会累计计算请求次数并进行按量计费。详情请参见
若开启传输加速功能,会额外产生传输加速费用。详情请参见
复制时间
跨区域复制采用异步(近实时)复制,数据复制到目标Bucket需要一定的时间,通常几分钟到几小时不等,取决于数据的大小。
操作限制
开启数据同步的两个Bucket必须分属两个地域,同地域的Bucket之间不能进行数据同步。
仅允许同时处于非版本化或启用版本控制状态的两个Bucket开启数据同步。
处于同步状态下的两个Bucket不允许改变其版本控制状态。
对于处于同步状态的两个Bucket,由于您可以同时操作这两个Bucket,源Bucket复制过去的Object可能存在覆盖目标Bucket中同名Object的风险。
同步的两个Bucket无法再与其他Bucket建立同步关系。例如Bucket A开启了到Bucket B的同步,那么您就不能再为Bucket A开启到Bucket
C的同步,除非先删除Bucket A到Bucket B的同步配置。同理,若Bucket A开启了到Bucket B的同步,此时再开启Bucket C到Bucket
B的同步也是不允许的。