您好,欢迎来到客趣旅游网。
搜索
您的当前位置:首页云计算论文

云计算论文

来源:客趣旅游网


云计算论文

Newly compiled on November 23, 2020

云计算的集群与分布式

摘要

尽管我们已经有了高速的个人计算机,尽管我们有了储存大量信息的网络,但是随着社会的发展我们对其的要求也越来越高,为了满足越来越高的需求水平并降低升级的成本,一个新的观念出现了,并为IT业的发展指明了方向,这就是“云计算”。

无疑,近年来,云计算已经成为最热门的技术话题之一,云计算技术已经成为了继个人计算机、互联网之后出现的第三次技术浪潮。国家“十二五”规划纲要和《关于培育和发展战略性新兴产业的决定》均把“云计算”作为新一代信息技术的重要组成部分。由此可见“云计算”重要性和发展云计算的必要性。

本文将从云计算组成的角度来粗浅的介绍云计算的概念。 关键词 集群技术与虚拟化,并行计算技术,分布式文件系统。

第一章 绪论

1.1 课题背景

技术是云计算发展的基础。首先是云计算自身核心技术的发展,如:硬件技术,虚拟化技术,并行编程模型、海量数据分布存储技术、海量数据管理技术、云平台管理技术;其次是云计算赖以存在的移动互联网技术的发展,如:高速、大容量的网络,无处不在的接入,灵活多样的终端,集约化的数据中心,WEB技术。

可以将云计算理解为八个字\"按需即用、随需应变\",使之实现的各项技术已基本成熟。

1.2 什么是云计算

云计算是通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将与互联网更相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。

按照云计算的服务层次可以把云计算服务分为基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)。

IaaS:基础设施即服务

IaaS(Infrastructure-as-a- Service):基础设施即服务。消费者通过Internet可以从完善的计算机基础设施获得服务。

PaaS:平台即服务

PaaS(Platform-as-a- Service):平台即服务。PaaS实际上是指将软件研发的平台作为一种服务,以SaaS的模式提交给用户。因此,PaaS也是SaaS模式的一种应用。但是,PaaS的出现可以加快SaaS的发展,尤其是加快SaaS应用的开发速度。

SaaS:软件即服务

SaaS(Software-as-a- Service):软件即服务。它是一种通过Internet提供软件的模式,用户无需购买软件,而是向提供商租用基于Web的软件,来管理企业经营活动。

1.3 云计算的基本技术

高可靠的集群技术与虚拟化,并行计算技术,分布式文件系统。

第二章 集群技术与虚拟化

集群技术

集群技术就是将多台服务器用集群软件连接在一起,组成一个高度透明的大型服务器群的计算机系统,作为一个整体为客户端提供服务,客户 端能共享网络上的所有资源,如数据或应用软件等,同时客户端的用户并不关心其应用Server运行在那台服务器上,只关心其应用Server是否能连续工作。当集群系统内某一台服务器出现故障时,其备援服务器便立即接管该故障服务器的应用服务,继续为前端的用户提供服务。从客户端看来,集群中的所有服务器是一 个系统,就像一台大型的计算机系统,其上运行着客户端需要的应用服务。集群系统能够保证用户的业务是连续的并且具有持续可用的特性,即具有7x24 的可用性,从而将系统停止运行的时间降到了最低,提供了高可靠性的保障。

从客户端看来,集群中所有的服务器是一个整体,就像一台大型的计算机,为了完成一些普通计算机或服务器难以胜任的计算密集型应用,集群可以可以集中几十台甚至成百上千台计算机服务器的计算能力来提供更高的计算能力。

用户若想扩展系统能力性能,往往不得不购买更高性能的服务器并停止系统运行来更新设备,但是采用集群技术的话,只需将新的服务器加入集群中,并不需要停机和极其昂贵的服务器,通过大量性价比高的服务器的叠加和集合就可以做的更出色,大大提高了系统的可扩展性并大大降低了成本。

集群技术在提高性能、增强可靠性的同时提供了更好的可扩展能力和更低的成本。

高可用性集群

在一年之内可达99.99%可用性时,这样的集群系统我们称为高可用性的集群系统。

可用性:当用户需要数据和服务时,计算机能够根据请求完成响应则定义为可用性。可用性是以百分比形式表示的一种系统正常工作的时间。高可用性系统是由集群软件监控、具有多台服务器互相冗余的系统。此系统通过集群软件提供的故障监测和故障处理能力,可提供业务连续性的能力。高可用性系统的主要目的是将计划内及计划外宕机时间减少到最少;其次是减少恢复一个失败系统的时间,即应在最短的时间内恢复系统。的运行。高可用性即确保计算机系统的运行时间达到99.99%。

容错系统: 是由一台计算机系统采用专用的、昂贵的和有复制功能的设备组成的系统。如计算机内部采用特殊的双主机板、CPU锁步运行、冗余磁盘、专有的操作系统等。它是为防止系统出错、获得较高可用性的一种方法。容错性是整个操作系统统筹设计的一个功能,系统完全自发、自动响应系统故障,并提供不问断服务。

高可用性的集群系统主要包括以下几方面硬件组件:

(1)服务器组:在高可用性的集群系统中每个节点的服务器必须有自己的 CPU、内存和磁盘。每个服务器节点的磁盘是用于安装操作系统和集群软件程序。

(2)对外提供服务的网路:集群系统中的服务器一般采用TCP/IP网络协议 与客户端相连。每个服务器上都有自己的应用服务,客户端必须通过集群服务器 中的网络通路来得到自己的服务。

(3)心跳信号通路:在高可用性的集群系统中每个节点必须有心跳接口,用于服务器节点之间互相监视和通信,以取得备援服务器的工作状态。

(4)数据共享磁盘:在高可用性的集群系统中由于运行的都是关键业务,故 使用的存储服务器都应是企业级的存储服务器,这些存储服务器应具有先进技术 来保障其数据安全。一般数据放在企业级的存储服务器的共享磁盘的空间中,它 是各服务器节点之间维持数据~致性的桥梁,各服务器节点在集群软件的控制下 不会同时访问共享磁盘。

负载均衡性集群

当前,无论在局域网还是在广域网上,业务量的发展都超出了过去最乐观的估计,即使按照当时最优配置建设的网络,也很快会感到吃不消。尤其是各个网络的核心部分,其数据流量和计算强度之大,使得单一设备根本无法承担,而如何在完成同样功能的多个设备之间实现合理的业务量分配,使之不致于出现一台设备过忙、而别的设备却未充分发挥处理能力的情况,负载均衡集群机制也因此应运而生。负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。它为用户提供更好的访问质量;提高服务器响应速度;提高服务器及其他资源的利用效率避避,免了网络关键部位出现单点失效。

负载均衡又可以分为静态负载均衡和动态负载均衡。

