Linux最新详细解析虚拟化的起源和分类(1),一篇文章教你搞定计算机网络面试

本文探讨了如何通过系统化的学习避免浅尝辄止,重点介绍了虚拟化技术的发展历程,包括全虚拟化和半虚拟化,以及VMware、Xen和KVM等厂商的动态。同时强调了在线学习社区的价值,提倡技术提升的系统化和个人与团队合作的重要性。
摘要由CSDN通过智能技术生成

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

虚拟化技术发展史

虚拟化技术最早出现在大型机时代。上世纪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来管理。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值