72

数据迁移二三事(写于阿里云100PB数据大迁移之后)

 5 years ago
source link: http://www.10tiao.com/html/614/201806/2652089335/1.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

通知:冬瓜哥新作《大话计算机——计算机系统底层架构原理极限剖析》将于2018年9月份出版,详细内容点击链接。


本文组织:

  1. 史上最大规模公有云数据迁移

  2. 数据迁移基本场景原理分析

  3. 公有云数据迁移场景分析


1 史上最大规模公有云数据迁移

图:最后2TB的数据迁移现场演示,从115科技服务器迁移至阿里云的“闪电立方”中,耗时2分3秒。


6月7日,国内领先的云存储企业115科技在2018云栖大会·上海峰会上宣布,已将公司全部数据迁移至阿里云上,双方合力完成了互联网史上规模最大的公共云数据迁移,总量超过100PB。同时,整个过程仅耗时45天,创造了百PB级数据公共云迁移的新纪录,演绎了一场云计算的“速度与激情”。100PB的数据有多大?相当于360亿张照片,打印出来可以环绕地球200周。如果用普通办公网络上传,要2700多年才能传完。

 

在云计算普及的今天,如此大规模的上云变得更高效便捷,115科技总经理刘睿表示:“将基础设施托付给阿里云后,115科技团队得以集中精力,聚焦顶层设计,为用户提供更好的产品体验和服务。”出于自身需求的综合考量,115科技最终选择了阿里云作为合作伙伴,共同完成这次史诗级的迁移。


2 数据迁移基本场景原理分析

离线迁移和在线迁移。离线迁移是最简单的场景,或者业务可以忍受长时间停机从而将全部数据一次性整体迁移;或者业务对数据的访问具有明显的热点,并且技术上可以将冷数据与热数据剥离,这样就可以将冷数据下线并迁移到目标端。而对于那些无法停机的业务所访问的热数据,由于业务对这些数据会持续的变更,所以必须采用特殊方式来迁移。具体的,可以采用存储层快照方式对正在被访问的数据做一次快照,然后将快照副本拷贝到目标端。由于快照生成之后,系统底层会自动记录快照点之后的数据变化,所以在数据初始同步(初始传输数据量较大)之后,可以采用连续多次快照来实现数据的追赶(每次追赶数据量越来越小),最终达到收敛状态,也就是同步(synchronized)态,此时业务每一笔写I/O都会被同步到目标端,实现本地、目标双写态。然后开始割接过程,将业务动态切换到目标端,从而实现不停机迁移。为了截获业务下发的写I/O请求,需要在存储系统底层并联出对应的I/O路径,不过对于互联网后端系统来讲,这些旁路接口一般会被预先设计好,随时可以将写I/O进行镜像复制。在传统企业存储系统中,外置存储系统一般都具有远程卷复制功能,但是如果要实现多主机/存储异构环境的统一数据复制、迁移,就需要将这个旁路上升到主机端OS内核中,而除非像AIX等UNIX系统原生采用诸如LVM这样的卷管理软件,否则这个旁路默认是不会使用的,要使用就需要加装一个特殊驱动程序,而这需要重启主机导致业务停机若干甚至十余分钟。


块层迁移和上层迁移。众所周知,上层I/O访问有多种方式,具体可以总结为块I/O、文件I/O、对象I/O、数据库I/O、其他私有方式的I/O API这四大类方式。其中,文件、对象、数据库类访问一般是基于块I/O的上层封装,所以,只要在块层截获I/O,不管上层封装成什么形式,都可以实现数据迁移,但是块层迁移无法感知到上层的状态,比如某单个文件I/O底层被拆分为多笔块I/O,块层是无法感知的,所以会导致数据一致性问题。但是从上层截获写I/O的话,效率和吞吐量比较低(因为I/O时延较高),但是却可以更好的保障数据一致性。


通过网络迁移和通过介质搬运迁移。通过网络迁移数据是比较常用的方式,特别是数据量不大的时候,可以在可接受的时间内完成迁移。但是如果数据量特别大的话,除非你拥有裸光纤链路从而可以在两端放置高带宽传输、DWDM等设备,否则通过带宽较低的专线,迁移速度就无法接受了。此时需要采用介质搬运方式迁移,也就是现在业务本地将冷数据离线搬移到磁带、光盘、硬盘JBOD等介质中,然后直接将介质通过物流运输到目标端导入。介质搬运方式智能运输离线数据。


