虚拟化的理论

虚拟化技术的分类:
1.平台虚拟化,针对计算机和操作系统的虚拟化
2.资源虚拟化,针对特定的系统资源的虚拟化,比如内存,存储,网络资源等
3.应用程序虚拟化 包括仿真,模拟,解释等技术

平台虚拟化分类:
1.全虚拟化
   全虚拟化简而言之就是VMM提供了一整套模拟出来的硬件,使得可以像在正常的硬件上安装操作系统一样在虚拟出来的硬件上安装操作系统,安装应用程序等等,然而对于虚拟机中执行的一些特权指令是需要经过VMM处理才可以执行的。通常的操作系统在用户空间是无法执行特权指令的,特权指令的执行是通过陷入内核模式由内核(位于ring0特权级)来实现的,然而对于虚拟机中的操作系统来说是不能让其工作在ring0模式下,VMM必须运行在特权模式下完全控制主机系统。所以在虚拟机中的操作系统执行特权指令的时候就需要模拟这一VMM,当虚拟机中的OS执行特权指令的时候因为其不再特权级所
以就会产生异常,VMM通过捕获这种异常来模拟特权指令的执行,然后再x86体系的计算机中有的敏感指令(可能是特权指令)在执行的时候是不会产生异常的,这就导致了VMM实现完全虚拟化的难题。因此就有了二进制指令翻译技术的出现。

2.半虚拟化
   半虚拟化和全虚拟化的最大区别就在于虚拟出来的OS知不知道自己是在虚拟环境下,而半虚拟是知道自己处于虚拟环境下,那么为了让OS知道自己处于虚拟环境下就必须要修改OS相关的源码,Linux是可以修改其源码的,windows呢,因为不开源所以windwos无法修改源码,
那么windows就无法运行在半虚拟的平台下,对于一些敏感和特权指令的执行半虚拟化是靠调用hypervisor call来直接执行的,而全虚拟化是需要进行陷入异常然后被VMM捕获再进行模拟执行。半虚拟化性能明显优于全虚拟化

虚拟化的流派:

基于二进制翻译的全虚拟化:其主要思想是在执行时将 VM 上执行的 Guest OS 之指令,翻译成 x86 ISA 的一个子集,其中的特权指令被替换成陷入指令;翻译过程与指令执行交叉进行,不含特权指令的用户态程序可以不经翻译直接执行,该技术为 VMWare Workstation,VMWare ESX Server 早期版本,Virtual PC 以及 QEMU 所采用。

基于扫描和修补的全虚拟化:VMM 会在 VM 运行每块指令之前对其扫描,查找敏感指令;补丁指令块会在 VMM 中动态生成,通常每一个需要修补的指令会对应一块补丁指令;特权指令被替换成一个外跳转,从 VM 跳转到 VMM,在 VMM 中执行动态生成的补丁指令块;当补丁指令块执行完后,执行流再跳转回 VM 的下一条指令处继续执行;Oracle 的 Virtualbox 即采用该技术。

OS协助的半虚拟化:通过修改 Guest OS 的代码,将含有敏感指令的操作,替换为对 VMM 的超调用 (Hypercall,类似 OS 的系统调用,可将控制权转移到 VMM);该技术的优势在于 VM 的性能能接近于物理机,缺点在于需要修改 Guest OS;该技术因 Xen 项目而广为人知。

硬件协助的虚拟化:引入新的处理器运行模式和新的指令,使得 VMM 和 Guest OS 运行于不同的模式下,Guest OS 运行于受控模式,原来的一些特权指令在受控模式下全部会陷入 VMM,这样就解决了部分非特权的敏感指令的陷入 — 模拟难题,而且模式切换时上下文的保存恢复由硬件来完成,这样就大大提高了陷入 — 模拟时上下文切换的效率。该技术的引入使 x86 可以很容易地实现完全虚拟化。故皆被几乎所有之前分歧流派各方所采用,如: KVM-x86,新版 VMWare ESX Server 3,Xen 3.0。

VMM模型:

宿主模型
   VMM 通过调用 Host OS 的服务来获得资源,实现 CPU,内存和 I/O 设备的虚拟化,VMM 创建出 VM 后,通常将 VM 作为 Host OS 的一个进程参与调度;VMM 模块负责 CPU 和内存虚拟化,由 ULM 请求 Host OS 设备驱动,实现 I/O 设备的虚拟化。

优点:可以充分利用现有 OS 的设备驱动,VMM 无需自己实现大量的设备驱动,轻松实现 I/O 设备的虚拟化。
缺点:资源受 Host OS 控制,VMM 需调用 Host OS 的服务来获取资源进行虚拟化,其效率和功能会受到一定影响。采用该结构       的 VMM 有:VMware Workstation, VMWare Server (GSX), Virtual PC,Virtual Server, KVM(早期)

Hypervisor 模型
   该结构中,VMM 可以看作一个为虚拟化而生的完整 OS,掌控有所有资源(CPU,内存,I/O 设备),VMM 承担管理资源的重任,其还需向上提供 VM 用于运行 Guest OS,因此 VMM 还负责虚拟环境的创建和管理。

优点:因 VMM 同时具有物理资源的管理功能和虚拟化功能,故虚拟化的效率会较高;安全性方面,VM 的安全只依赖于 VMM 的安全。
缺点:因 VMM 完全拥有物理资源,因此,VMM 需要进行物理资源的管理,包括设备的驱动,而设备驱动的开发工作量是很大的,这对 VMM 是个很大的挑战。采用该结构的 VMM 有:VMWare ESX Server, WindRiver Hypervisor, KVM(后期)

混合模型
   该结构是上述两种模式的混合体,VMM 依然位于最底层,拥有所有物理资源,但 VMM 会主动让出大部分 I/O 设备的控制权,将它们交由一个运行在特权 VM 上的特权 OS 来控制。VMM 只负责 CPU 和内存的虚拟化,I/O 设备的虚拟化由 VMM 和特权 OS 共同完成.

优点:可利用现有 OS 的 I/O 设备驱动;VMM 直接控制 CPU 和内存等物理资源,虚拟化效率较高;若对特权 OS 的权限控制得当,虚拟机的安全性只依赖于 VMM。
缺点:因特权 OS 运行于 VM 上,当需要特权 OS 提供服务时,VMM 需要切换到特权 OS,这里面就产生上下文切换的开销。
采用该结构的 VMM 有:Xen, SUN Logical Domain35

原文链接:http://blog.csdn.net/dbanote/article/details/8938106

虚拟化的理论

时间: 2024-10-10 23:53:09

虚拟化的理论的相关文章

虚拟化的理论-内存和IO虚拟化

这部分只要介绍下虚拟化技术中的内存虚拟化和IO虚拟化两个部分 内存虚拟化: 上图中的做伴部分是正常情况下内存的使用情况,线性地址到物理地址的一个转换,通常应用程序使用的内存地址是线性地址,需要通过MMU地址转换的一个硬件来实现线性地址到物理地址的一个转换.上图的有半部分是虚拟化情况下内存是如何实现线性地址到物理地址的转换,虚拟机中的OS获得是有Host OS分配的线性地址,Guest OS中的应用程序获取的是相对于Guest os来说的线性地址,那么对于这个线性地址来说最终只能转换成线性地址,无

虚拟化的理论-CPU虚拟化

二进制翻译(Binary Translation)是一种直接翻译可执行二进制程序的技术,能够把一种处理器上的二进制程序翻译到另外一种处理器上执行.它使得不同处理器之间的二进制程序可以很容易地相互移植,扩大了硬件/软件的适用范围,有助于打破前面提到的处理器和支持软件之间互相掣肘影响创新的局面. ---来自百度百科 基于二进制翻译技术的完全虚拟化,主要是解决一些敏感指令的翻译.翻译过程如下: Guest OS运行在Ring1级别,VMM运行在Ring 0级别完全掌控系统资源对资源进行控制,对于一些非

老广: KVM虚拟化学习笔记

