探索5K巅峰,云梯架设的飞天之梦
5年的时间,飞天平台从1500台的集群规模到3000台的集群规模,再到2013年8月,飞天开放平台最终成功实现单集群超越5000台、同时支持多集群跨机房计算的目标。
IDC研究显示,包含结构化和非结构化的大数据正在以每年60%的增长率持续增长,到了2020年全球数据总量将增长44倍,达到 35.2ZB。而着眼国内,2013年产生的数据总量已经超过0.8ZB,两倍于2012年,相当于2009年全球的数据总量。预计到2020年,中国产 生的数据总量更可能超过8.5ZB。井喷的数据在给各个机构带来数不尽机遇和财富的同时,也在存储、计算、带宽等领域给企业带来无尽的挑战。拥有数亿注册 用户的阿里巴巴感受最明显——2013年3月28日,一封来自技术保障部架构师的邮件直达阿里集团最高层:
“按照数据增量与未来业务增长的情况,云梯1(以Hadoop为底层的集群)系统存储和计算能力将在6月21日到达瓶颈,数据业务将会停 滞,淘数据、量子等业务都会受到影响;而云梯2(以飞天为底层的集群)也有同样的问题,阿里金融的贷款业务将因为无法进行信用数据运算而中止。”
对任何企业而言,服务压力上涨都是幸福的烦恼。而到了阿里这样的规模,不管是幸福还是烦恼都被放大了无数倍。对于大规模分布式离线存储和计算集群来 说,如果原有集群不能通过简单的增添主机来增加存储空间和计算能力,横向扩展遭遇不可逾越的瓶颈,就代表着系统重构的开始。此时,摆在阿里面前只有两个选 择:第一,直接扩容云梯1,从成熟度、稳定性、项目的复杂程度、投入力量来看,这条路安全有效,但基于飞天的云梯2同样岌岌可危;第二,同时扩容云梯1和 云梯2,扩容后两个数据系统的单集群规模都将达到5000台,实现跨机房集群处理,但3个月的deadline和巨额的人力、物力投入同样不容忽视。
面对只有不到3个月的实施时间,这道选择题变得异常艰难——是高效地选择尽快到达“安全地带”,还是在兼顾“安全”的同时,投入大量人力、物力,选择一次史无前例的“突破”?
意料之中,也是意料之外,阿里毅然选择了“背水一战”:云梯1和云梯2同时并行扩容!
扩容不可阻挡
事实上,无论是从规划理念、技术发展,还是从集群规模来看,飞天扩容的最佳时机已经到来。
回顾飞天的历史。2009年,自投身云计算,阿里云就立志要自主研发出以“飞天”为代号的大规模分布式计算系统。飞天的设计宗旨就是通过构建一套综 合性的软硬件系统,将数以千计的服务器连成一台“超级计算机”,并最终实现两个目标:对内,通过对这台超级计算机进行物理资源分配、程序运行操控,以及保 障服务及数据安全的操作系统,支撑阿里集团服务的核心技术平台;对外,将这台超级计算机的计算、存储等资源,以公共服务的方式,输送给互联网上的用户或者 其他应用系统。云梯的元老级创建者罗李(花名鬼厉)曾表示,之所以起名云梯,项目组建时就被定义为阿里云计算平台的铺路者,寓意奉献。而着眼飞天,这个项 目无疑承载了阿里的云计算愿景,从第一行代码被写下时就意义非凡。
5年的时间,飞天平台从1500台的集群规模到3000台的集群规模,再到2013年8月,飞天开放平台最终成功实现单集群超越5000台、同时支持多集群跨机房计算的目标。
放眼全球,能做到这一点的企业,屈指可数。
诸神实现飞天之梦
飞天,是亲近水的一位神的名字,是可以为人们带来幸福和吉祥之神。和飞天一样,系统中的各个模块也被赋予了上古诸神的名字:分布式文件系统是开天辟 地承载一切基础之神——盘古(Pangu);负责任务调度和资源管理模块的是占卜和预测之神——伏羲(Fuxi);从底层上监视和处理导致集群性能下降的 集群诊断系统——华佗(Huatuo);负责网络连接的模块——夸父(Kuafu);监控系统——神农(Shennong);集群部署——大禹 (Dayu)……以诸神之名,映射出的是背后的理想主义色彩。
众神协作下,飞天负责管理数据中心Linux集群的物理资源,控制分布式程序进行,并隐藏下层故障恢复和数据冗余等细节,有效地提供弹性计算和负载 均衡的服务。而数千节点规模下,无论是系统的打造还是扩容都面临着众多技术挑战,在5K扩容过程中,平台的各个模块在规模性能、高可用以及可运维性等方面 都做了大量的改进和优化。
■ 盘古,在内部架构上盘古采用Master/ChunkServer结构,Master管理元数据,ChunkServer负责实际数据读写,通过 Client对外提供类POSIX的专有API。在集群扩展到5K规模后,相关问题纷至沓来,主要可分为两个部分:首先,盘古MasterIOPS问题, 因为更大的集群意味着更多文件和更多访问,上层应用对存储亿级文件和十亿级文件集群的IOPS是有显著区别的。同时更大规模的集群让快速发展的上层应用看 到了更多可能性,导致更多业务上云,存储更多数据,也间接导致了对IOPS的更高需求。此前盘古Master较低的IOPS已经限制了上层业务的快速扩 张,业务高峰期时有告警,亟待提升。另外一个规模相关问题就是盘古Master冷启动速度,更多的文件和Chunk数导致更长的冷启动时间,影响集群可用 性。在具体的性能优化上,主要工作有克服锁瓶颈、优化架构(包括Pipeline优化和Group Commit),以及不断深入细节反复尝试以解决规模导致的冷启动时间过长,详情请阅读《优化无极限:盘古Master优化实践》。
■ 伏羲,飞天平台的分布式调度系统。在5K攻坚中,从设计到实现每一步都可能存在性能“陷阱”,原因主要在三个方面:规模放大效应,当节点数增大到数千个 时,系统中原本不是瓶颈的与规模成正比的环节,其影响会被放大;木桶效应,未经优化的那一小部分很可能成为影响系统性能的致命的瓶颈;长路径模块依赖,被 依赖模块性能的不稳定性最终会影响某个请求处理的性能和稳定性。为此,阿里从通信、关键函数、模块依赖等多个方面进行了优化,详情参阅《走近伏羲,谈 5000节点集群调度与性能优化》。
■ 华佗,运维的模式随着5K的到来发生了很大的改变,在解决实际问题的过程中,华佗应运而生,上通飞天系统,下达运维各种系统。其架构足够健壮、简单和开 放,PE可以很方便地将自己丰富的运维经验转换成华佗的插件。华佗可以针对各种异常情况,进行故障磁盘管理还有系统异常处理,PE也可以通过它做流程和管 理自动化的工作。同时,不必再做几分钟的快速人工修复,而是当故障设备积累到一定量后批量地做替换,大量地节省了人力成本。当下华佗已经运用到磁盘管理、 机器管理、网络故障检测等多个场景,更多详情可关注《走近华佗,解析自动化故障处理系统背后的秘密》。
■ 当运维的服务器达到数千台甚至上万规模机器的时候,必然会遇到诸多挑战,如硬件配置的差异化,用户数和任务数的急剧膨胀,大压力下的边界效应,小概率事件 被触发等。在这个前提下需要做好快速部署,自动化运维、监控报警、Log分析、精细化计量等需求会越来越迫切。在这些方面,阿里付出了更多的心血以保证业 务稳定和安全的运行,详情可见《飞天5K实战经验:大规模分布式系统运维实践》。
当飞天第一个五千台规模集群——飞天5K正式投入运营时,所承载上线的服务即是ODPS。以底层大规模分布式系统的性能优化和运维保障为基础,支撑起了更上层的平台——Open Data Processing System,开放数据处理服务。
ODPS谱写飞天5K应用
ODPS和飞天的关系,可以追溯到更早的时候。
2010年春节,ODPS的前身SQL Engine第一版上线,运行在当时30台机器的飞天集群上。2011年1月,由于业务上需要支持更多数据模型,SQL Engine被重构,命名为Data Engine数据仓库发布上线,稳定运行在100台机器上。但是,Data Engine 0.2支持的数据量还远不满足需要,而且它的稳定性还有待提升。2011年Q3,飞天团队开始探索支撑集团内部数仓业务,利用莫邪(Moye)系统,在 1500台机器上并行运行云梯1的生产作业,并取得了不输于Hadoop的性能和稳定性成绩。2012年Q1,团队在Data Engine和莫邪之间做技术选择,并决定使用莫邪作为
ODPS产品的核心引擎,Data Engine退出历史舞台。飞天5K项目之后,ODPS随之进入5000台机器和跨机房调度时代。作为飞天的重要模块,它不仅仅得到了扩容,而且还进一步实现了跨集群的数据复制,详情见《ODPS跨集群迁移与数据同步经验分享》。
ODPS远不只是一个简单的大数据平台,功能包括SQL,基于Java的MapReduce编程框架,图计算编程模型,一系列机器学习算法的实现 等。所有的功能是以RESTful API的形式对外提供,从系统边界上说,这层API隔离了ODPS平台和用户的系统,和Hadoop的区别也很明显。ODPS设计之初就是为了对外开放, 做基于互联网的多租户的公共数据处理服务,所以安全性在ODPS的设计和实现中具有最高的优先级。ODPS作为离线数据处理平台,许多新的技术也是第一次 应用到5K项目,并且经受了准生产环境的检验,同时也为未来数据业务长期发展打下了坚实的基础。目前在阿里集团内部已经被广泛用于海量结构化数据的处理分 析,帮助阿里集团将业务实践沉淀的海量数据进行提炼分析,从而让数据诞生新的价值。《ODPS技术架构及应用实践》一文中对这些内容有更详细的讲述。
期待更多飞天精神
时至今日,已经实现5000节点单集群的飞天5K拥有惊人的规模:10万核的计算能力;100PB存储空间 ;可处理15万并发任务数;可承载亿级别文件数目;100TB排序30分钟完成,远超今年7月1日Yahoo!在Sort Benchmark排序测试Daytona Gray Sort所创造的世界纪录——100TB排序完成时间约71分钟。
飞天5K不仅成为阿里集团最为重要的技术平台,而且集群中的计算、存储等能力已经完全以云服务的方式在对外输出。这意味着“云计算可以让一个人的公司,跟一个很大的公司,站在同一条起跑线上竞争”。
飞天5K,不仅是阿里云计算技术发展的一个里程碑,同时也将注定在中国云计算技术发展的历史中留下浓墨重彩的一笔。展望中国云计算产业的将来,期待有更多像飞天一样的技术,也期待有更多像飞天一样,百折不挠的精神。