物联网技术与应用开发_第1页
物联网技术与应用开发_第2页
物联网技术与应用开发_第3页
物联网技术与应用开发_第4页
物联网技术与应用开发_第5页
已阅读5页,还剩175页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

物联网技术与应用开发第1页/共180页10.1云 计 算 概 述

当今社会,PC依然是日常工作生活中的核心工具—我们用PC处理文档、存储资料,通过电子邮件或U盘与他人分享信息。如果PC硬盘坏了,我们会因为资料丢失而束手无策。而在“云计算”时代,“云”会替我们做存储和计算的工作。“云”就是计算机群,每一群包括了几十万台、甚至上百万台计算机。“云”的好处还在于,其中的计算机可以随时更新,保证“云”长生不老。第2页/共180页大约在2007年,包括IBM、Google、亚马逊等在内的知名企业纷纷提出云计算的概念。在“2009云计算中国论坛”上,成都信息工程学院副教授王鹏(《走进云计算》的作者)指出,这些企业在提出云计算概念的时候,往往依据自己已有的技术基础和自己商业的利益,从不同的角度提出了云计算模型。尽管如此,这些知名企业的推动,促使了整个云计算的概念明确和出现。第3页/共180页在云计算市场,Google的应用引擎(GoogleAppEngine)和微软的LiveMesh为开发云计算应用提供了截然不同的平台。LiveMesh是微软推出的基于云计算的数据同步和设备管理平台。LiveMesh把用户数据的原版拷贝保留在自己的服务器上,这样用户就能从与互联网相连的任何设备访问最新版本的文件。在传统的计算模式中,使用应用程序来创建文档(无论是打字稿、电子表格、数据库还是其他文档),当需要保存文档时,应用程序就把它交给操作系统,操作系统会在本地存储设备中以文件的形式保留一份文档拷贝。第4页/共180页

Google的模式却截然不同。在这种模式中,云计算是多计算机环境下的计算。用户不需要维护任何磁盘,也不需要“文件”或者用来保存文件的文件系统这种人工概念。

Google的云计算还有其他优势,Google免费提供应用程序。由于这些应用程序存在于云计算环境中,所以用户不需要安装软件,也不需要管理程序升级或者安全补丁。实际上,用户完全摆脱了与操作系统之间的所有日常交互。当然,服务器底层运行着某种操作系统,负责运行Google的诸多应用程序;还有某种有组织的存储系统。但这些仅仅是技术细节,不需要用户操心。第5页/共180页虽然Google基于互联网的应用程序确实给人留下了深刻印象,但其中缺乏像微软Office这类桌面软件的高级功能。正由于如此,这种方式很难让习惯于Office的忠实用户改变立场,转身投向Google。另外,在云计算环境中,而不是在本地驱动器上保存及管理文档这种方式也可能让企业客户心生疑虑。比较而言,Google的云计算方案是革命性的,微软的云计算方案却是演进性的。LiveMesh迎合的是现有用户,这比较容易打动人心。不过,Google的发展势头又是不可阻挡的。第6页/共180页10.1.1云计算的定义云计算(CloudComputing)是一种新提出的计算模式。维基百科给云计算下的定义为:云计算将IT相关的能力以服务的方式提供给用户,允许用户在不了解提供服务的技术、没有相关知识以及设备操作能力的情况下,通过Internet获取需要服务。中国云计算网将云计算定义为:云计算是分布式计算(DistributedComputing)、并行计算(ParallelComputing)和网格计算(GridComputing)的发展,或者说是这些科学概念的商业实现。

第7页/共180页

ForresterResearch的分析师JamesStaten将云计算定义为:云计算是一个具备高度扩展性和管理性并能够胜任终端用户应用软件计算基础架构的系统池。第8页/共180页

1.狭义云计算狭义云计算是指IT基础设施的交付和使用模式,即通过网络以按需、易扩展的方式获得所需的资源(硬件、平台、软件)。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。日常生活的供水、供电系统就具有这样的特性,故狭义云计算也就意味着像使用水电一样使用IT基础设施。

第9页/共180页

2.广义云计算广义云计算是指服务的交付和使用模式,即通过网络以按需、易扩展的方式获得所需的服务。这种服务可以是IT和软件、互联网相关的,也可以是任意其他的服务。在广义云计算意义上,“云”是一些可以自我维护和管理的虚拟计算资源,通常为一些大型服务器集群,包括计算服务器、存储服务器、宽带资源等。云计算将所有的计算资源集中起来,并由软件实现自动管理,无需人为参与。这使得应用提供者无需为繁琐的细节而烦恼,能够更加专注于自己的业务,有利于创新和降低成本。第10页/共180页有人打了个比方:这就好比是从古老的单台发电机模式转向了电厂集中供电的模式。它意味着计算能力也可以作为一种商品进行流通,就像煤气、水电一样,取用方便,费用低廉。最大的不同在于,它是通过互联网进行传输的。云计算是并行计算(ParallelComputing)、分布式计算(DistributedComputing)和网格计算(GridComputing)的发展,或者说是这些计算机科学概念的商业实现。云计算是虚拟化(Virtualization)、效用计算(UtilityComputing)、IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)等概念混合演进并跃升的结果。第11页/共180页虽然目前云计算没有统一的定义,但结合上述定义,可以总结出云计算的一些本质特征,即分布式计算和存储特性、高扩展性、用户友好性和良好的管理性。云计算具有以下特点:

(1)超大规模。“云”具有相当的规模,Google云计算已经拥有100多万台服务器,Amazon、IBM、Microsoft、Yahoo等的“云”均拥有几十万台服务器。企业私有云一般拥有数百上千台服务器。“云”能赋予用户前所未有的计算能力。第12页/共180页

(2)虚拟化。云计算支持用户在任意位置、使用各种终端获取应用服务。所请求的资源来自“云”,而不是固定的有形的实体。应用在“云”中某处运行,但实际上用户无需了解、也不用担心应用运行的具体位置。只需要一台笔记本或者一部手机,就可以通过网络服务来实现我们需要的一切,甚至包括超级计算这样的任务。

(3)高可靠性。“云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算比使用本地计算机可靠。第13页/共180页

(4)通用性。云计算不针对特定的应用,在“云”的支撑下可以构造出千变万化的应用,同一个“云”可以同时支撑不同的应用运行。

(5)高可扩展性。“云”的规模可以动态伸缩,满足应用和用户规模增长的需要。

(6)按需服务。“云”是一个庞大的资源池,可按需购买;“云”可以像自来水、电、煤气那样计费。第14页/共180页

(7)极其廉价。由于“云”的特殊容错措施可以采用极其廉价的节点来构成云,“云”的自动化集中式管理使大量企业无需负担日益高昂的数据中心管理成本,“云”的通用性使资源的利用率较之传统系统大幅提升,用户可以充分享受“云”的低成本优势,经常只要花费几百美元、几天时间就能完成以前需要数万美元、数月时间才能完成的任务。

第15页/共180页10.1.2云计算的类型谷歌和雅虎提供的基于Web的电子邮件服务,Carbonite或MozyHome提供的备份服务,S提供的客户资源管理应用软件,以及美国在线(AOL)、谷歌、Skype、Vonage及其他公司提供的即时通信和VoIP服务,这些都是云计算服务。云计算服务隐藏在另一个抽象层后面,可使最终用户原本需要复杂计算架构才能提供的那种功能变得更为简单。下面主要从服务类型和服务方式的角度介绍云计算的类型。第16页/共180页

1.按服务类型分类从服务类型方面可把云计算分为基础设施云、平台云和应用云。

(1)基础设施云:基础架构服务(InfrastructureasaService),提供网格或集群形式的虚拟化服务器、网络、存储和系统软件,旨在补充或更换整个数据中心的功能。这些云为用户提供底层的接近于直接操作硬件资源的服务。这方面最显著的例子有亚马逊的弹性计算云(EC2)和简单存储服务(SimpleStorageService)。第17页/共180页

(2)平台云:亦称平台即服务(PlatformasaService),提供虚拟化服务器,用户可以在虚拟化服务器上运行现有的应用程序,或者开发新的应用程序,不必为维护操作系统、服务器硬件、负载均衡或计算容量而操心。平台可为开发人员提供应用程序的托管,一旦开发人员开发出满足平台运行的应用程序且成功部署后,运行过程中的资源分配和其他的管理工作等将由平台云自行管理。这方面最显著的例子有微软的Azure和Salesforce的F。第18页/共180页

(3)应用云:又称软件即服务(SoftwareasaService),作为知名度最高、应用最广泛的一种云计算,SaaS提供了复杂的传统应用程序的所有功能,这些功能通过Web浏览器而不是安装在本地的应用程序来使用。SaaS消除了应用服务器、存储、应用程序开发及相关的常见IT问题方面的担忧。这方面最显著的例子是S、谷歌的Gmail和Apps、美国在线、雅虎和谷歌的即时通信,以及Vonage和Skype的VoIP。第19页/共180页

2.按服务方式分类从服务方式方面可把云计算分为公有云、私有云和混合云。

(1)公有云:就是有若干企业和若干客户使用的形式。在公有云中,用户使用的服务都是由第三方云服务提供商提供的,该提供商也为其他的客户提供服务,所有的用户共享云服务提供商提供的所有资源。第20页/共180页

(2)私有云:就是只在某个企业内部独立建立的云环境。私有云是专门为企业提供服务的专有云计算服务,企业内部的员工都可以访问这个私有云内部的所有服务资源,当然这也类似我们平时构建的管理系统,可以设置相应的权限,公司或者组织以外的用户无法访问这个云环境中的资源。

(3)混合云:就是公有云和私有云相结合的形式。第21页/共180页10.1.3云计算与物联网

每当人们谈及互联网,联想到的不只是物理设备构成的网,还有一个巨大的信息系统。物联网的情况也与之类似。物联网多被看做是互联网通过各种信息感应、探测、识别、定位、跟踪和监控等手段和设备向物理世界的延伸。对客观世界的感应、探测、监控等,只是人类社会对物理世界实现“感、知、控”的第一个环节,即为物联网“前端”。基于互联网计算的涌现智能以及对物理世界的反馈和控制是另外两个环节,即为物联网“后端”。当前,无论是学术界还是工业界,目光普遍聚焦在物联网“前端”。本节将从物联网“后端”来说明物联网与云计算的关系。第22页/共180页

1.从“后端”看物联网如前面所述,物联网可以看做是互联网通过传感器网络向物理世界的延伸,其最终目标是实现对物理世界的智能化管理。在逻辑上,物联网包括如图10.1所示的三个层次,其中:

(1)物理世界感知是物联网的基础,基于传感技术和网络通信技术,实现对物理世界的探测、识别、定位、跟踪和监控,可以看做是物联网的“前端”。第23页/共180页

(2)大量独立建设的单一物联网应用是物联网建设的起点与基本元素,该类应用往往局限于对单一物品的感应与智能管理,每个物联网应用都是物联网上的一个逻辑节点。

(3)通过对众多单一物联网应用的深度互联和跨域协作,物联网可以形成一个多层嵌套的“网中网”,这是实现物联网智能化管理目标和价值追求的关键所在,可以看做是物联网的“后端”。

第24页/共180页图10.1物联网的三个层次第25页/共180页从“后端”来看,物联网可以看做是一个基于互联网的,以提高物理世界的运行、管理、资源使用效率等水平为目标的大规模信息系统。由于物联网“前端”在对物理世界感应方面具有高度并发的特性,并将产生大量引发“后端”深度互联和跨域协作需求的事件,从而使得上述大规模信息系统表现出以下性质:第26页/共180页

(1)不可预见性:对物理世界的感知具有实时性,会产生大量不可预见的事件,从而需要应对大量即时协同的需求。

(2)涌现智能:对诸多单一物联网应用的集成能够提升对物理世界综合管理的水平,物联网“后端”是产生放大效应的源泉。

(3)多维度动态变化:对物理世界的感知往往具有多个维度,并且是不断动态变化的,从而要求物联网“后端”具有更高的适应能力。

(4)大数据量、实效性:物联网中涉及的传感信息具有大数据量、实效性等特征,对物联网“后端”的信息处理带来诸多新的挑战。第27页/共180页综上所述,实时感应、高度并发、自主协同和涌现效应等特征要求从新的角度审视物联网“后端”信息基础设施,对当前互联网计算(包括云计算、服务计算、网格等)的研究提出了新的挑战,需要有针对性地研究物联网特定的应用集成问题、体系结构及标准规范,特别是大量高并发事件驱动的应用自动关联和智能协作问题。第28页/共180页

2.云与物联网“后端”认为“云”是支撑物联网“后端”的认识存在着误区。云计算起源于互联网公司对特定的大规模数据处理问题解决方案,由于问题和商业模式明确、产业界大力推动以及已有网格等相关前期研究基础等原因,而迅速被热捧和泛化,但其本身远未成熟。即使在不考虑标准化过渡和互操作性等因素的情况下,基本实现云计算愿景恐怕也还要经过一到数个创新周期。因此,我们不能简单地设想和推断云计算便可应对物联网“后端”的需求。

第29页/共180页当前所谓的软件即服务(SaaS)、平台即服务(PaaS)和基础设施即服务(IaaS)三个层次的划分也只是对现有云计算的初级认识,并未全面体现云计算的内涵、外延和发展。“云”的发展大体分为三个阶段:第一阶段,网格从科学领域需求出发,云计算从互联网特定的大规模数据处理需求出发,Web2.0从用户参与的角度出发,尽管各自的应用领域、视角和侧重不同,但都取得了明显的进步,出现了一些令人鼓舞的典型应用;第二阶段,技术体系将互相渗透,会出现统一运营的“行业云”、第三方运营中心等;第三阶段也是互联网计算的愿景:客户通过基于标准的服务交互方式,以极低的成本按需从基础设施获取高质量的计算、存储、数据、平台和应用等服务,客户无需关心服务是由什么“云”提供的。第30页/共180页在早期的客户/服务器模式下,应用服务器由各组织机构自行运营维护,服务体现为紧耦合的对应程序调用结果的消息。随着以CORBA(CommonObjectRequestBrokerArchitecture,公用对象请求代理(调度)程序体系结构)、J2EE(Java2Platform,EnterpriseEdition)等分布式对象系统的发展,服务也升级为分布式平台为客户端提供价值的纽带;随着互联网的发展,原来属于应用系统的共性功能逐渐下沉至基础设施,越来越多的应用服务器交给“云”上的运营者运营维护,客户端则基于服务中间件(如ESB(EnterpriseServiceBus)、ServiceRegistry等)享受云端提供的万维网服务(WebService)和REST(REpresentationalStateTransfer,表述性状态转变)服务形式的松耦合的服务。第31页/共180页未来,“云”提供的服务将从多个层面、不同视角在“服务空间”中进行一体化管理和组织,服务不再是一维的抽象,将覆盖业务牵引的角度、以用户为中心的角度、层次的角度等各个视角。CSI将云体系结构归纳为用户端和基础设施,服务是其纽带,也是构造基于互联网的应用系统的第一元素(First-ClassEntity)。随着以“云”为标识的互联网信息处理基础设施的发展,服务计算的重要性将更加凸显。针对物联网需求特征的优化策略、优化方法和涌现智能也将更多地以服务组合的形式体现,并出现物联网服务新形态,进一步推动服务计算相关学科的发展。第32页/共180页人类基础设施的发展经过上百年还未完善,同样可以断定,物联网“后端”的发展完善也是一个长远的事情。因此,人们不能把云计算的愿景当做现实。我们应在考虑长期战略目标的同时,以价值和典型应用为牵引,先建立特定领域中统一运营的“行业云”和第三方运营中心,以实现资源优化利用以及跨域的资源共享和应用集成。同时,需要充分考虑到物联网上的信息具有多元、多源、多级过滤和分析、动态变化、数据量巨大等特点。第33页/共180页10.2云计算系统的组成及其技术10.2.1云计算系统的组成云计算的体系结构由五部分组成,分别为资源层、平台层、应用层、用户访问层和管理层,如图10.2所示。云计算的本质是通过网络提供服务,所以其体系结构以服务为核心。第34页/共180页

1.资源层资源层是指基础架构层面的云计算服务,这些服务可以提供虚拟化的资源,从而隐藏物理资源的复杂性。资源层包括物理资源、服务器服务、网络服务和存储服务。

(1)物理资源指的是物理设备,如服务器等。

(2)服务器服务指的是操作系统的环境,如Linux集群等。

(3)网络服务指的是提供的网络处理能力,如防火墙、VLAN、负载等。

(4)存储服务为用户提供存储能力。

第35页/共180页图10.2云计算的体系结构第36页/共180页

2.平台层平台层为用户提供对资源层服务的封装,使用户可以构建自己的应用。平台层包括数据库服务和中间件服务。

(1)数据库服务提供可扩展的数据库处理的能力。

(2)中间件服务为用户提供可扩展的消息中间件或事务处理中间件等服务。第37页/共180页

3.应用层应用层提供软件服务,包括企业应用服务和个人应用服务。

(1)企业应用是指面向企业的用户,如财务管理、客户关系管理、商业智能等。

(2)个人应用是指面向个人用户的服务,如电子邮件、文本处理、个人信息存储等。

第38页/共180页

4.用户访问层用户访问层是方便用户使用云计算服务所需的各种支撑服务,针对每个层次的云计算服务都需要提供相应的访问接口。它包括服务目录、订阅管理和服务访问。

(1)服务目录是一个服务列表,用户可以从中选择需要使用的云计算服务。

(2)订阅管理是提供给用户的管理功能,用户可以查阅自己订阅的服务,或者终止订阅的服务。

(3)服务访问是针对每种层次的云计算服务提供的访问接口。针对资源层的访问可能是远程桌面或者XWindows;针对应用层的访问,提供的接口可能是Web。第39页/共180页

5.管理层管理层提供对所有层次云计算服务的管理功能,包括安全管理、服务组合、服务目录管理、服务使用计量、服务质量管理、部署管理和服务监控。

(1)安全管理:提供对服务的授权控制、用户认证、审计、一致性检查等功能。

(2)服务组合:提供对自己有云计算服务进行组合的功能,使得新的服务可以基于已有服务创建时间。第40页/共180页

(3)服务目录管理服务:提供服务目录和服务本身的管理功能,管理员可以增加新的服务,或者从服务目录中除去服务。

(4)服务使用计量:对用户的使用情况进行统计,并以此为依据对用户进行计费。

(5)服务质量管理:提供对服务的性能、可靠性、可扩展性进行管理的功能。

(6)部署管理:提供对服务实例的自动化部署和配置功能。当用户通过订阅管理增加新的服务订阅后,部署管理模块自动为用户准备服务实例。

(7)服务监控:提供对服务的健康状态的记录功能。第41页/共180页10.2.2云计算系统的服务层次

1.云计算的服务层次在云计算中,根据其服务集合所提供的服务类型,整个云计算服务集合被划分成应用层、平台层、基础设施层和虚拟化层四个层次,每一层都对应着一个子服务集合。云计算的服务层次如图10.3所示。第42页/共180页图10.3云计算的服务层次第43页/共180页云计算的服务层次是根据服务类型即服务集合来划分的,与大家熟悉的计算机网络体系结构中层次的划分不同。在计算机网络中,每个层次都实现一定的功能,层与层之间有一定关联。而云计算体系结构中的层次是可以分割的,即某一层次可以单独完成一项用户的请求而不需要其他层次为其提供必要的服务和支持。在云计算服务体系结构中,各层次与相关云产品对应如下:第44页/共180页

(1)应用层对应SaaS(软件即服务),如GoogleAPPS、SoftWare+Services。

(2)平台层对应PaaS(平台即服务),如IBMITFactory、GoogleAPPEngine、F。

(3)基础设施层对应IaaS(基础设施即服务),如AmazonEc2、IBMBlueCloud、SunGrid。

(4)虚拟化层对应硬件即服务结合Paas提供硬件服务,包括服务器集群及硬件检测等服务。第45页/共180页

2.云计算的技术层次云计算的技术层次和云计算的服务层次不是一个概念,后者从服务的角度来划分云的层次,主要突出了云服务能给我们带来什么。而云计算的技术层次主要从系统属性和设计思想角度来说明云,是对软、硬件资源在云计算技术中所充当角色的说明。从云计算技术角度来分,云计算大约由服务接口、服务管理中间件、虚拟化资源、物理资源四部分构成,如图10.4所示。

第46页/共180页图10.4云计算技术结构第47页/共180页

(1)服务接口:统一规定了在云计算时代使用计算机的各种规范、云计算服务的各种标准等,用户端与云端交互操作的入口,可完成用户或服务注册,对服务进行定制和使用等。第48页/共180页

