虚拟化技术学院:数学与计算机科学学院专业:计算机科学与技术年级:2009级姓名:母兴春赵琼指导教师:张艳完成时间:2012年6月3日目录1绪论1.1虚拟化技术的概述虚拟化(Virtualization)是一个广义的术语,简单来说,是指计算机相关模块在虚拟的基础上而不是真实的独立的物理硬件基础上运行,这种把有限的固定的资源根据不同需求进行重新规划以达到最大利用率的思路,从而实现简化管理,优化资源等目的的解决方案,就叫做虚拟化技术。以下是一些业界标准组织对虚拟化的定义。“虚拟化是以某种用户和应用程序都可以很容易从中获益的方式来表示计算机资源的过程,而不是根据这些资源的实现、地理位置或物理包装的专有方式来表示它们。换句话说,它为数据、计算能力、存储资源以及其他资源提供了一个逻辑视图,而不是物理视图。”——JonathanEunice,IlluminataInc。“虚拟化是表示计算机资源的逻辑组(或子集)的过程,这样就可以用从原始配置中获益的方式访问它们。这种资源的新虚拟视图并不受实现、地理位置或底层资源的物理配置的限制。”——Wikipedia“虚拟化:对一组类似资源提供一个通用的抽象接口集,从而隐藏属性和操作之间的差异,并允许通过一种通用的方式来查看并维护资源。”——OpenGridServicesArchitectureGlossaryofTerms虚拟化概念并不是新概念。早在20世纪70年代,大型计算机就一直在同时运行多个操作系统实例,每个实例也彼此独立。不过直到最近,软硬件方面的进步才使得虚拟化技术逐渐出现在基于行业标准的中低端服务器上。然而,虚拟化技术的内涵远远不止于虚拟服务器。目前,我们已经有了网络虚拟化、CPU虚拟化、和存储虚拟化等技术。如果我们在一个更广泛的环境中或从更高级的抽象来思考虚拟化技术,虚拟化技术就变成了一个非常强大的概念,可以为最终用户、应用程序和企业提供很多帮助。1.2虚拟化技术产生的背景对于高性能计算机来说,应用的多样性和复杂性,决定了高效能体系结构的多层次、多粒度的异构发展。在实际应用中,大规模,多层次的异构化,在满足需求的同时,带来大量的问题:开发的难度、软硬件的支持、系统的可靠性、应用的可移植性、如何高效的管理等,成为亟待解决的技术难题。虚拟计划技术,不仅可以实现异构资源的高效整合,和应用开发环境的构建,提高计算效率和负载迁移,而且有助于提高系统的可靠性、容错性和安全性,在高性能计算机体系中的应用中有着广阔的发展前景。当然,虚拟化技术也会带来相应的问题,额外性能开销、VMM的高效协同和管理,以及新的编程模型等,但相对于成功应用后综合效率损失小于1%的结果来说,这些问题都是可以逐步解决的。1.3虚拟化技术的研究现状虚拟化是未来的一个发展趋势,市场前景广阔,现在市场上虚拟化产品很多,最主要的是vmware、微软、citrix等;虚拟化分为很多种:服务器虚拟化、桌面虚拟化、应用程序虚拟化等,各自有各自的优势,适合不同客户的需求;2虚拟化技术的特点虚拟化技术包括硬件仿真、操作系统级虚拟化、完全虚拟化和半虚拟化。每种虚拟化都有其对应的方案和技术,企业应用的不同层面也存在着对不同虚拟化技术的需求。表各类虚拟化技术特点类型特点硬件仿真最复杂的虚拟化实现技术就是硬件仿真,在这种方法中,可以在宿主系统上创建一个硬件VM来仿真所想要的硬件。使用硬件仿真的主要问题是速度会非常慢,因为每条指令都必须在底层硬件上进行仿真。操作系统级虚拟化在操作系统本身之上实现服务器的虚拟化。这种方法支持单个操作系统,并可以将独立的服务器相互简单地隔离开来。完全虚拟化使用一个虚拟机,在客户操作系统和原始硬件之间进行协调。最大优点是操作系统无需任何修改就可以直接运行,其限制是操作系统必须要支持底层硬件。半虚拟化使用了一个hypervisor来实现对底层硬件的共享访问,还将与虚拟化有关的代码集成到了操作系统本身中,其缺点是缺点是必须修改客户操作系统。3虚拟化技术的优缺点3.1虚拟化的优势和传统IT资源分配的应用方式相比,虚拟化有以下优势:虚拟化技术可以大大提高资源的利用率为了达到资源的最大利用,虚拟化把一个硬件虚拟成多个硬件,这里的一个硬件指的不是一个个体,而是有多个个体组成的一组资源,例如可以将多个硬盘组成阵列,将多个硬盘视为计算机的硬盘部分。用户将许多资源组成一个庞大的、计算能力十分巨大的“巨型计算机”,再将这个巨型计算机虚拟成多个独立的系统,这些系统相互独立,但共享资源,这就是虚拟化的精髓。传统的IT企业为每一项业务应用部署一台单独的服务器,服务器的规模通常是针对峰值配置,服务器规模(处理能力)远远大于服务器的平均负载,服务器在大部分时间处于空闲状态,资源得不到最大利用。虚拟化技术能够动态调用空闲资源,减小服务器规模,提高资源利用率。提供相互隔离、安全、高效的应用执行环境用户可以在一台计算机上模拟多个系统,多个不同的操作系统,虚拟系统下的各个子系统相互独立,即使一个子系统遭受攻击而崩溃,也不会对其他系统造成影响,而且,在使用备份机制后,子系统可以被快速的恢复。同时,应用执行环境简单易行,大大提高了工作效率,降低总体投资成本。采用虚拟化技术后,虚拟化系统能够方便的管理和升级资源传统的IT服务器资源是硬件相对独立的个体,对每一个资源都要进行相应的维护和升级,会耗费企业大量的人力和物力,虚拟化系统将资源整合,在管理上十分方便,在升级时只需添加动作,避开传统企业进行容量规划、定制服务器、安装硬件等工作,提高了工作效率。3.2虚拟化的挑战虽然目前虚拟化技术已经得到了较大范围的应用,但现在的虚拟化技术仍然还是一个新型的技术,距离成熟的技术它还有一些问题需要解决。我个人认为,以下两点是虚拟化技术下来发展中首先需要解决的问题:硬件使用效率,如何在多客户机模式下最大限度的发挥硬件的能力是第一个问题。安全可靠性,安全永远是最重要的,而可靠性同等重要。4虚拟化未来发展趋势从IT市场角度看虚拟化发展趋势:在2009年,国际知名信息技术研究和咨询公司Gartner一份有关虚拟化趋势报告指出,在未来五年内,将有60%的服务器部属虚拟化解决方案。同时Gartner也认为在2009年,服务器虚拟化和桌面虚拟化销售额将增长43%,实现产值27亿美元,比2008年19亿美元的市场销售总额有一定提升。而且,Gartner市场研究机构总监戴利表示目前虚拟化仍处于起步发展阶段,一切均是刚刚开始。戴利认为,到2013年将有60%以上的服务器采用虚拟化技术。届时通过对物理服务器的整合,可以将物理服务器数量缩减到原先的10%,而经过整合后的服务器平均配比将为10至11个虚拟机。戴利同时还表示在2013年,桌面虚拟化应用率将达到10%—15%。在服务器虚拟化基础架构方面,2009年也将有望达到11亿美元的销售业绩,比9.17亿美元的2008年销售额增长22.5%。桌面虚拟化市场的销售额在2009年将会达到2.986亿美元,是2008年市场销售总额的3倍。在虚拟化管理软件方面,2009年的销售额也将增长至13亿美元,相比2008年,销售增长率高达42%。从技术角度来看虚拟化趋势:今天的虚拟化可以用来进行服务器,存储,网络,桌面应用程序的整合,提高系统资源利用率,提高管理灵活性,节省服务器空间和电耗成本,但下一步的发展趋势会是什么?答案是:云计算。云计算是一种新兴的共享基础架构的方法,通常为一些大型服务器集群,包括计算服务器、存储服务器、宽带资源(硬件、平台、软件)等等。提供资源的网络被称为“云”。它可以将巨大的系统池连接在一起以提供各种IT服务。云计算将所有的计算资源集中起来,并由软件实现自动管理,无需人为参与。这使得企业无需为繁琐的细节而烦恼,能够更加专注于自己的业务,有利于创新。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取。这种特性经常被比喻为像水电一样使用硬件资源,按需购买和使用。云计算(CloudComputing)是分布式处理(DistributedComputing)、并行处理(ParallelComputing)和网格计算(GridComputing)的发展,或者说是这些计算机科学概念的商业实现。云计算的特征是:数据在云端:不怕丢失,不必备份,可以任意点的恢复;软件在云端:不必下载自动升级;无所不在的计算:在任何时间,任意地点,任何设备登录后就可以进行计算服务;无限强大的计算:具有无限空间的,无限速度。云计算按照服务类型大致可以分为三类:将基础设施作为服务IaaS、将平台作为服务PaaS和将软件作为服务SaaSIaaS将硬件设备等基础资源封装成服务供用户使用,如Amazon云计算AWS(AmazonWebServices)的弹性计算云EC2和简单存储服务S3。在IaaS环境中,用户相当于在使用裸机和磁盘,既可以让它运行Windows,也可以让它运行Linux,因而几乎可以做任何想做的事情,但用户必须考虑如何才能让多台机器协同工作起来。AWS提供了在节点之间互通消息的接口简单队列服务SQS(SimpleQueueService)。IaaS最大优势在于它允许用户动态申请或释放节点,按使用量计费。运行IaaS的服务器规模达到几十万台之多,用户因而可以认为能够申请的资源几乎是无限的。而IaaS是由公众共享的,因而具有更高的资源使用效率。PaaS对资源的抽象层次更进一层,它提供用户应用程序的运行环境,典型的如GoogleAppEngine。微软的云计算操作系统MicrosoftWindowsAzure也可大致归入这一类。PaaS自身负责资源的动态扩展和容错管理,用户应用程序不必过多考虑节点间的配合问题。但与此同时,用户的自主权降低,必须使用特定的编程环境并遵照特定的编程模型。这有点像在高性能集群计算机里进行MPI编程,只适用于解决某些特定的计算问题。例如,GoogleAppEngine只允许使用Python和Java语言、基于称作Django的Web应用框架、调用GoogleAppEngineSDK来开发在线应用服务。SaaS的针对性更强,它将某些特定应用软件功能封装成服务,如Salesforce公司提供的在线客户关系管理CRM(ClientRelationshipManagement)服务。SaaS既不像PaaS一样提供计算或存储资源类型的服务,也不像IaaS一样提供运行用户自定义应用程序的环境,它只提供某些专门用途的服务供应用调用。云计算从可见性来区分可以分为三种形式:公共云(Publiccloud),混合云(Hybridcloud),私有云(Privatecloud)。1.)公共云公共云的实现形式一般是在互联网上的基础上,多个用户通过第三方提供商提供的web服务来获得IT服务。用户本身无需构建云计算平台。2.)私有云私有云是为某个特定组织单独使用而构建的,因而提供对数据、安全性和服务质量的最有效控制,一般来说,该组织拥有基础设施,并可以控制在此基础设施上部署应用程序的方式。随着服务器、存储、网络、应用软件等资源都虚拟之后,企业的整个数据中心就变成了可以动态调配的资源池,并进一步形成了私有云;3.)混合云混合云是为公共云和私有云的混合体,某些关键业务和服务使用私有云技术,某些其他非关键和对安全性要求不好的业务和IT服务使用公共云,两种云的混合实现的方式称为混合云。一般来说,在企业实现了私有云之后,再后来企业私有云和外部公共云联合起来,形成更大的资源池,分享给外面更多的人使用。最终可以通过种种终端设备随时随地接入云,根据使用量来付费。从业界趋势来看,虚拟化将从三个方面继续扩展:1.基础架构服务(称为InfrastructureServices),可以将服务器、存储设备和网络无缝聚合为按需使用云资源池,并将其分配给最需要它们的应用程序。2.应用程序服务(称为ApplicationServices),可以充分确保所有应用程序的可用性、安全性和扩展性保持在合适的级别,无论这些应用程序是针对哪些操作系统、开发