关于数据迁移,你应该知道的那些方法

2015-02-10 11:27:09 +08:00
 niuer

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


有两种方案可以选择:

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

假设源站所有的图片,放在一个叫 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. 迁移系统充分考虑不可控因素,比如硬盘损坏,断电等情况。

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

2668 次点击
所在节点    程序员
9 条回复
msg7086
2015-02-10 13:14:49 +08:00
标题是数据迁移,内容却是迁移到七牛。文不对题。
zyAndroid
2015-02-10 13:37:58 +08:00
软文?
Actrace
2015-02-10 13:40:34 +08:00
七牛软文天下无敌啊~
niuer
2015-02-10 14:50:21 +08:00
@msg7086 这篇文章主要是针对数据迁移文件路径问题\速率问题及寄送磁盘后的迁移过程中,上传数据不完整的问题给到使用七牛的用户,希望对想将数据迁移过来的童鞋们有些帮助哈~
niuer
2015-02-10 14:51:45 +08:00
@zyAndroid  出这种技术文章是希望可以给到大家帮助哈~
niuer
2015-02-10 14:52:33 +08:00
@Actrace 谢谢观看~嘿嘿~
zangbob
2015-02-10 14:53:15 +08:00
就素七牛的软文
siteshen
2015-02-11 11:14:50 +08:00
标题党坑爹
jaylong
2015-02-11 14:58:24 +08:00
标题里应该写明迁到qiniu 你这是不按套路出牌啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/169774

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX