无论是计划拥抱云服务还是打算从正在使用的云服务切换到另外一家,这其中数据的迁移是很关键的一步。在迁移过程中可能遇到以下问题:

数据迁移文件路径问题。
数据迁移过程中的速率问题。
寄送磁盘后的迁移过程中,上传数据不完整。

针对这些问题,一个考虑全面的迁移系统就显得尤为重要,尤其是数据迁移的速度和安全性。首先七牛虽然为非结构化存储,但是仍然支持带文件路径进行上传,不影响原先数据的访问规则;其次,数据迁移的速率基本不受网络带宽影响,主要受到磁盘读写速度的限制;上传数据不完整,七牛会主动检测数据迁移的完整性,通过镜像存储也可以补全未上传成功的数据。一般场景有以下几种:

场景一:自有机房迁移到七牛且数据少量
_____________________________________________________

有两种方案可以选择:

一、完全使用七牛镜像存储功能

利用七牛提供的镜像存储功能,可以非常简单地将源站的数据被动地同步到七牛云存储中,所谓被动同步即——只有在资源被访问时,七牛才会回源站获取一次,此后对该资源的访问都不会再发生回源动作,而是直接从七牛这里拿到数据。镜像存储使用方式如下:

假设源站所有的图片,放在一个叫 img.example.com 子域里。
1、在七牛上建立一个镜像bucket,设定源站为 img.example.com。假设镜像 bucket是example-img,镜像 bucket 对应的域名为 example-img.qiniudn.com。
2、将所有对外使用的图片的域名改为example-img.qiniudn.com。
3、如果网站数据是UGC(用户产生内容)的,调整上传流程,传到七牛的镜像 bucket。这样源站就变成只读。
如此就完成整个迁移过程。此时 img.example.com 这个源站就可以废弃不用了。

二、借助七牛提供的数据迁移工具qrsync公网间直传
qrsync 是一个根据七牛API实现的简易命令行辅助上传同步工具,支持断点续上传,增量同步,它可将用户本地的某目录的文件同步到七牛,同步或上传几百GB甚至上TB的文件毫无压力。

场景二:自有机房迁移到七牛但数据总量大
_____________________________________________________

在场景二下,用户可以将数据先备份到本地,然后寄送数据硬盘给七牛,由七牛通过内网将数据同步到七牛云端;或者七牛寄送空数据硬盘,客户备份数据后寄回七牛,并由七牛通过内网上传。这其中,由于数据量巨大,考虑因素需要更多,七牛也会专为该类客户定制化数据迁移系统。

在寄硬盘的过程中,为了保持新数据也被存到七牛上面,以及试用七牛的服务,可以使用镜像存储。

场景三:从任意云服务迁移到七牛且数据少量
_____________________________________________________

在场景三下,可以有两种方案进行数据的迁移工作。

一、完全使用镜像存储,无缝将数据迁移到七牛的空间中,具体使用方式和场景一中镜像存储描述部分一致。

二、使用七牛数据迁移定制化工具,在七牛的技术支持的协助下,用工具将数据同步到七牛。

场景四:从任意云服务迁移到七牛但数据总量大
_____________________________________________________

如果想从某一云服务切换到七牛,可以先从正在使用的云服务备份数据到本地,通过磁盘/服务器的递送,直接上传数据到七牛。

数据导入的同时依然可以使用镜像存储配合数据的迁移,具体步骤如下:
• 开启镜像存储,并将用户对源站资源的访问切换到从七牛这里访问,同时在源站保持使用prefetch 接口预取更新变化了的资源。
• 将资源的上传动作从源站切换到七牛,这样用户对资源的修改动作会直接更新七牛中存储的内容,此时源站的资源数据已经变成一个静态的集合,因此可以撤销第一步中对prefetch 接口的使用。
• 放心地将源站的静态资源数据增量地导入七牛的存储,存储中已有的资源不再导入,只导入存储中还不存在的资源(我们已有针对此类导入的成熟工具提供您直接使用)。
• 关闭源站(just kidding :P)

[数据迁移典型案例剖析]

七牛客户陌陌的数据量非常大,如果采用常用的传输办法,整个迁移过程要耗时半年,并且会严重影响线上的业务。为此,七牛为陌陌制定了个性化的数据迁移方案。

在迁移过程中可能遇到以下问题:

  1. 硬盘迁移过程中,网络传输中的数据出错。
  2. 传输过程中的速率问题。拿陌陌举例,如果采用常用的传输办法,整个迁移过程要耗时半年,并且会严重影响线上的业务。
  3. 硬盘寄送过程以及使用过程中的磁盘损坏。
  4. 存储数据文件对数据库的合并。如果按照传统的数据库写入方式,需要若干天,会给客户数据库以及云服务的数据库带来不必要的巨大压力。

针对这些问题,一个考虑全面的迁移系统就显得尤为重要:

  1. 针对客户的业务数据模型,定制数据格式,进行存储数据的导入。
  2. 数据库结构需要有强扩展性,可以实现瞬时合并。
  3. 迁移系统充分考虑不可控因素,比如硬盘损坏,断电等情况。

至此,七牛已经成为陌陌非常好的合作伙伴,支撑了他们近两亿用户的数据存储,访问加速与图片处理。


七牛云
1.4k 声望345 粉丝

七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化PaaS服务。围绕富媒体场景,七牛先后推出了对象存储,融合CDN加速,数据通用处理,内容反垃圾服务,以及直播云服务等。目前,七牛云已经在...