静态负载均衡:它只是把有可能拥塞于一个服务器的负载交给多个服务器分担。就像轮流值日制度,把任务分给大家来完成,以免让一台服务器超负荷运算。不过,这种意义上的均衡一般是静态的,也就是事先确定的“轮值”策略。

动态负载均衡:它是通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理分配出去。结构上分为本地负载均衡和地域负载均衡(全局负载均衡),前一种是指对本地的服务器集群做负载均衡,后 一种是指对分别放置在不同的地理位置、在不同的网络及服务器群集之间作负载均衡。 在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。它主要解决网络拥塞问题,服务就近提供,实现地理位置无关性;为用户提供更好的访问质量,提高服务器响应速度,提高服务器及其他资源的利用效率,避免了网络关键部位出现单点失效。

负载均衡集群通常采用专门的负载均衡路,负载均衡器通过虚拟IP 地址方法,解决了轮流排程所面临的许多问题。使用了负载均衡器的集群系统,在外部看来,像是具有一个 IP 地址的单一服务器一样,当然,这个 IP 地址是虚拟的,它映射了集群中的每一台机器的地址。所以,在某种程度上,负载均衡器是将整个集群的IP 地址报漏给外部网络。当请求到达负载均衡器时,它会重写该请求的头文件,并将之指定到集群中的机器上。如果某台机器被从集群中移除了,请求不会别发往已经不存在的服务器上,因为所有的机器表面上都具有同一个 IP 地址,即使集群中的某

个节点被移除了,该地址也不会发生变化。而且, internet 上缓存的 DNS 条目也不再是问题了。当返回一个应答时,客户端看到的只是从负载均衡器上所返回的结果。也就是说,客户端操作的对象是负载均衡器,对于其更后端的操作,对客户端来讲,是完全透明的。

负载均衡路由设备由于采用了特殊的硬件结构及专门开发的配置软件,通常易于配置及管理,性能较好,但是其价格较高

负载均衡器的优点:

(1)通过故障恢复机制获得高可靠性。某一故障发生在当集群中某个节点不能处理请求,需将请求重新导向到其他节点时,负载均衡器会将之发送到集群中其他的节点上。

(2)便于统计计量。 既然所有的请求都经过负载均衡器,那么系统就可以确定活动的数量,在任何实例访问中的活动的数目,应答的次数,高峰负载次数,以及在高峰期和低谷期的会话的数目,还有其他更多的。所有的这些统计信息都可以被很好的用来调整整个系统的性能。

负载均衡器的缺点在于费用、复杂性以及单点失败的。由于所有的请求均是通过硬件负载均衡器来传递,因此,负载均衡器上的任何故障都将导致整个站点的崩溃而且负载均衡器将会成为整个系统性能提升的瓶颈。

虚拟化技术

随着近年集群、网格甚至云计算的广泛部署,虚拟化技术在商业应用上的优势日益体现,不仅降低了 IT 成本,而且还增强了系统安全性和可靠性,虚拟化的概念也逐渐深入到人们日常的工作与生活中。

虚拟机管理器(VMM)是整个虚拟机系统的核心,它承担了资源的调度、分配和管理、保证多个虚拟机能够相互隔离的同时运行多个客户操作系统。虚拟机管理器运行在硬件平台之上,操作系统之下,不同的系统需求有不同的实现方式。

虚拟机管理器主要包括对CPU的虚拟化,对内存的虚拟化,对I/O的虚拟化。

CPU的虚拟化

CPU的虚拟化是为每个虚拟机提供一个或多个虚拟CPU(virtual CPU,VCPU)。多个虚拟CPU分时复用物理CPU,任意时刻一个CPU只能被一个虚拟CPU使用。VMM必须为各个虚拟CPU合理分配时间片并维护所有虚拟CPU 的状态,当一个虚拟CPU的时间片用完需要切换时,要保存当前虚拟CPU状态,将被调度的虚拟CPU的状态载入物理CPU。

因此VMM对于CPU虚拟化需要解决一下两个问题: (1)虚拟CPU的正确运行。 (2)虚拟CPU的调度。

虚拟CPU正确运行的关键是保证虚拟机的指令正确执行并且保证各个虚拟机之间不互相影响。现有的实现技术包括模拟执行和监控执行。模拟执行是指由VMM模拟所有指令的运行效果,包括解释执行和二进制代码翻译。通常用在物理机器指令集与虚拟机指令集不同的情况下,模拟执行方式效率较低。监控执行是指虚拟机的绝大部分指令都能在物理主机上直接执行,少量可能影响虚拟机运行或影响其他虚拟机状态的指令,必须由VMM监控并模拟其执行效果,监控执行方式效率较高,在理想状态下,虚

拟机甚至可以达到接近物理主机的速度。

虚拟CPU的调度是指由VMM决定当前哪一个虚拟CPU实际在物理CPU上运行。虚拟CPU的调度除了保证虚拟机之间的性能隔离性,还应该保证虚拟CPU 的性能,保证调度的公平性:要考虑调度算法既能够充分利用物理CPU资源,又能实现精确的CPU资源分配;要根据虚拟机上运行的应用服务的特点以及虚拟机之间的依赖关系合理调度虚拟CPU。

对运行虚拟机的环境来说,有如下调度需求:

充分利用CPU资源:为了减小虚拟化的性能开销,使虚拟机尽可能接近物理主机的性能,调度算法需要保证物理CPU资源能充分利用,不浪费任何处理器周期。因此,通常采用连续工作型调度算法。

性能隔离:VCPU的调度必须保证一个VCPU的运行不会影响其他VCPU的性能。

考虑虚拟机之间的不对等:目前虚拟机常见的应用是服务器整合,可以把若干应用服务器合并在一台物理主机上分别作为不同的虚拟机同时运行。这些虚拟机可能有不同的应用特点, 例如,交互/批处理,I/O密集/计算密集等,VCPU的调度策略必须考虑这些虚拟机之间的不对等。 常用的VCPU的调度算法有:BVT算法,sEDF算法,credit算法。

BVT(Borrowed VirtualTime)算法:BVT是一种公平性优先的调度算法。该算法将时间分为实际时间和虚拟时间:真实时间为硬件计时器记录的时间;虚拟时间为对真实时间经过某种规则计算后得到的时间值。

该算法用虚拟时间来监控进程的执行时间,每次总是调度具有最早的有效虚拟时间的VCPU。这种调度算法允许这些操作系统“借”一些时间片,就是说:在一定范围内将未来分配给它运行的时间片先“借”过来用一段时间。这种“借”过来的虚拟时间片只能是当前真实的时间片中的某个虚拟时间片,不能借下一个真实时间片中的虚拟时问片。在系统初始化时,每个VCPU将分配一个权值来代表该VCPU能获得的处理器份额。VCPU根据其权值来实现处理器的公平共享。系统用实际虚拟时间和有效虚拟时间来记录VCPU运行状态。其计算方式如下:

