APP下载

云计算技术分析及其展望

2011-06-05赵广才张雪萍

电子设计工程 2011年22期
关键词:虚拟化服务器节点

赵广才,张雪萍

(河南工业大学 信息科学与工程学院,河南 郑州 450001)

2006年,谷歌高级工程师克里斯托夫·比希利亚向谷歌董事长兼CEO施密特提出“云计算”想法。同年在施密特的支持下,谷歌推出“Google 101计划”,并正式提出“云”的概念和理论[1]。随后亚马逊、微软、英特尔、Salesforce、惠普、IBM等公司纷纷提出了自己的“云计划”,这样云安全、云存储、公共云、私有云、云技术、云平台……迅速进入了人们的视野。

云计算是一种新兴的商业计算模型,它利用高速互联网的传输能力,将数据的存储和处理从个人计算机或服务器移到互联网上的计算机集群中。集群环境中包含一个主节点Master和多个子节点Slaver,其中主节点为控制节点,是一个数据管理和分配中心,子节点受主节点控制,实现数据的存储和计算。在这种主从模式下,计算机按客户的需求分配计算资源并进行计算和存取,达到与超级计算机同样的计算能力,从而降低成本。

云计算是一种实现计算和存储资源共享的IT框架模式,它通过互联网将多台计算机连接成集群,形成一个巨大的资源池。这个由多台计算机组成的巨大资源池,被形象的比喻成一朵大“云”,它像发电厂一样,由多台计算机在统一指挥下实现存储和计算,这些存储和计算能力资源分布式的平等的被用户所利用,这些资源对于用户来说是平等的透明的,用户不需要关心那台计算机为自己服务,他们只需要告诉“云”要什么样的服务,一切都交给了“云”,“云”会根据实际情况自动分配,用户的存储和计算能力不受本地硬件的限制,轻松实现高速计算,享受“云”这个共享资源。

1 云计算的概念

云计算的思想是把大量的存储计算资源通过网络连接起来进行资源的统一管理和调度,从而构成一个资源池向用户提供按需服务。在用户看来,“云”中的资源是可以无限扩展的,可以随时获取,按需使用,就像我们日常使用的煤气、水电一样,集中统一存储和管理,方便及时取用,消耗和费用低廉。这可以使个人和企业不用再购买昂贵的硬件设备和软件产品,只需要付费自己需要的那部分服务,也免去了以前硬件的保养和软件繁琐的升级,而且更为安全可靠。另外,云计算是网格计算、并行计算、分布式计算的发展,利用“云”,用户可以方便地通过网络获取强大的计算能力、存储能力以及基础设施。

当前云计算的几种定义:

1)Wikipedia定义云计算:Cloud computing refers to the logical computational resources (data, software)accessible via a computer network (through WAN or Internet etc.), rather than from a local computer.The on-line service can be offered from a cloud provider or it could be private organization's own.In this case these technologies are regarded by some analysts as a technological evolution,or are seen as a marketing trap by others like Richard Stallman[2].

2)中国云计算网定义云计算:云计算(cloud computing)是一种基于因特网的超级计算模式,在远程的数据中心里,成千上万台电脑和服务器连接成一片电脑云,它是分布式处理(Distributed Computing)、并行处理(Parallel Computing)和网格计算(Grid Computing)的发展,或者说是这些计算机科学概念的商业实现[3]。

3)美国国家标准技术研究院NIST定义云计算:Cloud computing is a model for enabling ubiquitous,convenient, ondemand network access to a shared pool of configurable computing resources(e.g.,networks,servers,storage,applications,and services)that can be rapidly provisioned and released with minimal management effort or service provider interaction[4].

4)浪潮对云计算的定义:云计算是一种基于网络的支持异构设施和资源流转的服务供给模型,它提供给客户可自治的服务,实现资源的按需分配、按量计费[5]。

