`
puroc
  • 浏览: 44961 次
  • 性别: Icon_minigender_1
  • 来自: 辽宁
社区版块
存档分类
最新评论

平台虚拟化技术

 
阅读更多
原文来自:http://www.ibm.com/developerworks/cn/linux/l-cn-vt/

我们通常所说的虚拟化主要是指平台虚拟化技术,通过使用控制程序(Control Program,也被称为 Virtual Machine Monitor 或 Hypervisor),隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境(称为虚拟机)。虚拟机中运行的操作系统被称为客户机操作系统(Guest OS),运行虚拟机监控器的操作系统被称为主机操作系统(Host OS),当然某些虚拟机监控器可以脱离操作系统直接运行在硬件之上(如 VMWARE 的 ESX 产品)。运行虚拟机的真实系统我们称之为主机系统。

平台虚拟化技术又可以细分为如下几个子类:

全虚拟化(Full Virtualization)

全虚拟化是指虚拟机模拟了完整的底层硬件,包括处理器、物理内存、时钟、外设等,使得为原始硬件设计的操作系统或其它系统软件完全不做任何修改就可以在虚拟机中运行。操作系统与真实硬件之间的交互可以看成是通过一个预先规定的硬件接口进行的。全虚拟化 VMM 以完整模拟硬件的方式提供全部接口(同时还必须模拟特权指令的执行过程)。举例而言,x86 体系结构中,对于操作系统切换进程页表的操作,真实硬件通过提供一个特权 CR3 寄存器来实现该接口,操作系统只需执行 "mov pgtable,%%cr3" 汇编指令即可。全虚拟化 VMM 必须完整地模拟该接口执行的全过程。如果硬件不提供虚拟化的特殊支持,那么这个模拟过程将会十分复杂:一般而言,VMM 必须运行在最高优先级来完全控制主机系统,而 Guest OS 需要降级运行,从而不能执行特权操作。当 Guest OS 执行前面的特权汇编指令时,主机系统产生异常(General Protection Exception),执行控制权重新从 Guest OS 转到 VMM 手中。VMM 事先分配一个变量作为影子 CR3 寄存器给 Guest OS,将 pgtable 代表的客户机物理地址(Guest Physical Address)填入影子 CR3 寄存器,然后 VMM 还需要 pgtable 翻译成主机物理地址(Host Physical Address)并填入物理 CR3 寄存器,最后返回到 Guest OS中。随后 VMM 还将处理复杂的 Guest OS 缺页异常(Page Fault)。比较著名的全虚拟化 VMM 有 Microsoft Virtual PC、VMware Workstation、Sun Virtual Box、Parallels Desktop for Mac 和 QEMU。

超虚拟化(Paravirtualization)

这是一种修改 Guest OS 部分访问特权状态的代码以便直接与 VMM 交互的技术。在超虚拟化虚拟机中,部分硬件接口以软件的形式提供给客户机操作系统,这可以通过 Hypercall(VMM 提供给 Guest OS 的直接调用,与系统调用类似)的方式来提供。例如,Guest OS 把切换页表的代码修改为调用 Hypercall 来直接完成修改影子 CR3 寄存器和翻译地址的工作。由于不需要产生额外的异常和模拟部分硬件执行流程,超虚拟化可以大幅度提高性能,比较著名的 VMM 有 Denali、Xen。

硬件辅助虚拟化(Hardware-Assisted Virtualization)

硬件辅助虚拟化是指借助硬件(主要是主机处理器)的支持来实现高效的全虚拟化。例如有了 Intel-VT 技术的支持,Guest OS 和 VMM 的执行环境自动地完全隔离开来,Guest OS 有自己的“全套寄存器”,可以直接运行在最高级别。因此在上面的例子中,Guest OS 能够执行修改页表的汇编指令。Intel-VT 和 AMD-V 是目前 x86 体系结构上可用的两种硬件辅助虚拟化技术。

部分虚拟化(Partial Virtualization)

VMM 只模拟部分底层硬件,因此客户机操作系统不做修改是无法在虚拟机中运行的,其它程序可能也需要进行修改。在历史上,部分虚拟化是通往全虚拟化道路上的重要里程碑,最早出现在第一代的分时系统 CTSS 和 IBM M44/44X 实验性的分页系统中。

操作系统级虚拟化(Operating System Level Virtualization)

在传统操作系统中,所有用户的进程本质上是在同一个操作系统的实例中运行,因此内核或应用程序的缺陷可能影响到其它进程。操作系统级虚拟化是一种在服务器操作系统中使用的轻量级的虚拟化技术,内核通过创建多个虚拟的操作系统实例(内核和库)来隔离不同的进程,不同实例中的进程完全不了解对方的存在。比较著名的有 Solaris Container [2],FreeBSD Jail 和 OpenVZ 等。

这种分类并不是绝对的,一个优秀的虚拟化软件往往融合了多项技术。例如 VMware Workstation 是一个著名的全虚拟化的 VMM,但是它使用了一种被称为动态二进制翻译的技术把对特权状态的访问转换成对影子状态的操作,从而避免了低效的 Trap-And-Emulate 的处理方式,这与超虚拟化相似,只不过超虚拟化是静态地修改程序代码。对于超虚拟化而言,如果能利用硬件特性,那么虚拟机的管理将会大大简化,同时还能保持较高的性能。
分享到:
评论

相关推荐

    基于VMware虚拟化技术结合华为超融合的私有云计算平台搭建.pdf

    虚拟化技术能够充分利用服务器资源,减少服务器的运维成本,同时也是构建云计算平台的关键基础。 在本文中,以VMware虚拟化技术和华为超融合一体机相结合的方式,介绍了如何搭建中小型企业的私有云计算平台。文章...

    计算机虚拟化技术及应用

    4. **先进的x86平台虚拟化技术**:Xen支持半虚拟化模式,提供了良好的性能和灵活性。 5. **开源项目**:作为开源软件,Xen拥有庞大的社区支持,可以免费获取并使用。 #### 六、Xen与评估准则的对应关系 根据Xen在...

    虚拟化管理平台技术规范

    - **与底层虚拟化软件的接口**:支持多种虚拟化技术,增强平台的兼容性和可扩展性。 - **与上层云管理平台的接口**:促进云资源的统一管理,实现多云环境下的资源优化。 - **与业务平台的接口**:确保虚拟化资源能够...

    《云计算与虚拟化技术》.pdf

    《云计算与虚拟化技术》是一本深入探讨现代IT领域中两个关键概念的资源,对于学习和理解这些技术的读者来说非常有价值。云计算是信息技术的重要里程碑,它改变了我们使用计算资源的方式,而虚拟化技术则是实现云计算...

    Xen虚拟化技术

    着重介绍了在x86平台上Xen半虚拟化技术提供的用以控制和管理虚拟机的内核接口,以及相关的原理和操作应用,包括半虚拟化技术的基本机制和策略,Xen的子系统及与安全相关的应用模块。, (1)基本机制和策略,即Xen半...

    云计算虚拟化技术

    ### 云计算虚拟化技术知识点详解 #### 一、引言 云计算虚拟化技术是现代信息技术领域中的重要组成部分,它通过虚拟化技术实现了计算资源的有效利用和灵活分配,从而提升了数据中心的运行效率和服务质量。本文将从...

    服务器虚拟化技术与应用-PPT课件.rar

    在服务器虚拟化技术中,常见的虚拟化平台有VMware vSphere、Microsoft Hyper-V、KVM(Kernel-based Virtual Machine)和Xen等。每种平台都有其独特的优势和适用场景,例如VMware以其强大的企业级功能和兼容性闻名,...

    六大Linux虚拟化技术全面讲解

    关于Linux虚拟化技术大致上可以分为六个不同的方式。在本文中,我们将讨论实现Linux虚拟化的这六种方式,以及Linux下的多种虚拟化解决方案。  当我们讨论虚拟化解决方案的时候,常常都要提到具体厂商的具体产品,...

    虚拟化技术(vmwaer)学习课件PPT

    虚拟化技术是现代IT环境中的一项关键技术,它允许在单一硬件平台上运行多个独立的虚拟机,每个虚拟机都如同运行在自己的物理设备上一样。VMware是这个领域的领导者,其产品VMware vSphere和VCenter是企业级虚拟化...

    容器技术-虚拟化的简介.pptx

    3、虚拟化的发展史:虚拟化技术的发展可以追溯到60年代的大型机上虚拟技术已经有所应用,1999年在小型机上出现逻辑分区的应用,2000年x86平台虚拟技术开始出现,2001年x86平台虚拟化技术在服务器上应用。 4、虚拟化...

    基于云计算的多平台虚拟化集成管理系统.pdf

    标题《基于云计算的多平台虚拟化集成管理系统》指出,本文讨论的是一套集成管理系统,它将云计算与多平台虚拟化技术相结合,形成一个高效的计算环境。云计算是一种通过互联网提供动态可伸缩的虚拟化资源的服务模式。...

    嵌入式设备虚拟化技术

    首先,计算机领域的虚拟化技术可以分为五个主要方向:平台虚拟化、资源虚拟化、计算机集群、应用虚拟化和桌面虚拟化。本文关注的平台虚拟化,是指使用管理软件(如Hypervisor)创建多个虚拟的硬件环境,并允许客户...

    LXC容器虚拟化技术研究.docx

    然而,LXC容器虚拟化技术也存在一些缺点,例如不支持多种类型的操作系统,不具备跨平台的移植性等。 LXC容器虚拟化技术是当前虚拟化技术的热门话题之一,它可以提供高效、安全、灵活的虚拟化解决方案,广泛应用于...

    基于虚拟化技术的云计算平台架构研究.pdf

    【基于虚拟化技术的云计算平台架构研究】 在信息化飞速发展的今天,云计算作为一种新兴的计算模式,已经成为全球科技领域的焦点。虚拟化技术是云计算的核心基石,它为云计算平台提供了高效、灵活的基础架构,使得...

    虚拟化技术教学教案大全

    第1章虚拟化技术概述 1.1 虚拟化技术概念 1.2 虚拟化技术发展史 1.3虚拟化技术的分类 1.4传统基础架构模式 1.5虚拟基础架构模式 第2章 主流虚拟化技术 2.1服务器虚拟化 2.2存储虚拟化 2.3网络虚拟化 2.4主流虚拟化...

    北京大学虚拟化技术PPT

    虚拟化技术是现代信息技术领域中的一个关键概念,它在云计算、数据中心管理、服务器整合、软件定义基础设施等方面发挥着重要作用。北京大学的这门课程显然旨在深入探讨这一技术的各个方面。在这个PPT中,我们可以...

Global site tag (gtag.js) - Google Analytics