每一个VCPU维护一组状态:,其中:Et表示它某时刻t的EVT; At表示它实际的virtual time;Wt表示它可以借的virtual time; warpBackt表示是否允许借virtual time。

当选择下一个要运行的VCPU时,选择Et最小的VCPU,Et按照下式计算:Et=At-(warpBacktWt:0)

若是延迟敏感的VCPU,warpBackt是1,需要从实际的At减去一个Wt值,从而能够获得较小的Et,使得能较早执行。

BVT的优缺点:

BVT调度算法的优点在于可以将物理时间片公平、均匀地分配两次被调度的时间间隔不会超过一个真实的时间片;能够满足I/O密集型和实时应用的低时延要求,能较好地调度某些实时性要求比较高的操作系统;在单CPU和多CPU环境下的调度开销都比较小。

BVT调度算法的缺点:

首先,每当当前虚拟机被加载运行时,它将获得整个CPU。用户不能把某个将某个虚拟机对CPU的使用在某个比例以下。其次,每个虚拟机只能借用分给它的时间片部分,而不会剥夺其他虚拟机的时间片。即当确定了各个虚拟机的时间片分配比例后,这个比例在下次分配之前不会改变。

简单最小时限调度sEDF(simple Earliest Deadline First) 源于EDF(Earliest Deadline First)算法是一种动态调度算法,用于实时操作系统中。

他将所有任务放在优先级队列中,当发生调度事件时 (如任务结束、新任务加入等),从队列中找出时限最短的任务并调度运行。sEDF是一种最小时限调度算法,它为每个VCPU设置一个三元组(s,p,x),其中s,p指的是在p毫秒内,虚拟机至少运行s毫秒,而x指的是如果在p时间片内,还有空余时间的话,是否允许该VCPU占用这些空余的时间片;而每个VCPU都有一个“最迟调度时间”(例如,0-100ms这个时间片内,若VCPU至少运行30ms那么它的最迟运行时间是70ms),sEDF用一个队列管理所有当前周期内还有可运行时间的VCPU,这些VCPU按照时限递增排列;用一个等待队列管理当前周期的运行时间已用完的VCPU,这些VCPU按照下一周期的开始时间递增排列。每次调度时,从可运行队列头取得可以运行的VCPU。如果虚拟机 A还在运行,虚拟机 B的调度时间片已经到来,那么sEDF将选用虚拟机B进行调度。

sEDF的优缺点:

sEDF调度算法是根据任务满足截止期限的紧迫性,来修改任务的优先级,以保证最紧迫的任务能够及时完成。当系统的负载相对较低时,这种算法非常有效;但是当系统负载极端沉重时,这就会使大量的任务发生时间错误,因此很可能使一些进程来不及处理而夭折。在sEDF算法中,一旦VCPU的调度参数被初始化后,就不能根据该VCPU的运行状况进行修改。

sEDF算法同时支持连续工作和断续工作模式,在断续工作模式下可以精确限定某个虚拟机使用的CPU资源比例,即使没有其他虚拟机运行,该虚拟机也只能使用一定的CPU资源。sEDF并不支持全局(多个CPU情况下)的负载均衡。例如存在如下分配:

分配CPU1: VCPU-1-- 80% CPU,分配CPU2: VCPU-2-- 80% CPU,如果 此时有VCPU3,需要30% CPU 空间,那么VCPU3将无法被分配和加载。即使两个CPU的剩余部分相加起来足够VCPU3的使用,但是由于每个CPU的剩余部分都不足,VCPU3只能等待。

每个CPU管理一个本地可运行的VCPU队列,该队列根据VCPU的优先级排序,每个VCPU的优先级可能是over或者under,表示该VCPU当前是否已经透支了它应该分配到的CPU资源。当一个VCPU被放入一个运行队列时,将其插在相同优先级的VCPU后面。 一个VCPU运行时,将消耗它的CPU额度。每隔一段时间,由一个结算线程重新计算每个VCPU消耗了或者获得了多少额度。当额度为负时,则将优先级改为over;直到一段时间以后,额度又积累为整数,则优先级变为under, 每结算一次,则运行队列要重排一次。当一个VCPU的时间片用完或被阻塞时,排在CPU的运行队列头的VCPU 将被调度运行。若此时该CPU的运行队列中没有优先级为under的VCPU,则将从其它CPU的运行队列中寻找一个under的VCPU,也就是说,当一个CPU空闲时,将运行等待其它CPU的VCPU。这一策略保证了虚拟机共享整个物理主机的资源,也保证了在整个物理主机环境内所有CPU的负载均衡,也保证了对系统资源的充分利用:当系统中有可运行的VCPU时,不会有任何一个CPU空闲。

内存虚拟化

内存虚拟化是VMM的重要功能之一。VMM通常采用分块共享的思想来虚拟计算机的物理内存。也就是说,VMM需要将机器的内存分配给各个虚拟机,并维护机器内存和虚拟机所见到的“物理内存\"的映射关系,使得这些内存在虚拟机看来是一段从地址0开始的、连续的物理地址空间。现代计算机通常都具备内存分页保护机制,这给VMM进行内存虚拟化提供了必要的硬件支持,因为VMM能够以页面为单位建立虚拟地址到机器地址的映射关系,并利用页面权限设置实现不同虚拟机间内存的隔离和保护。但是,由于客户操作系统本身也会进行叶式内存管理,虚拟机与传统计算机相比,其内存系统多了一种地址,共包括以下3种地址:

(1)机器地址(machine address) 指真实硬件的机器地址,即地址总线上应该出现的地址信号。

(2)物理地址(physical address) 指经过VMM抽象的、虚拟机所看到的伪物理地址。

(3)虚拟地址(virtual address) 指虚拟机提供给其应用程序使用的线性地址空间。

显然,VMM的内存模块负责完成物理地址到机器地址的映射,将这个映射记为f;虚拟机的内存管理模块要完成虚拟地址到物理地址的映射,将这个映射记为g,则虚拟地址、物理地址和真实地址之间的关系。

虚拟机会把虚拟地址映射到物理地址,而VMM再进一步把物理地址映射到机器地址。在两个不同的虚拟机中的进程,分别有一个页表(page table)进行地址转换。页表将进程的虚拟地址转换为物理地址。为了将物理地址转为最终使用的机器地址,虚拟机管理器维护着从物理地址到机器地址的真正的页表。如图所示。

为了使虚拟机系统具有更好的伸缩性和可扩展性,在充分保证虚拟机访问内存的性能的前提下,提出了理想的VMM应该提供以下一些内存管理功能:

(1)按需取页只有当虚拟机真正需要的时候,VMM才将物理内存分配给它,而不是简单地将固定大小的内存空间划分给虚拟机。按需取页能够提高内存资源的利用率。

(2)虚拟存储 VMM能够利用交换(swap)等技术,给虚拟机提供超过实际机器内存大小的内存空间。虚拟机上的操作系统能够像运行在裸机上一样,透明地使用VMM 提供的整个“物理内存\"。

