云计算
1.特点:超大规模、虚拟化、高可靠性、通用性、高可扩展性、按需服务
2.PAAS平台即(Platform-as-a-Service:平台即服务),把服务器平台作为一种服务提供的商业模式。通过网络进行程序提供的服务称之为SaaS(Software as a Service),而云计算时代相应的服务器平台或者开发环境作为服务进行提供就成为了 PaaS(Platform as a Service)。
3.开放移动互联网应用平台(Open Mobile-Internet Platform,OMP)
4.云计算概要介绍
云计算是一种新兴的计算模型,在云计算环境下一切皆服务,用户按需使用服务并对其进行支付。应用以服务的形式提供给用户:无论云提供的是应用软件,基础平台API或者是完全抽象的运算资源,这些都是整合了底层的IT资源,以服务的形式呈现给上层用户"。
云计算作为一门新兴的技术,它是在分布式计算、并行计算和网格计算基础上发展而来的。虚拟化技术在云计算中的运用将数据中心的硬件资源虚拟化为资源池中的虚拟资源进行统一的管理和对外服务。形成了“按需使用、按量付费”的以用户为中心,资源对用户透明的商业服务模式。
云计算(Cloud Computing)是分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
现有的云计算任务调度算法大都把研究重点放在缩短任务的最大完成时间或者是仅考虑任务的快速响应速度,对用户 QoS 需求考虑不够;从云资源服务提供者角度(系统资源角度)来看,现有的调度算法和分配策略更偏重于注重效率,对经济效益和资源利用率等方面因素的考虑不够。
云计算同时还具备良好的弹性扩展支持能力即:不能自由伸缩的系统不能称之为云"一个合符定义的云具备动态扩展的能力,无论是内容还是资源"这种
扩展可能是运营商操作下的整体扩展,也可能是某一个具体应用对客户需求的
自动响应"云计算的形式可主要分为以下几种:
1.SaaS(软件即服务)
SaaS(软件即服务),是指用户获取软件服务的一种新形式"它不需要用户将软件产品安装在自己的电脑或服务器上,而是按某种服务水平协议(SLA)直接通过网络向专门的提供商获取自己所需要的,带有相应软件功能的服务。本质上而言,软件即服务就是软件服务提供商为满足用户某种特定需求而提供其消费的软件的计算能力。
当前,SaaS有各种典型的应用,如在线邮件服务,网络会议,网络传真,
在线杀毒等各种工具型服务,还有在线CRM、在线HR、在线进销存、在线项
目管理等各种管理型服务。
SaaS是未来软件业的发展趋势,目前己吸引了众多厂商的参与"不仅微软、
Safesforce等各大软件巨头都推出了自己的SaaS应用,用友,金蝶等国内软件巨头也推出了自己的SaaS应用"。
2.paas(平台即服务)
PaaS(平台即服务),是指将一个完整的计算机平台,包括应用设计、应用开发、应用测试和应用托管,都作为一种服务提供给客户。在这种服务模式中,客
户不需要购买硬件和软件,只需要利用PaaS平台,就能够创建、测试和部署应用和服务,与基于数据中心的平台进行软件开发相比,费用要低得多,这是PaaS的最大价值所在。
PaaS自身不仅拥有很好的市场应用前景,而且能够推进SaaS,并与其共同
发展。对于想进入SaaS领域的提供商而言,PaaS关键是降低了他们开发和提供
SaaS服务的门槛,而对于已经在提供SaaS服务的提供商而言,PaaS可以帮助部
分提供商进行产品多元化和产品定制化服务,让更多的ISV成为其平台的客户,
从而开发出基于平台的多种SaaS应用,使其成为多元化软件服务供货商。同时,
PaaS降低了SaaS应用开发的门槛,提高了开发的效率。
3.IaaS(基础设施即服务)
IaaS(基础设施即服务),是指企业或个人可以使用云计算技术来远程访问计算资源,这包括计算、存储以及应用虚拟化技术所提供的相关功能。无论是最终用户、SaaS提供商还是PaaS提供商都可以从基础设施服务中获得应用所需的一计
算.能力,但却无需对支持这一计算能力的基础IT软硬件付出相应的原始投资成
本。
5.云计算研究现状
随着云计算技术的不断发展,许多著名的 IT 企业纷纷加入到云计算技术及产品研究和推广的行列。这些企业以 Google、Amazon、IBM 和 Microsoft 为代表。下面就简单对这些公司从事的云计算研究进行介绍。
(1) Google 云计算
目前,Google 处于云计算研究领先地位。从 2003 年以来,Google 陆续发表了多篇关于分布式文件系统(GFS)、并行计算编程方式(MapReduce)、分布式大型数据管理(BigTable)和分布式资源管理(Chubby)的文章,并推出了基于这些技术的云计算服务和自己的云计算平台 Google App Engine
四个相关的技术介绍如下:
1 GFS 首先是一个分布式文件系统,专门为大规模分布式应用数据中心所设计的它最大的特点就是可伸缩性,并且对硬件条件要求不高,在普通的硬件上就可运行提供高性能服务。GFS 为 Google App Engine 提供海量存储,并且紧密与 Chubby、MapReduce 和 BigTable 等技术结合。Google 公布了关于 GFS 的详尽的技术文档《The Google File System》.该文档对GFS 产生的背景、特点、系统框架、性能测试等方面进行了详细的阐述。
2 MapReduce 是一个面向大规模数据集的软件架构是一种处理海量数据的并行编程模式,用于大规模数据集的并行计算。两个核心概念“Map”与“Reduce”以及整个架构的主要设计理念,是从矢量编程语言和函数式编程语言借鉴得来。早在 1995 年,学者 John Darlington 等人首次提出了“Map”和“Fold”的概念,和现在的 Google 所使用的“Map”和“Reduce”思想比较相似。
3 Chubby也是 Google 设计的一个基于松耦合的分布式文件系统,提供粗粒度锁服务可以用来解决分布式系统中的一致性难题。其中 GFS 使用 Chubby 来获取一个 GFS 主服务器,BigTable 使用 Chubby 指定一个主服务器并发现、控制与其相关的子表服务器。
4 Bigtable是 Google 为了处理分布在数以前千计服务器上超大规模海量数据而设计的基于分布式平台的数据存储系统。目前 Google 的大部分项目例如:Google Finance、GoogleEarth、Web 索引使用的数据存储技术都是 Bigtable。这些应用项目在数据存储上的要求差别很大,差别来源于数据量上的不同(从 URL 到网页到卫星图像),对于响应速度的要求不同(从后端的批量处理到实时数据服务)。尽管项目应用要求差别巨大,但是 Bigtable 还是成
功的提供了一个高性能的、灵活的解决方案。
(2) Amazon 云计算
Amazon 是全球第一家大型 IT 公司把云计算和基础设施当做一种服务向用户出售。它的云计算服务主要包括:弹性计算云 EC2、简单存储服务 S3、简单数据库服务 Simple DB、简单队列服务 SQS、弹性 MapReduce 服务、内容推送服务 CloudFront、电子商务服务 DevPay和 FPS 等。其中 Amazon EC2 平台是多种工具的集合,这些工具大部分位于整个系统平台的底层,涉及底层的操作系统、文件系统以及硬件基础等一些具体环境,因此要求开发人员具备较强的开发能力。
(3) IBM 云计算
IBM 公司在传统超级计算机领域和商业数据计算领域处于全球领先地位,它在 2007 年11 月,推出了自己的云计算项目“蓝云”计划。“蓝云”是多个云计算产品的总和,该计划通过构建一个分布式的可以全球访问的资源系统让数据中心可以在互联网的环境下进行计算,使得计算不再局限与本地机器和远端服务器。目前公司发布的云服务有:Lotus SametimeUnyte,LotusLive.com 等。
(4) Microsoft 云计算
2008 年 10 月,微软的首席架构师 Ray Ozie 在全球开发者大会上发布 Azure Services Platform标志着 Microsoft 的云计算项目开始启动。Azure Services Platform 是一个 Internet 云端服务平台它是基于微软自己的数据中心的,能够为用户提供安全的实时操作系统和完善的开发服务。当时,它是基于 Windows 架构,只允许其运行在.NET 框架下构建的应用程序。在 2009 年召开的 Microsoft MIX09 大会上,Microsoft 发布了 Windows Azure 的最新版本,称为 March 2009 CTP(社区技术预览版)。Microsoft 的云计算服务平台属于 PaaS 云计算模式。目前该平台主要包括四个组件,如图 1.3 所示,各个组件都能为应用程序开发者提供一系列特定的服务和功能。其中各个组件的介绍如下:
Windows Azure:该组件是微软公司云计算技术的核心,位于整个云平台的最底层。它其实就是一个Windows操作系统为用户提供了一个能在数据中心服务器上存储数据和运行应用程序的环境。
Microsoft.NET 服务:该组件是一个基础功能模块,通过其可以为处于不同位置的应用程序提供常用的基础功能调用服务,主要是访问控制、服务总线和工作流(workflow)三种类型服务。
Microsoft SQL 服务:可以为所有的应用程序包括云端和本地应用程序提供微软自己研发的数据库 SQL Server 服务。
Live 服务:Windows Azure 上集成了 Windows Live,该组件使得用户可以在云平台上使用 Live 提供的服务。
云计算架构
中国科学院软件研究所的冯登国等人畅想了未来云计算服务,认为未来云计算将形成一个以云基础设施为核心、涵盖云基础软件与平台服务与云应用服务等多个层次的巨型全球
化 IT 服务化网络,如图 1.5 所示
6.云计算环境下任务调度策略研究现状
云计算是建立在计算机界长期技术积累基础上。分布在不同地域的数据中心是各种资源的集中地,它在给用户提供虚拟资源的同时担负着对各种硬件设备进行日常维护、能源分配的责任。由于云计算平台资源的多样性、分布的广泛性以及用户需求动态变化难以预测性,同时还要考虑成本因素和系统性能的协调,使得动态分配管理虚拟和共享资源成为云计算数据中心面临的巨大挑战。针对不同用户的业务需求和不同商业目标,需要设计考虑多种因素高效的任务调度资源分配策略。以下对一些目前提供云计算服务的厂商的调度策略做简要的叙述。
(1)Amazon 调度策略
Amazon 的资源调度策略是一种成本优先,同时满足不同用户需求,考虑服务可靠性,
系统负载均衡的策略:
成本优先:这是一种按照地域不同来划分成本的收费调度策略,使用者可以根据自身需要进行选择。
缩短响应时间:按应用种类预先配置好虚拟机实例,包括适合大多数普通应用的标准实例,适合高吞吐量应用如电子商务的高存储实例,适合计算密集型应用的高 CPU 实例等。
业务分类:提供立即使用客户、预定客户等业务分类。每种业务分类的收费标准不同,立即使用客户的收费标准比预订客户的收费标准高。
总体收费标准:对于长时间使用服务的客户,单位时间内平均收费比短时间使用服务的客户低。
负载均衡:为了满足服务器是分布在不同地域并且数据内容可能存在多个数据中心这种情形,采用了名为 Round Robin 的技术,它和以往的一个 IP 地址只提供给一个服务器使用。
(2)IBM 调度策略
IBM 的调度策略是一种性能优先的策略,可以最大化满足用户需求。IBM 以往的虚拟计算实验项目为它云平台的建立提供了很多宝贵的经验。它的调度策略有以下几点重要措施:
用户可按照预先设置好的选择项选择已经配置好虚拟机。选择项里包括:虚拟机资源的硬件平台、CPU、内存、操作系统,资源可用的开始时间,结束时间等信息。
通过 IBM Tivoli Monitor 来监控资源状态动态。需要哪个受监控的资源的实时信息可以到 Tivoli Enterprise 的专门网站上进行查询,云门户网站可以利用这些信息进行集成。
用户按照选择项选择了已经配置好的虚拟资源后系统会自动构建服务器,服务器资源是自动部署并且动态更新的。用户获得资源后可以根据任务执行的实际情况,做出提前结束资源使用的决定或者提出延长资源使用时间的申请。针对不同用户优先级和群组用户的调度分配策略。
(3)HP 调度策略
成本优先:可以看到 HP 公司很早就在对数据中心任务调度资源分配策略。它所提出的成本模型非常完整,数据中心需要考虑成本因素可以参考。但是目前还没有公开的文献详细介绍 HP的最小化成本策略。
负载均衡:自动放置虚拟机以及动态迁移。HP 主要考虑负载均衡的策略,对什么时候哪些虚拟机进行自动开启配置和动态迁移是通过参考虚拟机 CPU、内外存和网络利用率实时监控数据按照进行决策的。
(4)VMware 调度策略
VMware 公司的数据中心研究重点是资源虚拟化,虚拟机动态迁移和容灾备份。
提高资源利用率:主要是用虚拟化技术和动态迁移虚拟机提高资源利用率。管理虚拟机(增加、删除、更新)多是手工方式,调度一般采用定时安排。
提高可靠性:通过预先设置好的动态迁移或自动转移、备份和回复方式实现高可靠性。VMware 通过建立远程服务器群,建立双中心互相备份的虚拟化架构,达到异地容灾的目的。两个中心之间(分别叫做运营端和远端 ESX)通过 vReplicator 服务可以实现运营端虚拟机应用实时复制到远端 ESX 主机存储。
负载均衡:分布式资源调度(DRS)
目前 VMware 的产品主要是通过分布式调度来实现负载均衡的。
(5)Apache Hadoop 调度策略
Hadoop 基于 MapReduce 架构来实现云资源调度。MapReduce 的两项核心操作是 Map 和Reduce。简单的说 Map 是按照一个特定函数所指定的映射规则把一组数据一一映射成为另外一组数据。Reduce 是按照与映射规则相匹配的归约规则对这组数据进行归约。Hadoop 调度策略里考虑了系统负载均衡、资源公平分配、节点选择方式(就近原则)、服务可靠性(备份
加动态调整)。
负载均衡:主节点通过查询从节点机制动态分配任务,以实现负载均衡。
公平分配:调度时对提出申请的用户没有考虑优先级别,使用先进先出的队列排序。
Hadoop 的任务调度是一种主从式的模式,有个叫做 JobTracker 的主节点整个系统的任务调度都是由它完成,其它节点叫做 TaskTracker,主节点在它们空闲时间向其分配任务。主节点的任务调度算法是先来先服务算法(FIFO)。全部任务的执行顺序是由用户提交时间顺序执行所决定的,主节点使用一个 JobQueue 维护用户提交的作业,所有作业都没有设置优先级。
就近选择:为了避免数据远距离传输带来的不必要开销主节点采用贪心算法:默认总是试图找到距离客户数据最近的从节点,以便大数据不必通过网络传输;如果从节点忙的话,任务可以被分配到其他可用节点。
提高可靠性:一般对于数据采用分割备份,一般是在 3 个以上节点进行备份。
7.云计算技术的体系结构
(1) SOA 构建层
可以看到最上面一层 SOA 层是由很多组件构建成的。利用面向服务的构建思想云计算能力被封装成标准 Web Services 服务,用户可以通过 SOA 层获得服务接口、服务注册、服务
查找、服务访问和工作流。
(2) 管理中间层
该层以中间件的形式提供四个主要功能。资源管理通过对虚拟资源情况的实时监测达到使云计算资源使用均衡的目标,各个资源节点故障监测和恢复也是通过资源管理来实现的;任务管理的功能是对用户所提交的任务找到相应的资源进行部署和管理,同时负责管理任务调度的生命周期;用户管理功能包括:环境配置、用户账号管理、资源使用计费;安全管理通过身份认证、授权访问、安全审计和综合防护等措施来负责保障服务设施的整体安全。
(3) 资源池层
这层又叫做虚拟化资源层。云计算通过应用虚拟化技术,将数据中心包含的基础设施硬件资源虚拟化为各种虚拟资源池。管理中间层的任务管理在接受到用户请求后从虚拟资源池中找到相应的虚拟资源分配给用户任务使用。
(4) 物理资源层
该层是由分布在不同地域数据中心的物理资源基础设施所组成的,包括存储器,数据库,网络设备,计算机等。
云计算的引用领域
云计算中相关技术的研究
8.云计算的“一二三四五”
“一”云计算是一种性的交付模式,一体化的共享平台。从技术的角度来讲,是将企业的所有的服务器、存储基础设施以及网络整合到统一的云平台上。在云的世界里,将技术和业务结合起来交付给用户使用。企业的运营管理、决策分析都将基于云平台展开。它是一个系统的总体的概念、业务与技术融合的一体化概念。
“二”是指云是由云计算平台和云服务应用两个层面组成。企业可将基础设施包括传统的服务器、操作系统、存储运维等都统一部署在同一个平台之上,企业可以不必过多的关注平台本身,而只关注应用。其次,、企业和个人可以根据不同的需求部署成不同的应用,形成个性化的交付模式,形成一种云服务。一个是云技术层面,一个是云服务层面。
“三”是从用户体验的角度来讲,可以分为3种模式:以基础设施作为服务(IaaS)、以开发平台作为服务(PaaS)、以软件应用作为服务(SaaS)。
“四”是四种部署配置模式,包括公有云、私有云、混合云、社区云。
“五”是云计算的五个基本特征:虚拟化的资源池,基于网络的访问,按需自助式服务,快速、弹性,使用成本可计量等。
仿真平台
1.组成:仿真平台采用分层结构及模块化设计,由仿真运算子系统、仿真呈现子系统(仿真数据配置模块和仿真结果呈现模块)和仿真数据库组成,具有良好的可扩展性,能够较好地模拟真实PaaS云计算系统。
2.模拟与仿真的区别:模拟是需要通过一定的技术手段建立具体的模型,而仿真主要是搭建一个平台。(自己的感想)
任务调度
1.任务调度定义
调度问题一直是计算机科学中的研究重点,尤其是在多处理机以及分布式系统中,云计算中任务调度也是研究的一个重点问题。云环境下的任务调度是一个映射过程,它根据云环境中资源、任务两者的状态和预测信息,在一定的约束条件下,将相互的用户所提交的任务,映射到适当的虚拟机资源上执行,最后返回处理结果。良好的任务调度算法能有效地协调和分配虚拟机资源,有效降低任务的总执行时间和资源总耗费量,从而使云系统达到最大性能。进行任务调度有两个目的,第一,便于用户透明地将任务提交给资源;第二,通过资源和任务的匹配增加资源的利用率和满足用户对任务执行的需求约束,也就是说,依靠云计算任务调度算法,虚拟机资源可以得到充分利用,用户也能够透明地获得更好的服务质量。由于云环境具有异构、动态、分布和自治等特性,如何调度以满足用户的需求是一个极具挑战性的问题。
2.云计算虚拟资源一级调度有以下四个特点:
(1)任务调度是面向异构平台的。数据中心提供给用户使用的虚拟机资源是已经封装好的,这些虚拟机配置的 CPU、内存、带宽资源不尽相同。
(2)任务调度必须具有扩展性。云计算是弹性计算,可以随时增加或减少服务器来加强或减弱其计算能力。同时,虚拟机也可以随时被创建供用户任务使用。用户使用完后也可以随时被销毁。
(3)任务调度是大规模的、集中式的。这一点与网格计算不同,云计算虽然是在网格计算的基础上发展起来的,但两者在资源利用方面有较大区别。网格计算没有数据中心的概念,通常以聚合分散的资源方式,支持大型集中式应用;云计算则以相对集中的资源,通常以数据中心的形式,利用虚拟化技术来运行分散的应用。
(4)任务调度能够适应动态性。云计算资源可以是异构的,而且其网络本身也不断发生变化。在云计算中,有的虚拟机资源可能因为发生故障而退出,而有的虚拟机资源则被系统创建,提供给用户任务使用。因此,云计算的动态性是明显的,任务调度系统要适应这种动态性,从虚拟机资源池中选取最佳的虚拟机资源为用户提供服务。
3.虚拟机任务调度目标
1)最优跨度。这里所指跨度有两个含义,第一,算法执行时间跨度,指的是调度算法进行任务分配时需要运算的时间。这个跨度对及时响应用户任务有重要意义。第二,用户任务执行时间跨度,指的是一个任务集中的任务分配到各个虚拟机上全部执行完所花费的时间,该跨度越短,调度分配方案越好。
2)负载均衡。在云计算、分布式计算和网格计算发展中,负载均衡一直都被作为一个关键性因素来衡量调度策略的优劣。云计算任务的大规模性,资源异构性,多样性等特点决定了调度策略必须能提高资源的利用率和系统负载均衡能力
3)服务质量。在云计算系统为用户提供计算和存储服务时,云计算系统性能的好坏是通过服务质量 QoS 体现出来的。云调度器在调度资源给用户任务时,保证云计算中应用的 QoS很重要。上面提到的最优跨度和负载均衡指标都属于服务质量 QoS 中的范畴。
4)经济原则。云计算中的各种资源(包括软件资源和硬件资源)就像家庭用电一样都是按需付费的,根据市场经济原则,不同资源其使用费用也是不同的。云计算系统必须保证资源提供方和资源使用方共同获得利益,才能使云计算系统健康地发展下去。