《物联网技术与应用开发第10章》由会员分享,可在线阅读,更多相关《物联网技术与应用开发第10章(179页珍藏版)》请在金锄头文库上搜索。
1、第第10章章 云计算云计算 第第10章章 云计算云计算 10.1 云计算概述10.2 云计算系统的组成及其技术10.3 典型云计算系统简介10.4 云计算的应用示例第第10章章 云计算云计算 10.1 云云计计算算概概述述当今社会,PC依然是日常工作生活中的核心工具我们用PC处理文档、存储资料,通过电子邮件或U盘与他人分享信息。如果PC硬盘坏了,我们会因为资料丢失而束手无策。而在“云计算”时代,“云”会替我们做存储和计算的工作。“云”就是计算机群,每一群包括了几十万台、甚至上百万台计算机。“云”的好处还在于,其中的计算机可以随时更新,保证“云”长生不老。 第第10章章 云计算云计算 大约在20
2、07年,包括IBM、Google、亚马逊等在内的知名企业纷纷提出云计算的概念。在“2009云计算中国论坛”上,成都信息工程学院副教授王鹏(走进云计算的作者)指出,这些企业在提出云计算概念的时候,往往依据自己已有的技术基础和自己商业的利益,从不同的角度提出了云计算模型。尽管如此,这些知名企业的推动,促使了整个云计算的概念明确和出现。第第10章章 云计算云计算 在云计算市场,Google的应用引擎(Google App Engine)和微软的Live Mesh为开发云计算应用提供了截然不同的平台。Live Mesh是微软推出的基于云计算的数据同步和设备管理平台。Live Mesh把用户数据的原版拷
3、贝保留在自己的服务器上,这样用户就能从与互联网相连的任何设备访问最新版本的文件。在传统的计算模式中,使用应用程序来创建文档(无论是打字稿、电子表格、数据库还是其他文档),当需要保存文档时,应用程序就把它交给操作系统,操作系统会在本地存储设备中以文件的形式保留一份文档拷贝。第第10章章 云计算云计算 Google的模式却截然不同。在这种模式中,云计算是多计算机环境下的计算。用户不需要维护任何磁盘,也不需要“文件”或者用来保存文件的文件系统这种人工概念。Google的云计算还有其他优势,Google免费提供应用程序。由于这些应用程序存在于云计算环境中,所以用户不需要安装软件,也不需要管理程序升级或
4、者安全补丁。实际上,用户完全摆脱了与操作系统之间的所有日常交互。当然,服务器底层运行着某种操作系统,负责运行Google的诸多应用程序;还有某种有组织的存储系统。但这些仅仅是技术细节,不需要用户操心。 第第10章章 云计算云计算 虽然Google基于互联网的应用程序确实给人留下了深刻印象,但其中缺乏像微软Office这类桌面软件的高级功能。正由于如此,这种方式很难让习惯于Office的忠实用户改变立场,转身投向Google。另外,在云计算环境中,而不是在本地驱动器上保存及管理文档这种方式也可能让企业客户心生疑虑。比较而言,Google的云计算方案是革命性的,微软的云计算方案却是演进性的。Liv
5、e Mesh迎合的是现有用户,这比较容易打动人心。不过,Google的发展势头又是不可阻挡的。 第第10章章 云计算云计算 10.1.1 云计算的定义云计算的定义云计算(Cloud Computing)是一种新提出的计算模式。维基百科给云计算下的定义为:云计算将IT相关的能力以服务的方式提供给用户,允许用户在不了解提供服务的技术、没有相关知识以及设备操作能力的情况下,通过Internet获取需要服务。中国云计算网将云计算定义为:云计算是分布式计算(Distributed Computing)、并行计算(Parallel Computing)和网格计算(Grid Computing)的发展,或者
6、说是这些科学概念的商业实现。 第第10章章 云计算云计算 Forrester Research的分析师James Staten将云计算定义为:云计算是一个具备高度扩展性和管理性并能够胜任终端用户应用软件计算基础架构的系统池。第第10章章 云计算云计算 1狭义云计算狭义云计算狭义云计算是指IT基础设施的交付和使用模式,即通过网络以按需、易扩展的方式获得所需的资源(硬件、平台、软件)。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。日常生活的供水、供电系统就具有这样的特性,故狭义云计算也就意味着像使用水电一样使用IT基础设施
7、。 第第10章章 云计算云计算 2广义云计算广义云计算是指服务的交付和使用模式,即通过网络以按需、易扩展的方式获得所需的服务。这种服务可以是IT和软件、互联网相关的,也可以是任意其他的服务。在广义云计算意义上,“云”是一些可以自我维护和管理的虚拟计算资源,通常为一些大型服务器集群,包括计算服务器、存储服务器、宽带资源等。云计算将所有的计算资源集中起来,并由软件实现自动管理,无需人为参与。这使得应用提供者无需为繁琐的细节而烦恼,能够更加专注于自己的业务,有利于创新和降低成本。 第第10章章 云计算云计算 有人打了个比方:这就好比是从古老的单台发电机模式转向了电厂集中供电的模式。它意味着计算能力也
8、可以作为一种商品进行流通,就像煤气、水电一样,取用方便,费用低廉。最大的不同在于,它是通过互联网进行传输的。云计算是并行计算(Parallel Computing)、分布式计算(Distributed Computing)和网格计算(Grid Computing)的发展,或者说是这些计算机科学概念的商业实现。云计算是虚拟化(Virtualization)、效用计算(Utility Computing)、IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)等概念混合演进并跃升的结果。 第第10章章 云计算云计算 虽然目前云计算没有统一的定义,但结合上述定义,可以总结出云计算
9、的一些本质特征,即分布式计算和存储特性、高扩展性、用户友好性和良好的管理性。云计算具有以下特点:(1) 超大规模。“云”具有相当的规模,Google云计算已经拥有100多万台服务器, Amazon、IBM、Microsoft、Yahoo等的“云”均拥有几十万台服务器。企业私有云一般拥有数百上千台服务器。“云”能赋予用户前所未有的计算能力。第第10章章 云计算云计算 (2) 虚拟化。云计算支持用户在任意位置、使用各种终端获取应用服务。所请求的资源来自“云”,而不是固定的有形的实体。应用在“云”中某处运行,但实际上用户无需了解、也不用担心应用运行的具体位置。只需要一台笔记本或者一部手机,就可以通过
10、网络服务来实现我们需要的一切,甚至包括超级计算这样的任务。(3) 高可靠性。“云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算比使用本地计算机可靠。第第10章章 云计算云计算 (4) 通用性。云计算不针对特定的应用,在“云”的支撑下可以构造出千变万化的应用,同一个“云”可以同时支撑不同的应用运行。(5) 高可扩展性。“云”的规模可以动态伸缩,满足应用和用户规模增长的需要。(6) 按需服务。“云”是一个庞大的资源池,可按需购买;“云”可以像自来水、电、煤气那样计费。第第10章章 云计算云计算 (7) 极其廉价。由于“云”的特殊容错措施可以采用极其廉价的节点来构成
11、云,“云”的自动化集中式管理使大量企业无需负担日益高昂的数据中心管理成本,“云”的通用性使资源的利用率较之传统系统大幅提升,用户可以充分享受“云”的低成本优势,经常只要花费几百美元、几天时间就能完成以前需要数万美元、数月时间才能完成的任务。 第第10章章 云计算云计算 10.1.2 云计算的类型云计算的类型谷歌和雅虎提供的基于Web的电子邮件服务,Carbonite或MozyHome提供的备份服务,S提供的客户资源管理应用软件,以及美国在线(AOL)、谷歌、Skype、Vonage及其他公司提供的即时通信和VoIP服务,这些都是云计算服务。云计算服务隐藏在另一个抽象层后面,可使最终用户原本需要
12、复杂计算架构才能提供的那种功能变得更为简单。下面主要从服务类型和服务方式的角度介绍云计算的类型。 第第10章章 云计算云计算 1按服务类型分类按服务类型分类从服务类型方面可把云计算分为基础设施云、平台云和应用云。(1) 基础设施云:基础架构服务(Infrastructure as a Service),提供网格或集群形式的虚拟化服务器、网络、存储和系统软件,旨在补充或更换整个数据中心的功能。这些云为用户提供底层的接近于直接操作硬件资源的服务。这方面最显著的例子有亚马逊的弹性计算云(EC2)和简单存储服务(Simple Storage Service)。 第第10章章 云计算云计算 (2) 平台
13、云:亦称平台即服务(Platform as a Service),提供虚拟化服务器,用户可以在虚拟化服务器上运行现有的应用程序,或者开发新的应用程序,不必为维护操作系统、服务器硬件、负载均衡或计算容量而操心。平台可为开发人员提供应用程序的托管,一旦开发人员开发出满足平台运行的应用程序且成功部署后,运行过程中的资源分配和其他的管理工作等将由平台云自行管理。这方面最显著的例子有微软的Azure和Salesforce的F。第第10章章 云计算云计算 (3) 应用云:又称软件即服务(Software as a Service),作为知名度最高、应用最广泛的一种云计算,SaaS提供了复杂的传统应用程序的
14、所有功能,这些功能通过Web浏览器而不是安装在本地的应用程序来使用。SaaS消除了应用服务器、存储、应用程序开发及相关的常见IT问题方面的担忧。这方面最显著的例子是S、谷歌的Gmail和Apps、美国在线、雅虎和谷歌的即时通信,以及Vonage和Skype的VoIP。第第10章章 云计算云计算 2按服务方式分类从服务方式方面可把云计算分为公有云、私有云和混合云。(1) 公有云:就是有若干企业和若干客户使用的形式。在公有云中,用户使用的服务都是由第三方云服务提供商提供的,该提供商也为其他的客户提供服务,所有的用户共享云服务提供商提供的所有资源。第第10章章 云计算云计算 (2) 私有云:就是只在
15、某个企业内部独立建立的云环境。私有云是专门为企业提供服务的专有云计算服务,企业内部的员工都可以访问这个私有云内部的所有服务资源,当然这也类似我们平时构建的管理系统,可以设置相应的权限,公司或者组织以外的用户无法访问这个云环境中的资源。(3) 混合云:就是公有云和私有云相结合的形式。 第第10章章 云计算云计算 10.1.3 云计算与物联网云计算与物联网每当人们谈及互联网,联想到的不只是物理设备构成的网,还有一个巨大的信息系统。物联网的情况也与之类似。物联网多被看做是互联网通过各种信息感应、探测、识别、定位、跟踪和监控等手段和设备向物理世界的延伸。对客观世界的感应、探测、监控等,只是人类社会对物
16、理世界实现“感、知、控”的第一个环节,即为物联网“前端”。基于互联网计算的涌现智能以及对物理世界的反馈和控制是另外两个环节,即为物联网“后端”。当前,无论是学术界还是工业界,目光普遍聚焦在物联网“前端”。本节将从物联网“后端”来说明物联网与云计算的关系。 第第10章章 云计算云计算 1从“后端”看物联网如前面所述,物联网可以看做是互联网通过传感器网络向物理世界的延伸,其最终目标是实现对物理世界的智能化管理。在逻辑上,物联网包括如图10.1所示的三个层次,其中:(1) 物理世界感知是物联网的基础,基于传感技术和网络通信技术,实现对物理世界的探测、识别、定位、跟踪和监控,可以看做是物联网的“前端”
17、。第第10章章 云计算云计算 (2) 大量独立建设的单一物联网应用是物联网建设的起点与基本元素,该类应用往往局限于对单一物品的感应与智能管理,每个物联网应用都是物联网上的一个逻辑节点。(3) 通过对众多单一物联网应用的深度互联和跨域协作,物联网可以形成一个多层嵌套的“网中网”,这是实现物联网智能化管理目标和价值追求的关键所在,可以看做是物联网的“后端”。 第第10章章 云计算云计算 图10.1 物联网的三个层次第第10章章 云计算云计算 从“后端”来看,物联网可以看做是一个基于互联网的,以提高物理世界的运行、管理、资源使用效率等水平为目标的大规模信息系统。由于物联网“前端”在对物理世界感应方面
18、具有高度并发的特性,并将产生大量引发“后端”深度互联和跨域协作需求的事件,从而使得上述大规模信息系统表现出以下性质:第第10章章 云计算云计算 (1) 不可预见性:对物理世界的感知具有实时性,会产生大量不可预见的事件,从而需要应对大量即时协同的需求。(2) 涌现智能:对诸多单一物联网应用的集成能够提升对物理世界综合管理的水平,物联网“后端”是产生放大效应的源泉。(3) 多维度动态变化:对物理世界的感知往往具有多个维度,并且是不断动态变化的,从而要求物联网“后端”具有更高的适应能力。(4) 大数据量、实效性:物联网中涉及的传感信息具有大数据量、实效性等特征,对物联网“后端”的信息处理带来诸多新的
19、挑战。 第第10章章 云计算云计算 综上所述,实时感应、高度并发、自主协同和涌现效应等特征要求从新的角度审视物联网“后端”信息基础设施,对当前互联网计算(包括云计算、服务计算、网格等)的研究提出了新的挑战,需要有针对性地研究物联网特定的应用集成问题、体系结构及标准规范,特别是大量高并发事件驱动的应用自动关联和智能协作问题。第第10章章 云计算云计算 2云与物联网云与物联网“后端后端”认为“云”是支撑物联网“后端”的认识存在着误区。云计算起源于互联网公司对特定的大规模数据处理问题解决方案,由于问题和商业模式明确、产业界大力推动以及已有网格等相关前期研究基础等原因,而迅速被热捧和泛化,但其本身远未
20、成熟。即使在不考虑标准化过渡和互操作性等因素的情况下,基本实现云计算愿景恐怕也还要经过一到数个创新周期。因此,我们不能简单地设想和推断云计算便可应对物联网“后端”的需求。 第第10章章 云计算云计算 当前所谓的软件即服务(SaaS)、平台即服务(PaaS)和基础设施即服务(IaaS)三个层次的划分也只是对现有云计算的初级认识,并未全面体现云计算的内涵、外延和发展。“云”的发展大体分为三个阶段:第一阶段,网格从科学领域需求出发,云计算从互联网特定的大规模数据处理需求出发,Web 2.0从用户参与的角度出发,尽管各自的应用领域、视角和侧重不同,但都取得了明显的进步,出现了一些令人鼓舞的典型应用;第
21、二阶段,技术体系将互相渗透,会出现统一运营的“行业云”、第三方运营中心等;第三阶段也是互联网计算的愿景:客户通过基于标准的服务交互方式,以极低的成本按需从基础设施获取高质量的计算、存储、数据、平台和应用等服务,客户无需关心服务是由什么“云”提供的。第第10章章 云计算云计算 在早期的客户/服务器模式下,应用服务器由各组织机构自行运营维护,服务体现为紧耦合的对应程序调用结果的消息。随着以CORBA(Common Object Request Broker Architecture,公用对象请求代理(调度)程序体系结构)、J2EE(Java2 Platform, Enterprise Editio
22、n)等分布式对象系统的发展,服务也升级为分布式平台为客户端提供价值的纽带;随着互联网的发展,原来属于应用系统的共性功能逐渐下沉至基础设施,越来越多的应用服务器交给“云”上的运营者运营维护,客户端则基于服务中间件(如ESB(Enterprise Service Bus)、Service Registry等)享受云端提供的万维网服务(Web Service)和REST(REpresentational State Transfer,表述性状态转变)服务形式的松耦合的服务。第第10章章 云计算云计算 未来,“云”提供的服务将从多个层面、不同视角在“服务空间”中进行一体化管理和组织,服务不再是一维的抽
23、象,将覆盖业务牵引的角度、以用户为中心的角度、层次的角度等各个视角。CSI将云体系结构归纳为用户端和基础设施,服务是其纽带,也是构造基于互联网的应用系统的第一元素(First-Class Entity)。随着以“云”为标识的互联网信息处理基础设施的发展,服务计算的重要性将更加凸显。针对物联网需求特征的优化策略、优化方法和涌现智能也将更多地以服务组合的形式体现,并出现物联网服务新形态,进一步推动服务计算相关学科的发展。第第10章章 云计算云计算 人类基础设施的发展经过上百年还未完善,同样可以断定,物联网“后端”的发展完善也是一个长远的事情。因此,人们不能把云计算的愿景当做现实。我们应在考虑长期战
24、略目标的同时,以价值和典型应用为牵引,先建立特定领域中统一运营的“行业云”和第三方运营中心,以实现资源优化利用以及跨域的资源共享和应用集成。同时,需要充分考虑到物联网上的信息具有多元、多源、多级过滤和分析、动态变化、数据量巨大等特点。第第10章章 云计算云计算 10.2 云计算系统的组成及其技术云计算系统的组成及其技术10.2.1 云计算系统的组成云计算系统的组成云计算的体系结构由五部分组成,分别为资源层、平台层、应用层、用户访问层和管理层,如图10.2所示。云计算的本质是通过网络提供服务,所以其体系结构以服务为核心。第第10章章 云计算云计算 1资源层资源层资源层是指基础架构层面的云计算服务
25、,这些服务可以提供虚拟化的资源,从而隐藏物理资源的复杂性。资源层包括物理资源、服务器服务、网络服务和存储服务。(1) 物理资源指的是物理设备,如服务器等。(2) 服务器服务指的是操作系统的环境,如Linux集群等。(3) 网络服务指的是提供的网络处理能力,如防火墙、VLAN、负载等。(4) 存储服务为用户提供存储能力。 第第10章章 云计算云计算 图10.2 云计算的体系结构第第10章章 云计算云计算 2平台层平台层为用户提供对资源层服务的封装,使用户可以构建自己的应用。平台层包括数据库服务和中间件服务。(1) 数据库服务提供可扩展的数据库处理的能力。(2) 中间件服务为用户提供可扩展的消息中
26、间件或事务处理中间件等服务。第第10章章 云计算云计算 3应用层应用层提供软件服务,包括企业应用服务和个人应用服务。(1) 企业应用是指面向企业的用户,如财务管理、客户关系管理、商业智能等。(2) 个人应用是指面向个人用户的服务,如电子邮件、文本处理、个人信息存储等。 第第10章章 云计算云计算 4用户访问层用户访问层是方便用户使用云计算服务所需的各种支撑服务,针对每个层次的云计算服务都需要提供相应的访问接口。它包括服务目录、订阅管理和服务访问。(1) 服务目录是一个服务列表,用户可以从中选择需要使用的云计算服务。(2) 订阅管理是提供给用户的管理功能,用户可以查阅自己订阅的服务,或者终止订阅
27、的服务。(3) 服务访问是针对每种层次的云计算服务提供的访问接口。针对资源层的访问可能是远程桌面或者XWindows;针对应用层的访问,提供的接口可能是Web。 第第10章章 云计算云计算 5管理层管理层提供对所有层次云计算服务的管理功能,包括安全管理、服务组合、服务目录管理、服务使用计量、服务质量管理、部署管理和服务监控。(1) 安全管理:提供对服务的授权控制、用户认证、审计、一致性检查等功能。(2) 服务组合:提供对自己有云计算服务进行组合的功能,使得新的服务可以基于已有服务创建时间。第第10章章 云计算云计算 (3) 服务目录管理服务:提供服务目录和服务本身的管理功能,管理员可以增加新的
28、服务,或者从服务目录中除去服务。(4) 服务使用计量:对用户的使用情况进行统计,并以此为依据对用户进行计费。(5) 服务质量管理:提供对服务的性能、可靠性、可扩展性进行管理的功能。(6) 部署管理:提供对服务实例的自动化部署和配置功能。当用户通过订阅管理增加新的服务订阅后,部署管理模块自动为用户准备服务实例。(7) 服务监控:提供对服务的健康状态的记录功能。 第第10章章 云计算云计算 10.2.2 云计算系统的服务层次1云计算的服务层次在云计算中,根据其服务集合所提供的服务类型,整个云计算服务集合被划分成应用层、平台层、基础设施层和虚拟化层四个层次,每一层都对应着一个子服务集合。云计算的服务
29、层次如图10.3所示。第第10章章 云计算云计算 图10.3 云计算的服务层次第第10章章 云计算云计算 云计算的服务层次是根据服务类型即服务集合来划分的,与大家熟悉的计算机网络体系结构中层次的划分不同。在计算机网络中,每个层次都实现一定的功能,层与层之间有一定关联。而云计算体系结构中的层次是可以分割的,即某一层次可以单独完成一项用户的请求而不需要其他层次为其提供必要的服务和支持。在云计算服务体系结构中,各层次与相关云产品对应如下:第第10章章 云计算云计算 (1) 应用层对应SaaS(软件即服务),如Google APPS、SoftWare+Services。(2) 平台层对应PaaS(平台
30、即服务),如IBM IT Factory、Google APP Engine、F。(3) 基础设施层对应IaaS(基础设施即服务),如Amazon Ec2、IBM Blue Cloud、Sun Grid。(4) 虚拟化层对应硬件即服务结合Paas提供硬件服务,包括服务器集群及硬件检测等服务。 第第10章章 云计算云计算 2云计算的技术层次云计算的技术层次云计算的技术层次和云计算的服务层次不是一个概念,后者从服务的角度来划分云的层次,主要突出了云服务能给我们带来什么。而云计算的技术层次主要从系统属性和设计思想角度来说明云,是对软、硬件资源在云计算技术中所充当角色的说明。从云计算技术角度来分,云计
31、算大约由服务接口、服务管理中间件、虚拟化资源、物理资源四部分构成,如图10.4所示。 第第10章章 云计算云计算 图10.4 云计算技术结构第第10章章 云计算云计算 (1) 服务接口:统一规定了在云计算时代使用计算机的各种规范、云计算服务的各种标准等,用户端与云端交互操作的入口,可完成用户或服务注册,对服务进行定制和使用等。第第10章章 云计算云计算 (2) 服务管理中间件:在云计算技术中,中间件位于服务和服务器集群之间,提供管理和服务即云计算体系结构中的管理系统。对标识、认证、授权、目录、安全性等服务进行标准化和操作,为应用提供统一的标准化程序接口和协议,隐藏底层硬件、操作系统和网络的异构
32、性,统一管理网络资源。其用户管理包括用户身份验证、用户许可、用户定制管理;资源管理包括负载均衡、资源监控、故障检测等;安全管理包括身份验证、访问授权、安全审计、综合防护等;映像管理包括映像创建、部署、管理等。第第10章章 云计算云计算 (3) 虚拟化资源:指一些可以实现一定操作、具有一定功能,但其本身是虚拟而不是真实的资源,如计算池、存储池和网络池、数据库资源等,通过软件技术来实现相关的虚拟化功能,如虚拟环境、虚拟系统、虚拟平台。第第10章章 云计算云计算 (4) 物理资源:主要指能支持计算机正常运行的一些硬件设备及技术,可以是价格低廉的PC,也可以是价格昂贵的服务器及磁盘阵列等设备,可以通过
33、现有网络技术和并行技术、分布式技术将分散的计算机组成一个能提供超强功能的集群用于计算和存储等云计算操作。在云计算时代,本地计算机可能不再像传统计算机那样需要空间足够的硬盘、大功率的处理器和大容量的内存,只需要一些必要的硬件设备,如网络设备和基本的输入/输出设备等。 第第10章章 云计算云计算 10.2.3 云计算的关键技术云计算的关键技术云计算是分布式处理、并行计算和网格计算等概念的发展和商业实现,其技术实质是计算、存储、服务器、应用软件等IT软、硬件资源的虚拟化。云计算在虚拟化、数据存储、数据管理、编程模式等方面具有自身独特的技术。云计算的关键技术包括以下几个方面。第第10章章 云计算云计算
34、 1虚拟机技术虚拟机即服务器虚拟化,是云计算底层架构的重要基石。在服务器虚拟化中,虚拟化软件需要实现对硬件的抽象,资源的分配、调度和管理,虚拟机与宿主操作系统及多个虚拟机间的隔离等功能,目前典型的实现(基本成为事实标准)有Citrix Xen、VMware ESX Server和Microsoft Hype-V等。第第10章章 云计算云计算 2数据存储技术云计算系统需要同时满足大量用户的需求,并行地为大量用户提供服务。因此,云计算的数据存储技术必须具有分布式、高吞吐率和高传输率的特点。目前数据存储技术主要有Google的GFS(Google File System,非开源)以及HDFS(Had
35、oop Distributed File System,开源),这两种技术已经成为事实标准。第第10章章 云计算云计算 3数据管理技术云计算的特点是对海量的数据存储、读取后进行大量的分析,如何提高数据的更新速率以及进一步提高随机读速率是未来数据管理技术必须解决的问题。云计算的数据管理技术最著名的是谷歌的BigTable数据管理技术,同时Hadoop开发团队已开发出类似BigTable的开源数据管理模块。第第10章章 云计算云计算 4分布式编程与计算为了使用户能更轻松的享受云计算带来的服务,让用户能利用该编程模型编写简单的程序来实现特定的目的,云计算上的编程模型必须十分简单。必须保证后台复杂的并
36、行执行和任务调度向用户和编程人员透明。当前各IT厂商提出的“云”计划的编程工具均基于Map-Reduce的编程模型。 第第10章章 云计算云计算 10.3 典型云计算系统简介典型云计算系统简介10.3.1 Amazon云计算基础架构平台云计算基础架构平台目前,最受欢迎的云计算平台是Amazon Web Services(AWS),在云上最受欢迎的数据库是MySQL。尽管Amazon在2002年就已经开始着手AWS,并从那时已使许多新的计算服务,包括基础架构、电子商务和Web信息服务变得可用,然而我们希望继续集中部署这些与MySQL最相关的内容,如Elastic Computing Cloud(
37、EC2,弹性计算云),Simple Storage Service(S3,简便存储服务)和Elastic Block Store (EBS,持久存储)。针对这些服务,开发人员可以使用Web服务、具体的REST和SOAP协议访问。第第10章章 云计算云计算 Amazon EC2和MySQL,对于一个想减少资金花费和运营成本,同时以最小的成本和投入来动态扩展其应用的机构来说,是相当适合的。亚马逊Amazon EC2上订阅一个 MySQL Enterprise,开发人员充分依托MySQL数据库专家,可以在云上更具成本效益地交付Web-scale数据库应用。第第10章章 云计算云计算 1Amazon弹
38、性计算云(EC2)Amazon EC2服务开始于2006年,在2008年变得普遍广泛可用。EC2使得亚马逊云能够动态扩展计算能力。它使开发人员更容易交付Web-scale应用。亚马逊云计算能够忽略硬件,取而代之的是当需求增加时,可以使用(或不使用)额外的虚拟硬件。支撑EC2服务的是Xen虚拟技术。Xen是开源软件,它允许操作系统(如Linux、Windows或者Solaris)作为“虚拟机器”,并同时运行在相同的硬件上。使用Xen时,EC2可以快速提供客户虚拟服务器的规格说明书,定制硬件特性,如CPU数、内存和软件容错。 第第10章章 云计算云计算 2Amazon简单存储服务(S3)Amazo
39、n也发行了S3,它可提供在线存储Web服务。S3给开发人员提供一个简单、安全、本质上拥有无限能力的连续在线存储。S3可以被看成在“云”上的一个很大的磁盘驱动或一个SAN。和带宽的收费模式一样,Amazon对最终用户按每GB存储收费,并且当存储和检索S3数据时要求收费。用S3可以存储和获得Amazon认为是对象的无组织的数据。亚马逊存储如图10.5所示。 第第10章章 云计算云计算 图10.5 亚马逊存储第第10章章 云计算云计算 这些对象可以是拥有2 KB相关元数据,而这些对象又可以存放在1 B到5 GB范围内的任何地方。S3里没有目录或文件名,对象存储在“Buckets”当中,并由开发人员通
40、过预设的唯一键进行检索。Buckets和其内部包含的对象存储在两个不同的物理区域中,但是它们可以从任何地方访问。使用一个REST和SOAP接口,开发人员可以创建、列出和检索Buckets和对象,同时可以通过GET接口或者BitTorrent协议下载亚马逊Web MySQL。第第10章章 云计算云计算 3Amazon持久存储(EBS)EBS在2008年开始运营时,是Amazon EC2最令人期待的特性之一。在EBS之前,EC2存储是和本地实例联系在一起的,这就意味着如果EC2实例被破坏,本地实例上存储的数据就变得不可用了。为了解决该问题,Amazon创建了EBS,提供块级水平存储容量,其可以不考
41、虑EC2实例的状态。对于开发人员,EBS Volume的出现作为标准的块机制,其大小从1 GB变化到1 TB。指定机制名称和块机制接口以后,用户可以配置一个他们选择的EBS Volume 的文件系统。 第第10章章 云计算云计算 1) 在Amazon EC2上部署MySQL在EC2上开始MySQL是很简单的,亚马逊Web MySQL如图10.6所示。首先,假定已经设置了Amazon账号,可以从Amazon AMI目录使用一个已存在的AMI预设置MySQL,或者使用自己的Amazon SDK创建。用户还可以从其他的资源获得可用的“模板化”AMI图形。其次,一旦做了任何配置,为了再次使用和安全保存
42、,应该上传用户的AMI到S3。最后,选择想部署的EC2实例,配置安全和网络控制。 第第10章章 云计算云计算 图10.6 亚马逊Web MySQL第第10章章 云计算云计算 2) 亚马逊Web Server亚马逊Web Server如图10.7所示。用于Amazon EC2上的MySQL Enterprise是基于支持而提供的订阅,使得开发人员可以低成本地在云上交付Web扩展数据库应用,在云上使用世界上最受欢迎的开源数据库。在Amazon EC2上使用MySQL Enterprise的好处包括:可利用MySQL的可靠性、高性能和易用性,可在云上交付大量的可扩展的Web应用;使用MySQL Re
43、plication进行主从数据库复制、切换和备份,实现高可用性应用。 第第10章章 云计算云计算 图10.7 亚马逊 Web Server 第第10章章 云计算云计算 10.3.2 Google云计算应用平台云计算应用平台Google的云计算技术实际上是针对Google特定的网络应用程序而定制的。针对内部网络数据规模超大的特点,Google提出了一整套基于分布式并行集群方式的基础架构,利用软件的能力来处理集群中经常发生的节点失效问题。第第10章章 云计算云计算 从2003年开始,Google连续几年在计算机系统研究领域的顶级会议与杂志上发表论文,揭示了其内部的分布式数据处理方法,向外界展示其使
44、用的云计算核心技术。从其近几年发表的论文来看,Google使用的云计算基础架构模式包括四个相互独立又紧密结合在一起的系统,即建立在集群之上的Google文件系统(Google File System,GFS),针对Google应用程序的特点提出的Map/Reduce分布式编程环境,分布式的锁机制Chubby以及Google开发的模型简化的大规模分布式数据库管理系统BigTable。 第第10章章 云计算云计算 1Google文件系统为了满足Google迅速增长的数据处理需求,Google设计并实现了Google文件系统(GFS)。GFS与过去的分布式文件系统拥有许多相同的目标,例如高性能、可伸
45、缩性、可靠性以及可用性。然而,它的设计还受到Google应用负载和技术环境的影响,主要体现在以下四个方面:(1) 集群中的节点失效是一种常态,而不是一种异常。由于参与运算与处理的节点数目非常庞大,通常会使用上千个节点进行共同计算,因此,每时每刻总会有节点处在失效状态。需要通过软件程序模块,监视系统的动态运行状况,侦测错误,并且将容错以及自动恢复系统集成在系统中。 第第10章章 云计算云计算 (2) Google系统中的文件大小与通常文件系统中的文件大小的概念不一样,文件大小通常以GB计。另外,文件系统中的文件含义与通常文件的不同,一个大文件可能包含大量数目的通常意义上的小文件。所以,设计预期和
46、参数(例如I/O操作和块尺寸)都要重新考虑。(3) Google文件系统中的文件读写模式和传统的文件系统不同。在Google应用(如搜索)中对大部分文件的修改,不是覆盖原有数据,而是在文件尾追加新数据,对文件的随机写是几乎不存在的。对于这类巨大文件的访问模式,客户端对数据块缓存失去了意义,追加操作成为性能优化和原子性(把一个事务看做是一个程序,它要么被完整地执行,要么完全不执行)保证的焦点。 第第10章章 云计算云计算 (4) 文件系统的某些具体操作不再透明,而且需要应用程序的协助完成,应用程序和文件系统API的协同设计提高了整个系统的灵活性。例如,放松了对GFS一致性模型的要求,这样不用加重
47、应用程序的负担,就大大简化了文件系统的设计。GFS还引入了原子性的追加操作,这样多个客户端同时进行追加的时候,就不需要额外的同步操作了。总之,GFS是为Google应用程序本身而设计的。 第第10章章 云计算云计算 Google File System的系统架构如图10.8所示,一个GFS集群包含一个主服务器和多个块服务器,被多个客户端访问。文件被分割成固定尺寸的块。在每个块创建的时候,服务器分配给它一个不变的、全球唯一的64位块句柄对它进行标识。块服务器把块作为Linux文件保存在本地硬盘上,并根据指定的块句柄和字节范围来读写块数据。为了保证可靠性,每个块都会复制到多个块服务器上,缺省保存三
48、个备份。主服务器管理文件系统所有的元数据,包括名字空间、访问控制信息和文件到块的映射信息,以及块当前所在的位置。第第10章章 云计算云计算 GFS客户端代码被嵌入到每个程序里,它实现了Google文件系统 API,帮助应用程序与主服务器和块服务器通信,对数据进行读写。客户端跟主服务器交互进行元数据操作,但是所有的数据操作的通信都是直接和块服务器进行的。客户端提供的访问接口类似于POSIX接口,但有一定的修改,并不完全兼容POSIX标准。通过服务器端和客户端的联合设计,GoogleFile System能够针对它本身的应用获得最大的性能以及可用性效果。第第10章章 云计算云计算 第第10章章 云
49、计算云计算 2Map/Reduce分布式编程环境分布式编程环境为了让内部非分布式系统方向背景的员工能够有机会将应用程序建立在大规模的集群基础之上,Google还设计并实现了一套大规模数据处理的编程规范Map/Reduce系统。这样,非分布式专业的程序编写人员也能够为大规模的集群编写应用程序而不用去顾虑集群的可靠性、可扩展性等问题。应用程序编写人员只需要将精力放在应用程序本身,而关于集群的处理问题则交由平台来处理。 第第10章章 云计算云计算 Map/Reduce通过“Map(映射)”和“Reduce(化简)”这样两个简单的概念来参加运算,用户只需要提供自己的Map函数以及Reduce函数就可以
50、在集群上进行大规模的分布式数据处理。Google的文本索引方法,即搜索引擎的核心部分,已经通过Map/Reduce的方法进行了改写,获得了更加清晰的程序架构。在Google内部,每天有上千个Map/Reduce的应用程序在运行。第第10章章 云计算云计算 3大规模分布式数据库管理系统BigTable构建于上述两项基础之上的第三个云计算平台就是Google将数据库系统扩展到分布式平台上的BigTable系统。很多应用程序对于数据的组织都是非常有规则的,一般来说,数据库对格式化数据的处理也是非常方便的,但是由于关系数据库很强的一致性要求,很难将其扩展到很大的规模。为了处理Google内部大量的格式
51、化以及半格式化数据,Google构建了弱一致性要求的大规模数据库系统BigTable。 第第10章章 云计算云计算 图10.9给出了在BigTable模型中的数据模型。数据模型包括行列以及相应的时间戳,所有的数据都存放在表格中的单元里。BigTable的内容按照行来划分,将多个行组成一个小表,保存到某一个服务器节点中。这一个小表就被称为Tablet。以上是Google内部云计算基础平台的三个主要部分,除了这三个部分之外,Google还建立了分布式的锁服务等一系列相关的云计算服务平台。 第第10章章 云计算云计算 图10.9 Google BigTable的数据模型第第10章章 云计算云计算 4
52、Google的云应用除了上述的云计算基础设施之外,Google还在其云计算基础设施之上建立了一系列新型网络应用程序。由于借鉴了异步网络数据传输的Web 2.0技术,这些应用程序给予用户全新的界面感受以及更加强大的多用户交互能力。其中典型的Google云计算应用程序就是Google推出的Docs网络服务程序。第第10章章 云计算云计算 Google Docs是一个基于Web的工具,它有跟Microsoft Office相近的编辑界面,有一套简单易用的文档权限管理,并能记录下所有用户对文档所做的修改。Google Docs的这些功能非常适用于网上共享与协作编辑文档。Google Docs甚至可以用
53、于监控责任清晰、目标明确的项目进度。当前,Google Docs已经推出了文档编辑、电子表格、幻灯片演示、日程管理等多个功能的编辑模块,能够替代Microsoft Office相应的一部分功能。值得注意的是,通过这种云计算方式形成的应用程序非常适合于多个用户进行共享以及协同编辑,为一个小组的人员进行共同创作带来很大的方便性。 第第10章章 云计算云计算 虽然Google可以说是云计算的最大实践者,但是,Google的云计算平台是私有的环境,特别是Google的云计算基础设施还没有开放。除了开放有限的应用程序接口,例如GWT(Google Web Toolkit)以及Google Map API
54、等,Google并没有将云计算的内部基础设施共享给外部的用户使用,上述的所有基础设施都是私有的。 第第10章章 云计算云计算 幸运的是,Google公开了其内部集群计算环境的一部分技术,使得全球的技术开发人员能够根据这一部分文档构建开源的大规模数据处理云计算基础设施,其中最有名的项目即Apache旗下的Hadoop项目。而IBM的蓝云计算和亚马逊的弹性计算云的实现则为外部的开发人员以及中小公司提供了云计算的平台环境,使得开发者能够在云计算的基础设施之上构建自己的新型网络应用。IBM的蓝云计算平台是可供销售的计算平台,用户可以基于这些软硬件产品自己构建云计算平台。亚马逊的弹性计算云则是托管式的云
55、计算平台,用户可以通过远端的操作界面直接使用。第第10章章 云计算云计算 10.3.3 Microsoft云计算服务云计算服务对微软来说,进入云计算的领域不是最早的,但是微软不乏后发制人的先例。在三大类云计算服务(IaaS、PaaS和SaaS)上,微软推出了Windows Server Platform,同时也推出了Windows Azure Platform解决方案。本节介绍微软的Windows Azure Platform解决方案的核心技术。第第10章章 云计算云计算 Windows Azure Platform运行在微软数据中心的服务器和网络基础设施上,通过公共互联网对外提供服务。微软对
56、云计算提出一个公式:云计算=(数据软件+平台+基础设施)服务此公式表明了云最重要的是服务。基于云计算服务的三种模式,微软云计算采用了“软件+服务”,“云+端”的策略。Windows Azure Platform正是这一策略的具体实现,它一方面提供了可靠的软件平台;另一方面通过提供服务或者开放的系统运营企业服务。第第10章章 云计算云计算 1Windows Azure Platform的功能Windows Azure Platform包括Windows Azure、SQL Azure、Windows Azure AppFabric(或Windows Azure Platform AppFabri
57、c,以下简称AppFabric,有的书中把Windows Server AppFabric也简称为AppFabric,除非特别说明,本书中的AppFabric都是指Windows Azure AppFabric)。Windows Azure可看成是云计算服务的操作系统;SQL Azure可看成是云端的关系型数据库;AppFabric是一个基于Web的开放服务,可以把现有应用和服务与云平台的连接和互操作变得更为简单,如图10.10所示。 第第10章章 云计算云计算 图10.10 Windows Azure Platform的组成第第10章章 云计算云计算 1) Windows AzureWind
58、ows Azure是一个云服务的操作系统,它提供了一个可扩展的开发、托管服务和服务管理环境。Windows Azure主要包括三个部分:一是运营应用的计算服务;二是数据存储服务;三是基于云平台进行管理和动态分配资源的控制器(Fabric Controller)。第第10章章 云计算云计算 Windows Azure提供了一个可扩展的开发、托管服务和服务管理环境,这其中包括提供基于虚拟机的计算服务和基于Blobs、Tables、Queues、Drives等的存储服务。Windows Azure是一个开放的平台,支持微软和非微软的语言和环境。开发人员在构建Windows Azure应用程序和服务时
59、,不仅可以使用熟悉的Microsoft Visual Studio、Eclipse等开发工具,同时Windows Azure还支持各种流行的标准与协议,包括SOAP、REST、XML和HTTPS等。第第10章章 云计算云计算 2) SQL AzureSQL Azure帮助用户简化多数据库的创建和部署,开发人员无需安装、设置数据库软件,也不必为数据库打补丁或进行管理;为用户提供了内置的高可用性和容错能力,且无需客户进行实际管理;支持TDS和Transact-SQL(T-SQL),客户可以使用现有技术在T-SQL上进行开发,还可使用与现有的客户自有数据库软件相对应的关系型数据模型。SQL Azur
60、e (之前被称为 SQL Server Data Services)是以SQL Server 2008为主,建构在Windows Azure之上,运行云计算的关系数据库服务,是一种云存储的实现,并提供网络型的应用程序数据存储的服务,简单地说就是SQL Server的云端版本。 第第10章章 云计算云计算 SQL Azure是一个云的关系型数据库,它可以在任何时间提供客户数据应用。SQL Azure基于SQL Server技术构建,但并非简简单单地将SQL Server安装在微软的数据中心,而是采用了更先进的架构设计,由微软基于云进行托管,提供的是可扩展、多租户、高可用的数据库服务。SQL Az
61、ure在架构上分成四个层次,即Client Layer、Services Layer、Platform Layer和Infrastructure Layer,如图10.11所示。第第10章章 云计算云计算 图10.11 SQL Azure的架构第第10章章 云计算云计算 3) AppFabricAppFabric作为中间件层,起着连接非云端程序与云端程序的桥梁的作用,它让开发人员可以把精力放在他们的应用逻辑上而不是在部署和管理云服务的基础架构上。AppFabric是基于Web的开放服务,它可以把现有应用和服务与云平台的连接和互操作变得更为简单,为本地应用和云中应用提供了分布式的基础架构服务。在
62、云计算中存储数据与运行应用都很重要,但是我们还需要一个基于云的基础架构服务。这个基础架构服务应该既可以被客户自有软件应用,又能被云服务应用,AppFabric就是这样一个基础架构服务。 第第10章章 云计算云计算 需要说明的是,Windows Server AppFabric和Windows Azure AppFabric是不同的,它们之间的关系类似于SQL Server和SQL Azure之间的关系,即带“Server”的是服务器产品,带Azure的是云端产品,我们甚至可以把Windows Azure AppFabric理解为一款主要面向私有云计算的系统。第第10章章 云计算云计算 Wind
63、ows Azure提供了一个叫做Role的概念,每个Role可以被认为是一段程序,与普通的应用程序不同的是这段程序可以同时在一台或者多台机器上运行。每个Role可以有多个实例(Instance),每个实例对应一台虚拟机。对同一个Role而言,它所有的实例执行的程序都是相同的。现在有两种类型的Role:Worker Role(工作者角色)和Web Role(Web角色)。Web Role:是一个Web应用程序,它可以通过HTTP或HTTPS与外界通信。一般来说,Web角色响应请求,执行一个动作,然后等待下一个请求的到来。第第10章章 云计算云计算 Worker Role:是一种后台执行(Runn
64、ing on Background)的应用程序,运行.Net框架代码的后台进程应用程序。AppFabric最常用的一个场景是:Web Role和Worker Role之间的通信。不仅如此,AppFabric最强大的地方在于能够跨平台。 第第10章章 云计算云计算 2微软云计算参考架构从图10.12所示的微软云计算的参考架构可以看到Windows Azure Platform 是一个PaaS类和IaaS类的平台。因为Windows Azure提供了存储、管理功能,SQL Azure提供了关系型数据的存储,而Windows Azure AppFabric则是连接了Windows Azure和SQL
65、 Azure的中间件,将安全连接作为一项服务提供,帮助开发人员在云部署、内部部署和托管部署之间架起桥梁,这座桥梁提供了两种服务:Service Bus(服务总线)和Access Control(访问控制),所以Windows Azure Platform是一个PaaS类和IaaS类的平台。 第第10章章 云计算云计算 图10.12 微软云计算的参考架构第第10章章 云计算云计算 Windows Azure Platform的基础是虚拟化,虚拟化架起了硬件资源(主机、存储、网络、其他硬件)和基础服务之间的桥梁。PaaS通过基础服务和虚拟化来使用资源层的资源。虚拟化对用户来说是透明的,同时虚拟化也
66、是动态数据中心的基础核心层。可以说,没有虚拟化技术,想要实现动态数据中心几乎是不可能的,但是虚拟化不是云计算。 第第10章章 云计算云计算 10.3.4 IBM蓝云计算平台蓝云计算平台IBM在2007年11月15日推出了蓝云计算平台,为客户带来即买即用的云计算平台。它包括一系列的云计算产品,使得计算不仅仅局限在本地机器或远程服务器农场(即服务器集群),通过架构一个分布式、可全球访问的资源结构,使得数据中心在类似于互联网的环境下运行计算。 第第10章章 云计算云计算 “蓝云”建立在IBM大规模计算领域的专业技术基础上,基于由IBM软件、系统技术和服务支持的开放标准和开源软件。简单地说,“蓝云”基
67、于IBM Almaden研究中心(Almaden Research Center)的云基础架构,包括Xen和PowerVM虚拟化、Linux操作系统映像以及Hadoop文件系统与并行构建。“蓝云”由IBM Tivoli软件支持,通过管理服务器来确保基于需求的最佳性能。这包括通过能够跨越多服务器实时分配资源的软件,为客户带来一种无缝体验,加速性能并确保在最苛刻环境下的稳定性。IBM发布的“蓝云(Blue Cloud)”计划,能够帮助用户进行云计算环境的搭建。它通过将Tivoli、DB2、WebSphere与硬件产品集成,能够为企业架设一个分布式、可全球访问的资源结构。第第10章章 云计算云计算
68、蓝云计算的高层架构如图10.13所示。可以看到,蓝云计算平台的数据中心是由IBM Tivoli部署管理软件(Tivoli Provisioning Manager)、IBM Tivoli监控软件(IBM Tivoli Monitoring)、IBM WebSphere应用服务器、IBM DB2数据库以及一些虚拟化的组件共同组成的。图中的架构主要描述了云计算的后台架构,并没有涉及前台的用户界面。第第10章章 云计算云计算 图10.13 蓝云计算的高层架构第第10章章 云计算云计算 蓝云的硬件平台与相对分布式平台无特殊要求,但是蓝云使用的软件平台与相对分布式平台有所不同,主要体现在虚拟机的使用以及
69、对大规模数据处理软件Apache Hadoop的部署。Hadoop是网络开发人员根据Google公司公开的资料开发出来的类似于Google File System的Hadoop File System以及相应的Map/Reduce编程规范。Hadoop是开源的,用户可以直接修改,以适合应用的特殊需求。IBM的蓝云产品则直接将Hadoop软件集成到自己本身的云计算平台之上。第第10章章 云计算云计算 1“蓝云”中的虚拟化从蓝云的结构上可以看出,在每一个节点上运行的软件栈与传统的软件栈一个很大的不同在于蓝云内部使用了虚拟化技术。虚拟化的方式在云计算中可以在两个级别上实现。一个是在硬件级别上实现虚拟
70、化。硬件级别的虚拟化可以使用IBM P系列的服务器,获得硬件的逻辑分区LPAR。逻辑分区的CPU资源能够通过IBM Enterprise Workload Manager来管理。通过这样的方式加上在实际使用过程中的资源分配策略,能够使得相应的资源合理地分配到各个逻辑分区。P系列系统的逻辑分区最小粒度是1/10颗中央处理器(CPU)。 第第10章章 云计算云计算 虚拟化的另外一个级别可以通过软件来获得,即Xen虚拟化软件。Xen也是一个开源的虚拟化软件,能够在现有的Linux基础之上运行另外一个操作系统,并通过虚拟机的方式灵活地进行软件部署和操作。通过虚拟机的方式进行云计算资源的管理具有特殊的好
71、处。由于虚拟机是一类特殊的软件,能够完全模拟硬件的执行,因此能够在上面运行操作系统,进而能够保留一整套运行环境语义。这样,可以将整个执行环境通过打包的方式传输到其他物理节点上,使得执行环境与物理环境隔离,方便整个应用程序模块的部署。总体上来说,通过将虚拟化的技术应用到云计算的平台,可以获得一些良好的特性。第第10章章 云计算云计算 (1) 云计算的管理平台能够动态地将计算平台定位到所需要的物理平台上,而无需停止运行在虚拟机平台上的应用程序,这比采用虚拟化技术之前的进程迁移方法更加灵活。(2) 能够更加有效地使用主机资源,将多个负载不是很重的虚拟机计算节点合并到同一个物理节点上,从而能够关闭空闲
72、的物理节点,达到节约电能的目的。(3) 通过虚拟机在不同物理节点上的动态迁移,能够获得与应用无关的负载平衡性能。由于虚拟机包含了整个虚拟化的操作系统以及应用程序环境,因此在进行迁移的时候带着整个运行环境,达到了与应用无关的目的。(4) 在部署上也更加灵活,即可以将虚拟机直接部署到物理计算平台当中。总而言之,通过虚拟化的方式,云计算平台能够达到极其灵活的特性,而如果不使用虚拟化的方式则会有很多的局限。 第第10章章 云计算云计算 2“蓝云”中的存储结构蓝云计算平台中的存储体系结构对于云计算来说也是非常重要的,无论是操作系统、服务程序还是用户应用程序的数据都保存在存储体系中。云计算并不排斥任何一种
73、有用的存储体系结构,而是需要跟应用程序的需求结合起来获得最好的性能提升。总体上来说,云计算的存储体系结构包含类似于Google File System的集群文件系统以及基于块设备方式的存储区域网络SAN两种方式。第第10章章 云计算云计算 在设计云计算平台的存储体系结构的时候,不仅仅需要考虑存储的容量。实际上随着硬盘容量的不断扩充以及硬盘价格的不断下降,使用当前的磁盘技术,就很容易通过使用多个磁盘的方式获得很大的磁盘容量。相较于磁盘的容量,在云计算平台的存储中,磁盘数据的读写速度是一个更重要的问题。单个磁盘的速度很有可能限制应用程序对于数据的访问,因此在实际使用的过程中,需要将数据分布到多个磁
74、盘之上,并且通过对多个磁盘的同时读写达到提高速度的目的。在云计算平台中,数据如何放置是一个非常重要的问题,在实际使用的过程中,需要将数据分配到多个节点的多个磁盘当中。能够达到这一目的的存储技术趋势当前有两种方式:一种是使用类似于Google File System的集群文件系统;另一种是基于块设备的存储区域网络SAN系统。 第第10章章 云计算云计算 Google文件系统在前面已经做过一定的描述。在IBM的蓝云计算平台中使用的是它的开源实现HDFS (Hadoop Distributed File System)。这种使用方式将磁盘附着于节点的内部,为外部提供一个共享的分布式文件系统空间,并且
75、在文件系统级别做冗余以提高可靠性。在合适的分布式数据处理模式下,这种方式能够提高总体的数据处理效率。Google文件系统的这种架构与SAN系统有很大的不同。第第10章章 云计算云计算 SAN系统也是云计算平台的另外一种存储体系结构选择,在蓝云平台上也有一定的体现,IBM提供的SAN的平台也能够接入到蓝云计算平台中。图10.14所示的是一个SAN系统的结构示意图。图中的SAN系统是在存储端构建存储的网络,将多个存储设备构成一个存储区域网络。前端的主机可以通过网络的方式访问后端的存储设备。而且,由于提供了块设备的访问方式,与前端操作系统无关。在SAN连接方式上,可以有多种选择。第第10章章 云计算
76、云计算 一种选择是使用光纤网络,能够操作快速的光纤磁盘,适合于对性能与可靠性要求比较高的场所;另外一种选择是使用以太网,采取iSCSI协议,能够运行在普通的局域网环境下,从而降低了成本。由于存储区域网络中的磁盘设备并没有与某一台主机绑定在一起,而是采用了非常灵活的结构,因此对于主机来说可以访问多个磁盘设备,从而获得性能的提升。在存储区域网络中,使用虚拟化的引擎来进行逻辑设备到物理设备的映射,管理前端主机到后端数据的读写。因此虚拟化引擎是存储区域网络中非常重要的管理模块。第第10章章 云计算云计算 图10.14 SAN系统的结构示意图第第10章章 云计算云计算 SAN系统与分布式文件系统(例如G
77、oogle File System)并不是相互对立的系统,而是在构建集群系统的时候可供选择的两种方案。其中,在选择SAN系统的时候,为了应用程序的读写,还需要为应用程序提供上层的语义接口,此时就需要在SAN之上构建文件系统。而Google File System正好是一个分布式的文件系统,因此能够建立在SAN系统之上。总体来说,SAN与分布式文件系统都可以提供类似的功能,例如对于出错的处理等。至于如何使用还是需要由建立在云计算平台之上的应用程序来决定。第第10章章 云计算云计算 与Google不同的是,IBM并没有基于云计算提供外部可访问的网络应用程序。这主要是由于IBM并不是一个网络公司,而
78、是一个IT的服务公司。当然,IBM内部以及IBM未来为客户提供的软件服务会基于云计算的架构。第第10章章 云计算云计算 10.4 云计算的应用示例云计算的应用示例10.4.1 云计算机体系云计算机体系云计算机,即云脑,它是基于传统计算机的设计思想和云计算理念而产生的一个新的体系结构。在云计算机中应该具有六个组成成分:主服务控制机群、存储节点机群、应用节点机群、计算节点机群、输入设备和输出设备,如图10.15所示。 第第10章章 云计算云计算 图10.15 云计算机通用体系第第10章章 云计算云计算 对云计算机的设计思想主要考虑以下几点:(1) 主服务控制机群对应于传统计算机体系结构中可以看做控
79、制器的部分。它是由一组或多组主引导服务机群和多组分类控制机群所组成的机群系统,主要负责接收用户应用请求、验证用户合法性,并根据应用请求类型进行应用分类和负载均衡。第第10章章 云计算云计算 (2) 存储节点机群和应用节点机群相当于传统计算机体系结构中的存储器部分,但又有所区别。存储节点机群是由庞大的磁盘阵列系统或多组拥有海量存储能力的机群系统所组成的存储系统,它的责任是处理用户数据资源的存取工作,并不关心用户对这些数据要如何应用,也不会处理存取数据资源和后台安全策略管理以外的任何操作。这里同时提出了一个新的概念云盘。所谓云盘,就是由云端主服务控制机群为云脑用户所分配的、建立在存储节点机群上的存
80、储空间,它虽不是用户本地硬盘,但完全由用户进行应用和管理,操作感与本地硬盘一致。应用节点机群则是由一组或多组拥有不同业务处理逻辑的机群系统所组成的应用系统,它负责存储应用程序和处理各种逻辑复杂的用户应用。这两个节点机群是完全按照主服务控制机群的任务控制流程运行的,其本身不能拥有系统流程控制权。第第10章章 云计算云计算 (3) 计算节点机群提供类似运算器的功能。计算节点机群由多组架构完善的云计算机群所组成,其主要工作是处理超大运算量要求的计算,并不提供小计算量服务。因为机群运算会在多级交互以及计算分配与组装上花费不少时间,所以小计算量运算如在计算节点机群进行处理不但开销大,而且很有可能效率远不
81、如单机运算,可以说得不偿失。这些小计算量运算服务只需在应用节点机群或计算节点机群的某台机器中完成即可。第第10章章 云计算云计算 10.4.2 云脑系统的设计云脑系统的设计本节根据通用体系结构设计一个简单的云脑模型系统,考虑到基于机群系统开发的实际情况,设计了一个由五台服务器组成的微型机群模型,以便引导读者根据后续内容进行实际开发。第第10章章 云计算云计算 1云脑系统的整体架构本云系统采用具有监控管理的主从架构机群,用五台普通计算机完成搭建工作。图10.16所示的是云脑系统的架构图,最左边的是用户终端,即云客户端,不论是什么样的设备,只要拥有浏览器,就可以像使用普通电脑一样的使用云脑,所以浏
82、览器是不可缺少的一个部分。在Internet的右边是用户所看不到的整体云脑架构,采用一台计算机作为带监控的主服务器,用两台计算机作为应用及存储节点机群,再用两台服务器作为计算节点机群。 第第10章章 云计算云计算 图10.16 云脑系统的架构图第第10章章 云计算云计算 需对图10.15所示的通用云脑系统架构做以下改动。(1) 在主服务控制机群的地方,将只采用一台服务器进行开发,并加入了监控管理服务器的概念。这样做有助于简化系统的复杂度,方便开发。在负载均衡时,只需取出监控管理服务器对各节点的状态监控信息,便可进行应用或存储策略分配。(2) 将应用节点机群和存储节点机群合并为一个应用及存储节点
83、机群,这样设计有两个好处:一是在实验中可节省成本和减少硬件资源的浪费;二是由于在实验开发环境中,整个系统架构在局域网中,并且访问量不大,网络带宽还不会成为系统的瓶颈,这样设计可以提高网络负载,更容易暴露系统问题,易于测试。 第第10章章 云计算云计算 2云脑系统的功能云脑系统的功能如图10.17所示,主要包括七个功能模块,即登录模块、注册模块、用户管理模块、业务定制模块、目录管理模块、文件管理模块和应用程序模块。(1) 登录模块:处理用户登录信息的应用模块。 第第10章章 云计算云计算 图10.17 云脑系统的功能第第10章章 云计算云计算 (4) 业务定制模块:是一个动态的业务订制模块,随时
84、为用户提供云脑可支持的服务事项,而用户只需轻松点击选择,就可获得想要的应用,构造专属于自己的个性化云脑。(5) 目录管理模块:类似于普通计算机操作系统中的资源管理目录,它可以根据用户自己的意愿设计自己的目录结构,让用户方便地管理自己的云盘空间。(6) 文件管理模块:将提供给用户新建、删除以及应用文件等一系列问题的解决策略。第第10章章 云计算云计算 (7) 应用程序模块:是一个容器,将服务端抽象出来,封装成各个应用的API,然后提供给第三方开发商,使其可以屏蔽底层进行类似于单机软件开发的方式开发用户体验。以上模块构成了一台带有云操作系统的云脑系统。 第第10章章 云计算云计算 3云脑系统的工作
85、流程云脑系统的工作流程如图10.18所示,其说明如下:(1) 客户可见的,也就是与用户可进行直接交互的部分,称其为云脑客户端应用。(2) 主服务器逻辑处理指的是主服务器针对于用户在做非应用程序操作时进行的逻辑处理工作。 第第10章章 云计算云计算 图10.18 云脑系统的工作流程第第10章章 云计算云计算 (3) 主服务器分配策略指的是当用户进行数据存储、业务应用等时,主服务器进行负载均衡时的策略。(4) 由于本系统为了达到最大效率且稳定的数据传输,采取了多线程并行传输的策略,故需要云脑客户端承担部分数据分割及组装任务,称之为云脑客户端数据处理。第第10章章 云计算云计算 (5) 节点服务器即
86、为应用存储节点及计算节点的总称。(6) 机群监控即为对节点状态进行采集、控制及管理的应用策略。(7) 图中应用到的数据表将直接应用于数据库设计,其作用与图中所示完全相同。云脑系统的工作流程如下。第第10章章 云计算云计算 首先对于用户的操作,云脑客户端将进行操作判断,不同类型的操作将以不同方式交给服务器端进行处理。当用户在进行登录、注册、用户管理以及业务定制或目录管理操作时,将直接与主服务器打交道,而主服务器则将根据请求的种类,将这些信息与数据库中的信息进行比对、录入或取出,并返回用户所要的信息。第第10章章 云计算云计算 其次,当用户进行业务应用时,由于并非简单操作,所以主服务器会根据各节点
87、状况进行负载均衡,把最适于用户应用的应用节点和计算节点分配给用户,使用户的操作达到最高效率。对于文件管理,主要是上传和下载两方面。对于上传操作,一样需要主服务器策略为其分配存储节点,根据获得的分配进行文件切片和多线程并行上传至被分配节点,而下载则是一个逆过程。最后,集群监控的工作就是为主服务器进行负载均衡时提供各节点的状态信息,并对节点进行状态控制,以使其正常、高效而稳定的工作。 第第10章章 云计算云计算 10.4.3 云脑系统的主要功能界面云脑系统的主要功能界面1云登录界面云登录界面是用户来到云脑世界所接触到的第一个界面,它的外观与当今流行的一些操作系统登录界面类似,输入正确的用户名和密码
88、后,点击“登录”按钮便可进入系统应用。不过有一点不同,由于系统是基于浏览器的,并不能像用户在个人计算机上安装操作系统时建立管理员账号一样为自己创建使用权限,对于新用户来说,还要有一个类似网页中注册页面的部分,以便用户创建自己的个人账号。所以设计了一个注册链接,当新用户点击标识有“还没注册?”的链接按钮时,界面便会自动提供注册功能。 第第10章章 云计算云计算 注册功能和登录功能同属一个界面之下,在用户注册的过程中,至少需要填写用户名和密码,在本系统中,为了对用户进行回访调查,“E-mail”选项也作为了必填内容,其余为非必填部分,并且可以随着用户使用的需要,在登录系统以后自由更改或填写。其中“
89、云脑名”部分如用户输入信息,则在用户登录云脑系统时,云脑将以此名字呈现在用户面前,否则电脑就将使用默认的云脑名称。当用户注册成功后,用户可使用注册好的用户名及密码登录进入云脑系统。 第第10章章 云计算云计算 2云文件界面云文件界面将给用户一个可凭借自己的意愿自由地对云盘进行操作的用户体验,云文件界面和云盘共同形成了云脑的文件系统,简称云文件系统。云文件界面的操作感类似当今流行操作系统的资源管理器,它内容丰富且十分完善,可根据用户的操作对云端所分配的云盘空间进行灵活控制,并且可以根据用户不同的操作选择,呈现出不同的显示效果,以便用户得到自己最需要的资源信息。第第10章章 云计算云计算 3云存储
90、界面云存储界面为用户提供了一个方便、灵活的云存储操作体验。它分为两个部分:一个是上传操作界面;另一个是下载操作界面。当用户选中自己要上传文件的位置时,单击“上传”文件按钮便可打开上传操作界面,选择自己想要上传的文件内容到自己的云盘上。当用户想要将云盘中的某个文件下载到本地电脑时,只需在云文件界面中找到相应文件,选择下载此文件即可。 第第10章章 云计算云计算 4云应用界面云应用所包括的内容很多,范围也很广,在云脑模型系统中,我们将带领读者实现其中的部分应用功能,如由云端计算节点机群提供的云算器等,它们都是依托于云端服务机群所呈现给用户的应用体验。其实在云脑的世界中,可以实现的应用十分庞大,远比
91、单机环境下所能有的应用更为丰富。比如我们的运算器,它还仅仅是个模型,如果将并行运算的所有操作封装成一套完整的API,就可以让第三方开发商轻松地开发并行应用程序,为用户提供更为高效且完善的应用体验。 第第10章章 云计算云计算 5云监控界面云监控界面是云监控系统的人机交互界面,其工作原理将在后面章节讲到。通过云监控界面,管理员可以了解到机群现在的状况,并可对机群的每台服务器进行管理操作,让整个云脑系统稳定而高效的工作。 第第10章章 云计算云计算 10.4.4 云脑系统机群的搭建云脑系统机群的搭建云脑系统机群是整个云脑运行的基础。在这个云脑系统中,借用几个基础软件作为支撑,其中包括MPICH 2
92、.0、JDK(Java运行环境)、Tomcat、MySQL 5.0。在选择这些软件的时候,考虑的是小、快、稳。因为在云时代的未来,云端机群的负载量将十分庞大,各个服务器的工作也将显得十分复杂、频繁,这样就要求所选择的系统平台精简、高效而又稳定,由此选择了上述软件作为云脑系统的支撑软件。 第第10章章 云计算云计算 1机群系统概览机群系统中所有的服务器都选择Red Hat 9.0 Linux操作系统进行搭建,并行环境选择以MPICH 2.0进行搭建,这对于采用MPI进行并行计算开发的开发者来说可能是必须的。MPI(Message Passing Interface,消息传递编程接口)是全球工业、
93、科研和政府部联合建立的一个消息传递编程标准,也是目前最为通用的并行编程方式。MPI标准中制定了一系列函数,用于进程间的消息传递,函数的具体实现由各计算机厂商来完成,然而这些都是要付费的。也有一些免费的通用MPI系统,比较著名的就是MPICH。我们把它安装在应用节点服务器和计算节点服务器上。 第第10章章 云计算云计算 主服务器、应用及存储节点机群的搭建过程中,选择使用Tomcat,因为它使用方便,且完全免费开源,利于自行修改搭建,再加上它拥有一流的进程保护机制,十分适合模型系统的开发。在安装Tomcat之前,每个节点上还需安装JDK(Java运行环境),这不仅是由于云端机群的实现需要用到Jav
94、a,也是由于Tomcat的运行同样需要Java的支持。系统中采用的MySQL 5.0是一个小型关系型数据库管理系统。每台服务器安装的软件如图10.19所示。第第10章章 云计算云计算 图10.19 每台服务器安装的软件示意图第第10章章 云计算云计算 (1) 主服务器安装的软件有Red Hat 9.0 Linux操作系统、MPICH 2.0、JDK 1.6.0、Tomcat 5.5和MySQL 5.0。(2) 监控服务器安装的软件有Red Hat 9.0 Linux操作系统、JDK 1.6.0和Tomcat 5.5。(3) 两台节点服务器安装的软件有Red Hat 9.0 Linux操作系统、
95、MPICH 2.0、JDK 1.6.0和Tomcat 5.5。 第第10章章 云计算云计算 2并行集群的搭建Red Hat 9.0 Linux操作系统采用完全安装,并且下载mpich2-1.0.8.tar.gz,下面以三台服务器(主服务器、两台节点服务器)为例,准备工作如下。(1) 设置IP主服务器为222.18.138.175,两台节点服务器为222.18.138.176和222.18.138. 177 (Red Hat 9.0 Linux操作系统在命令行输入“net config”就可以进行本机的IP设置)。(2) 编辑每台机器的/etc/hosts文件,将所有节点名称及其IP地址填入,如
96、图10.20所示。完成了系统的前期设置后,重新启动系统即可。 第第10章章 云计算云计算 图10.20 所有节点名称及其IP地址填入第第10章章 云计算云计算 3配置SSH安全外壳协议(SSH)是一种在不安全网络上提供安全远程登录及其他安全网络服务的协议。其中,对于MPI(Message Passing Interface,消息传递编程接口)来说,需要配置用户使用的SSH公钥认证,其公钥认证原理如下。第第10章章 云计算云计算 密钥认证需要依靠密钥,首先创建一对密钥(包括公钥和密钥,并且用公钥加密的数据只能用密钥解密),并把公钥放到需要的远程服务器上。这样当登录远程服务器时,客户端软件就会向服
97、务器发出请求,请求用密钥进行认证。服务器收到请求之后,先在该服务器的宿主目录下寻找公钥,然后检查该公钥是否是合法,如果合法就用公钥加密一随机数(即所谓的challenge)并发送给客户端软件。客户端软件收到“challenge”之后就用私钥解密再把它发送给服务器。因为用公钥加密的数据只能用密钥解密,服务器经过比较就可以知道该客户连接的合法性。配置步骤如下: 第第10章章 云计算云计算 (1) 进入root目录。#cd /root (2) 在node01生成SSH密钥对。#ssh-keygen -t dsa /连续按回车即可(产生了.ssh文件,里面包括公钥和密钥) #ls -a /查看是否有.
98、ssh文件夹 (3) 进入.ssh目录。#cd .ssh #ls /显示.ssh文件的内容 id_dsa id_dsa.pub known_hosts 第第10章章 云计算云计算 (4) 将该密钥用做认证,进行访问授权,复制id_dsa.pub为authorized_keys。#cp id_dsa.pub authorized_keys (5) 退出到root目录,进行信任连接。#cd /root (6) 建立信任连接。#ssh node01 /按提示输入yes(三个字母要打全) 第第10章章 云计算云计算 (7) 将/.ssh目录下的文件复制到所有节点的root目录下。#scp -r /.s
99、sh node02:/root #scp -r /.ssh node03:/root 命令解释:把本机root目录下的.ssh文件夹复制到node02、node03的root目录下。(8) 确认三台机器的信任连接已建立。对每个节点执行:#ssh node01 #ssh node02 #ssh node03 命令解释:ssh用于登录远程计算机。 第第10章章 云计算云计算 执行这些命令不需要密码,如果出现需要输入密码,那么说明中间某个地方出错了,需重新配置,因为这一步是往下一步的前提条件。第第10章章 云计算云计算 4安装mpich2在节点root目录下安装mpich2。假设mpich2-1.0
100、.8.tar.gz软件包已经下载到/root/目录下。安装步骤如下:(1) 解压缩mpich2-1.0.8.tar.gz软件包。#tar -zxvf mpich2-1.0.8.tar.gz (在root目录下生成了mpich2-1.0.8文件夹) (2) 创建安装目录。#mkdir /usr/local/mpich2 (3) 进入mpich2-1.0.8解压目录。#cd mpich2-1.0.8 第第10章章 云计算云计算 (4) 设置安装目录。#./configure -prefix=/usr/local/mpich2 (5) 在mpich2-1.0.8目录下编译安装文件。#make (6)
101、 进行安装。# make install 到此,mpich2就已经安装到所设置的安装目录/usr/local/mpich2下。也可用make & make install命令完成编译与安装。第第10章章 云计算云计算 (7) 修改环境变量。先输入cd /root命令转到root下,再通过编辑.bashrc文件修改环境变量。 #vi .bashrc .bashrc文件包含了用于系统bash shell的bash信息,在.bashrc文件的最后增加一行: export PATH=$PATH:/usr/local/mpich2/bin 在vi编辑软件下再按下“Esc”键和“:wq”键,保存修改后的文
102、件,修改后的.bashrc文件如下:# .bashrc # User specific aliases and functions alias rm=rm -i alias cp=cp -i alias mv=mv -i # Source global definitions 第第10章章 云计算云计算 if -f /etc/bashrc ; then . /etc/bashrc fi export PATH=$PATH:/usr/local/mpich2/bin 在命令行中键入:#source .bashrc /使环境变量设置生效 (8) 测试环境变量设置。可按下面步骤测试环境变量的设置:#
103、which mpd /usr/local/mpich2/bin/mpd #which mpicc /usr/local/mpich2/bin/mpicc #which mpiexec /usr/local/mpich2/bin/ mpiexec #which mpirun /usr/local/mpich2/bin/mpirun 第第10章章 云计算云计算 (9) 修改/etc/mpd.conf文件,内容写入为secretword=123456。#vi /etc/mpd.conf /设置文件读取权限和修改时间 输入secretword=123456,保存退出。 #touch /etc/mpd.
104、conf #chmod 600 /etc/mpd.conf 第第10章章 云计算云计算 (10) 创建主机名称集合文件/root/mpd.hosts。在root目录下,直接输入以下命令就可以创建mpd.hosts文件了。#vi mpd.hosts 文件内容如下:node01 node02 node03 (11) 本地测试。#mpd & /启动 #mpdtrace /观看启动机器 #mpdallexit /退出 到此,主服务器节点的mpich2安装已经完成。节点服务器的mpich2安装步骤与上述安装步骤相同,不再赘述。 第第10章章 云计算云计算 所有节点服务器安装完成后,可进行联机测试。通过m
105、pd.hosts运行集群系统,输入如下命令即可,运行结果如图10.21所示。第第10章章 云计算云计算 图10.21 通过mpd.hosts运行集群系统第第10章章 云计算云计算 #mpdboot -n number -f mpd.hosts/启动集群机器,number为要启动的机器个数 #mpdtrace /查看运行的机器 #mpdallexit /退出所有运行mpi程序 下面再测试一下例子程序的运行,如图10.22所示。# cd mpich2-1.0.8/examples /这个文件必须是每台机器相同的目录下面都有的#ls 再运行图10.22中cpi的测试程序,即在命令行输入“mpirun
106、 -np 3 ./cpi”,如图10.23所示。第第10章章 云计算云计算 图10.22 测试例子程序第第10章章 云计算云计算 图10.23 输入“mpirun -np 3 ./cpi”到此,配置和测试完毕。第第10章章 云计算云计算 5Linux下JDK的搭建比起配置并行环境,配置JDK就简单得多。其步骤如下:(1) 下载JDK rpm软件包jdk-6u12-Linux-i586.bin到root目录下。(2) 改变jdk-6u12-Linux-i586.bin 属性为执行权限。#chmod a+x jdk-6u12-Linux-i586.bin (3) 执行./ jdk-6u12-Lin
107、ux-i586.bin,进行安装。#./ jdk-6u12-Linux-i586.bin /生成jdk1.6.0_12文件夹 (4) 把jdk1.6.0_12复制到/usr/java。#mkdir /usr/java #cp -r jdk1.6.0_12 /usr/java/ 第第10章章 云计算云计算 (5) 设置环境变量,修改etc/profile文件。#vi /etc/profile 在最后添加如下代码:export JAVA_HOME=/usr/java/jdk1.6.0_11 export PATH=$PATH :$JAVA_HOME/bin:$JAVA_HOME/jre/bin:
108、export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib 第第10章章 云计算云计算 保存文件并退出,再在命令行中键入:#source /etc/profile /使环境变量设置生效 测试一下:#which java /usr/java/jdk1.6.0_12/bin/java 到此,JDK配置完成,这样就可以运行Java程序了。 第第10章章 云计算云计算 6Linux下HTTP服务器的搭建Linux 下安装Tomcat 6的步骤如下:(1) 到Apache网站下载Tomcat文件apache-tomcat-6.0.18.ta
109、r.gz。(2) 在/usr目录下建立Tomcat目录。(3) 解压apache-tomcat-6.0.18.tar.gz文件。#tar -xvzf apache-tomcat-6.0.18.tar.gz第第10章章 云计算云计算 (4) 修改etc/profile 文件,在最后加入如下代码:export TOMCAT_HOME=/usr/tomcat(5) 若需使用manager功能,需修改Tomcat_HOME/conf/tomcat-users.xml 文件,加入: 第第10章章 云计算云计算 (6) 启动Tomcat,命令行方式改变到安装目录,运行以下命令:./catalina.sh
110、run /启动Tomcat,控制台 ./catalina.sh start /启动Tomcat,无控制台 ./startup.sh /启动Tomcat,无控制台 (7) 关闭Tomcat,执行./shutdown.sh或者./catalina.sh stop。(8) 测试Tomcat安装是否成功,可通过输入http:/localhost:8080 进行测试。 第第10章章 云计算云计算 7Linux下MySQL的搭建下载安装文件mysql-5.0.0-alpha.tar.gz,并存放到root目录下。其安装步骤如下:(1) 执行“groupadd mysql”添加组mysql用户组。#grou
111、padd mysql (2) 执行“useradd -g mysql mysql”添加mysql用户。# useradd -g mysql mysql (3) 进入root目录。#cd /root (4) 解压安装包mysql-5.0.0-alpha.tar.gz。#tar -zxvf mysql-5.0.0-alpha.tar.gz /释放了mysql-5.0.0-alpha 第第10章章 云计算云计算 (5) 进入mysql-5.0.0-alpha。#ls /查看是否有mysql-5.0.0-alpha #cd mysql-5.0.0-alpha (6) 建立mysql安装目录。#mkdi
112、r /usr/mysql (7) 配置mysql安装路径。#ls /查看mysql-5.0.0-alpha目录,并运行configure程序 #./configure -prefix=/usr/mysql 第第10章章 云计算云计算 (8) 编译、安装。当程序运行到“Thank you for choosing MySQL”之后,配置完成。运行make命令,进行编译文件。#make 接着进行安装步骤。#make install /把文件安装到我们设置的目录里第第10章章 云计算云计算 (9) 进入/usr/mysql/bin。#cd /usr/mysql/bin #ls 在/usr/mysql
113、/bin文件夹下可以看到已经安装的程序,有数据库初始化程序,如mysql_install_db等,接下来还需进行一些初始化数据库和配置环境的工作。(10) 执行/usr/mysql/bin/mysql_install_db -user = mysql,进行数据库初始化。#./mysql_install_db -user = mysql (11) 将MySQL配置文档复制到/etc/目录下并保存为f。#cd /root/mysql-5.0.0-alpha /进入mysql-5.0.0-alpha #ls /查看目录的内容,里面有一个support-files,/这个文件夹中有所要的配置文件第第1
114、0章章 云计算云计算 (12) 执行以下命令:#cp support-files/my-f /etc/f #cp support-files/mysql.server /etc/rc.d/init.d/mysqld #chmod 700 /etc/rc.d/init.d/mysqld #chkconfig -add mysqld第第10章章 云计算云计算 (13) 进入MySQL安装目录,修改权限。#cd /usr/mysql #chown -R root . /把这个目录改为root所有,注意,不要漏了后面的“.”#chown -R mysql var /同样 #chgrp -R mysql. /修改为组用户所有,注意不要漏掉“.” # /usr/mysql/bin/mysqld_safe -user=mysql &第第10章章 云计算云计算 (14) 登录MySQL。输入“bin/mysql -u root -p”命令,可登录MySQL,如图10.24所示。图10.24 登录MySQL第第10章章 云计算云计算 系统会提示输入密码,若安装时没有设置密码,则默认密码为空,直接回车进入。到此,MySQL配置完成。当所有的程序都装配完毕,就可以对系统进行部署了。按照上面的系统清单里所配置的环境,云计算系统就可以在所配置的机器上运行了。