(3)内存共享 VMM应该允许虚拟机之间只读地共享完全相同的内存区域,从而缓解大量虚拟机并发运行时的内存资源紧缺。实现内存共享的重要基础是内存写时复制机制(copy On write)。

I/O虚拟化

I/O虚拟化往往是VMM设计最复杂的部分。它涉及中断的捕获和分发、I/O地址空间的隔离和转换、大量I/O数据的传递、DMA页面的保护等。I/O的效率对于系统的成败更加至关重要。实现I/O虚拟最简单的方法是:将一台物理主机作为特殊的I/O处理机,它连接所有I/O设备,其它任何接点需要进行I/O操作时都要先与该主机联系,由它完成I/O操作,再将操作的结果用虚拟中断的方法通知请求接点。这种设计的优点在

于实现简单、易于维护,但是其缺点也是显而易见的,即瓶颈问题和单点故障问题。为了提高整个系统的I/O能力,人们当然希望每个接点都具有I/O吞 吐能力:它对于上层的操作系统仍然表现为一个单一的I/O设备,而I/O请求会 被分流到各个不同的结点并行处理,从而大大提高I/O吞吐量。 对于网络设备,可以通过路由技术实现上述功能。而对于存储设备,应该在 实现网络I/O高效分流的基础上,充分利用现在已近非常成熟的分布式存储系统, 结合网络文件系统来实现。由于I/O虚拟化技术目前仍然不够成熟,即使在很多 传统的系统级虚拟化系统中,其效率仍然比较低下。因此,关于多级I/O虚拟化 技术仍然存在广阔的可探索空间。

虚拟化集群

在集群中由一台vCenter主机可以管理多台的vServer主机,而在这些vServer主机上可以运行多台的虚拟机,这些虚拟机可以组成虚拟机池。vCenter通过对虚拟机池的管理间接地实现对集群中物理资源的管理。其中vCenter的重要功能是保证虚拟化的集群中高可用性和负载均衡性的实现。在物理服务器上创建出的虚拟机可以组成虚拟机池,对于多虚拟机来说,一个非常重要的方面是减少用户对动态的和复杂的物理设备的管理 和维护,通过软件和工具实现管理任务。通常将应用程序部署到服务器内部运行的多个虚拟机中。通过一个一致的方式管理运行于大量物理结点之上的虚拟机系统,以便能够形成一个基于服务器合并技术的高性能虚拟计算环境以及高效管理技术。服务器方面,采用虚拟化技术的主要驱动力就是服务器合并,主要是通过在集群中的每一个结点上安装vServer系统,然后就可以在这台物理结点上创建虚拟机,再把这些虚拟机根据具体需求组成任意大小规模的虚拟池来达到服务器合并的目的。这样使得管理人员只需与控制结点进行交互,而集群事实上可以包含很多的处理器或结点。从vCenter的角度来看,通过服务器合并减少管理复杂度,把不同资源整合成具有巨大能力的系统,提高了系统性能。

虚拟化集群总体框架

要把虚拟化技术引入到集群中,主要是通过在集群中的每一个结点上安装 vServer系统,然后就可以在这台物理结点上创建虚拟机,再把这些虚拟机根据具体需求组成任意大小规模的虚拟池来达到服务器合并的目的。这样使得管理人员只需与控制结点进行交互,而集群事实上可以包含很多的处理器或结点。从 vCenter的角度来看,通过服务器合并减少管理复杂度,把不同资源整合成具有巨大能力的系统,提高了系统性能。

一个典型的虚拟化集群包括:一个vCenter、多个vServer和一套共享存储。vServer直接安装在服务器硬件上,vServer将一个物理服务器划分 为可在同一物理服务器上运行的多个安全、隔离的、可移植的虚拟机。集群中的所有的vServer主机通过光通道或者网络连接到共享的存储,这样当一台主机发生故障时,可以将主机上的业务转移到其它主机上,由于使用了共享存储,使转移后的业务的执行不会因为存储设备的关系而受到影响。在集群中,vCenter不是直接对vServer的主机进行管理,而是对运行在vServer上的虚拟机进行管理,这样间接的对vServer进行了管理。vCenter的所有管理操作都是在vCenter Client 的操作界

面上进行。

在对虚拟机进行集群化架构中,主要的功能实现部分由vCenter和vServer两大模块组成。

vCenter

vCenter的主要功能是管理集群中的vServer。一个集群中只有一台主机安装vCenter,这台安装vCenter系统的主机在集群中处于核心管理的位置,管理集群中其它vServer主机。

vCenter具有以下功能:

(1)寻找可用主机:首先vCenter会在集群当中寻找可用的主机资源,即安装有vServer系统并 且与vCenter连接正常主机,这样的主机才能与vCenter正常通信,才能接受 vCenter的控制。

(2)创建硬件池:在vCenter寻找到机器中所有可用主机资源以后,会对这些主机根据需要创建任意数量的硬件池,也就是对这些主机进行划分和组合,硬件池的大小由包含的主机数量而定。

(3)创建虚拟机池:vCenter创建出硬件池以后,可以在硬件池的基础上创建虚拟机池。,虚拟机池是由一定数量的虚拟机组成,这些虚拟机是由vCenter创建出来。没有启动的虚拟机只是一个资源标记,需要为虚拟机划分一定的CPU和内存资源,并且指定一块存储设备,这样虚拟机才能启动和运行。

(4)启动虚拟机:vCenter在启动一台虚拟机的时候,会选择资源占用率最低的主机来运行,这样体现出集群的负载均衡性。负载均衡性将是启动虚拟机和管理虚拟机的重点功能。

启动一个虚拟机可以分为以下的步骤:

(1)寻找可用主机 由vCenter负责在集群中寻找可用主机,在集群中除了vCenter以外的主机 都是安装了vServer,集群中的可用主机是指vCenter能收到vServer心跳包的主 机,能收到vServer的心跳包,表明vServer与vCenter的通信正常,这样vCenter 才能对vServer进行管理和控制。

(2)创建虚拟机 创建虚拟机是为虚拟机起一个虚拟机名,重要的是为虚拟机指定一个 UUID,UUID是一个资源标签,唯一的标识了一个虚拟机,这样可以与集群中的 其它虚拟机区别开来,便于vCenter对集群中的虚拟机管理。

(3)在硬件池中寻找资源占用率最低的主机 启动一台虚拟机的时候并不是在集群中随机的指定一台主机来运行虚拟机, 而是优先选择一台资源占用率最少的主机来运行,这一步骤实现集群当中的负载均衡性。

(4)分配虚拟CPU/内存 预先为虚拟机划分一定的CPU和内存资源,这时候为虚拟机划分的资源只是资源标签,等真正运行虚拟机的时候,会在虚拟机所运行的主机上虚拟出与预先划分好的资源数量相等的硬件资源。