(2)服务管理中间件:在云计算技术中,中间件位于服务和服务器集群之间,提供管理和服务即云计算体系结构中的管理系统。对标识、认证、授权、目录、安全性等服务进行标准化和操作,为应用提供统一的标准化程序接口和协议,隐藏底层硬件、操作系统和网络的异构性,统一管理网络资源。其用户管理包括用户身份验证、用户许可、用户定制管理;资源管理包括负载均衡、资源监控、故障检测等;安全管理包括身份验证、访问授权、安全审计、综合防护等;映像管理包括映像创建、部署、管理等。第49页/共180页

(3)虚拟化资源:指一些可以实现一定操作、具有一定功能,但其本身是虚拟而不是真实的资源,如计算池、存储池和网络池、数据库资源等,通过软件技术来实现相关的虚拟化功能,如虚拟环境、虚拟系统、虚拟平台。第50页/共180页

(4)物理资源:主要指能支持计算机正常运行的一些硬件设备及技术,可以是价格低廉的PC,也可以是价格昂贵的服务器及磁盘阵列等设备,可以通过现有网络技术和并行技术、分布式技术将分散的计算机组成一个能提供超强功能的集群用于计算和存储等云计算操作。在云计算时代,本地计算机可能不再像传统计算机那样需要空间足够的硬盘、大功率的处理器和大容量的内存,只需要一些必要的硬件设备,如网络设备和基本的输入/输出设备等。

第51页/共180页10.2.3云计算的关键技术云计算是分布式处理、并行计算和网格计算等概念的发展和商业实现,其技术实质是计算、存储、服务器、应用软件等IT软、硬件资源的虚拟化。云计算在虚拟化、数据存储、数据管理、编程模式等方面具有自身独特的技术。云计算的关键技术包括以下几个方面。第52页/共180页

1.虚拟机技术虚拟机即服务器虚拟化,是云计算底层架构的重要基石。在服务器虚拟化中,虚拟化软件需要实现对硬件的抽象,资源的分配、调度和管理,虚拟机与宿主操作系统及多个虚拟机间的隔离等功能,目前典型的实现(基本成为事实标准)有CitrixXen、VMwareESXServer和MicrosoftHype-V等。第53页/共180页

2.数据存储技术云计算系统需要同时满足大量用户的需求,并行地为大量用户提供服务。因此,云计算的数据存储技术必须具有分布式、高吞吐率和高传输率的特点。目前数据存储技术主要有Google的GFS(GoogleFileSystem,非开源)以及HDFS(HadoopDistributedFileSystem,开源),这两种技术已经成为事实标准。第54页/共180页

3.数据管理技术云计算的特点是对海量的数据存储、读取后进行大量的分析,如何提高数据的更新速率以及进一步提高随机读速率是未来数据管理技术必须解决的问题。云计算的数据管理技术最著名的是谷歌的BigTable数据管理技术,同时Hadoop开发团队已开发出类似BigTable的开源数据管理模块。第55页/共180页

4.分布式编程与计算为了使用户能更轻松的享受云计算带来的服务,让用户能利用该编程模型编写简单的程序来实现特定的目的,云计算上的编程模型必须十分简单。必须保证后台复杂的并行执行和任务调度向用户和编程人员透明。当前各IT厂商提出的“云”计划的编程工具均基于Map-Reduce的编程模型。

第56页/共180页10.3典型云计算系统简介10.3.1Amazon云计算基础架构平台目前,最受欢迎的云计算平台是AmazonWebServices(AWS),在云上最受欢迎的数据库是MySQL。尽管Amazon在2002年就已经开始着手AWS,并从那时已使许多新的计算服务,包括基础架构、电子商务和Web信息服务变得可用,然而我们希望继续集中部署这些与MySQL最相关的内容,如ElasticComputingCloud(EC2,弹性计算云),SimpleStorageService(S3,简便存储服务)和ElasticBlockStore(EBS,持久存储)。针对这些服务,开发人员可以使用Web服务、具体的REST和SOAP协议访问。第57页/共180页

AmazonEC2和MySQL,对于一个想减少资金花费和运营成本,同时以最小的成本和投入来动态扩展其应用的机构来说,是相当适合的。亚马逊AmazonEC2上订阅一个MySQLEnterprise,开发人员充分依托MySQL数据库专家,可以在云上更具成本效益地交付Web-scale数据库应用。第58页/共180页

1.Amazon弹性计算云(EC2)

AmazonEC2服务开始于2006年,在2008年变得普遍广泛可用。EC2使得亚马逊云能够动态扩展计算能力。它使开发人员更容易交付Web-scale应用。亚马逊云计算能够忽略硬件,取而代之的是当需求增加时,可以使用(或不使用)额外的虚拟硬件。支撑EC2服务的是Xen虚拟技术。Xen是开源软件,它允许操作系统(如Linux、Windows或者Solaris)作为“虚拟机器”,并同时运行在相同的硬件上。使用Xen时,EC2可以快速提供客户虚拟服务器的规格说明书,定制硬件特性,如CPU数、内存和软件容错。第59页/共180页

2.Amazon简单存储服务(S3)

Amazon也发行了S3,它可提供在线存储Web服务。S3给开发人员提供一个简单、安全、本质上拥有无限能力的连续在线存储。S3可以被看成在“云”上的一个很大的磁盘驱动或一个SAN。和带宽的收费模式一样,Amazon对最终用户按每GB存储收费,并且当存储和检索S3数据时要求收费。用S3可以存储和获得Amazon认为是对象的无组织的数据。亚马逊存储如图10.5所示。第60页/共180页图10.5亚马逊存储第61页/共180页这些对象可以是拥有2KB相关元数据,而这些对象又可以存放在1B到5GB范围内的任何地方。S3里没有目录或文件名,对象存储在“Buckets”当中,并由开发人员通过预设的唯一键进行检索。Buckets和其内部包含的对象存储在两个不同的物理区域中,但是它们可以从任何地方访问。使用一个REST和SOAP接口,开发人员可以创建、列出和检索Buckets和对象,同时可以通过GET接口或者BitTorrent协议下载亚马逊WebMySQL。第62页/共180页

3.Amazon持久存储(EBS)

EBS在2008年开始运营时,是AmazonEC2最令人期待的特性之一。在EBS之前,EC2存储是和本地实例联系在一起的,这就意味着如果EC2实例被破坏,本地实例上存储的数据就变得不可用了。为了解决该问题,Amazon创建了EBS,提供块级水平存储容量,其可以不考虑EC2实例的状态。对于开发人员,EBSVolume的出现作为标准的块机制,其大小从1GB变化到1TB。指定机制名称和块机制接口以后,用户可以配置一个他们选择的EBSVolume的文件系统。第63页/共180页

