V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
niuer
V2EX  ›  程序员

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

  •  
  •   niuer · 2015-02-10 11:27:09 +08:00 · 2768 次点击
    这是一个创建于 3572 天前的主题,其中的信息可能已经有所发展或是发生改变。

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


    有两种方案可以选择:

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

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

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

    9 条回复    2015-02-11 14:58:24 +08:00
    msg7086
        1
    msg7086  
       2015-02-10 13:14:49 +08:00   ❤️ 1
    标题是数据迁移,内容却是迁移到七牛。文不对题。
    zyAndroid
        2
    zyAndroid  
       2015-02-10 13:37:58 +08:00
    软文?
    Actrace
        3
    Actrace  
       2015-02-10 13:40:34 +08:00
    七牛软文天下无敌啊~
    niuer
        4
    niuer  
    OP
       2015-02-10 14:50:21 +08:00
    @msg7086 这篇文章主要是针对数据迁移文件路径问题\速率问题及寄送磁盘后的迁移过程中,上传数据不完整的问题给到使用七牛的用户,希望对想将数据迁移过来的童鞋们有些帮助哈~
    niuer
        5
    niuer  
    OP
       2015-02-10 14:51:45 +08:00
    @zyAndroid  出这种技术文章是希望可以给到大家帮助哈~
    niuer
        6
    niuer  
    OP
       2015-02-10 14:52:33 +08:00
    @Actrace 谢谢观看~嘿嘿~
    zangbob
        7
    zangbob  
       2015-02-10 14:53:15 +08:00
    就素七牛的软文
    siteshen
        8
    siteshen  
       2015-02-11 11:14:50 +08:00
    标题党坑爹
    jaylong
        9
    jaylong  
       2015-02-11 14:58:24 +08:00
    标题里应该写明迁到qiniu 你这是不按套路出牌啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1031 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:39 · PVG 03:39 · LAX 11:39 · JFK 14:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.