(5)启动 启动虚拟机之前已经为虚拟机指定了CPU/内存资源,也指定了存储设备。 这时可以由vCenter发出启动虚拟机的命令,这个命令会传递给选定的vServer(即资源占用率最低的主机),vServer会通过虚拟机启动一个具有CPU、内存、I/O设备和共享存储设备的虚拟机,除了存储设备,其它的设备都是在硬件物理资源的基础上虚拟出来的。

vServer

vServer的主要功能是划分和管理共享存储。对主机的物理资源(CPU、内 存、I/O)进行虚拟化。vServer同时给vCenter发送心跳包,通知vCenter自己的 通信状态是否正常。

(1)创建存储 存储设备被所有的vServer共享,vServer会根据需求从共享存储中划出一块设备供自己使用,如果虚拟机要在某个vServer上运行,那么虚拟机就会占用该 vServer的存储设备。创建存储是对共享存储设备的组织和划分,vServer利用工具对磁盘设备进行格式化,并在磁盘设备上创建物理卷,逻辑卷组,逻辑卷,创建逻辑卷组是为了对磁盘设备进行合并,这样可以对所有的存储设备统一规划,方便重新分配。

(2)监测资源空闲率 vServer要实时监测自身硬件资源的占用情况,主要是CPU空闲率,内存的空闲率和Swap交换空间的空闲率,这三者的加权值将表明整个主机硬件资源空闲率的高低。每台vServer上的加权值会返回给vCenter,由vCenter找出资源使用率最低的主机。这一功能模块是集群虚拟化架构中实现负载均衡性的基础。

本章小结

虚拟化技术在提高硬件利用率、安全性、可维护性等方面的帮助很大。而利用集群技术,则可以把多台服务器(物理的或者虚拟的)组成一台虚拟服务器,对提高系统性能和可靠性的作用明显。将集群技术和虚拟机技术结合起来应用在对服务器的管理中,虚拟机把一台服务器分成多台,集群又把多台合成一台。这样一分一合,表面上服务器还是那些服务器,实际上已经把各种负载重新优化组合,更合理地分布在各处。从而物理服务器数量不变的情况下,达到了类似于增加服务器的效果并可以实现计算资源利用的最大化。,而且大大提高了灾难恢复速度。

不过虚拟化技术是要在服务器上运行尽可能多的系统和应用,虚拟化 本身会带来系统开销,同时也要消耗部分资源。这个开销主要集中在CPU 资源消耗、内存资源消耗和硬盘存储资源消耗上。所以虚拟化平台不适合 在低配置的机器上运行,高配置的单台机器要比低配置的单台机器更适于 部署虚拟化系统,这算是虚拟机集群化架构的不足之处。另外,虽然虚拟 化技术已经获得了长足发展。但是面向复杂的不同时代的硬件设备,快速 高效的兼容特性仍然难以迅速满足。

第三章 分布式并行计算技术

分布式并行计算概述

云计算技术包括两个似乎对立的技术,这两个技术都是用于对资源进行分配、使用和管理。

一个技术是对资源进行分割,将资源的分配、使用的粒度变细,上一章节介绍的虚拟化集群技术就是这样的技术。 通过引入虚拟主机,将物理主机的能力进行分割。简单地说,虚拟化技术就是对资源进行拆分的技术。

另一个技术是利用多个物理主机的能力完成一个任务。分布式并行计算就是这样的技术。分布式并行计算将任务分解为多个子任务分派给主机

集群中的各个主机,子任务在多个主机上协调并行运行。简单地说,分布式并行计算技术就是对资源进行聚合的技术。

事实上,分布式并行计算才更加体现出云计算的本质。云计算的名称和分布式并行计算、网格计算是一脉相承的。不过,分布式并行计算应该只是并行计算的一种, 从下文的分析可以看出,对于云计算除了分布式并行计算这个主要的并行模式外,还有其他的并行模式。

并行计算PC集群为云计算的诞生奠定了基础。云计算就是在 PC 集群的基础上发展起来的。云计算的机群由遍布全球的PC通过广域网连接而成。

并行计算的实现层次有两个:

单机(单个节点)内部的多个CPU、多个核并行计算,虽然单节点内部的并行计算不是实施云计算的主流,但由于目前多CPU、多核已经成为主机提高性能的一个非常重要的方面。

集群内部节点间的并行计算。对于云计算来说,更加强调的是集群节点间的并行。目前,集群中的节点一般是通过IP网络连接,在带宽足够的前提下,各节点不受地域、空间。所以,云计算中的并行计算在很多时候被称作分布式并行计算。

不过,多CPU、多核是主机的发展趋势,所以在一个集群内,一般2个级别的并行都要求存在,集群内多节点之间并行,节点内部多处理器、多核并行。节点间的并行计算,通常就等同于常说的分布式并行计算。

分布式并行计算和虚拟化成熟的产品不同,并行计算没有成熟的产品,只有相对成熟的工具。并行计算的实现,依赖于开发者和用户对业务的熟悉,对并行工具正确、熟练的使用。

并行应用软件从需求分析到设计再到部署,可以分为3个步骤。 (1)在需求分析阶段,根据业务特点,将任务尽可能地分为可以并行执行的多个任务。这是实现并行计算最基础的、往往也是最有效的阶段。

(2)在设计、编码阶段,采用并行工具进行程序设计。 这个阶段所应用的并行技术是最核心的并行技术,难度最大,技术也不成熟,而且目前大部分技术人员对这个阶段 所应用的技术还没有足够程度的掌握

(3)在应用部署阶段,采用并行部署架构和工具部署应用。这个阶段就是通过部署,使应用所占用的设备能够实现负载均衡。负载均衡本质上也属于并行计算。 常用的方法为采用负载均衡设备,如F5交换机、ESB等。 这个阶段所涉及的技术比较成熟,已为业界广泛采用。

并行计算编程模型一直是并行计算研究领域中的重点内容,它和并行计算机体系结构紧密相关。共享存储体系结构下的并行编程模型主要是共享变量编程模型,它具有单地址空间、编程容易、可移植性差等特点。分布式存储体系结构下的并行编程模型主要有消息传递编程模型和分布式共享编程模型两种。消息传递编程模型的特点是多地址空间、编程困难、可移植性好;分布式共享编程模型 是指有硬件或软件的支持,在分布式体系结构下实现的具有共享变量编程模型特点的编程模型。并行计算编程模型一般包括两类:一类是在原有串行 编程语言基础上,引入并行控制机制,提供并行 API、运行库或者并行编译指令,这类模型包括 OpenMP、MPI 以及 MapReduce; 另一类则是并行编程语言,其语言本身就是基于并行算法的,相对影响比较大的主要有Erlang。前面说过,并行计算的

实现有两个层次,一个是集群节点间的并行,另一个节点内的并行。 OpenMP 一般用于实现节点内并行,MPI 一般用于实现节点间的并行;而 Erlang 既可以实现节点间的并行,也可以实现节点内的并行。。本章重点分析OpenMP、MPI 和 Erlang 这 3 个并行计算编程技术。

