摘要:数据迁移过程中的速率问题。关闭源站数据迁移典型案例剖析七牛客户陌陌的数据量非常大,如果采用常用的传输办法,整个迁移过程要耗时半年,并且会严重影响线上的业务。为此,七牛为陌陌制定了个性化的数据迁移方案。
无论是计划拥抱云服务还是打算从正在使用的云服务切换到另外一家,这其中数据的迁移是很关键的一步。在迁移过程中可能遇到以下问题:
数据迁移文件路径问题。
数据迁移过程中的速率问题。
寄送磁盘后的迁移过程中,上传数据不完整。
针对这些问题,一个考虑全面的迁移系统就显得尤为重要,尤其是数据迁移的速度和安全性。首先七牛虽然为非结构化存储,但是仍然支持带文件路径进行上传,不影响原先数据的访问规则;其次,数据迁移的速率基本不受网络带宽影响,主要受到磁盘读写速度的限制;上传数据不完整,七牛会主动检测数据迁移的完整性,通过镜像存储也可以补全未上传成功的数据。一般场景有以下几种:
场景一:自有机房迁移到七牛且数据少量
_____________________________________________________
有两种方案可以选择:
一、完全使用七牛镜像存储功能
利用七牛提供的镜像存储功能,可以非常简单地将源站的数据被动地同步到七牛云存储中,所谓被动同步即——只有在资源被访问时,七牛才会回源站获取一次,此后对该资源的访问都不会再发生回源动作,而是直接从七牛这里拿到数据。镜像存储使用方式如下:
假设源站所有的图片,放在一个叫 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)
[数据迁移典型案例剖析]
七牛客户陌陌的数据量非常大,如果采用常用的传输办法,整个迁移过程要耗时半年,并且会严重影响线上的业务。为此,七牛为陌陌制定了个性化的数据迁移方案。
在迁移过程中可能遇到以下问题:
硬盘迁移过程中,网络传输中的数据出错。
传输过程中的速率问题。拿陌陌举例,如果采用常用的传输办法,整个迁移过程要耗时半年,并且会严重影响线上的业务。
硬盘寄送过程以及使用过程中的磁盘损坏。
存储数据文件对数据库的合并。如果按照传统的数据库写入方式,需要若干天,会给客户数据库以及云服务的数据库带来不必要的巨大压力。
针对这些问题,一个考虑全面的迁移系统就显得尤为重要:
针对客户的业务数据模型,定制数据格式,进行存储数据的导入。
数据库结构需要有强扩展性,可以实现瞬时合并。
迁移系统充分考虑不可控因素,比如硬盘损坏,断电等情况。
至此,七牛已经成为陌陌非常好的合作伙伴,支撑了他们近两亿用户的数据存储,访问加速与图片处理。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/25147.html
摘要:甚至很可能就正有一个这样的安卓项目包含了各种成员项目和编译成的文件,这些文件还会包含在最终生成的应用里。这些文件包含了一些很重要的内容,比如所支持的安卓版本和项目依赖的东西,以及安卓项目中其它重要的数据。那么这就是你需要知道的一些基础知识。 在这个指南里,包含了一些当你要把Eclipse项目转到Andorid Studio前需要知道的基本信息。 对WorkSapces和Sub-Pro...
摘要:尽管把基础架构迁移到云平台上好处多多,但是如果考虑不细致反而会妨碍系统性能,把基础架构从物理迁移到虚拟才能带来较好的资源利用率。在存储方面,重要的是可扩展性。确保物理产品的环境已经卸下,但不要完全退役。 尽管把基础架构迁移到云平台上好处多多,但是如果考虑不细致反而会妨碍系统性能,把基础架构从物理迁移到虚拟才能带来较好的资源利用率。我们需要把物理到虚拟,然后在迁移到云,即所谓的P2V2C(p...
摘要:众所周知,在大公司中进行大的改革很难。目前公司有超过名开发人员,其中有个以上是前端。从年起,已经在一些小规模团队中探索使用。在年的前端调查中,静态类型系统呼声最高。在我们的主仓库中,绝大多数的公共依赖都已经由做到了类型声明。 特别说明 这是一个由simviso团队进行的关于Airbnb大规模应用TypeScript分享的翻译文档,分享者是Airbnb的高级前端开发Brie Bunge ...
摘要:于年获得的职位,并发现了一个需要彻底改革的部门。此外,该报告还将云计算确定为了最需要专业开发的领域之一。为了能够成功过渡到云,首席信息官们正在重新组建他们的IT团队,使其变得敏捷、跨职能,并且拥有新的技能、角色和高度适应性的思维方式。 Paul Ryan于2017年获得OpenX的CTO职位,并发现了一个需要彻底改革的IT部门。 OpenX,一家制作程序化广告平台的技术公司,服务...
阅读 2431·2021-11-24 10:29
阅读 2615·2021-09-24 09:48
阅读 5682·2021-09-22 15:56
阅读 3137·2021-09-06 15:00
阅读 2647·2019-08-30 15:54
阅读 723·2019-08-30 13:48
阅读 2818·2019-08-30 11:17
阅读 3401·2019-08-29 11:20