对象存储

  • 对象存储 > 常见问题 > 工具使用 >镜像存储与qshell工具相结合的数据迁移方案

    镜像存储与qshell工具相结合的数据迁移方案

    最近更新时间:2018-05-27 12:13:40

    传统的数据迁移方案是:关掉网站原来的数据上传通道,所有数据变成只读,然后将所有数据上传到新的存储节点,再将上传入口改为新的存储节点,之后开放网站的上传功能。这样带来的问题是,数据迁移过程中,用户长时间不能进行上传操作,用户体验非常差。如何解决这个问题呢?

    七牛云提供一套结合镜像存储和qshell工具的数据迁移方案,这套方案很好地绕开了传统迁移方案所带来的问题。先通过七牛的数据上传工具 qshell 将大量冷数据传到七牛平台上,并将数据访问地址切换成七牛的域名。由于用户生成的大量热数据还在自己的平台上,为了不出现数据丢失的情况,保证用户访问的流畅性,那就选用七牛的镜像存储服务吧。

    七牛的镜像存储为整个数据迁移过程提供良好的过渡支持作用。当用户访问的数据不在七牛平台上时,镜像存储服务将回客户源站抓取数据,并保存在七牛平台上。故此,镜像存储对每个资源只需回源一次,后续访问的时候就不再回源了。另外,镜像存储与 qshell 数据同步工具一起使用,可以很好地将你的网站数据在无需中断服务的情况下迁移到七牛云。下面介绍一下具体数据迁移的步骤:

    假设源站所有的图片,放在一个叫 img.example.com 子域里。那么迁移的方式如下:

    1. 在七牛上建立一个镜像 bucket,设定源站为 img.example.com。假设镜像 bucket 是 example-img,镜像 bucket 对应的域名为 example-img.qiniudn.com。

    2. 将所有对外使用的图片的域名改为 example-img.qiniudn.com。

    3. 如果网站数据是 UGC(用户产生内容)的,调整上传流程,传到七牛的镜像 bucket。这样源站就变成只读。

    4. 使用 qshell 同步工具将历史数据全部同步到七牛的镜像 bucket。

    如此就完成整个迁移过程。此时 img.example.com 这个源站就可以废弃不用了。

    你可能会问:如果我希望保留 img.example.com 这个对外的域名,而不是用 example-img.qiniudn.com,可以么?答案是肯定的,不过会相对麻烦点,额外的操作如下:

    1. 您的源站需要指定为另一个域名(不能是 img.example.com 了),比如是 img-src.example.com,或者直接用 IP。

    2. 将 img.example.com 作为自定义域名绑定到七牛的镜像 bucket,此时 img.example.com上没有进行解析操作。自定义域名的生效时间最长为12小时左右。

    3. 测试镜像存储如你所愿正常工作后,将 img.example.com CNAME 到返回的地址上。这一步务必小心不要做错,因为这之后你的网站就通过七牛的镜像存储进行服务了。出于谨慎,建议先在本地修改 hosts 文件,将 img.example.com 指向 example-img.qiniudn.com 的 IP 地址进行测试。

    以上内容是否对您有帮助?
  • Qvm free helper
    Close