开发者社区> 胖子哥> 正文

虚拟化技术纲要之虚拟化技术发展简史

简介:
+关注继续查看

作者:张子良

版权所有,转载请注明出处

  一 概述

  虚拟化技术按照其发展历史,可以分为四个阶段:硬件仿真虚拟化、完全虚拟化、半虚拟化和操作系统虚拟化。当前阶段的虚拟化技术以半虚拟化技术为主流,操作系统虚拟化是发展方向,目前主要应用在高端应用领域。下面将从每一种虚拟化技术的原理、优点、缺点和代表产品四个方面进行介绍。

  二 硬件仿真

  2.1 工作原理

  硬件虚拟化分为硬件指令虚拟化和硬件资源虚拟化,硬件指令虚拟化目的是将客户机发出的指令翻译成所在主机平台的指令,从而实现对客户机指令的模拟执行。硬件资源虚拟化目的是虚拟出硬件资源,通常主机平台与客户机平台所用的指令集是一样的,只是为了提高效率,将虚拟资源映射到物理资源,并在虚拟机计算中使用本地硬件。硬件虚拟化工作原理如下图所示:

 

  2.2 优点

  硬件仿真虚拟化由于采用了硬件仿真技术,硬件仿真的实现在宿主操作系统上实现,所以安装在仿真硬件上的操作系统,不需要做任何修改即可直接安装。例如我们可以在Windows上运行Symbian或Windows Mobile程序,只要有相应的硬件虚拟机即可。

  2.3 缺点

  硬件仿真虚拟化是最为复杂的虚拟化技术,需要在宿主操作系统上,创建一个硬件VM来仿真所想要的硬件。由于每条指令都必须在底层硬件上进行仿真,所以硬件仿真虚拟化技术的主要问题就是速度慢。

  2.4 代表产品

  

  三 完全虚拟化

  3.1 工作原理

   完全虚拟化(full virtualization)模型使用一个虚拟机,它在客户操作系统和原始硬件之间进行协调。"协调"在这里是一个关键,因为 VMM 在客户操作系统和裸硬件之间提供协调。特定受保护的指令必须被捕获下来并在 hypervisor 中进行处理,因为这些底层硬件并不由操作系统所拥有,而是由操作系统通过 hypervisor 共享。工作原理如下图所示:

  完全虚拟化分为传统完全虚拟化和硬件辅助的虚拟化。传统的完全虚拟化,虚拟机运行在操作系统之上,虚拟机管理程序本身运行在cpu的Ring 0,虚拟的Guest OS则运行在Ring 1(为了避免Guest OS破坏Host OS,Guest OS必须运行 在低于Ring 0的权限)。但是这样一来Guest的兼容性会受到影响,并且原来Guest OS要在Ring 0上执行的指令都必须经过hypervisor翻译才能运行,速度会有所下降。硬件辅助的完全虚拟化需要CPU硬件支持,有INTEL的VT和AMD的 AMD-V两种技术,只有支持这两种技术的CPU才可以使用。硬件辅助的虚拟化把虚拟机管理程序本身放到比Ring 0还低的模式运行(比如Ring -1),而把Guest OS放到Ring 0,这样兼容性得到了提高,不过因为第一代硬件虚拟技术(VT和AMD-V)实现上还不够成熟,所以效率上并不比传统的完全虚拟化更高。

  3.2 优点

   完全虚拟化的速度要比硬件仿真的速度要快,但是其性能低于裸硬件,因为中间经过了 hypervisor 的协调过程。完全虚拟化的最大优点是操作系统无需任何修改就可以直接运行。此外完全虚拟化还可使实现同时支持多个操作系统。

  3.3 缺点

  操作系统必须要支持底层硬件(例如 PowerPC)。

  3.4 代表产品

  传统的完全虚拟化的产品主要有Vmware Workstation / Server, Virtual PC / Server,Parallel Workstation等。硬件辅助的虚拟化受到很多产品的支持,目前传统的完全虚拟化产品也都开始对硬件辅助的虚拟化进行支持,比如Vmware Workstation / Server和VirtualBox都开始支持VT和AMD-V,并且在它们上面想要运行64位的Guest OS还必须使用硬件辅助的虚拟化。

  四 半虚拟化

  4.1 工作原理

  半虚拟化(paravirtualization),可以提供极高的性能,与完全虚拟化有一些类似。这种方法使用了一个 hypervisor 来实现对底层硬件的共享访问,将与虚拟化有关的代码集成到了操作系统本身中。与硬件辅助的完全虚拟化有一点相似是hypervisor运行在Ring -1,而Guest OS运行在Ring 0上。半虚拟化工作原理如下图所示:

  4.2 优点

  半虚拟化比完全虚拟化效率更高,速度更快,提供了与未经虚拟化的系统相接近的性能。

  4.3 缺点

  虚拟化有一个缺点是必须修改客户操作系统,因为半虚拟化为了提高效率,必须要让Guest OS本身意识到自己运行在虚拟机上,所以在Guest OS的内核中需要有方法来与hypervisor进行协调,这个缺点很大的影响了半虚拟化技术的普及,因为Linux等系统可以修改,而其它不能修改的系统就不能用了。

  4.4 代表产品

  半虚拟化的代表产品是Xen【zen】,Vmware ESX Server,Microsoft Hyper-V R1。Xen通过给Linux内核打补丁,使Host OS本身也运行在虚拟机上(叫做Domain 0),其它的虚拟机叫做Domain U(Domain U需要为Xen进行修改)。Hyper-V和Xen比较相似,Hyper-V目前集成在Windows 2008中,没启用Hyper-V时,只是一个普通的Windows 2008,一旦启用了Hyper-V,那么Hyper-V一开始就运行,而Windows 2008则在之上成为第一个虚拟机(叫做Parent partition,与Xen的Domain 0相似),在Hyper-V上运行的其它虚拟机应该也需要修改,不过Windows 2008已经修改过了所以可以在Hyper-V上运行。Vmware ESC Server本身集成在一个以Linux为基础的系统上,其架构和Xen及Hyper-V也是比较相似的。

  五 操作系统虚拟化

  5.1 工作原理

  操作系统级的虚拟化在操作系统本身之上实现服务器的虚拟化,特点是一个单一的节点运行着唯一的操作系统实例。通过在这个系统上加装虚拟化平台,可以将系统划分成多个独立隔离的容器,每个容器是一个虚拟的操作系统,被称为虚拟环境,也成为虚拟专用服务器。操作系统级的虚拟化原理如下图所示:

  5.2 优点

  操作系统级虚拟化技术直接和物理设备进行交换,极大的提高了系统性能。

  5.3 缺点

  操作系统级的虚拟化要求对操作系统的内核进行一些修改,但是其优点是可以获得原始性能。

  5.4 代表产品

  操作系统级虚拟以WMware ESX/ESXI和微软公司的Hyper-v Server 2008 R2服务器操作系统的典型应用,也是目前虚拟化技术领域的领跑者。

 

  以上部分是曾经写过的一个专题的第一章,特此分享,如果喜欢请点一下推荐,发表一下评论,多谢!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