前言: 虚拟化的理论知识我就不啰嗦了,可以参见http://bbs.linuxtone.org/thread-24347-1-1.html,kvm全称Kernel-based  Virtual Machine, 其实kvm只是一个内核模块,提供虚拟cpu和内存管理的模块,至于其它的设备是由qemu模拟的,如网卡,显卡,磁盘等.后来redhat联合IBM以及Linux社区创造了libvirt,模拟的设备性能要比qemu的好很多,并提供了一系列的管理工具和api,整个集成了kvm虚拟化的解决方案.L

KVM虚拟化环境准备

1. 概述2. 环境准备2.1 硬件环境2.2 软件环境2.2.1 YUM安装软件包2.2.2 环境检查2.2.3 启动libvirtd服务2.3 网络环境2.3.1 复制网卡配置文件2.3.2 修改网卡配置文件2.3.4 重启网络服务2.3.5 查看验证 1. 概述 本系列博客是想在VMware workstation创建的虚拟机console中,开启KVM虚拟化,使用kvm虚拟机快速部署测试环境. 注:有关虚拟化的理论部分,参照博客<>,有关KVM的理论部分,参照博客<> 2.

Atitit.软件硕士&#160;&#160;博士课程&#160;一览表&#160;attilax&#160;总结

Atitit.软件硕士  博士课程 一览表 attilax 总结 1. Attilax聚焦的领域1 2. 研究生硕士博士课程汇总表1 3. 博士课程3 4. Attilax额外的4 5. 参考4 1. Attilax聚焦的领域 Dsl 语言 ide 类库 框架 数据库 的实现 Debug工具 文本信息的解锁,无损压缩(pdf ,word2html) 图片物体检测与色情图片识别,人脸识别 信息采集,比较,同步工具,信息发布工具 输入法,词库维护工具  翻译机 垃圾文件识别与清理器 快速启动器(at

部署KVM虚拟化平台(理论+实战)

KVM虚拟机: 1.KVM是Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中.它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少.KVM已成为学术界的主流VMM之一 2.KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术).是基于硬件的完全虚拟化.而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化

【理论研究】漫谈云计算IT基础设施02-计算虚拟化

本文欢迎转载,转载请注明出处和作者. VMware产品线全景图 虚拟化,就是通过在硬件之上,操作系统之下,先安装一层Hypervisor(虚拟化操作系统),例如VMware的ESXI或者Citrix的Xen Server.然后通过Hypervisor调度与切分底层的硬件,然后构成一台台虚拟出来独立工作的主机(虚拟机). 虚拟机利用划分给它的硬件资源,再安装操作系统(如windows),然后再在OS上面安装应用. 为什么要用虚拟机,因为以往为了业务系统的独立性,会单独采用不同的物理硬件,来承载不同

【理论研究】漫谈云计算IT基础设施03-网络虚拟化

本文欢迎转载,转载请注明出处和作者. 网络虚拟化 01-虚拟交换机 初期的网络虚拟化,是非常狭义的概念,主要指的是因为计算资源虚拟化,每台物理宿主机上安装了虚拟化软件,同时会部署了虚拟交换机,负责物理机上面承载的VM(虚拟机)之间与对外的通信. 这些虚拟机逻辑上都是接入到这台物理宿主机上面的虚拟交换机的,同一台物理宿主机上面同一网段的虚拟机之间间的通信,流量只会在这台虚拟交换机内部转发,流量根本不会通过物理宿主机的物理网卡网外发送到物理交换机上面.(不同网段的虚拟机之间的通信,流量会经过网关,而

【理论研究】漫谈云计算IT基础设施04-存储虚拟化

本文欢迎转载,转载请注明出处和作者. 存储虚拟化的概念也是一个发展的过程. 在实现了计算虚拟化与网络虚拟化的时期,存储其实还未完成彻底的虚拟化,但是由于计算与网络都已经被叫上虚拟化了,所以存储也不得不借虚拟化的概念热炒一波. 因此在当时,以IBM SVC为首的一批名为虚拟化存储网关(如EMC VPLEX.华为Oceanstor VIS 6000)的设备,承担了存储虚拟化的名头. 01-存储虚拟化网关 如前面文章所说,存储这东西非常讨厌,不像x86服务器,资源不够了,可以直接scaleout扩容,