OpenMP

目前从x86到小型机,多核是CPU的主流,对于单线程的程序,多核的处理器并没有办法提升它的处理效能;对于多线程(multi thread)的程序,就可以通过不同的核同时计算来达到提高性能的目的。当然,多线程程序的执行性能依赖于对任务的分解。多线程程序的编写、维护,比单线程的程序要复杂不少。一般而言,采用了多线程编程技术,只要主机是多处理器、多核或者拥有同时执行多个线程的能力,那么多线程程序的执行性能还是远远高于单线程的。传统的多线程程序编写一般有两种方法:

(1)通过调用操作系统功能、开发工具自己的多线程控制语句或控制函数来实现;

(2)采用 POSIX 标准和方法, 利用 POSIX 的线程控制库函数来实现。

这些方法都是通过主线程去产生多个子线程, 由主线程把工作拆开,分给各个子线程去运算,最后再由主线程回收、整合结果。使用这两种方法存在以下问题:

(1)程序的开发复杂性较单线程程序增加很多。 (2)第一种方法的移植性还存在问题。

(3)若要具有好的扩展性,则更加复杂。多线程应该不只是创建固定数量的线程,而应该随着CPU核数的增加而增加线程。 如果用上述方法,虽然可以实现良好的扩展性,但控制十分复杂。

(4)多线程对多核处理器的负载均衡调度需要开发者自己实现,十分复杂。

使用OpenMP则解决了上述问题。OpenMP是多线程的一种编程方法,它的并行粒度是线程级别的。它的适用范围是单机内的并行计算,可以很好地利用单机内多CPU 或者多核。OpenMP 就是一套API和运行库,可以简化单机内的多线程开发,让设计人员和开发人员的主要精力集中到对任务的理解和拆分上,而具体的细节交给OpenMP去完成,用OpenMP的编程效率要远远高于使用一般函数库或者操作系统自带函数库的多线程编程,也大大优于POSIX标准和方法。OpenMP是作为共享存储标准而问世的。它是为在多处理机上编写并行程序而设计的一个应用编程接口,包括一套编译指导语句和一个用来支持它的函数库。OpenMP能通过伪指令,很简单地将程序多线程化。最简单的情形,甚至可以只加一行指导编译程序的编译伪指令就可以将循环内的语句并行处理了。OpenMP起源于

C/C++,但目前已经有OpenMP的Java开发包,使其可以用于Java编程。

MPI

OpenMP虽然很优秀,但只是单机内的并行计算技术。无论是并行计算还是云计算,其并行计算的主流是主机之间的并行而并非单机内的并行。因此MPI (message passing interface)才是并行计算的代表性技术。1994年5月MPI标准诞生,该标准提出了一种基于消息传递的函数

接口描述。 目前,MPI 已发展到 版,成为高性能计算的一种公认标准。 MPI 本身并不是一个具体的实现,而只是一种标准描述。MPI最为着名且被广泛使用的一个具体实现是由美国Argoone 国家实验室开发小组完成 的MPICH,MPICH是一个免费软件,它提供对Fortran和C语言等的绑定支持,以函数库的形式提供给开发者使用。采用MPI在程序设计上有较大的自由度,甚至可以用它实现Hadoop中的MapReduce功能。消息传递方式是广泛应用于并行机的一种模式。特别是分布存储并行机。10 多年来,这种模式在重要的计算应用中已取得了实质进步。在设计MPI时,目标不是选择采用现存消息传递系统中的某一个,而是充分利用这些系统的最抽象特点。 建立消息传递标准的主要优点是可移植性和易于使用。以低级消息传递程序为基础的较高级和(或)抽象程序所构成的分布存储通信环境中,标准化的效益特别明显。消息传递标准的定义能提供给生产商清晰定义的程序库,以便他们能有效地实现这些库或在某些情况下为库程序提供硬件支持,因此加强了可扩展性。 简单地说,MPI是为编写消息传递程序而开发的广泛使用的标准。像这个接口一样,应为消息传递建立一个实际的、可移植的、有效的和灵活的标准。 全部目标如下:

(1)设计一个应用编程接口 (不必为编译器或系统实 现

库); · 允许有效的通信, 避免存储器到存储器的拷贝,而 允许计算和通信的重叠,尽可能给通信协同处理器 卸载;

(2)对于接口,允许方便的 C 语言和 Fortran 77 联接;

(3)设定一个可靠的通信接口, 用户不必处理通信失 败,这些失败由基本的通信子系统处理;

(4)定义一个接口,提供更大灵活性的扩展;

(5)定义一个接口,它能在基本的通信和系统软件无重 大改变时,在许多生产商的平台上实现,接口的语 义是于语言的;

(6)接口应设计成允许线索-安全(thread-safety)。 MPI 的一个非常大的优势是大范围的可移植性,在标 准 Unix 处理器间通信协议的上层实现的 MPI 将给工作 站群机系统和不同种类的工作站网络提供可移植性。 这个标准包括点对点通信、集合操作、进程组、通信上 下文、进程拓扑结构、与 Fortran 77 和 C 语言绑定、环境管 理和查询、描述接口。

Erlang

Erlang首先是一种类似于函数的编程语言,这种语言天生就是为并行计算而设计的。本来这种比Java还古老的语言,一直无人问津,但是主机的多处理器、多核的发展趋势,特别是云计算的兴起,给Erlang又带来了生机。业界对于并行计算的探索一直没有停止,尤其是云计算的发展促进了并行计算各种方法、模式的发展,如Java Concurrency库、Intel 推出的 Threading Building Blocks库、微软为Robotics Studio提供的CCR库等。 但这些措施只是为先天串行的程序设计语言提供了后天的并行能力,属于亡羊补牢。而Erlang 则是先天并行的,在单台主机上利用多处理器和多核的优势,Erlang将传统编程方法远远甩在后面。据说使用 Erlang 编写的Yaws Web服务器,其并发性能是使用C编程的apache 的15倍!apache在并发4 000连接时就已经崩溃,而Yaws Web服务器可实现并发8 万连接。Erlang 不仅是程序设计语言,还是包括一

个类似于Java的虚拟机在内的一个完整的平台。通过虚拟机,Erlang 于硬件平台和操作系统,在这个平台上实现了网络通信、内存管理、进程调度、并发机制和分布式计算等功能。 Erlang 最初是为通信应用设计的,因此非常适合于构建分布式、实时软并行计算系统。 Erlang 具有以下特点:

(1)并发性 Erlang 的轻量级进程可以支持极高的并发性,而且在高并发的情况下内存使用相当少。 Erlang 的并发性并不会受到宿主操作系统并发性的。