虚拟化技术纲要之虚拟化技术发展简史
虚拟化技术发展简史 作者:张子良 版权所有,转载请注明出处   一 概述   虚拟化技术按照其发展历史,可以分为四个阶段:硬件仿真虚拟化、完全虚拟化、半虚拟化和操作系统虚拟化。当前阶段的虚拟化技术以半虚拟化技术为主流,操作系统虚拟化是发展方向,目前主要应用在高端应用领域。
1050 0
云计算的发展史
云计算的发展史自制脑图
19 0
云计算发展史
起源:数字化转型风潮----虚拟机技术的出现---个人开发者福音(云主机)--未来~
498 0
云计算迈向100%的虚拟化
本文讲的是云计算迈向100%的虚拟化,云计算的根本要素是信息。IT(InformationTechnology,信息技术)中的T(技术)只是手段,I(信息)才是目的。近日,EMC全球副总裁兼中国研发中心总经理范承工就云计算公开发表自己的看法。
1022 0
“云计算”与虚拟化的完美搭档
本文讲的是“云计算”与虚拟化的完美搭档,位于加拿大多伦多的Enomaly公司是一家开发大企业云计算产品和解决方案的厂商。这家公司的创始人和首席技术官Reuven Cohen说,最近人们一直要求我比较一下云计算的好处与虚拟化的好处。我的答案一直是这两个技术是一个理想的搭档。
1075 0
从“虚拟化”到“新基建”,云计算如何继续乘风破浪?
阿里巴巴集团研究员、阿里云智能弹性计算负责人、顶级的虚拟化技术专家旭卿现身《大咖说》,从实践出发,聊聊虚拟化、软硬一体、弹性计算,帮助正在从事云计算领域的工程师们,看看云计算在底层技术颠覆者的眼中,云计算的现在与未来。
863 0
+关注
胖子哥
数据仓库模型设计专家,主要从事金融,互联网行业广告行业数据架构和数据营销。QQ:1106110976
文章
问答
文章排行榜
最热
最新
相关电子书
更多
云计算核心技术实践 - 存储技术发展与应用
立即下载
云计算核心技术实践-存储技术发展与应用
立即下载
万物互联时代的虚拟化技术
立即下载