详细解析虚拟化的起源和分类\"

发布时间:2024-05-21 点击:90
虚拟化技术简介虚拟化技术发展史
虚拟化技术最早出现在大型机时代。上世纪60年代,ibm开始在其cp-40大型机系统中尝试虚拟化的实现,后来在system/360-67中采用,并衍生出vm/cms到后来的z/vm等产品线。大型机上的虚拟化技术在之后20多年的发展中愈发成熟,但随着小型机以及x86的流行,大型机在新兴的服务器市场中已经失去了影响力。
由于处理器架构的不同,在大型机上已经成熟的虚拟化技术却并不能为小型机及x86所用。直到2001年,vmware发布了第一个针对x86服务器的虚拟化产品。之后的几年间,英国剑桥大学的一位讲师发布了同样针对x86虚拟化的开源虚拟化项目xen,并成立xensource公司(07年citrix将其收购);惠普发布了针对hp-ux的integrity虚拟机;sun跟solaris 10一同发布了同时支持x86/x64和sparc架构的solaris zone;而微软也终于在2008年发布的windows server 2008 r2中加入了hyper-v。期间,vmware被emc收购,xensource则被思杰收购。
之后的几年间,vmware逐渐在企业级市场中被广泛的接受,xen也逐渐在互联网领域展露头角。在成熟的服务器操作系统当中,novell suse linux enterprise 10是第一个采用xen技术的。当时的xen还很不成熟,乃至于红帽还为此取笑了novell一番;不过几个月后,到了rhel 5.0发布的时候,红帽决定也将xen加入到自己的默认特性当中——那是2006年。一时之间,在linux服务器领域,xen似乎成为了 vmware之外的最佳虚拟化选择(事实上也没多少其他可选的)。
但是,作为一项linux平台上的虚拟化技术,xen在很长一段时间内一直没有被接受到linux内核的代码当中,这对于xen的维护者而言,不仅意味着要多做很多工作,还意味着用户在废了半天劲装好xen之后可能遇到意想不到的问题(注:2011年6月发布的linux内核3.0中已经加入了对xen的支持——xen的工程师们表示这是清理了7年遗留代码、提交了600多个补丁的成果)。
而红帽方面,也许是因为当时对这种脱离内核的维护方式很不爽,也许是因为采用xen的rhel在企业级虚拟化方面没有赢得太多的市场,也许是因为思杰跟微软走的太近了,种种原因,导致其萌生了放弃xen的心思。2008年9月,红帽收购了一家名叫qumranet的以色列小公司,由此入手了一个叫做kvm的虚拟化技术(kvm,全称kernel-based virtual machine,意为基于内核的虚拟机)。
总之红帽决定选择了一个新兴的基于内核的虚拟化技术:kvm。而在正式采用kvm一年后,就宣布在新的产品线中彻底放弃xen,集中资源和精力进行kvm的工作。至此各大虚拟化技术vmware,xen,kvm等均出现,并找到自己位置。
全虚拟化(full virtualization)
全虚拟化也成为原始虚拟化技术,该模型使用虚拟机协调guest操作系统和原始硬件,vmm在guest操作系统和裸硬件之间用于工作协调,一些受保护指令必须由hypervisor(虚拟机管理程序)来捕获处理。
全虚拟化主要是在客户操作系统和硬件之间捕捉和处理那些对虚拟化敏感的特权指令,使客户操作系统无需修改就能运行,速度会根据不同的实现而不同,但大致能满足用户的需求。这种方式是业界现今最成熟和最常见的,而且属于 hosted 模式和 hypervisor 模式的都有,知名的产品有ibm cp/cms、virtualbox、kvm、vmware workstation和vmware esx(它在其4.0版,被改名为vmware vsphere)。
全虚拟化的运行速度要快于硬件模拟,但是性能方面不如裸机,因为hypervisor需要占用一些资源。
·优点:guest os无需修改,速度和功能都非常不错,更重要的是使用非常简单,不论是 vmware 的产品,还是oracle的 virtualbox。
·缺点:基于hosted模式的全虚拟产品性能方面不是特别优异,特别是i/o方面。
未来:因为使用这种模式,不仅guest os免于修改,而且将通过引入硬件辅助虚拟化技术来提高其性能,在未来全虚拟化还是主流。
半虚拟化(para virtualization)
半虚拟化是另一种类似于全虚拟化技术,它使用hypervisor分享存取底层硬件,但是它的guest操作系统集成了虚拟化方面代码。该方法无需重新编译或引起陷阱,因为操作系统自身能够与虚拟进程进行很好的协作。
它与完全虚拟化有一些类似,它也利用hypervisor来实现对底层硬件的共享访问,但是由于在hypervisor 上面运行的guest os已经集成与半虚拟化有关的代码,使得guest os能够非常好地配合hyperivosr来实现虚拟化。通过这种方法将无需重新编译或捕获特权指令,使其性能非常接近物理机,其最经典的产品就是xen,而且因为微软的hyper-v所采用技术和xen类似,所以也可以把hyper-v归属于半虚拟化。
(半虚拟化由于需要修改vm操作系统的内核,所以没法支持windows这样闭源os,于是后来xen也利用cpu虚拟化技术开始支持全虚拟化了,所以目前xen支持半虚拟化和全虚拟化两种)
半虚拟化需要guest操作系统做一些修改,使guest操作系统意识到自己是处于虚拟化环境的,但是半虚拟化提供了与原操作系统相近的性能。
· 优点:这种模式和全虚拟化相比架构更精简,而且在整体速度上有一定的优势。
· 缺点:需要对guest os进行修改,所以在用户体验方面比较麻烦。
未来:情况比较类似,在公有云(比如amazon ec2)平台上应该继续占有一席之地,但是很难在其他方面和类似vmware vsphere这样的全虚拟化产品竞争,同时它也将会利用其它技术来提高速度,并简化架构。
虚拟化厂商
vmware简介
· vmware的历史
早在1998年时,毕业于mit的diane greene察觉到计算机资源的使用率过低,因此和dr. mendel rosenblum、scott devine、dr. edward wang以及edouard bugnion等人成立了vmware公司,专精于os in os的软件,期待能完全发挥硬件的性能,并为当时的专业it人员提供一个测试、评估的低成本环境。
1.x86平台上的第一个虚拟机产品:vmware workstation
当时vmware workstation一上市就打响,使得vmware直接成为虚拟机的代名词。然而windows系统的相对不稳定性,让vmware的工程师们把目光投向了相对较稳定的linux系统,因此在vmware workstation成功推出不久之后,也出现了linux版本的产品,让linux下的用户也可以同时运行windows或其他的linux套件。
2.linux下的虚拟机产品
虽然解决了windows的问题,vmware workstation仍然无法摆脱寄居在固定操作系统上的恐惧。既然选择了较为稳定的linux,vmware也顺势推出了运行在redhat、mandrake和suse linux下的vmware gsx server,并且也拥有web端的管理和客户端的管理程序。在linux下,vmware较不需要担心病毒或黑客的攻击,而操作系统本身宕机带来的危险性也相对较小,因此在2000年初期,linux成为vmware产品充分发挥的最好舞台。而vmware也在2000年的初期在linux下推出了vmware gsx server产品,这也是后来推出vmware server版的基础。当然在gsx server上最大的特色,就是使用了client/server架构的管理界面,更可以使用浏览器来连入gsx server来管理。
kvm
kvm kernel-based virtual machine的简称,是一个开源的系统虚拟化模块,自linux 2.6.20之后集成在linux的各个主要发行版本中。它使用linux自身的调度器进行管理,所以相对于xen,其核心源码很少。kvm目前已成为学术界的主流vmm之一。06年之前,linux内核中还没有任何虚拟化实现,xen和vmware依靠自己独有的技术分别在虚拟化不同领域如日中天,尤其值得一提的是,xen在开源领域几乎成为了虚拟化的事实标准。avi kivity和他所在的以色列初创公司qumranet提出并推动kvm(基于linux内核的全虚拟化方案),以其精简的架构,清晰的定位很快获得linux社区多数开发人员的支持得以快速被合并进入主干,以avi kivity为主的工程师仅仅花了不到一年时间就让linux社区接受kvm的设计方案并且通过了代码review,最终于2006年10月合并进入2.6.20主干,时至今日,人们依然对于kvm合并进入linux主干的速度之快感到不可思议。
为什么那么多的大公司对kvm感兴趣?其中最明显并且最重要的因素就是kvm是linux内核的一部分。这个轻量级的虚拟化管理程序模块能直接与硬件交互

Windows7收到Win10正式版安全补丁:微软更新推送犯低级错误
租一台云存储服务器吗
昨日上传文件一直未未完成
搭建企业内部yum仓库(centos6 centos7 epel源)
Docker容器绑定外部IP和端口
建设公司网站想受欢迎要实现什么条件?
个人网站域名怎么起
云平台与实体服务器部署的区别是什么