OSS无缝数据迁移方案

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 背景 众所周知,云计算的出现改变了IT世界的格局,更低廉的成本和更加易于扩展的特点都成为了传统软件行业改变的动力。而阿里云在此基础上提供了更加完善的服务,更高的可靠性,以及更加低廉的价格,成为了业界值得优先考虑的品牌。 如果您有成千上万的文档、图片、音视频文件需要上传到OSS上来,或者从其他的云

背景

众所周知,云计算的出现改变了IT世界的格局,更低廉的成本和更加易于扩展的特点都成为了传统软件行业改变的动力。而阿里云在此基础上提供了更加完善的服务,更高的可靠性,以及更加低廉的价格,成为了业界值得优先考虑的品牌。
如果您有成千上万的文档、图片、音视频文件需要上传到OSS上来,或者从其他的云存储产品上迁移过来,如何才能应对规模如此庞大的数据迁移,如何处理迁移过程中业务上的新增数据?
OSS有一套完整的无缝数据迁移方案可以帮您解决这些问题。

方案

整个迁移过程分为下面几个步骤:

  • 配置Bucket回源属性,配置好数据在OSS读取miss之后回源的地址。配置好之后如果访问某Object miss的时候你的客户端可以根据OSS返回的302重定向去配置的地址读取文件。
  • 配置迁移工具,从源端向OSS迁移数据,这一步不影响您的业务,异步的从源站将数据搬迁到OSS。
  • 数据搬迁接近完成的时候,将业务上的读写从之前的源站切换到OSS。
  • 等待迁移工具从源搬迁完所有的老数据(这种场景下如果您的业务有对数据的覆盖写是需要注意的,可能会造成老数据覆盖新数据)

如上所说,我们有两种方式Bucket回源属性可以做到无缝迁移,即镜像和重定向:
oss_import_mirror

上图是“利用镜像做无缝数据迁移示意图”,图中带有数字标记的箭头就是数据访问miss时的数据流向。在镜像回源的方式下用户访问OSS如果Object miss,那么OSS会替用户从源站读回文件,并写入到OSS,这样一来,如果用户的请求可以遍历所有的文件,那么这个异步的迁移过程其实是可以省略掉的(当然,这也会带来一些新的问题,后文我们会提到)。

oss_import_mirror

上图是“利用重定向做无缝迁移示意图”,图中有数字标记的箭头就是数据访问miss时的数据流向。在配置重定向回源的方式下,如果Object miss,那么需要您的客户端去源站去读取一次数据。这就要求您的客户端要能理解http协议中的3xx重定向语义(OSS的重定向回源是通过3xx重定向来实现的)。需要注意的是,在这种回源方式下,OSS不能自动帮用户搬迁数据,用户的数据必须依靠迁移工具/服务来异步的搬迁到OSS上面来。
图中也能看到在这种场景下配合CDN一起使用,那么文件会cache在CDN上,无需每次miss之后都回源站读取,也是一种减少延迟、节省源站流量的方式。如果不使用CDN,那么就需要用户自己完成回源站读取数据的过程。

纵观上面的两张图,在您配置Bucket的回源属性之后,再开启数据迁移过程,在业务数据大部分都搬迁到OSS之后,再将整个业务的读写全部切换到OSS。这个时候回源功能就能帮您处理那些尚未搬迁过来的数据,无需停服,无缝衔接。等到所有的数据都搬迁完毕之后就可以关闭回源,停掉数据迁移,整个向OSS迁移数据的方式就完成了。

使用建议

  • 如果要迁移的文件较少,建议配置镜像回源的方式,按照文件列表逐一访问OSS,OSS会把所有的文件从源站读取出来,回写到您的Bucket,这种方式是一个最简单的迁移方案。
  • 如果需要迁移的文件量比较大,或者文件的大小比较大,那么由于镜像回源的方式带宽有限,依靠这种方式来搬迁数据可能会花费比较长的时间,影响您的使用体验,建议使用“重定向回源+迁移工具/服务”的方式,如果Object miss,直接让客户端从源站读取数据,由迁移工具/服务来异步的搬迁数据,不影响您的服务。
  • 如果您的业务对延迟比较敏感,建议在大部分数据迁移完成之后再将业务切到OSS上来,否则像文章开头的两张图中所示,如果数据访问miss的话,用户的请求都会经过一个比直接访问OSS上的Object更长的过程,这一过程会增加访问延迟,可能会降低您的用户体验,所以这个重定向或者镜像的数据比例要控制的尽可能小一些。

配置步骤

本部分主要包含Bucket回源属性的配置,以及迁移工具/服务的使用方法。

配置Bucket回源属性

要配置Bucket的回源属性,要在Bucket属性的“回源设置”里面添加规则。如下图:
how_to_set_bucket_attribute

这里的规则分为两种:镜像回源和重定向回源。

  • 镜像回源:用户访问OSS上的Object,如果文件不存在,就按照镜像回源里的Url向源站去取数据,回写到OSS,回写完成之后Object就自动搬迁到了OSS上面,下一次访问就不会再出现Object不存在的情况。
  • 重定向回源:用户访问OSS上的Object,如果文件不存在,按照配置向用户的客户端返回一个302重定向跳转,用户客户端从配置的源站读取数据,这种方式下OSS不会从用户的源站拉取数据回来回写到OSS,下一次访问仍然会向用户客户端返回一次302重定向跳转,直到用户自己把这个Object写入到OSS为止。