以上描述分别从商业模式、科研技术等不同角度给出云计算的定义,但到目前为止,云计算还没有一个确切统一的定义。从各种描述和资料可以看出,云计算是一种新的计算模型和服务模式,它融合数据存储与管理技术、分布式计算编程技术和网络技术等,在网格计算、并行计算和分布式计算的基础之上发展起来,它通过网络把成千上万台计算机连接成计算机集群,形成一个巨大的资源池,包括硬件资源和软件资源,这些集群中的众多计算机平等透明的为用户提供硬件租用、数据存储、计算分析、软件服务等不同类型的服务,它通过网络将庞大的数据信息和计算程序自动分拆成无数个较小的数据片和子程序,再由多个计算机所组成的巨大的云系统搜索、计算、分析之后将处理结果回传给用户,用户能够快速、及时、安全、可靠的获取所需的服务。

云计算服务端有一大批高级工程师和技术员专门为用户进行各项维护,并且有多个数据副本,用户不用担心数据丢失、病毒入侵等问题,它提供更为安全可靠的数据存储;云计算对用户端设备要求低,使用起来更方便;数据可以轻松地在不同设备之间实现共享;云计算进一步扩展了网络的功能,使数据计算能力和网络共享能力更加强大。

2 云计算的服务模式和系统结构

2.1 服务模式

云计算主要包括基础设施即服务 (IaaS)、平台即服务(PaaS)、软件即服务(SaaS)3 种服务模式。

1)基础设施即服务:商家把由多台服务器集群组成的“云端”基础设施通过互联网按量给客户提供服务,它主要包括存储资源和虚拟化服务器等服务,是一种托管式硬件服务,用户付费使用商家的硬件设施。例如,AmazonWeb服务,IBM的“蓝云”服务等都是将基础设施作为服务出租给用户。

2)平台即服务:它是把开发环境、软件研发平台作为一种服务提供给用户,用户可以在其开发平台上研制开发自己的应用程序并通过互联网提供给用户使用。PaaS实际上是和SaaS一样的模式提供给用户使用的,只不过PaaS提供的服务是软件开发平台,而SaaS提供的服务是应用软件。典型的平台即服务产品有Salesforce的force.com平台和Google公司的 Google App Engine。

3)软件即服务:它是把应用软件作为一种服务提供给用户。服务提供商统一把应用软件放在自己的“云端”服务器上,然后通过互联网提供给用户,用户根据需求订购相应的软件,并根据订购数量和时间来付费,直接通过浏览器使用。Google Doc、Google Apps和Zoho Office等都属于这类服务。

2.2 系统结构

云计算的系统结构主要分为3部分:主服务器节点、子服务器节点和客户端,其系统结构如图1所示。

图1 云计算的系统结构图Fig.1 System architecture chart of cloud computing

主服务器节点主要负责数据映射、负载均衡、任务调度和检测容错等。子服务器节点主要负责高度并行的数据存储和计算处理任务,它受主服务节点的管理和调度,直接与客户端进行数据交换,形成一个大型协调工作的资源池,采用虚拟化技术使资源以最大的利用。主服务器节点和子服务器节点合起来组成“云”服务器,它通过互联网向客户端提供IaaS、Paas、SaaS等服务。云计算Hadoop构架主要包括GFS(Google分布式文件系统)、BigTable(分布式数据库)和MapReduce编程等,GFS分布式文件系统和BigTable分布式数据库提供数据存取,MapReduce提供Map和Reduce高度并行处理。客户端是云计算的入口,客户通过它提交用户请求服务,用户直接可以在Web浏览器上注册、登录、定制服务,用户请求通过互联网发送到云服务器端。

3 云计算的关键技术

云计算作为一种数据密集型的新型超级计算,它以数据为中心,其技术实质是存储、计算、服务器、应用软件等IT软硬件资源的虚拟化,这里介绍其中的数据存储技术、数据管理技术、编程模型、虚拟化技术几个关键技术。

1)数据存储技术

云计算作为数据密集型的超级计算,它要存储海量的数据,因此数据存储的安全可靠与数据读写的经济高效是云计算的基础。云计算采用分布式存储技术把海量的数据存储在服务器集群中,同时为一份数据存储多份副本,采用冗余存储的方式和数据加密技术来保证数据的安全可靠性;云计算用高吞吐率和高传输率来保证并行的为大量用户提供服务。云计算系统中广泛使用的数据存储系统是Google非开源的GFS和Hadoop团队开发的GFS的开源实现HDFS。

GFS即 Google文件系统(Google File System),是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,但可以提供容错功能。它可以给大量的用户提供总体性能较高的服务。

GFS主要分为两类节点:一个主服务器(masterserver)节点和多个块服务器(chunkserver)节点。主服务器节点主要存储与数据文件相关的元数据,元数据包括一个能将64位标签映射到数据块的位置及其组成文件的表格,数据块副本位置和哪个进程正在读写特定的数据块等。主服务器节点会周期性地接收从每个块服务器节点传来的更新(Heart-beat)来让元数据保持最新状态。块服务器节点主要用于存储数据,数据文件会以每个默认大小为64 MB的数据块的方式存储在块服务器上,每个数据块都有一个唯一的64位标签,并且每个数据块会在整个分布式块服务器上有多个副本。GFS架构如图2所示[6]。

图2 GFS架构图Fig.2 GFS architecture chart

GFS这种文件系统使客户与主服务器的交换只限于对元数据的操作,所有数据方面的通信都由客户直接和块服务器联系,这大大提高了系统的效率,防止主服务器负载过重。

2)数据管理技术

云计算需要对海量的分布式数据进行处理、分析,因此,数据管理技术必须能够高效地管理大量的数据。云计算系统中的数据管理技术主要是Google的BigTable数据管理技术和Hadoop团队开发的开源数据管理模块HBase。

BigTable是建立在GFS,Scheduler,Lock Service和Map-Reduce之上的一个大型的分布式数据库,与传统的关系数据库不同,它把所有数据都作为对象来处理,形成一个巨大的表格,用来分布存储大规模结构化数据。BigTable采用多级映射的数据结构,并支持大规模数据处理、高容错性和自我管理等特性,提供PB级的存储能力,使用结构化的文件来存储数据,并整个集群每秒可处理数百万的读写操作。多级映射的数据结构是一个稀疏的、多维的和排序的Map,每个Cell(单元格)由行关键字、列关键字和时间戳来进行三维定位。

BigTable主要分为两部分:其一是Master节点,用来处理元数据相关的操作并支持负载均衡。其二是Tablet节点,主要用于存储数据库的分片tablet,并提供相应的数据访问,同时tablet是基于名为SSTable的格式,对压缩有很好的支持。其基本架构如图3所示[7]。

图3 BigTable基本架构Fig.3 BigTable basic architecture

3)编程模型

MapReduce是一种简化的分布式编程模型和高效的任务调度模型,用于大规模数据集(大于1TB)的并行运算。Map-Reduce主要通过Map(映射)和Reduce(化简)这两个步骤来并行处理大规模数据,它先把分割不相关的数据块文件通过Map程序进行高度的并行处理和计算,再通过Reduce程序将结果汇集整理输出。 MapReduce的模型图如图4所示。

图4 MapReduce模型图Fig.4 MapReduce model chart

MapReduce过程首先把源文件数据根据它所提供的库分成M份数据块文件;然后Master服务器分配不同的数据块文件给不同的Worker服务器进行Map过程,不同的Map之间是相互独立、高度并行的,它以的形式读入数据,把处理后的中间结果也以的形式写入本地硬盘;然后Master服务器分配不同的Worker服务器进行Reduce过程,把形式的中间结果进行合并输出。

4)虚拟化技术

虚拟化技术是云计算、云存储服务得以实现的基础和关键。虚拟化将原本运行在真实环境中的计算机系统或者组件运行在虚拟出来的环境中,它通过在硬件资源、操作系统和应用程序这些不同的层次之间构建一个虚拟化层,这个虚拟化层做为中间层连接上下两层,它向上层提供下层相同或类似的功能,这样上层不直接运行在下层环境中,而是运行在这个虚拟化的环境层中。虚拟化层解除了上下两层的耦合关系,使上层的运行不依赖于下层的具体实现。虚拟化可以节省开销、整合服务、使资源得到最大利用。虚拟化技术包括将单个资源划分成多个虚拟资源的裂分模式和将多个资源整合成一个虚拟资源的聚合模式。虚拟化技术按照IT资源可分为基础设施虚拟化、系统虚拟化和软件虚拟化等,根据对象可分成存储虚拟化、计算虚拟化、网络虚拟化等。

4 云计算技术面临的问题

云计算的快速发展和应用给人们带来了越来越多的便利和实惠,但其发展道路上也存在着很多问题,如数据安全问题、系统稳定可靠性问题、网络传输问题、技术标准化问题等。

1)数据安全问题:如何保证数据存储和传输的安全可靠,数据信息长期安全使用、不丢失、不被错误修改和窃取。特别是有些数据信息是商业机密、国家机密,这些数据的安全直接关系到一个企业和国家的生存、发展和强大。数据的安全性是云计算得以发展的前提和根本,不仅需要技术的改进,也需要法律的进一步完善。

2)系统稳定可靠性问题:大规模的集群计算系统是云计算的支撑,当系统规模增大后,可靠性和稳定性就成为最大的挑战之一。需要通过有效的系统配置、监控、管理、调度、虚拟化等技术,实现一个强大的、动态的、自治的计算存储资源池,提供云计算所需要的大容量计算力。系统级的容错技术是系统技术方面的一个难点。大量服务器进行同一个计算时,单节点故障不应影响应用的正常运行。对类似数据检索这样计算节点间无通讯的应用,这一点比较容易实现。但对那些有大量通讯的紧耦合类应用,当前业内仍无有效的系统级容错方案。目前主要还是依赖应用层面的检查点和重启技术,一方面增加了开发的难度和工作量,另外一方面对运行性能也有一定的影响[8]。

3)网络传输问题:云计算服务建立在网络基础之上,网络传输速率的高低,直接影响着云计算执行效率和优势的发挥,云计算的发展和普及依赖于网络技术的发展。

4)技术标准化问题:云服务在不同的云服务商之间迁移、转换等的兼容移植性问题都需要相关的技术标准去规范和实现。比如,用户希望维护多个云之间的数据同步或者相互操作同步等,比较理想的解决方案是通过一些公共的方法或者标准将多个云数据中心抽象成一个通用的虚拟中心,这样降低相互同步的复杂性,提高不同云服务之间的共用性。

5 云计算的发展应用及其展望

随着互联网技术、分布式计算、信息社会需求等的快速发展,再加上 Google、Amazon、微软、IBM、浪潮等大公司的推动和各国政府的大力支持,云计算在国内外都得到了快速的发展和应用。

Google与IBM于2007年10月开始在卡内基梅隆、麻省理工、斯坦福等美国大学校园内推广云计算计划。它们为这些大学提供相关的软硬件设备及技术支持,学生可以在这些平台上进行各种相关的研究和开发,以促进云计算在学术研究方面的发展。

美国政府正在大力推进云计算计划。2010年美国联邦着重加强了对云计算的投入,资助了众多试点项目,美国国防信息系统部门在去数据中心内部搭建云环境,美国宇航局下设的艾姆斯研究中心也推出了一个名为“星云”(Nebula)的云计算环境,Apps.gov政府网站进行改革,整合商业、社交媒体、生产力应用与云端IT服务[9]。

近年来微软加快了进军云计算领域的步伐。2008年,微软相继发布一系列云产品,推出了新操作系统Azure,企业Exchange的网络版和Office的网络版;2010年,微软展开了名为“Cloud Power”的全球宣传活动,帮助IT专业人士更好的理解云行业的重要变化;近日微软宣布正式加入“云产业论坛”,以促进云行业安全、可靠、透明的发展。

