zoukankan      html  css  js  c++  java
  • 2013年8月,阿里云飞天5K集群成功上线,所有的服务对应的都是同一个系统内核、同一套分布式文件系统

    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规模后,相关问题纷至沓来,主要可分为两个部分:首先,盘古Master IOPS问题,因为更大的集群意味着更多文件和更多访问,上层应用对存储亿级文件和十亿级文件集群的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,不仅是阿里云计算技术发展的一个里程碑,同时也将注定在中国云计算技术发展的历史中留下浓墨重彩的一笔。展望中国云计算的将来,期待有更多像飞天一样的技术,也期待有更多像飞天一样百折不挠的精神。

    (作者:程序员杂志 郭雪梅 童阳,原文链接

  • 相关阅读:
    javascript模态窗体各种用法(转)
    AjaxControlToolKit之ConfirmButton效果用法
    AjaxControlToolKit之AutoCompleteExtender用法
    文章,记录按内容分页显示,根据文章内容按字数进行分页(转)
    AjaxControlToolKit之DragPanelExtender用法
    prototype.js 1.4版开发者手册(强烈推荐) (转自http://fredren.javaeye.com/blog/112479)
    JS拖动技术 关于setCapture (转自 剑胆琴心.Net学习笔记)
    Javascript 如何实现对象的拖动?(转自闪吧)
    phpsprintf、echo、print、printf 简单
    phpxdebug配置 简单
  • 原文地址:https://www.cnblogs.com/beingonline/p/7510701.html
Copyright © 2011-2022 走看看