虚拟技术总结

来源:互联网 发布:手绘头像软件是哪款 编辑:程序博客网 时间:2024/06/10 04:07

  支持虚拟技术的处理器有一个广义指令集(extra instruction set),代号为Virtual Machine Extensions,或者简称VMX。VMX为CPU带来了10条新的虚拟指令:VMPTRLD、VMPTRST、VMCLEAR、VMREAD、VMWRITE、VMCALL、VMLAUCH、VMRESUME、VMXOFF和VMXON。
  在虚拟技术下有两种工作模式:根(root)模式和非根(non-root)模式。一般来说,只有虚拟控制软件(被成为是Virtual Machine Monitor,VMM)工作在根模式。
  实际的硬件平台通过VMM与各虚拟机打交道,VMM是建立在处理器、芯片组硬件平台上的一层系统软件,其作用是允许多操作系统共享共同的硬件平台,并且允许应用程序不经修改即能运行在多VM环境中。
  软件在进入虚拟模式之前,首先要执行VMXON指令,然后才能成为VMM软件。VMM软件能够通过VMLAUNCH指令进入每一个虚拟机器,若要退出则使用VMRESUME指令。VMM软件若想结束虚拟模式,则使用VMXOFF指令。下面是具体的操作细节:
 

  带有虚拟技术的处理器具有额外的指令集,叫做Virtual Machine Extensions,简称VMX。VMX给CPU带来了10个新的虚拟专用指令:VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMWRITE, VMCALL, VMLAUCH, VMRESUME, VMXOFF and VMXON
    基于硬件和网络虚拟化技术,自主开发的VMM(虚拟监控机)产品(基于KVM/XEN/LXC系统),这是公司产品线Iaas平台产品线的核心部分。
    在linux内核上开发,基于分布式/并行计算及大规模的网络环境下实现VMM。

虚拟化原理
    虚拟机是对真实计算环境的抽象和模拟,VMM 需要为每个虚拟机分配一套数据结构来管理它们状态,包括虚拟处理器的全套寄存器,物理内存的使用情况,虚拟设备的状态等等。VMM 调度虚拟机时,将其部分状态恢复到主机系统中。并非所有的状态都需要恢复,例如主机 CR3 寄存器中存放的是 VMM 设置的页表物理地址,而不是 Guest OS 设置的值。主机处理器直接运行 Guest OS 的机器指令,由于 Guest OS运行在低特权级别,当访问主机系统的特权状态(如写 GDT 寄存器)时,权限不足导致主机处理器产生异常,将运行权自动交还给 VMM。此外,外部中断的到来也会导致 VMM 的运行。VMM 可能需要先将 该虚拟机的当前状态写回到状态数据结构中,分析虚拟机被挂起的原因,然后代表 Guest OS 执行相应的特权操作。最简单的情况,如Guest OS 对 CR3 寄存器的修改,只需要更新虚拟机的状态数据结构即可。一般而言,大部分情况下,VMM 需要经过复杂的流程才能完成原本简单的操作。最后 VMM 将运行权还给 Guest OS,Guest OS 从上次被中断的地方继续执行,或处理 VMM “塞”入的虚拟中断和异常。这种经典的虚拟机运行方式被称为 Trap-And-Emulate,虚拟机对于 Guest OS 完全透明,Guest OS 不需要任何修改,但是 VMM 的设计会比较复杂,系统整体性能受到明显的损害。

Red Hat产品和技术总裁Paul Cormier表示:“KVM最大的好处就在于它是与Linux内核集成的。未来几年人们的关注焦点仍然集中在hypervisor上。hypervisor是操作系统的一项功能,自然能够被用户所接受。微软和Red Hat操作系统的不同中间件和管理功能将起到重要的作用。” 

    从Linux 2.6.20开始内核中已经开始集成KVM。因此,由Fedora社区开发的Fedora也开始支持KVM。Linux 2.6.20之后的Linux发行版本的内核中也都将KVM作为基本的hypervisor。 

0 0
原创粉丝点击