我国政府也越来越重视云计算的发展,进一步加快云计算进程。自从2008年5月中国无锡太湖新城科教产业园建立的中国第一个云计算中心投入运营,各地政府和企业也纷纷启动自己的云计算项目;2008年12月30日阿里巴巴集团旗下子公司阿里软件与江苏南京市政府签订了2009年战略合作框架协议,在南京建立国内首个 “电子商务云计算中心”;运用到商用的云计算,我国有浪潮集团和联想集团,2011年5月31日浪潮正式发布中国第一款云数据中心操作系统——云海OS;在学术领域,我国的华东师范大学、上海交通大学、中科院等很多高校和机构都在进行积极地研究。

到目前为止,已经很多行业都能捕捉到云计算的踪影。尤其在天文地理、医学生物学、网络安全、科研军事、娱乐服务等领域,云计算有着广阔的应用发展前景。比如气象预报、地震监测、天文信息处理、DNA信息分析、病毒扫描、高仿真军事模拟、在线游戏娱乐、海量数据检索、海量高维数据挖掘等行业都急切需要云计算技术解决其中的相关技术难题。中国IDC圈6月9日报道:近日,美国调研公司Forrester Research最新发布的一份研究报告显示,今年全球云计算市场规模将达到407亿美元,而2020年将增至2410亿美元[10]。云计算的广阔应用前景正吸引着人们掀起一翻“云”的浪潮。

6 结束语

云计算既是一种分布式计算技术,也是一种商业服务模式。它融合海量数据存储与管理、并行计算、网络等多种技术,给用户提供IaaS、Paas、SaaS等多种服务,降低成本,方便快捷。随着云计算的深入研究和广泛应用,其技术难题也在逐步得到解决。云计算时代的到来,将会催生更多新的业态,它将给人们的思想观念和生活方式带来巨大的变化。

[1]顾列铭.云计算:IT技术的新转折[EB/OL].(2010-10-12)[2011-05-06].http://s.newhua.com/3g/article.php?id=104345.

[2]Wikipedia.Cloud computing[EB/OL]. (2011-06-14)[2011-06-17].http://en.wikipedia.org/wiki/Cloud_computing.

[3]中国云计算网.什么是云计算?[EB/OL].(2010-07-06)[2011-06-17].http://www.cloudcomputing-china.cn/Article/ShowArticle.asp?ArticleID=1.

[4]NIST.The NIST Definition of Cloud Computing(Draft)[EB/OL].(2011-01)[2011-06-18].http://csrc.nist.gov/publications/drafts/800-145/Draft-SP-800-145_cloud-definition.pdf.

[5]浪潮公司软件研发部.浪潮云计算[EB/OL].(2010-08-31)[2011-07-08]. http://wenku.baidu.com/view/ac22211810a6 f524ccbf85cc.html.

[6]Ghemawat S,Gobioff H,Leung S T.The Google File System[C]//Proceedings of 19th ACM Symposium on Operating Systems Principles,2003:20-43.

[7]陈康,郑纬民.云计算:系统实例与研究现状[J].软件学报,2009,20(5):1337-1348.CHEN Kang,ZHENG Wei-min.Cloud computing:system instance and research[J].Journal of Software,2009,20(5):1337-1348.

[8]正睿科技.云计算应解决四问题 [EB/OL].(2009-07-14)[2011-08-21].http://www.zrway.com/news/news_in.jsp?RecNo=3388.

[9]陈骞.国外云计算发展现状简述[EB/OL].(2009-12-18)[2011-08-21].http://www.istis.sh.cn/list/list.aspx?id=6372.

[10]2020年全球云计算市场规模达2410亿美元[EB/OL].(2011-06-09)[2011-08-23].http://cloud.idcquan.com/yzx/24730.shtml.

猜你喜欢

虚拟化服务器节点
CM节点控制在船舶上的应用
Analysis of the characteristics of electronic equipment usage distance for common users
基于AutoCAD的门窗节点图快速构建
通信控制服务器(CCS)维护终端的设计与实现
基于OpenStack虚拟化网络管理平台的设计与实现
对基于Docker的虚拟化技术的几点探讨
中国服务器市场份额出炉
H3C CAS 云计算管理平台上虚拟化安全防护的实现
得形忘意的服务器标准
计算机网络安全服务器入侵与防御