众所周知,云计算的出现改变了IT世界的格局,更低廉的成本和更加易于扩展的特点都成为了传统软件行业改变的动力。而阿里云在此基础上提供了更加完善的服务,更高的可靠性,以及更加低廉的价格,成为了业界值得优先考虑的品牌。
如果您有成千上万的文档、图片、音视频文件需要上传到OSS上来,或者从其他的云存储产品上迁移过来,如何才能应对规模如此庞大的数据迁移,如何处理迁移过程中业务上的新增数据?
OSS有一套完整的无缝数据迁移方案可以帮您解决这些问题。
整个迁移过程分为下面几个步骤:
如上所说,我们有两种方式Bucket回源属性可以做到无缝迁移,即镜像和重定向:
上图是“利用镜像做无缝数据迁移示意图”,图中带有数字标记的箭头就是数据访问miss时的数据流向。在镜像回源的方式下用户访问OSS如果Object miss,那么OSS会替用户从源站读回文件,并写入到OSS,这样一来,如果用户的请求可以遍历所有的文件,那么这个异步的迁移过程其实是可以省略掉的(当然,这也会带来一些新的问题,后文我们会提到)。
上图是“利用重定向做无缝迁移示意图”,图中有数字标记的箭头就是数据访问miss时的数据流向。在配置重定向回源的方式下,如果Object miss,那么需要您的客户端去源站去读取一次数据。这就要求您的客户端要能理解http协议中的3xx重定向语义(OSS的重定向回源是通过3xx重定向来实现的)。需要注意的是,在这种回源方式下,OSS不能自动帮用户搬迁数据,用户的数据必须依靠迁移工具/服务来异步的搬迁到OSS上面来。
纵观上面的两张图,在您配置Bucket的回源属性之后,再开启数据迁移过程,在业务数据大部分都搬迁到OSS之后,再将整个业务的读写全部切换到OSS。这个时候回源功能就能帮您处理那些尚未搬迁过来的数据,无需停服,无缝衔接。等到所有的数据都搬迁完毕之后就可以关闭回源,停掉数据迁移,整个向OSS迁移数据的方式就完成了。
本部分主要包含Bucket回源属性的配置,以及迁移工具/服务的使用方法。
要配置Bucket的回源属性,要在Bucket属性的“回源设置”里面添加规则。如下图:
这里的规则分为两种:镜像回源和重定向回源。
下图为如何配置镜像回源:
图中可以看到镜像方式只支持http code设置为404这种方式,也就是我们所说的访问Object miss的情况下才会去做镜像。
下图为如何配置重定向回源:
重定向回源中回源条件中的http code可以设置400-599之间的错误码,但是在用回源实现无缝迁移的时候这个地方要填成404。其他的选项依照您的实际情况使用。
支持将本地、OSS、七牛、百度对象存储、金山对象存储的文件同步到指定OSS Bucket上
支持存量数据同步(允许指定只同步某个时间点之后的文件)
支持增量数据自动同步
支持断点续传
支持上传/下载流量控制
支持并行list和并行数据下载/上传
迁移工具Linux平台使用说明
迁移工具Windows平台使用说明如果要迁移的文件较少,建议配置镜像回源的方式,按照文件列表逐一访问OSS,OSS会把所有的文件从源站读取出来,回写到您的Bucket,这种方式是一个最简单的迁移方案。
如果需要迁移的文件量比较大,或者文件的大小比较大,那么由于镜像回源的方式带宽有限,依靠这种方式来搬迁数据可能会花费比较长的时间,影响您的使用体验,建议使用“重定向回源+迁移工具/服务”的方式,如果Object miss,直接让客户端从源站读取数据,由迁移工具/服务来异步的搬迁数据,不影响您的服务。
如果您的业务对延迟比较敏感,建议在大部分数据迁移完成之后再将业务切到OSS上来,否则像文章开头的两张图中所示,如果数据访问miss的话,用户的请求都会经过一个比直接访问OSS上的Object更长的过程,这一过程会增加访问延迟,可能会降低您的用户体验,所以这个重定向或者镜像的数据比例要控制的尽可能小一些。