1)在AmazonEC2上部署MySQL在EC2上开始MySQL是很简单的,亚马逊WebMySQL如图10.6所示。首先,假定已经设置了Amazon账号,可以从AmazonAMI目录使用一个已存在的AMI预设置MySQL,或者使用自己的AmazonSDK创建。用户还可以从其他的资源获得可用的“模板化”AMI图形。其次,一旦做了任何配置,为了再次使用和安全保存,应该上传用户的AMI到S3。最后,选择想部署的EC2实例,配置安全和网络控制。第64页/共180页图10.6亚马逊WebMySQL第65页/共180页

2)亚马逊WebServer亚马逊WebServer如图10.7所示。用于AmazonEC2上的MySQLEnterprise是基于支持而提供的订阅,使得开发人员可以低成本地在云上交付Web扩展数据库应用,在云上使用世界上最受欢迎的开源数据库。在AmazonEC2上使用MySQLEnterprise的好处包括:可利用MySQL的可靠性、高性能和易用性,可在云上交付大量的可扩展的Web应用;使用MySQLReplication进行主从数据库复制、切换和备份,实现高可用性应用。第66页/共180页图10.7亚马逊WebServer第67页/共180页10.3.2Google云计算应用平台

Google的云计算技术实际上是针对Google特定的网络应用程序而定制的。针对内部网络数据规模超大的特点,Google提出了一整套基于分布式并行集群方式的基础架构,利用软件的能力来处理集群中经常发生的节点失效问题。

第68页/共180页从2003年开始,Google连续几年在计算机系统研究领域的顶级会议与杂志上发表论文,揭示了其内部的分布式数据处理方法,向外界展示其使用的云计算核心技术。从其近几年发表的论文来看,Google使用的云计算基础架构模式包括四个相互独立又紧密结合在一起的系统,即建立在集群之上的Google文件系统(GoogleFileSystem,GFS),针对Google应用程序的特点提出的Map/Reduce分布式编程环境,分布式的锁机制Chubby以及Google开发的模型简化的大规模分布式数据库管理系统BigTable。第69页/共180页

1.Google文件系统为了满足Google迅速增长的数据处理需求,Google设计并实现了Google文件系统(GFS)。GFS与过去的分布式文件系统拥有许多相同的目标,例如高性能、可伸缩性、可靠性以及可用性。然而,它的设计还受到Google应用负载和技术环境的影响,主要体现在以下四个方面:

(1)集群中的节点失效是一种常态,而不是一种异常。由于参与运算与处理的节点数目非常庞大,通常会使用上千个节点进行共同计算,因此,每时每刻总会有节点处在失效状态。需要通过软件程序模块,监视系统的动态运行状况,侦测错误,并且将容错以及自动恢复系统集成在系统中。第70页/共180页

(2) Google系统中的文件大小与通常文件系统中的文件大小的概念不一样,文件大小通常以GB计。另外,文件系统中的文件含义与通常文件的不同,一个大文件可能包含大量数目的通常意义上的小文件。所以,设计预期和参数(例如I/O操作和块尺寸)都要重新考虑。

(3) Google文件系统中的文件读写模式和传统的文件系统不同。在Google应用(如搜索)中对大部分文件的修改,不是覆盖原有数据,而是在文件尾追加新数据,对文件的随机写是几乎不存在的。对于这类巨大文件的访问模式,客户端对数据块缓存失去了意义,追加操作成为性能优化和原子性(把一个事务看做是一个程序,它要么被完整地执行,要么完全不执行)保证的焦点。第71页/共180页

(4)文件系统的某些具体操作不再透明,而且需要应用程序的协助完成,应用程序和文件系统API的协同设计提高了整个系统的灵活性。例如,放松了对GFS一致性模型的要求,这样不用加重应用程序的负担,就大大简化了文件系统的设计。GFS还引入了原子性的追加操作,这样多个客户端同时进行追加的时候,就不需要额外的同步操作了。总之,GFS是为Google应用程序本身而设计的。第72页/共180页

GoogleFileSystem的系统架构如图10.8所示,一个GFS集群包含一个主服务器和多个块服务器,被多个客户端访问。文件被分割成固定尺寸的块。在每个块创建的时候,服务器分配给它一个不变的、全球唯一的64位块句柄对它进行标识。块服务器把块作为Linux文件保存在本地硬盘上,并根据指定的块句柄和字节范围来读写块数据。为了保证可靠性,每个块都会复制到多个块服务器上,缺省保存三个备份。主服务器管理文件系统所有的元数据,包括名字空间、访问控制信息和文件到块的映射信息,以及块当前所在的位置。第73页/共180页

GFS客户端代码被嵌入到每个程序里,它实现了Google文件系统API,帮助应用程序与主服务器和块服务器通信,对数据进行读写。客户端跟主服务器交互进行元数据操作,但是所有的数据操作的通信都是直接和块服务器进行的。客户端提供的访问接口类似于POSIX接口,但有一定的修改,并不完全兼容POSIX标准。通过服务器端和客户端的联合设计,GoogleFileSystem能够针对它本身的应用获得最大的性能以及可用性效果。第74页/共180页第75页/共180页

2.Map/Reduce分布式编程环境为了让内部非分布式系统方向背景的员工能够有机会将应用程序建立在大规模的集群基础之上,Google还设计并实现了一套大规模数据处理的编程规范Map/Reduce系统。这样,非分布式专业的程序编写人员也能够为大规模的集群编写应用程序而不用去顾虑集群的可靠性、可扩展性等问题。应用程序编写人员只需要将精力放在应用程序本身,而关于集群的处理问题则交由平台来处理。第76页/共180页

Map/Reduce通过“Map(映射)”和“Reduce(化简)”这样两个简单的概念来参加运算,用户只需要提供自己的Map函数以及Reduce函数就可以在集群上进行大规模的分布式数据处理。

Google的文本索引方法,即搜索引擎的核心部分,已经通过Map/Reduce的方法进行了改写,获得了更加清晰的程序架构。在Google内部,每天有上千个Map/Reduce的应用程序在运行。第77页/共180页

3.大规模分布式数据库管理系统BigTable构建于上述两项基础之上的第三个云计算平台就是Google将数据库系统扩展到分布式平台上的BigTable系统。很多应用程序对于数据的组织都是非常有规则的,一般来说,数据库对格式化数据的处理也是非常方便的,但是由于关系数据库很强的一致性要求,很难将其扩展到很大的规模。为了处理Google内部大量的格式化以及半格式化数据,Google构建了弱一致性要求的大规模数据库系统BigTable。第78页/共180页图10.9给出了在BigTable模型中的数据模型。数据模型包括行列以及相应的时间戳,所有的数据都存放在表格中的单元里。BigTable的内容按照行来划分,将多个行组成一个小表,保存到某一个服务器节点中。这一个小表就被称为Tablet。以上是Google内部云计算基础平台的三个主要部分,除了这三个部分之外,Google还建立了分布式的锁服务等一系列相关的云计算服务平台。第79页/共180页图10.9GoogleBigTable的数据模型第80页/共180页

4.Google的云应用除了上述的云计算基础设施之外,Google还在其云计算基础设施之上建立了一系列新型网络应用程序。由于借鉴了异步网络数据传输的Web2.0技术,这些应用程序给予用户全新的界面感受以及更加强大的多用户交互能力。其中典型的Google云计算应用程序就是Google推出的Docs网络服务程序。第81页/共180页

GoogleDocs是一个基于Web的工具,它有跟MicrosoftOffice相近的编辑界面,有一套简单易用的文档权限管理,并能记录下所有用户对文档所做的修改。GoogleDocs的这些功能非常适用于网上共享与协作编辑文档。GoogleDocs甚至可以用于监控责任清晰、目标明确的项目进度。当前,GoogleDocs已经推出了文档编辑、电子表格、幻灯片演示、日程管理等多个功能的编辑模块,能够替代MicrosoftOffice相应的一部分功能。值得注意的是,通过这种云计算方式形成的应用程序非常适合于多个用户进行共享以及协同编辑,为一个小组的人员进行共同创作带来很大的方便性。第82页/共180页虽然Google可以说是云计算的最大实践者,但是,Google的云计算平台是私有的环境,特别是Google的云计算基础设施还没有开放。除了开放有限的应用程序接口,例如GWT(GoogleWebToolkit)以及GoogleMapAPI等,Google并没有将云计算的内部基础设施共享给外部的用户使用,上述的所有基础设施都是私有的。第83页/共180页幸运的是,Google公开了其内部集群计算环境的一部分技术,使得全球的技术开发人员能够根据这一部分文档构建开源的大规模数据处理云计算基础设施,其中最有名的项目即Apache旗下的Hadoop项目。而IBM的蓝云计算和亚马逊的弹性计算云的实现则为外部的开发人员以及中小公司提供了云计算的平台环境,使得开发者能够在云计算的基础设施之上构建自己的新型网络应用。IBM的蓝云计算平台是可供销售的计算平台,用户可以基于这些软硬件产品自己构建云计算平台。亚马逊的弹性计算云则是托管式的云计算平台,用户可以通过远端的操作界面直接使用。第84页/共180页10.3.3Microsoft云计算服务对微软来说,进入云计算的领域不是最早的,但是微软不乏后发制人的先例。在三大类云计算服务(IaaS、PaaS和SaaS)上,微软推出了WindowsServerPlatform,同时也推出了WindowsAzurePlatform解决方案。本节介绍微软的WindowsAzurePlatform解决方案的核心技术。第85页/共180页

WindowsAzurePlatform运行在微软数据中心的服务器和网络基础设施上,通过公共互联网对外提供服务。微软对云计算提出一个公式:云计算 = (数据软件 + 平台 + 基础设施) × 服务此公式表明了云最重要的是服务。基于云计算服务的三种模式,微软云计算采用了“软件+服务”,“云+端”的策略。WindowsAzurePlatform正是这一策略的具体实现,它一方面提供了可靠的软件平台;另一方面通过提供服务或者开放的系统运营企业服务。第86页/共180页

1.WindowsAzurePlatform的功能

WindowsAzurePlatform包括WindowsAzure、SQLAzure、WindowsAzureAppFabric(或WindowsAzurePlatformAppFabric,以下简称AppFabric,有的书中把WindowsServerAppFabric也简称为AppFabric,除非特别说明,本书中的AppFabric都是指WindowsAzureAppFabric)。WindowsAzure可看成是云计算服务的操作系统;SQLAzure可看成是云端的关系型数据库;AppFabric是一个基于Web的开放服务,可以把现有应用和服务与云平台的连接和互操作变得更为简单,如图10.10所示。第87页/共180页图10.10WindowsAzurePlatform的组成第88页/共180页

1) WindowsAzure

WindowsAzure是一个云服务的操作系统,它提供了一个可扩展的开发、托管服务和服务管理环境。WindowsAzure主要包括三个部分:一是运营应用的计算服务;二是数据存储服务;三是基于云平台进行管理和动态分配资源的控制器(FabricController)。第89页/共180页

WindowsAzure提供了一个可扩展的开发、托管服务和服务管理环境,这其中包括提供基于虚拟机的计算服务和基于Blobs、Tables、Queues、Drives等的存储服务。WindowsAzure是一个开放的平台,支持微软和非微软的语言和环境。开发人员在构建WindowsAzure应用程序和服务时,不仅可以使用熟悉的MicrosoftVisualStudio、Eclipse等开发工具,同时WindowsAzure还支持各种流行的标准与协议,包括SOAP、REST、XML和HTTPS等。第90页/共180页

2) SQLAzure

SQLAzure帮助用户简化多数据库的创建和部署,开发人员无需安装、设置数据库软件,也不必为数据库打补丁或进行管理;为用户提供了内置的高可用性和容错能力,且无需客户进行实际管理;支持TDS和Transact-SQL(T-SQL),客户可以使用现有技术在T-SQL上进行开发,还可使用与现有的客户自有数据库软件相对应的关系型数据模型。

SQLAzure(之前被称为SQLServerDataServices)是以SQLServer2008为主,建构在WindowsAzure之上,运行云计算的关系数据库服务,是一种云存储的实现,并提供网络型的应用程序数据存储的服务,简单地说就是SQLServer的云端版本。第91页/共180页

SQLAzure是一个云的关系型数据库,它可以在任何时间提供客户数据应用。SQLAzure基于SQLServer技术构建,但并非简简单单地将SQLServer安装在微软的数据中心,而是采用了更先进的架构设计,由微软基于云进行托管,提供的是可扩展、多租户、高可用的数据库服务。SQLAzure在架构上分成四个层次,即ClientLayer、ServicesLayer、PlatformLayer和InfrastructureLayer,如图10.11所示。第92页/共180页图10.11SQLAzure的架构第93页/共180页

3) AppFabric

AppFabric作为中间件层,起着连接非云端程序与云端程序的桥梁的作用,它让开发人员可以把精力放在他们的应用逻辑上而不是在部署和管理云服务的基础架构上。

AppFabric是基于Web的开放服务,它可以把现有应用和服务与云平台的连接和互操作变得更为简单,为本地应用和云中应用提供了分布式的基础架构服务。在云计算中存储数据与运行应用都很重要,但是我们还需要一个基于云的基础架构服务。这个基础架构服务应该既可以被客户自有软件应用,又能被云服务应用,AppFabric就是这样一个基础架构服务。第94页/共180页需要说明的是,WindowsServerAppFabric和WindowsAzureAppFabric是不同的,它们之间的关系类似于SQLServer和SQLAzure之间的关系,即带“Server”的是服务器产品,带Azure的是云端产品,我们甚至可以把WindowsAzureAppFabric理解为一款主要面向私有云计算的系统。第95页/共180页

WindowsAzure提供了一个叫做Role的概念,每个Role可以被认为是一段程序,与普通的应用程序不同的是这段程序可以同时在一台或者多台机器上运行。每个Role可以有多个实例(Instance),每个实例对应一台虚拟机。对同一个Role而言,它所有的实例执行的程序都是相同的。现在有两种类型的Role:WorkerRole(工作者角色)和WebRole(Web角色)。

WebRole:是一个Web应用程序,它可以通过HTTP或HTTPS与外界通信。一般来说,Web角色响应请求,执行一个动作,然后等待下一个请求的到来。第96页/共180页

WorkerRole:是一种后台执行(RunningonBackground)的应用程序,运行.Net框架代码的后台进程应用程序。

AppFabric最常用的一个场景是:WebRole和WorkerRole之间的通信。不仅如此,AppFabric最强大的地方在于能够跨平台。第97页/共180页

2.微软云计算参考架构从图10.12所示的微软云计算的参考架构可以看到WindowsAzurePlatform是一个PaaS类和IaaS类的平台。因为WindowsAzure提供了存储、管理功能,SQLAzure提供了关系型数据的存储,而WindowsAzureAppFabric则是连接了WindowsAzure和SQLAzure的中间件,将安全连接作为一项服务提供,帮助开发人员在云部署、内部部署和托管部署之间架起桥梁,这座桥梁提供了两种服务:ServiceBus(服务总线)和AccessControl(访问控制),所以WindowsAzurePlatform是一个PaaS类和IaaS类的平台。第98页/共180页图10.12微软云计算的参考架构第99页/共180页

WindowsAzurePlatform的基础是虚拟化,虚拟化架起了硬件资源(主机、存储、网络、其他硬件)和基础服务之间的桥梁。PaaS通过基础服务和虚拟化来使用资源层的资源。虚拟化对用户来说是透明的,同时虚拟化也是动态数据中心的基础核心层。可以说,没有虚拟化技术,想要实现动态数据中心几乎是不可能的,但是虚拟化不是云计算。第100页/共180页10.3.4IBM蓝云计算平台

IBM在2007年11月15日推出了蓝云计算平台,为客户带来即买即用的云计算平台。它包括一系列的云计算产品,使得计算不仅仅局限在本地机器或远程服务器农场(即服务器集群),通过架构一个分布式、可全球访问的资源结构,使得数据中心在类似于互联网的环境下运行计算。第101页/共180页“蓝云”建立在IBM大规模计算领域的专业技术基础上,基于由IBM软件、系统技术和服务支持的开放标准和开源软件。简单地说,“蓝云”基于IBMAlmaden研究中心(AlmadenResearchCenter)的云基础架构,包括Xen和PowerVM虚拟化、Linux操作系统映像以及Hadoop文件系统与并行构建。“蓝云”由IBMTivoli软件支持,通过管理服务器来确保基于需求的最佳性能。这包括通过能够跨越多服务器实时分配资源的软件,为客户带来一种无缝体验,加速性能并确保在最苛刻环境下的稳定性。IBM发布的“蓝云(BlueCloud)”计划,能够帮助用户进行云计算环境的搭建。它通过将Tivoli、DB2、WebSphere与硬件产品集成,能够为企业架设一个分布式、可全球访问的资源结构。第102页/共180页蓝云计算的高层架构如图10.13所示。可以看到,蓝云计算平台的数据中心是由IBMTivoli部署管理软件(TivoliProvisioningManager)、IBMTivoli监控软件(IBMTivoliMonitoring)、IBMWebSphere应用服务器、IBMDB2数据库以及一些虚拟化的组件共同组成的。图中的架构主要描述了云计算的后台架构,并没有涉及前台的用户界面。第103页/共180页图10.13蓝云计算的高层架构第104页/共180页蓝云的硬件平台与相对分布式平台无特殊要求,但是蓝云使用的软件平台与相对分布式平台有所不同,主要体现在虚拟机的使用以及对大规模数据处理软件ApacheHadoop的部署。Hadoop是网络开发人员根据Google公司公开的资料开发出来的类似于GoogleFileSystem的HadoopFileSystem以及相应的Map/Reduce编程规范。Hadoop是开源的,用户可以直接修改,以适合应用的特殊需求。IBM的蓝云产品则直接将Hadoop软件集成到自己本身的云计算平台之上。第105页/共180页

1.“蓝云”中的虚拟化从蓝云的结构上可以看出,在每一个节点上运行的软件栈与传统的软件栈一个很大的不同在于蓝云内部使用了虚拟化技术。虚拟化的方式在云计算中可以在两个级别上实现。一个是在硬件级别上实现虚拟化。硬件级别的虚拟化可以使用IBMP系列的服务器,获得硬件的逻辑分区LPAR。逻辑分区的CPU资源能够通过IBMEnterpriseWorkloadManager来管理。通过这样的方式加上在实际使用过程中的资源分配策略,能够使得相应的资源合理地分配到各个逻辑分区。P系列系统的逻辑分区最小粒度是1/10颗中央处理器(CPU)。第106页/共180页虚拟化的另外一个级别可以通过软件来获得,即Xen虚拟化软件。Xen也是一个开源的虚拟化软件,能够在现有的Linux基础之上运行另外一个操作系统,并通过虚拟机的方式灵活地进行软件部署和操作。通过虚拟机的方式进行云计算资源的管理具有特殊的好处。由于虚拟机是一类特殊的软件,能够完全模拟硬件的执行,因此能够在上面运行操作系统,进而能够保留一整套运行环境语义。这样,可以将整个执行环境通过打包的方式传输到其他物理节点上,使得执行环境与物理环境隔离,方便整个应用程序模块的部署。总体上来说,通过将虚拟化的技术应用到云计算的平台,可以获得一些良好的特性。第107页/共180页

(1)云计算的管理平台能够动态地将计算平台定位到所需要的物理平台上,而无需停止运行在虚拟机平台上的应用程序,这比采用虚拟化技术之前的进程迁移方法更加灵活。

(2)能够更加有效地使用主机资源,将多个负载不是很重的虚拟机计算节点合并到同一个物理节点上,从而能够关闭空闲的物理节点,达到节约电能的目的。

(3)通过虚拟机在不同物理节点上的动态迁移,能够获得与应用无关的负载平衡性能。由于虚拟机包含了整个虚拟化的操作系统以及应用程序环境,因此在进行迁移的时候带着整个运行环境,达到了与应用无关的目的。

(4)在部署上也更加灵活,即可以将虚拟机直接部署到物理计算平台当中。总而言之,通过虚拟化的方式,云计算平台能够达到极其灵活的特性,而如果不使用虚拟化的方式则会有很多的局限。第108页/共180页

2.“蓝云”中的存储结构蓝云计算平台中的存储体系结构对于云计算来说也是非常重要的,无论是操作系统、服务程序还是用户应用程序的数据都保存在存储体系中。云计算并不排斥任何一种有用的存储体系结构,而是需要跟应用程序的需求结合起来获得最好的性能提升。总体上来说,云计算的存储体系结构包含类似于GoogleFileSystem的集群文件系统以及基于块设备方式的存储区域网络SAN两种方式。第109页/共180页在设计云计算平台的存储体系结构的时候,不仅仅需要考虑存储的容量。实际上随着硬盘容量的不断扩充以及硬盘价格的不断下降,使用当前的磁盘技术,就很容易通过使用多个磁盘的方式获得很大的磁盘容量。相较于磁盘的容量,在云计算平台的存储中,磁盘数据的读写速度是一个更重要的问题。单个磁盘的速度很有可能限制应用程序对于数据的访问,因此在实际使用的过程中,需要将数据分布到多个磁盘之上,并且通过对多个磁盘的同时读写达到提高速度的目的。在云计算平台中,数据如何放置是一个非常重要的问题,在实际使用的过程中,需要将数据分配到多个节点的多个磁盘当中。能够达到这一目的的存储技术趋势当前有两种方式:一种是使用类似于GoogleFileSystem的集群文件系统;另一种是基于块设备的存储区域网络SAN系统。第110页/共180页

Google文件系统在前面已经做过一定的描述。在IBM的蓝云计算平台中使用的是它的开源实现HDFS(HadoopDistributedFileSystem)。这种使用方式将磁盘附着于节点的内部,为外部提供一个共享的分布式文件系统空间,并且在文件系统级别做冗余以提高可靠性。在合适的分布式数据处理模式下,这种方式能够提高总体的数据处理效率。Google文件系统的这种架构与SAN系统有很大的不同。第111页/共180页

SAN系统也是云计算平台的另外一种存储体系结构选择,在蓝云平台上也有一定的体现,IBM提供的SAN的平台也能够接入到蓝云计算平台中。图10.14所示的是一个SAN系统的结构示意图。图中的SAN系统是在存储端构建存储的网络,将多个存储设备构成一个存储区域网络。前端的主机可以通过网络的方式访问后端的存储设备。而且,由于提供了块设备的访问方式,与前端操作系统无关。在SAN连接方式上,可以有多种选择。第112页/共180页一种选择是使用光纤网络,能够操作快速的光纤磁盘,适合于对性能与可靠性要求比较高的场所;另外一种选择是使用以太网,采取iSCSI协议,能够运行在普通的局域网环境下,从而降低了成本。由于存储区域网络中的磁盘设备并没有与某一台主机绑定在一起,而是采用了非常灵活的结构,因此对于主机来说可以访问多个磁盘设备,从而获得性能的提升。在存储区域网络中,使用虚拟化的引擎来进行逻辑设备到物理设备的映射,管理前端主机到后端数据的读写。因此虚拟化引擎是存储区域网络中非常重要的管理模块。第113页/共180页图10.14SAN系统的结构示意图第114页/共180页

SAN系统与分布式文件系统(例如GoogleFileSystem)并不是相互对立的系统,而是在构建集群系统的时候可供选择的两种方案。其中,在选择SAN系统的时候,为了应用程序的读写,还需要为应用程序提供上层的语义接口,此时就需要在SAN之上构建文件系统。而GoogleFileSystem正好是一个分布式的文件系统,因此能够建立在SAN系统之上。总体来说,SAN与分布式文件系统都可以提供类似的功能,例如对于出错的处理等。至于如何使用还是需要由建立在云计算平台之上的应用程序来决定。第115页/共180页与Google不同的是,IBM并没有基于云计算提供外部可访问的网络应用程序。这主要是由于IBM并不是一个网络公司,而是一个IT的服务公司。当然,IBM内部以及IBM未来为客户提供的软件服务会基于云计算的架构。第116页/共180页10.4云计算的应用示例10.4.1云计算机体系云计算机,即云脑,它是基于传统计算机的设计思想和云计算理念而产生的一个新的体系结构。在云计算机中应该具有六个组成成分:主服务控制机群、存储节点机群、应用节点机群、计算节点机群、输入设备和输出设备,如图10.15所示。

第117页/共180页图10.15云计算机通用体系第118页/共180页对云计算机的设计思想主要考虑以下几点:

(1)主服务控制机群对应于传统计算机体系结构中可以看做控制器的部分。它是由一组或多组主引导服务机群和多组分类控制机群所组成的机群系统,主要负责接收用户应用请求、验证用户合法性,并根据应用请求类型进行应用分类和负载均衡。第119页/共180页

(2)存储节点机群和应用节点机群相当于传统计算机体系结构中的存储器部分,但又有所区别。存储节点机群是由庞大的磁盘阵列系统或多组拥有海量存储能力的机群系统所组成的存储系统,它的责任是处理用户数据资源的存取工作,并不关心用户对这些数据要如何应用,也不会处理存取数据资源和后台安全策略管理以外的任何操作。这里同时提出了一个新的概念—云盘。所谓云盘,就是由云端主服务控制机群为云脑用户所分配的、建立在存储节点机群上的存储空间,它虽不是用户本地硬盘,但完全由用户进行应用和管理,操作感与本地硬盘一致。应用节点机群则是由一组或多组拥有不同业务处理逻辑的机群系统所组成的应用系统,它负责存储应用程序和处理各种逻辑复杂的用户应用。这两个节点机群是完全按照主服务控制机群的任务控制流程运行的,其本身不能拥有系统流程控制权。第120页/共180页

(3)计算节点机群提供类似运算器的功能。计算节点机群由多组架构完善的云计算机群所组成,其主要工作是处理超大运算量要求的计算,并不提供小计算量服务。因为机群运算会在多级交互以及计算分配与组装上花费不少时间,所以小计算量运算如在计算节点机群进行处理不但开销大,而且很有可能效率远不如单机运算,可以说得不偿失。这些小计算量运算服务只需在应用节点机群或计算节点机群的某台机器中完成即可。第121页/共180页10.4.2云脑系统的设计本节根据通用体系结构设计一个简单的云脑模型系统,考虑到基于机群系统开发的实际情况,设计了一个由五台服务器组成的微型机群模型,以便引导读者根据后续内容进行实际开发。

第122页/共180页

1.云脑系统的整体架构本云系统采用具有监控管理的主从架构机群,用五台普通计算机完成搭建工作。图10.16所示的是云脑系统的架构图,最左边的是用户终端,即云客户端,不论是什么样的设备,只要拥有浏览器,就可以像使用普通电脑一样的使用云脑,所以浏览器是不可缺少的一个部分。在Internet的右边是用户所看不到的整体云脑架构,采用一台计算机作为带监控的主服务器,用两台计算机作为应用及存储节点机群,再用两台服务器作为计算节点机群。第123页/共180页图10.16云脑系统的架构图第124页/共180页需对图10.15所示的通用云脑系统架构做以下改动。

(1)在主服务控制机群的地方,将只采用一台服务器进行开发,并加入了监控管理服务器的概念。这样做有助于简化系统的复杂度,方便开发。在负载均衡时,只需取出监控管理服务器对各节点的状态监控信息,便可进行应用或存储策略分配。

(2)将应用节点机群和存储节点机群合并为一个应用及存储节点机群,这样设计有两个好处:一是在实验中可节省成本和减少硬件资源的浪费;二是由于在实验开发环境中,整个系统架构在局域网中,并且访问量不大,网络带宽还不会成为系统的瓶颈,这样设计可以提高网络负载,更容易暴露系统问题,易于测试。第125页/共180页

2.云脑系统的功能云脑系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论