下图为如何配置镜像回源:
mirror
图中可以看到镜像方式只支持http code设置为404这种方式,也就是我们所说的访问Object miss的情况下才会去做镜像。

下图为如何配置重定向回源:
url_rewrite
重定向回源中回源条件中的http code可以设置400-599之间的错误码,但是在用回源实现无缝迁移的时候这个地方要填成404。其他的选项依照您的实际情况使用。

使用迁移工具/服务

  • 迁移工具可以将您本地或者第三方云存储服务上的文件同步到OSS上。
    我们的迁移工具有以下主要特性:

支持将本地、OSS、七牛、百度对象存储、金山对象存储的文件同步到指定OSS Bucket上
支持存量数据同步(允许指定只同步某个时间点之后的文件)
支持增量数据自动同步
支持断点续传
支持上传/下载流量控制
支持并行list和并行数据下载/上传

迁移工具Linux平台使用说明
迁移工具Windows平台使用说明

  • 迁移服务。如果您有较大量级的数据,并且期望在较短的时间之内迁移到OSS上,除了迁移工具之外,我们的专业技术人员还可以为您提供多机器并行同步方案
相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
4月前
|
存储 Kubernetes 对象存储
Kubernetes版本对接对象存储几种方案
Kubernetes版本对接对象存储几种方案
168 0
|
6月前
|
数据可视化 数据挖掘 数据库
TDengine OSS 与 qStudio 实现无缝协同,革新数据分析和管理方式
为了帮助社区用户更好地进行数据分析和管理,丰富可视化解决方案的多样性,我们将开源的时序数据库 TDengine OSS 与开源的数据库分析工具进行了集成,相信这对终极开源工具一定能帮助你释放数据潜力。
100 0
|
存储 分布式计算 Kubernetes
Github 29K Star的开源对象存储方案——Minio入门宝典
对象存储不是什么新技术了,但是从来都没有被替代掉。为什么?在这个大数据发展迅速地时代,数据已经不单单是简单的文本数据了,每天有大量的图片,视频数据产生,在短视频火爆的今天,这个数量还在增加。有数据表明,当今世界产生的数据,有80%是非关系型的。那么,对于图片,视频等数据的分析可以说是大数据与人工智能的未来发展方向之一。
1213 0
Github 29K Star的开源对象存储方案——Minio入门宝典
|
存储 机器学习/深度学习 分布式计算
非结构化数据怎么存?——开源对象存储方案介绍
过去的相当长的一段时间里,商用对象存储占据了市场上的大量的份额。国外的Amazon S3,国内的阿里云OSS都成为了大多数公司的选择。但是构建一个企业级的数据湖(包括结构化和非结构化数据)已经成为了越来越多公司的目标。那么Hadoop还能满足我们的要求吗?还是我们需要更多的选择?
1030 0
非结构化数据怎么存?——开源对象存储方案介绍
|
存储 安全 API
【OSS】从AWS S3上的应用无缝切换至OSS
OSS提供了S3 API的兼容性,可以将您的数据从AWS S3无缝迁移至阿里云OSS。
1046 0
【OSS】从AWS S3上的应用无缝切换至OSS
|
存储 SQL 缓存
Flink + Iceberg + 对象存储,构建数据湖方案
上海站 Flink Meetup 分享内容,如何基于Flink、对象存储、Iceberg 来构建数据湖生态。
Flink + Iceberg + 对象存储,构建数据湖方案
|
存储 SQL 大数据
数据湖实操讲解【数据迁移】第四讲:如何将 Hive 数据按分区归档到 OSS
数据湖 JindoFS+OSS 实操干货 36讲 每周二16点准时直播!扫文章底部二维码入钉群,线上准时观看~ Github链接: https://github.com/aliyun/alibabacloud-jindofs/blob/master/docs/jindo_distcp/jindo_distcp_overview.md
数据湖实操讲解【数据迁移】第四讲:如何将 Hive 数据按分区归档到 OSS
|
存储 弹性计算 分布式计算
数据湖实操讲解【数据迁移】第三讲:如何将 HDFS 海量文件归档到OSS
数据湖 JindoFS+OSS 实操干货 36讲 每周二16点准时直播!扫文章底部二维码入钉群,线上准时观看~ Github链接: https://github.com/aliyun/alibabacloud-jindofs/blob/master/docs/jindo_distcp/jindo_distcp_overview.md
数据湖实操讲解【数据迁移】第三讲:如何将 HDFS 海量文件归档到OSS
|
存储 分布式计算 算法
数据湖实操讲解【数据迁移】第二讲:数据无忧 - 利用 checksum 迁移 HDFS 数据到 OSS
数据湖 JindoFS+OSS 实操干货 36讲 每周二16点准时直播!扫文章底部二维码入钉群,线上准时观看~ Github链接: https://github.com/aliyun/alibabacloud-jindofs/blob/master/docs/jindo_distcp/jindo_distcp_overview.md
数据湖实操讲解【数据迁移】第二讲:数据无忧 - 利用 checksum 迁移 HDFS 数据到 OSS
|
存储 分布式计算 资源调度
数据湖实操讲解【数据迁移】第一讲:高效迁移 HDFS 海量文件到 OSS
数据湖 JindoFS+OSS 实操干货 36讲 每周二16点准时直播!扫文章底部二维码入钉群,线上准时观看~
数据湖实操讲解【数据迁移】第一讲:高效迁移 HDFS 海量文件到 OSS