云计算技术综述
云计算技术综述 摘要摘要 云计算是“以互联网为载体,利用虚拟化等手段整合大规模分布式可配置的计算资源。 使其以服务的方式提供给用户,满足用户按需使用的计算模式” ,然后从计算模式、科学研 究、社会发展等多个维度阐明了云计算作为现代计算技术发展的必然产物所具备的发展意 义,总结了国内外产业界、学术界、 政府机构等在云计算方面的最新研究进展,深入分析了 云计算研究过程中的重点和难点,最后指出了云计算未来的发展趋势。 关键词关键词云计算;虚拟化;海量数据处理 引言引言 所谓云计算,简单地说就是以虚拟化技术为基础, 以网络为载体,以用户为主体为其提 供基础架构“平台“软件等服务为形式, 整合大规模可扩展的计算“存储“数据“应用等分布式计 算资源进行协同工作的超级计算服务模式虚拟化为云计算实现提供了很好技术支撑, 而云计 算可以看作是虚拟化技术应用的成果。 在过去的几年里, 已经出现了众多云计算研究开发小 组,如谷歌、微软、亚马逊、华为、百度、阿里巴巴、中国电信等知名 IT 企业纷纷推出云 计算解决方案, 同时, 国内外学术界也纷纷就云计算及其关键技术相关理论进行了深层次的 研究。 本文力图在对各种云计算定义综合分析的基础上, 提出 1 个相对系统和综合的参考性 定义,挖掘云计算的技术本质和发展意义, 总结国内外最新研究进展, 剖析研究过程中的重 点和难点,指出未来的发展趋势。 1、云计算的内涵和本质 目前关于云计算的定义已有上百种而维基百科对云计算的定义也在不断更新, 前后版本 的差别非常大。 据 2011 年给出的最新定义云计算是一种能够将动态易扩展的虚拟化资源软件和数据 通过互联网提供给用户的计算方式, 如同电网用电一样,用户不需要知道云内部的细节, 也 不必具有管理那些支持云计算的基础设施。 伯克利云计算白皮书的定义 云计算包括互联网上各种服务形式的应用以及数据中心中 提供这些服务的软硬件设施。应用服务即 Saas,而数据中心的软硬件设施即所谓的云。通过 量入为出的方式提供给公众的云称为公共云, 而不对公众开放的组织内部数据中心的云称为 私有云。 美国标准化技术机构 NIST 定义云计算是一种资源利用模式,它能以方便、友好、按需 访问的方式通过网络访问可配置的计算机资源池例如网络、 服务器“存储、 应用程序和服务, 在这种模式中,可以快速供应并以最小的管理代价提供服务。 Sun 公司认为,云的类型有很多,而且有很多不同的应用程序可以使用云来构建,由于 云计算有助于提高应用程序部署速度, 有助于加快创新步伐, 因而云计算可能还会初心在我 们现在无法想象到的形式。 笔者认为云计算是一种大规模资源共享模型, 它是以虚拟技术为核心技术, 以规模经 济为驱动,以Internet 为载体,以用户为主体,按照用户需求动态地提供虚拟化的、可伸缩 性的商业计算模型。云计算是一种服务模式而不单纯是一种技术。 在云计算模式下,不同种 类的 IT 服务按照用户的需求规模和要求动态的构建、运营和维护,用户一般以即用即付的 方式支付其利用资源的费用。网络中的应用服务通常被称作 SaaS,二数据中心软硬件设施即 资源池也就是所谓的云。 “云”是一些可以自我维护和管理的虚拟计算资源,通常是一些大 型服务器集群,包括计算服务器、存储服务和宽带资源等。 总之,云计算是一种方便的使用方式和服务模式,通过互联网按需访问资源池模型 (例 如网络、服 务器、存储、应用程序和服务) ,可以快速和最少的管 理工作为用户提供服务. 云计算是并行计算(parallel computing、分布式计算(distributed computing和网 格计算 (grid computing等技术的发展.云计算又是 虚拟化(virtualization、效用计算(utility com puting 的商业计算模型,它由基础设施即服务、平台即服务和软件即服务3 种服务模式,公 共云、 私有云、 社区云、 混合云 4 种部署模式。 云计算的 5 个基本特点为 按需自助式服务、 广泛的网络访问、资源池、快速弹性使用、可度量的服务。 2、云计算的关键技术 云计算作为一种新的超级计算方式和服务模式 ,以数据为中心 ,是一种数据密集型的超 级计算 .它运用了多种计算机技术,其中以编程模型、数据管理、数据存储、虚拟化和云计 算平台管理等技术最为关键.下面分别介绍云计算的一些关键技术。 2.1 编程模型 MapReduce 作为 Google 开发的 Java、Python、C编程模型,是一种简化的分布式编程 和高 效的任务调度模型, 应用程序编写人员只需将精力 放在应用程序本身, 使云计算环境 下的编程十分简 单.而关于集群的处理问题,包括可靠性和可扩展性,则交由平台来处理 M MapReduce 模式的思想 是通过“Map映射)”和“Reduce化简)”这样 2 个简单的概念 来构成运算基本单元,先通过 Map 程序将数据切割成不相关的区块,分配(调度)给大量 计算机处理,达到分布式运算的效果,再通过Reduce 程序将结果汇整输出,即可并行处理 海量数据。简单地说,云计算是一种 更加灵活、高效、低成本、节能的信息运作的全新方 式 , 通过其编程模型可以发现云计算技术是通过网络将庞大的计算处理程序自动分拆成无数 个较小 的子程序,再由多部服务器所组成的庞大系统搜索、计算分析之后将处理结果回传 给用户.通过这 项技术,远程的服务供应商可以在数秒之内,达成 处理数以千万计甚至亿计 的信息,达到和“超级电脑”同样强大性能的网络服务。 2.2 海量数据分布存储技术 云计算系统采用分布式存储的方式存储数据,用冗余存储的方式保证数据的可靠性.云 计算系统中广泛使用的数据存储系统是 Google 的 GFS 和 Hadoop 团队开发的 GFS 的开源实 现 HDFSGFS 即 Google 文件系统(Google File System,是个可扩展的分布式文件系统,用于 大型的、分布式的、对大量数据进行访问的应用GFS 的设计思想 不同于传统的文件系统, 是针对大规模数据处理和 Google 应用特性而设计的.它虽然运行于廉价的普 通硬件上,但 可以提供容错功能.它可以给大量的 用户提供总体性能较高的服务.一个 GFS 集群由 1 个主 服务器(master和大量的块服务器(chunks- erver构成,并被许多客户(client访问 111 . 主服务 器存储文件系统所有的元数据,包括名字空间、访问控制信息、从文件到块的映射 以及块的当前位 置.它还控制系统活动范围,如块租约(lease管 理,孤立块的垃圾收集, 块服务器间的块迁移.主服 务器定期通过心跳(HeartBeat消息与每一个块服 务器通信,并 收集它们的状态信息。 2.3 海量数据管理技术 海量数据管理是指对大规模数据的计算、分析 和处理,如各种搜索引擎.以互联网为计 算平台的云计算能够对分布的、海量的数据进行有效可靠地 处理和分析.因此,数据管理技 术必需能够高效地 管理大量的数据,通常数据规模达 TB 甚至 PB 级. 云计算系统中的数据 管理技术