(2)分布式 最开始 Erlang 的设计目标就是实现分布式环境,Erlang的一个虚拟机就是Erlang 网络上的一个节点。一个Erlang 节点可以在另一个Erlang节点上创建自己的并发进程,而子进程所在的节点可能是运行其他操作系统的服务器。 不同节点之间可以进行极为高效而又精确的通信, 就像这些通信运行在同一个节点一样。

(3)健壮性 Erlang 内部建设有多种错误检测原语,可以通过这些 原语来架设高容错性的系统。在分布式状态下,可以把系统配置成具有 Fail-over 功能的分布式系统。当有其他节点出错的时候,系统会把它的运行场景自动快速地切换到备份节点上。Erlang支持9个9 级别的故障率,一年只有几分钟的故障时间。

(4)软实时 它可以提供毫秒级别的响应。

(5)热代码升级 对于不能中断运行的系统,Erlang 允许程序代码在 运行系统中被修改。旧代码被逐步淘汰后能被新代码替换。在此过渡期间,新旧代码是共存的。这也使得安装bug补丁在运行系统上升级而不干扰系统操作成为了可能。

(6)递增式代码装载 用户能够控制代码被装载的细节。在嵌入式系统中,所有代码通常是在启动时就被完全装载。在开发系统中,代码是按需装载的,甚至在系统运行时被装载的。如果测试到了未覆盖的bug,那么需替换有 bug 的代码。

(7)外部接口 Erlang 进程与外部世界之间的通信使用和在Erlang 进程之间通信相同的消息传送机制。这种机制被用于和操作系统通信、与其他语言编写的程序交互。

使用Erlang编写出的应用程序运行时通常由成千上万个轻量级进程组成,并通过消息传递相互通信。进程间上下文切换对于Erlang 来说仅仅只是一两个环节,比起 C程序的线程切换要高效得多了。

使用Erlang来编写分布式应用要简单得多,因为它的分布式机制是透明的,对于程序来说并不知道自己是在分布式运行。Erlang运行时的环境是一个虚拟机,有点像Java 虚拟机,这样代码一经编译,同样可以随处运行。它运行时的系 统甚至允许代码在不被中断的情况下更新。另外,如果需要更高效的话,字节代码也可以编译成本地代码运行。Erlang 能够创建和管理大量的进程(不是操作系统级别的)。那些进程在不同的操作系统上有同样的行为,可以被垃圾回收,对运行地点透明,不会破坏其他进程的运行。 任意两个进程间完全,不共享任何状态,一切交流通过消息来传递,当然也就无需上锁。 这样的设计思想造就了适合解决如下问题的Erlang。

(1)系统高度并发 Erlang 具有优秀的并行性能,特别适合高度并发操作。

(2)实时处理 在并行情况下,Erlang 响应迅速,性能优良。 (3)计算高度分布 Erlang 适合集群节点间的并行,也就是基于网络的分 布式并行。

(4)系统要求高度可靠 每年的脱机时间以分钟算,甚至永不宕机。 (5)可靠性高 Erlang 内容的检测原语, 极大地提高了系统的容错 性,进而提高了系统的可靠性。

(6)系统要求持续在线更新对于经常需要更新、升级的系统,Erlang 能够在线更新,无需中断系统运行,新旧代码可以同时运行。

本章小结

并行计算技术是云计算技术的骨干。对于大型应用系统实施云计算的主要内容就是实施并行计算。并行计算技术除了目前炙手可热的

MapReduce以外,值得推荐的还有OpenMP、MPI和 Erlang。这3个技术 主要应用于并行程序的开发和其他并行策略(如 SOA)一起,用于从根本上实现应用的并行化,以提高应用运行效率和可靠性,降低采购和运营 成本。

第四章 分布式文件系统

文件系统

文件系统是操作系统的一个重要组成部分,通过对操作系统所管理的存储空间的抽象,向用户提供统一的、对象化的访问接口,屏蔽对物理设备的直接操作和资源管理。

根据计算环境和所提供功能的不同,文件系统可划分为四个层次,从低到高依次是:(1)单处理器单用户的本地文件系统(如DOS的文件系统);(2)多处理器单用户的本地文件系统(如OS/2的文件系统);(3)多处理器多用户的本地文件系统(如Unix的本地文件系统);(4)多处理器多用户的分布式文件系统(如Lustre文件系统)。

分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。上述按照层次的分类中,高层次的文件系统都是以低层次的文件系统为基础,实现了更高级的功能。比如(2)需要比(1)多考虑并发控制

(Concurrency Control),因为可能存在多个处理器同时访问文件 系统的情况;(3) 需要比(2) 多考虑数据安全访问方面的设计,因为多个用户存在于同一个 系统中,保证数据的授权访问是一个关键;(4) 需要比(3) 多考虑分布式体系结构带来的诸多问题,比如同步访问、一致性等。随着层次的提高,文件系统在设计和实现方面的难度也会成倍的提高。 计算机技术在飞速的发展,文件系统面临的新的挑战也随之而来:如何管理更多的设备,提供更好的性能,更加有效地降低管理成本等。各种新的存储技术和分布式文件技术都被不断地设计和实现出来,以满足用户日益增长的需求。

基本的分布式文件系统:网络文件系统(NFS)、虚拟文件系统(VFS)、Andrew文件系统(AFS)

体系结构

分布式文件系统的体系结构在多年来经历了多次变化。这其中有软硬件技术发展的作用,也有应用需求变化的因素。下面我们根据不同的标准分析一下多年来分布式文件系统设计和实现过的主要的体系结构。

数据访问方式

在传统的分布式文件系统中,所有的数据和元数据都存放在一起,通过服务器提供。这种模式一般称之为带内模式(in-band mode)。

随着客户端数目的增加,服务器就会成为整个系统的瓶颈。因为系统所有的数据传输和元数据处理都要通过服务器,不仅单个服务器的处理能力有限,存储能力受到磁盘容量的,吞吐能力也受到磁盘I/O和网络I/O的。 于是一种新的分布式文件系统的结构出现了,那就是利用SAN技术,将应用服务器直接和存储设备相连接,大大提高数据的传输能力,减少数据传输的延时。在这样的结构里,所有的应用服务器都可以直接访问存储在 SAN 中的数据,而只有关于文件信息的元数据才经过 元数据服务器处理提供,减少了数据传输的中间环节,提高了传输效率,减轻了元数据服务 器的负载。每个元数据服务器可以向更多的应用服务器提供文件系统元数据服务。这种模式一般称之为带外模式(out-of-band mode)。

区分带内模式和带外模式的主要依据是关于文件系统元数据操作的控制信息是否和文件数据一起,都通过服务器转发传送。前者需要服务器转发,后者直接访问。

系统服务器的结构

分布式文件系统结构上有两种大的方式:一种是专用服务器结构(Dedicated Server), 另外一种是无服务器结构(Serverless)。