迁移管理。数据迁移牵扯大大量的规划和管理操作,实际的迁移过程反而是最简单的,之前的规划、兼容性管理、突发事件处理、回退处理等才是迁移过程的复杂部分。只有身经百战的团队才能积累足够经验,临危不乱,仅仅有条,能退能进。迁移过程最怕的就是卡在中间进退两难。

3 阿里云~115公有云数据迁移场景分析

理论和实践往往有很大的差距,一个简单的过程,具体实现起来那可是受各种因素影响。由于数据规模巨大,本次迁移遇到了前所未有的挑战,整个迁移过程要求整体服务不停机,客户无感知。为了保障115业务平滑迁移,阿里云将分布在不同地区的数千台物理机内的数据与云上的位置进行了一一对应的规划,保证每一比特都有迹可循。

网络资源问题

要迁移数据,首先要打通高速通路。借助阿里云强大的资源调配能力,临时调配了对应的网络资源来连通115原有数据中心和阿里云数据中心。

据悉,阿里云采用了专线互连的传输方式,建立边界路由器和路由器接口来连接115的数据中心与阿里云VPC,采用400Gb/s的分布式在线数据传输服务OSSImport,将115的数据加密迁移到对象存储OSS中。

对于115科技原有的一些无法实现高带宽互联的数据中心,不适合在线迁移的数据,阿里云推出了一种全新离线数据迁移方案——闪电立方。它长得像一台电脑主机,可防尘防水,抗震抗压。每套闪电立方可容纳480TB数据,在数据安全方面满足企业严格的要求。有了闪电立方的快速离线迁移能力,115科技的上云时长从预计的4个月大幅缩短到了45天。 

6月初的上海云栖大会上,阿里云现场还原了用闪电立方迁移115数据中心的全过程:2分钟内就完成了2TB数据的安全传输过程,每块硬盘专项分离保护,并实施专人专车的运输保障,让离线传输同样专业、高效、安全。 

与此同时,阿里云推出了闪电立方mini版,可提供单台40TB的数据迁移能力,图形化界面,引导式服务体验。在数据安全方面,闪电立方mini版同样提供端到端的数据加密服务和数据一致性校验。不同的是,闪电立方mini版可以自行部署,再由专业的物流运输至阿里云的数据中心,实现离线数据的快速上云。

割接影响

为了实现业务平滑过渡,对于在线数据,采用跨网络初始迁移+收敛同步,一直到最后一步的原有系统+阿里云双活状态,最后将业务透明割接到阿里云。这种云双活形式很值得一些企业数据中心借鉴,一脚踩在云上,一脚踩在地上,借助云端作为对端数据中心。

快慢机问题

在迁移过程中,有不少未落入计划内的突发问题。比如,115科技数据中心中存在一些服役时间很长的系统,其内部硬盘的响应速度较慢,导致整个系统响应快慢不一,这就会打乱原本的时间计划。

迁移和恢复并行问题

如果等待全部数据迁移完毕,再在目标端导入、上线业务,则由于大批量数据的迁移,耗时非常长。在系列文章《大话流水线》中,冬瓜哥详细分析了流水线工作原理,如果将一个慢速步骤拆分成多个小步骤,就可以实现并行,这个过程虽然增加了时延,但是却提升了吞吐量。本次阿里云~155数据迁移就是采用这种小批量迁移、导入、上线三步流水线并行工作,从而极大降低了项目周期。

数据一致性问题

我们经常会遇到从网络上下载了一个压缩包,结果打开提示错误的情况,这就是数据校验出错导致。100PB的数据,如果不采取措施,出错数据的绝对量是相当大的。阿里云本次迁移对每个文件做端到端的SHA-1校验,避免出现数据不可用或者不一致的情况。

传输效率问题

在有限的带宽和时间下,提升传输效率是很重要的一步。本次迁移采用源端重删技术。同时,阿里云存储研发团队在10天内设计了11个功能来进一步提升传输效率,包括SHA-1校验边算边传、WORM(一写多读禁止覆盖))、HEIF与矢量图片转换支持等特性,用于承载115科技的非结构化数据如文档、图片、视频的业务。“这是我人生中节奏最快的一个项目”,参与项目的阿里云工程师表示。


综上所述,本次阿里云~115科技的数据大迁移,作为史上最大数据量的公有云数据迁移项目,再一次体现了阿里云的整体技术实力、资源调配能力、项目管理能力。拥有这样能力的IT基础设置团队,业务上云基本是没有什么后顾之忧了。 


大话存储


大话计算机


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK