虚拟化技术介绍及分类
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1 虚拟化技术发展史
虽然虚拟化技术在最近几年才开始大面积推广和应用,但是如果从其诞生时间来看,可以说它的历史源远流长。
1959年,克里斯托弗(Christopher Strachey)发表了一篇学术报告,名为"大型高速计算机中的时间共享"(Time Sharing in Large Fast Computers),他在文中提出了虚拟化的基本概念,这篇文章也被认为是虚拟化技术的最早论述。
可以说虚拟化作为一个概念被正式提出即是从此时开始。
最早在商业系统上实现虚拟化的是IBM公司在1965年发布的IBM7044。
它允许用户在一台主机上运行多个操作系统,让用户尽可能充分地利用昂贵的大型机资源。
随后虚拟化技术一直只在大型机上应用,而在PC服务器的x86平台上仍然进展缓慢。
不过也可以理解,以当时x86平台的处理能力,应付一两个应用都有些捉襟见肘,还怎么可能将资源分给更多的虚拟应用呢?
随着x86平台处理能力与日俱增,1999年,VMware在X86平台上推出了可以流畅运行的商业虚拟化软件。
从此虚拟化技术终于走下大型机的神坛,来到PC服务器的世界之中。
在随后的时间里,虚拟化技术在x86平台上得到了突飞猛进的发展。
尤其是CPU进入多核时代之后,PC具有了前所未有的强大处理能力,终于到了我们考虑如何有效利用这些资源的时候了。
从2006年到现在,可以说是进入了虚拟化技术的爆发期。
诸多厂商如雨后春笋般涌现,而微软这样的主流操作系统厂商也终于按捺不住,从2003年收购Connectix获得虚拟化技术并很快推出Virtual Server免费版到2008年年底推出Hyper-V,可以说每一步都是势头逼人,就连已经成为业内老大的VMware也不得不一再出招应对。
纵观虚拟化技术的发展历史,可以看到它始终如一的目标就是实现对IT资源的充分利用。
1.2 虚拟化技术概念及分类
实际上,我们通常所说的虚拟化是指服务器虚拟化技术。
而除此之外,还有网络虚拟化和存储虚拟化技术。
其中网络虚拟化应用于企业核心和边缘路由。
利用交换机中的虚拟路由特性,用户可以将企业划分为使用不同规则和控制的多个子网,而不必再为此购买和安装新的机架或设备。
与传统技术相比,它具有更少的运营费用和更低的复杂性。
存储虚拟化则是将企业中的存储资源整合在一起,通过一台逻辑存储设备供用户访问。
它主要分为硬件和软件两种方式来实现。
目前大多数存储厂商都提供了这种技术。
微软的分布式文件系统(DFS)从某种意义上来说也是存储虚拟化的一种实现方式。
本书着重讨论的则是服务器虚拟化技术。
从图1-1中可以看到,虚拟机运行在虚拟化层(VMware Virtualization Layer)之上,拥有自己独立的虚拟化硬件资源。
而位于宿主机硬件和虚拟机之间的虚拟化层则负责实现对硬件资源的调
1.3 主要厂商及其产品线
随着虚拟化技术的逐渐成熟,不断有新的厂商加入企业虚拟化市场的竞争之中,其中比较有代表性的主要有以下几家。
1. VMware
VMware可以说是虚拟化技术的布道者,是它将虚拟化技术带到x86平台。
该厂商目前也是虚拟化行业的龙头老大,虽然其地位正受到软件巨人微软公司的不断挑战,但是其市场
增长率仍然非常可观。
VMware目前还在不断地通过收购等手段扩张自己已经非常庞大的产品线。
VMware的产品目前主要分为两个系列:数据中心虚拟化和桌面虚拟化,具体名称和功能如下。
VMware vCenter Converter:用于实现对物理服务器到虚拟服务器的转换过程。
可以使用冷迁移和热迁移两种方式。
VMware vCenter Site Recovery Manager:主要用于数据灾难恢复,通过实现恢复流程自动化和降低管理及测试恢复计划的复杂性,加速恢复流程并确保成功执行恢复。
它省去了复杂的手动恢复步骤,能够避免灾难恢复带来的风险并解除后顾之忧。
VMware vCenter Lab Manager:主要用于降低软件的开发、测试和集成的成本。
创建并管理常用的配置库,而且只需简单地单击鼠标即可在几秒钟内对这些配置进行动态部署。
允许用户按需访问所需的计算机和系统,同时IT组织仍保留管理控制权,能够节省大量服务器、存储和部署的相关成本。
通常用于软件公司的开发环境之中。
VMware vCenter Lifecycle Manager:对数据中心内虚拟机的生命周期进行管理的工具。
可以实现虚拟化工作流程的自动化,以提高效益和生产效率,并确保严格遵守公司的策略。
VMware vCenter Stage Manager:主要用于自动执行IT服务部署和更新。
直观显示、管理和自动化发布过程。
从单一的视角管理企业中的所有服务配置,优化IT服务交付、修补程序测试和归档。
VMware View:用于简化虚拟桌面管理并提高桌面安全性。
将传统的PC替换为可从数据中心进行管理的虚拟桌面。
以上产品实际上都是构建在VMware的VMware Infrastructure 3(VI3)的基础之上。
而VI3作为一个虚拟数据中心操作系统,将离散的硬件资源统一起来以创建共享动态平台,同时实现应用程序的内置可用性、安全性和扩展性。
而VI3又是由VMware vCenter Server和ESX Server构成。
除此之外,VMware还有VMware Server(基于Windows或者Linux宿主操作系统的免费产品)、VMware Workstation(桌面级虚拟化应用,同样需要宿主操作系统的支持,通常用于测试和个人使用)、VMware Fusion(Mac版本的VMware Workstation)、VMware ThinApp (在瘦虚拟化环境中执行应用程序,使其就像在宿主机上直接运行一样)、VMware Player (可以理解为限制了功能的VMware Workstation的免费版本,主要用于免费运行虚拟机)。
由于篇幅所限,本书就不再介绍VMware产品线中的其他产品了。
2. Microsoft
也许是为了规避VMware在服务器虚拟化上强劲的发展势头,微软在进入虚拟化市场之后提出了多元的虚拟化技术概念。
微软提出的虚拟化主要覆盖4个方面-服务器虚拟化、桌面虚拟化、表现层虚拟化和应用虚拟化。
其中服务器虚拟化既包括了最新的Hyper-V与Hyper-V Server 2008,也包括了免费的Virtual Server 2005 R2 SP1。
而桌面虚拟化则主要有Virtual PC。
表现层虚拟化其实是终端服务的新瓶装旧酒。
而应用虚拟化则来自于收购的SoftGrid Application Virtualization(目前的名称是Application Virtualization 4.5)。
要特别说明的是,微软为全部的虚拟化产品提供了统一的管理解决方案。
通过System Center系列产品来实现对企业中IT资源的全面管理。
其中的System Center Virtual Machine Manager 2008(SCVMM2008)作为管理服务器虚拟化的产品,甚至可以管理VMware的VI3。
如果仅仅部署Hyper-V而不部署SCVMM2008(虽然其价格不菲,但是和VMware的解决方案相比,已便宜很多),效果将大打折扣。
微软作为软件行业的巨无霸,几乎它所介入的每个新兴市场都被颠覆。
想想当初在浏览器市场的那场决斗中网景公司的下场,也就不难理解人们对VMware为什么有所担心了。
不过微软的介入对用户确实是一个重大的利好消息,毕竟有竞争才有发展。
我相信,随着竞争的不断加剧,虚拟化市场上将为用户提供越来越多价廉物美的产品。
就像在处理器市场上发生的情况一样。
3. SWsoft
SWsoft的拳头产品Parallels Virtuozzo Containers使用的是另一种主流虚拟化技术-操作系统虚拟化技术,动态地将单台Windows或Linux操作系统实例分割为多个高效、稳定的虚拟环境(VE)或"容器",这些虚拟环境以最大化效率利用硬件、软件、数据中心及管理资源,每个虚拟环境(VE)中可独立安装和运行各种应用软件,使用起来和物理服务器完全一样。
不过,Virtuozzo使用的这种技术也制约了它的应用场景,对于角色差异较大的服务器,其优势很难得到发挥,而对于全硬件仿真很容易做到的在一台物理服务器上运行Linux/Windows异构虚拟机,Virtuozzo则很难实现。
Virtuozzo目前多用于主机托管服务提供商的应用场景,因为相比全硬件虚拟化技术,它可以提供更高的资源利用率。
同时它还提供了非常方便的虚拟机部署和管理界面。
对于使用大量的Web服务器这样的应用场景,Virtuozzo还是非常适合的。
从Virtuozzo的技术原理我们了解到,它是不可能实现同台宿主机上的异构操作系统虚拟机的。
为什么在这里说"很难实现"呢?其实实现的方法很简单-在宿主机运行VMware的ESX Server这样的硬件虚拟化产品,然后在ESX的异构虚拟机中安装Virtuozzo来实现单宿主机运行多异构虚拟机。
不过这只可能用于测试环境或者一些极端特殊的应用场景之中。
在
虚拟机中运行虚拟机-听上去似乎很疯狂,不过在本书后面的内容中,您将亲自感受这一有趣的体验。
4. Parallels
如果在虚拟化市场中举行超级模仿秀,也许Parallels应该是当知无愧的冠军。
因为它从产品线甚至产品的图标都在模仿VMware。
不过在Mac机器的虚拟化方面,Parallels似乎总是比VMware技高一筹。
如果您是Mac的忠实拥护者,不妨体验一下在Mac系统中运行Windows和Linux的感觉。
另外,同VMware一样,Parallels也提供了一系列企业级别的虚拟化产品。
相对于VMware的解决方案,价格恐怕是其最大的优势了。
5. Citrix
Citrix的产品主要是XenServer,它和Virtuozzo一样使用操作系统虚拟化技术,基于开源的Xen虚拟机监视器(虽然是免费的,但是XenServer并未开源)。
令VMware非常不舒服的是,Citrix同微软走得很近,两家公司在很多方面都有深度的合作。
而另一个让XenServer 吸引眼球的是,它是"经过云验证"的企业级虚拟化产品。
如果您想体验一把"晕",哦不,是"云"的感觉,不妨尝试一下这个产品-反正是可以免费下载的。
也许您会有意外的收获。
看到这里,读者可能已经发现现在"免费"一词似乎在虚拟化市场中非常流行。
但是这里要提醒大家注意的是,当您决定选用虚拟化解决方案的时候不应过于专注于一次性投入的软件购买成本,也要考虑一下在部署后它所带来的后期管理成本,应该尽量选用那些成熟、部署简单、管理工具易用性强的产品。
6. Redhat
作为Linux领域的老大,Redhat终于坐不住了。
它于2008年收购Qumranet公司获得KVM。
KVM是与XEN类似的一个开源项目。
值得注意的是,Redhat最近(2009年2月)与微软签署了在彼此的管理程序上测试和验证服务器操作系统的合作协议。
虽然有人解读这是由于微软公司迫于用户在Windows系统上运行红帽企业版Linux的需求压力,才与自己的死对头合作,但作者本人认为也许在虚拟化领域,微软和红帽的关系没有那么糟糕。
看来VMware这个老大当得十分不爽,似乎大家已将其作为最大的竞争对手了。
当然,也并不是所有的厂商都与VMware为敌。
VMware与Sun(在本书即将完成时,Sun已经成为甲骨文公司的囊中之物)在2008年中期就达成了合作意向,采用后者的瘦客户端以及APL协议(Appliance Link Protocol)技术提升虚拟桌面软件的性能。
VMware此举选择的时机非常"精确",与竞争对手Citrix的新技术发布选择在了同一天。
读者是否还记得Citrix和谁走的很近吗?没错,是微软。
有趣的是,在同年3月份,微软与Sun公司联合宣布了两大新的具有里程碑意义的合作项目-设在微软Redmond园区的Sun/微软互操作性中心(Interoperability Center)正式启用,该中心将致力于微软的各种应用在Sun Fire x64服务
器与存储系统上的优化运行;新的Sun基础架构解决方案(Infrastructure Solution)中采用Microsoft Exchange Server 2007软件。
这表明了双方的合作联盟在不断壮大。
虚拟化技术概念及分类(1)
虚拟化技术经过数年的发展,已经成为一个庞大的技术家族,其技术形式种类繁多,实现的应用也有一个体系。
但对其分类,一般的介绍比较含糊,分类属性不一。
如将服务器虚拟化、硬件虚拟化、CPU虚拟化相提并论,但其实它们都属一个类别,只是按不同属性分类得出的不同名称。
下面按照不同属性,对虚拟化做一个分类。
以实现层次来划分:硬件虚拟化、操作系统虚拟化、应用程序虚拟化;以被应用的领域来划分:服务器虚拟化、存储虚拟化、应用虚拟化、平台虚拟化、桌面虚拟化。
1.从实现层次来划分
(1)基于硬件的虚拟化
硬件虚拟化,应该是中国IT人员最熟悉的技术了,其代表产品VMware可能每个程序员都有使用。
硬件虚拟化就是用软件来虚拟一台标准计算机的硬件配置,如CPU、内存、硬盘、声卡、显卡、光驱等,成为一台虚拟的裸机,然后就可以在上面安装操作系统了。
使用时,先在操作系统里安装一个硬件虚拟化软件,用其虚拟出一台计算机,再安装系统,做到系统里运行系统,并可虚拟出多台计算机,安装多个相同或不同的系统。
其代表产品为VMware,其余几个知名的有微软的Virtual PC、开源免费的VirtualBox。
为虚拟机分配的硬件资源要占用实际硬件的资源,对性能损耗也较大。
因为是在系统里安装虚拟化软件,再在虚拟的计算机上装系统,所以就有原系统和虚拟化软件两层消耗,为了提高性能,出现了另外一种硬件虚拟化形式:直接在裸机上安装虚拟化软件,然后安装多个系统,并同时运行。
跳过原系统这一环节,性能大大提高,这种虚拟化又叫做准虚拟化。
VMware推出的相关产品叫VMware ESXi,微软的该类产品为Hyper-V,主要应用于服务器领域。
(2)基于操作系统的虚拟化
操作系统虚拟化就是以一个系统为母体,克隆出多个系统。
它比硬件虚拟化要灵活方便,因为只需在系统里装一个虚拟化软件,就能以原系统为样本很快克隆出系统,克隆出的系统与原系统除一些ID标识外,其余都一样。
看似与硬件虚拟化一样,都是虚拟多个操作系统出来,但与硬件虚拟化还是有很多不同之处。
①操作系统虚拟化是以原系统为样本,虚拟出一个近乎一模一样的系统;硬件虚拟化是虚拟硬件环境,然后真实地安装系统。
它们虚拟的东西不一样。
②操作系统虚拟化虚拟的系统都只能为同样的系统;硬件虚拟化虚拟的系统可以为不同的系统,如Linux、Mac、Windows家族。
③操作系统虚拟化虚拟的多个系统有较强的联系,体现在:①可以为多个虚拟系统同时进行配置,更改了原系统就改了所有;②如果原系统损坏,会殃及所有虚拟系统。
硬件虚拟化虚拟的多个系统是相互独立的,与原系统也无联系,原系统的损坏不会殃及虚拟的系统。
④操作系统虚拟化的性能损耗低,它们都是虚拟的系统,而非硬件虚拟化那样真实安装的实体,没有硬件虚拟化的虚拟硬件层,也大大降低了性能损耗。
(3)基于应用程序的虚拟化
前两种虚拟化技术大多应用于企业、服务器和一些IT专业工作领域。
随着虚拟化技术的发展,逐渐从企业往个人、往大众应用的趋势发展,便出现了应用程序虚拟化技术,简称应用虚拟化,它是近年虚拟化的新贵和热门领域。
前两种虚拟化的目的是虚拟完整的真实的操作系统,应用虚拟化的目的也是虚拟操作系统,但只是为保证应用程序的正常运行虚拟系统的某些关键部分,如注册表、C盘环境等,所以较为轻量、小巧。
应用虚拟化技术的兴起最早也是从企业市场而来。
一个软件被打包后,通过局域网很方便地分发到企业的几千台计算机上去,不用安装,直接使用,大大降低了企业的IT成本。
应用虚拟化技术应用到个人领域,可以实现很多非绿色软件的移动使用,如CAD、3ds Max、Office等;可以让软件免去重装烦恼,不怕系统重装,很有绿色软件的优点,但又在应用范围和体验上超越绿色软件。
使用方法大体为:先安装虚拟化软件,此时已经搭建了一个虚拟化环境,然后接收来自网络的应用软件或安装应用软件到虚拟化环境里,最后使用应用软件。
应用虚拟化领域比较可喜的是也有国产产品参与其中,下面简单介绍几个有代表性的。
①Microsoft Application Virtualization(App-V)。
前身是Softgrid,被微软收购,主要针对企业内部的软件分发,方便了企业桌面的统一配置和管理,支持同时使用同一程序的不同版本,在客户端第一次运行程序时可以实现边用边下载等。
但是对Windows外壳扩展程序的支持不够好,并且安装实施非常复杂,不是专业的管理员是很难部署起来的。
②VMware ThinApp。
前身是Thinstall,被VMware收购。
它不需要第三方平台,直接把虚拟引擎(重写了几百个Windows的API)和软件打包成单文件,分发简单,支持同时运行一个软件的多个版本;但是和系统的结合不够紧密,比如说文件关联、类似于winrar
等的右键菜单、无法封装环境包(.NET框架、Java环境)、无法封装服务。
它主要用于企业软件分发。
③Symantec Software Virtualization Solution(SVS)。
SVS于2006年左右被Symantec 收购,它的虚拟引擎和虚拟软件包是分离的,能做到对应用程序的完美支持,包括支持Windows外壳扩展的程序,支持封装环境包(.NET框架、Java环境)、支持封装服务。
但是无法同时运行同一个软件的不同版本。
它主要用于企业软件分发。
④Installfree。
Installfree是后起之秀,其最大特色在于,无须在干净的环境下打包软件,也可以做到很好的兼容性。
打包软件是应用虚拟化技术的一大难题。
要实现一个软件的随处免安装使用,就必须把软件正常安装后的文件都打成包,但如果系统不干净,就会造成打包文件的不完整,分发到其他计算机上时无法使用。
它主要用于企业软件分发。
⑤SandboxIE。
俗称沙盘,这个是IT爱好者家喻户晓的东西了。
它主要用于软件测试和安全使用领域。
它像个软件的囚笼,你可以把软件安装在沙盘里,并运行在其中,软件所有行为都不会影响到系统。
如果软件带毒或被感染病毒,可以一下扫光,就像把一个真实的沙盘里的各种沙造物体打碎,并下一次重来。
⑥云端软件平台(Softcloud)。
这是应用虚拟化领域的优秀国产软件,面市不久,其实现原理与SVS很类似。
但其最大特别之处在于,不是应用于企业市场,而是针对个人用户使用软件时的诸多问题和烦恼的解决方案。
其最大特色:一是让软件使用变得更方便快捷;二是让软件使用不影响系统,保持系统干净、稳定,真正的绿色。
云端与其他应用虚拟化软件不同,它自带了打包好的软件资源,使用时无须安装,一点就用,不写注册表、不写系统;无用软件可以一键删除,快速干净不残留。
而且最省事的一点莫过于重装系统后,所有软件不用重装。
因为在云端使用的软件都在云端的缓存目录里,重装系统后只要安装云端,再次指定这个目录,所有软件就可以立即恢复使用,并且无须重配置,就跟重装前的一模一样。
3.4.2 虚拟化技术概念及分类(2)
2.从被应用的领域来划分
(1)服务器虚拟化
服务器虚拟化技术可以将一个物理服务器虚拟成若干个服务器使用,如图3-5所示。
服务器虚拟化是基础设施即服务(Infrastructure as a Service,IaaS)的基础。
服务器虚拟化需要具备以下功能和技术。
①多实例:在一个物理服务器上可以运行多个虚拟服务器。
④内存虚拟化:统一管理物理内存,将其包装成多个虚拟的物理内存分别供给若干个虚拟机使用,使得每个虚拟机拥有各自独立的内存空间,互不干扰。
⑤设备与I/O虚拟化:统一管理物理机的真实设备,将其包装成多个虚拟设备给若干个虚拟机使用,响应每个虚拟机的设备访问请求和I/O请求。
⑥无知觉故障恢复:运用虚拟机之间的快速热迁移技术(Live Migration),可以使一个故障虚拟机上的用户在没有明显感觉的情况下迅速转移到另一个新开的正常虚拟机上。
⑦负载均衡:利用调度和分配技术,平衡各个虚拟机和物理机之间的利用率。
⑧统一管理:由多个物理服务器支持的多个虚拟机的动态实时生成、启动、停止、迁移、调度、负荷、监控等应当有一个方便易用的统一管理界面。
⑨快速部署:整个系统要有一套快速部署机制,对多个虚拟机及上面的不同操作系统和应用进行高效部署、更新和升级。
(2)存储虚拟化
存储虚拟化的方式是将整个云系统的存储资源进行统一整合管理,为用户提供一个统一的存储空间,如图3-6所示。
存储虚拟化具有以下功能和特点。
①集中存储:存储资源统一整合管理,集中存储,形成数据中心模式。
②分布式扩展:存储介质易于扩展,由多个异构存储服务器实现分布式存储,以统一模式访问虚拟化后的用户接口。
③绿色环保:服务器和硬盘的耗电量巨大,为提供全时段数据访问,存储服务器及硬盘不可以停机。
但为了节能减排、绿色环保,需要利用更合理的协议和存储模式,尽可能减少开启服务器和硬盘的次数。
④虚拟本地硬盘:存储虚拟化应当便于用户使用,最方便的形式是将云存储系统虚拟成用户本地硬盘,使用方法与本地硬盘相同。
⑤安全认证:新建用户加入云存储系统前,必须经过安全认证并获得证书。
⑥数据加密:为保证用户数据的私密性,将数据存储到云存储系统时必须加密。
加密后的数据除被授权的特殊用户外,其他人一概无法解密。
①解耦合:利用屏蔽底层异构性的技术解除虚拟应用与操作系统和硬件的耦合关系。
②共享性:应用虚拟化可以使一个真实应用运行在任何共享的计算资源上。
③虚拟环境:应用虚拟化为应用程序提供了一个虚拟的运行环境,不仅拥有应用程序的可执行文件,还包括所需的运行环境。
④兼容性:虚拟应用应屏蔽底层可能与其他应用产生冲突的内容,从而使其具有良好的兼容性。
⑤快速升级更新:真实应用可以快速升级更新,通过流的方式将相对应的虚拟应用及环境快速发布到客户端。
⑥用户自定义:用户可以选择自己喜欢的虚拟应用的特点以及所支持的虚拟环境。
(4)平台虚拟化
平台虚拟化具备以下功能和特点。
①通用接口:支持各种通用的开发工具和由其开发的软件,包括C、C++、Java、C#、Delphi、Basic等。
②内容审核:各种开发软件(服务)在接入平台前都将被严格审核,包括上传人的身份认证,以保证软件及服务非盗版、无病毒及合法性。
③测试环境:一项服务在正式推出之前必须在一定的测试环境中经过完整的测试才行。
④服务计费:完整合理的计费系统可以保证服务提供人获得准确的收入,而虚拟平台也可以得到一定比例的管理费。
⑤排名打分:有一整套完整合理的打分机制对各种服务进行排名打分。
排名需要给用户客观的指导性意见,严禁有误导用户的行为。
⑥升级更新:允许服务提供者不断完善自己的服务,平台要提供完善的升级更新机制。
⑦管理监控:整个平台需要有一个完善的管理监控体系以防出现非法行为。
(5)桌面虚拟化。