Serverless 方式指系统中没有专用的系统服务器,所有的用户服务器都被当作系统服务器来使用。基于这种系统结构,所有的用户服务器都既是存储系统的系统服务器,又是存储系统的用户服务器。此时,一个用户服务器不仅要处理本系统的数据需求,而且还要服务于其它系统的数据请求。这种系统结构可以提供很高的性能上的可扩展性,但系统非常复杂,而且造成系统的管理困难。 此外,由于有多个系统服务器数据的一致性变为了一个重要的问题。例如,为了解决已知性问题,xFS 使用哈希方式来寻找文件所在的服务器,而CFS 则使用对于每个文件实行一主多从及令牌的办法。

Dedicated Server 方式采取专用服务器(群)。主要有以下几种形式: 单个系统服务器,由于只有一个系统服务器,数据的一致性问题得到很大的缓解,但其可扩展性受到很大。多个系统服务器一般具有较好的可扩展性,但由于多个系统服务器的原因,数据一致性很难处理。在SFS 中,一个文件只能由一个系统服务器来服务。文件到其相应的服务器的映射 是由一个静态 Hash 函数完成的。由于一个文件只能映射到一个服务器,文件访问的同步及数据的一致性都可以得到较好地解决,而静态映射难以达到好的负载平衡效果。 在 Lustre、CXFS 的实现中,在某一时刻只有一个活动的提供元数据服务的文件系统服务器。在Storage Tank 中,管理员根据文件目录结构将整个名字空间划分成多个文件集合(file set)。在某个特定的时刻,任何一个文件集合只能被映射到元数据服务

器机群中的 某一个,由它提供元数据管理服务。

分布式文件系统关键技术

分布式文件系统向用户提供和本地文件系统相同的访问接口,却可以让用户访问和管理远程的数据。分布式文件系统中的应用可能来自很多不同的节点,它所管理的数据也可能存储在不同的节点上,同时系统中可能存在多个提供元数据操作的元数据服务器,这些都视具体实现而定。分布式文件系统中有很多设计和实现与本地文件系统存在巨大的差别,也是巨 大的挑战,这主要是数据、管理的物理分布和逻辑分布造成的。下面主要讲述分布式文件系 统设计和实现中所要面对和解决的主要问题。

结论

云计算旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的完美系统,并借助SaaS、PaaS、IaaS等先进的商业模式把这强大的计算能力分布到终端用户手中。云计算的一个核心理念就是通过不断提高“云”的处理能力,进而减少用户终端的处理负担,最终使用户终端简化成一个单纯的输入输出设备,并能按需享受“云”的强大计算处理能力!

云计算的优点是可以节省企业大量的人力物力不用自己建设数据中心。就像电力设施从个人取暖到集中供暖一样节省了大量的金钱,人力物力。云计算提供了最可靠、最安全的数据存储中心,用户不用担心数据丢失、病毒入侵等麻烦;云计算对用户端的设备要求最低,使用起来也最方便;云计算可以轻松实现不同设备间的数据与应用共享;云计算为我们使用网络提供了几乎无限多的可能。

缺点:

(1)前期投资比较大。

(2)安全,因为云计算计算能力和数据都在云里,如何保证客户数据的安全就是比较重要的了。安全有两个方面,一个是数据不会丢失,这个一般服务商都会有备份能力解决,但是也是偶尔会发生丢失的;另外一个就是你的数据不会泄漏,当然服务商都会说数据放在他们那里是安全的,但是都是他们自说自的,没有一个第三方的权威机构统一认证和评判。

(3)网络延迟或者中断。云计算一般都是远程通过网络访问的,虽然现在网速提高很快,但是和局域网相比,速度还是有所延迟的,而如果一旦网络终断,服务也就无法访问,例如前几年海底电缆断了,那么你根本无法访问到国外的云计算服务了。

云计算环境下,软件技术、架构将发生显着变化。首先,所开发的软件必须与云相适应,能够与虚拟化为核心的云平台有机结合,适应运算能力、存储能力的动态变化;二是要能够满足大量用户的使用,包括数据存储结构、处理能力;三是要互联网化,基于互联网提供软件的应用;四是安全性要求更高,可以抗攻击,并能保护私有信息;五是可工作于移动终端、手机、网络计算机等各种环境。云计算环境下,软件开发的环境、工作模式也将发生变化。虽然,传统的软件工程理论不会发生根本性的变革,但基于云平台的开发工具、开发环境、开发平台将为敏捷开发、项目组内协同、异地开发等带来便利。软件开发项目组内可以利用云平台,实

现在线开发,并通过云实现知识积累、软件复用。云计算环境下,软件产品的最终表现形式更为丰富多样。

总之,云计算已经进入了快速发展的阶段。在电信、能源、电力、医药、电子政务等领域得到了初步的应用,一批互联网企业积极创新应用,国内企业的服务器存储设备、云计算管理平台等软硬件产品在国内外市场逐步推广,我国在国际标准组织和开源社区的地位与作用越来越重要。

参考文献

1 郑文武,李先绪,黄执勤 《云计算中的并行计算技术分析》 2 Sanjay Madria , Kalpdrum Passi , Sourav Bhowmick. AnXML schemaintegration and query mechanism system[J ].Data & Knowledge Engineering , 2008(65) :266 – 303

3 Boag S ,Chamberlin D ,Fernandez M F ,et al. XQuery 1. 0 :an XML query language , W3C working draft [ EB/ OL ].(2002 - 11 - 15) [2009 - 12 - 19 ].

4 Xuxian Jiang,Dongyan Xu,VIOLIN:Virtual Intemetworking on Overlay Infrastructure,Technical Report]Purdue University,IN 47907,2003.

5 Jeremy Sugerman,Ganesh Venkitachalam and Beng—Hong Lim.V'mualizing I/O Device on VMware Workstation’S Hosted V'trmal Machine Monitor.Proceeding ofthe 2001 US懈Annual Technical Conference,June 2001.

6 Mahadev Satyanarayanan,Benjamin Gilbert,Matt Toups,et a1.Pervasive Personal Computing in an Internet Suspend/Resume System.IEEE Interact Computing。11(2):March/April 2007.

7 曾龙海 ,张博锋 ,张丽华 ,何冰 ,吴耿锋 ,徐炜民 《基于云计算平台的虚拟集群构建技术研究》

8 王鹏涛 《虚拟化技术在集群中的应用》 硕士学位论文 2010年 9 房秉毅 张云勇 《云计算网络虚拟化技术》 10 黄华 杨德志 张建刚 《分布式文件系统 》 11 苟凌怡,熊光楞等。支持虚拟样机的协同仿真平台关键技术研究,系统仿 真学报,March.2004,V01.14 No.3:348.355.

12 Mahadev Satyanarayanan,Benjamin Gilbert,Matt Toups,et a1.Pervasive Personal Computing in an Internet

Suspend/Resume System.IEEE Interact Computing。11(2):March/April 2007.

13 and network enabled cloud[S]. ITU-T Fourth meeting of Focus Group on Cloud Computing.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- kqyc.cn 版权所有 赣ICP备2024042808号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务