CPU虚拟化技术分为软件虚拟化和硬件虚拟化

在虚拟机技术中,不再对底层的硬件资源进行划分,而是部署一个统一的Host系统。在Host系统上,加装了Virtual Machine Monitor,虚拟层作为应用级别的软件而存在,不涉及操作系统内核。虚拟层会给每个虚拟机模拟一套独立的硬件设备,包含CPU、内存、主板、显卡、网卡等硬件资源,在其上安装所谓的Guest操作系统。最终用户的应用程序,运行在Guest操作系统中。 硬件辅助的虚拟化似乎比BT技术更好。如果BT技术可以让虚拟机的性能达到物理机的80%,那么硬件辅助虚拟化(HVM)可以让虚拟机的性能达到物理机的85%左右。当然,这个中间转换还是需要的,但是直接由硬件来完成,仅此而已。,,1、硬件辅助虚拟化:硬件辅助虚拟化(HVM)简而言之,就是物理平台本身为拦截和重定向特殊指令提供硬件支持,甚至新的硬件也会提供额外的资源,帮助软件实现关键硬件资源的虚拟化,从而提升性能。可以理解为CPU额外增加了一个环-1环,专门为虚拟机运行提供。以X86平台的虚拟化为例,支持虚拟化技术的X86 CPU有专门优化的指令集来控制虚拟进程。,通过这些指令集,VMM将很容易地把客户端运行在受限模式下。一旦客户端尝试访问物理资源,硬件将暂停客户端的操作,并将控制权返回给VMM进行处理。VMM还可以使用硬件的虚拟化增强机制,将客户端在受限模式下对某些特定资源的访问从硬件重定向到VMM指定的虚拟资源。整个过程不需要暂停客户端的运行和VMM软件的参与。,由于虚拟化硬件可以提供全新的架构,可以支持操作系统直接在其上运行,无需二进制转换,从而降低了相关的性能开销,大大简化了VMM设计,使VMM能够按照通用标准编写,性能更强。,需要注意的是,硬件虚拟化技术是一套解决方案。一个完整的情况需要CPU、主板芯片组、BIOS和软件的支持,比如VMM软件或者一些操作系统本身。即使只有CPU支持虚拟化技术,有了VMM软件,也会比完全不支持虚拟化技术的系统有更好的性能。鉴于虚拟化的巨大需求和硬件虚拟化产品的广阔前景,英特尔一直在努力改进和加强其硬件虚拟化产品线。,自2005年底以来,英特尔在其处理器产品线中推广了英特尔虚拟化技术(英特尔虚拟化技术)虚拟化技术的应用,并发布了一系列采用英特尔虚拟化技术的处理器产品,包括台式机的奔腾和酷睿系列、服务器的至强和安腾安腾。英特尔不断优化硬件虚拟化的性能,并在每一代处理器架构中添加新的虚拟化技术。,目前,从台式机上的酷睿i3/5/7到服务器端的E3/5/7/9,几乎都支持英特尔VT技术。可以说,英特尔VT很可能在不久的将来成为所有英特尔处理器的标准配置。当然,AMD的CPU也支持虚拟化技术。,,2、软件虚拟化:纯软件虚拟化,顾名思义,就是使用纯软件的方法拦截和模拟对现有物理平台(往往不支持硬件虚拟化)上的物理平台的访问。常见的软件虚拟机,如QEMU,通过纯软件模拟X86平台处理器的取值、解码和执行,客户端的指令不直接在物理平台上执行。因为所有的指令都是由软件模拟的,所以性能往往很差,但是不同架构平台的虚拟机可以在同一个平台上模拟。,VMWare的软件虚拟化使用动态二进制翻译(BT)技术。与QEMU不同,BT是加速虚拟化的解决方案之一,加速虚拟化的另一个常见解决方案是硬件辅助虚拟化技术。BT允许客户端的指令在虚拟机监控器的可控范围内直接运行在物理平台上。,但是客户端指令在运行前会被虚拟机监控器扫描,突破虚拟机监控器限制的指令会被可以直接在物理平台上运行的安全指令动态替换,或者被对虚拟机监控器的软件调用替换。这样做的好处是仿真性能相比纯软件有了很大的提升(仿真简单来说就是通过一个软件来造假,可能不存在;虽然虚拟化意味着通过切割或其他方式虚拟化这个设备来提供一定程度的服务),但它也失去了跨平台虚拟化的能力。,采用BT技术,Guest的用户空间在CPU环3上运行,Guest的内核空间在CPU环1上运行,Host的内核空间在CPU环0上运行。BT监控CPU环1,随时将Guest内核的调用转换为特权指令调用。当然CPU环1还没有使用,BT技术大大提升了虚拟化性能。,但是,BT有一个很大的缺点,就是不能跨平台。模拟器QEMU可以模拟各种CPU架构平台,如PowerPC、ARM,不考虑底层硬件;然而,英国电信无法做到这一点。英国电信严重依赖底层架构。比如底层架构是X86,只能用X86 CPU创建虚拟机。,在纯软件虚拟化解决方案中,VMM在软件套件中的位置是传统意义上的操作系统的位置,而操作系统的位置是传统意义上的应用程序的位置。这种转变将不可避免地增加系统的复杂性。软件栈越来越复杂,意味着这些环境很难管理,这使得系统的可靠性和安全性更难保证。有不懂的请咨询vsping科技了解。,
,在虚拟机技术中,不再对底层的硬件资源进行划分,而是部署一个统一的Host系统。在Host系统上,加装了Virtual Machine Monitor,虚拟层作为应用级别的软件而存在,不涉及操作系统内核。虚拟层会给每个虚拟机模拟一套独立的硬件设备,包含CPU、内存、主板、显卡、网卡等硬件资源,在其上安装所谓的Guest操作系统。最终用户的应用程序,运行在Guest操作系统中。 硬件辅助的虚拟化似乎比BT技术更好。如果BT技术可以让虚拟机的性能达到物理机的80%,那么硬件辅助虚拟化(HVM)可以让虚拟机的性能达到物理机的85%左右。当然,这个中间转换还是需要的,但是直接由硬件来完成,仅此而已。,,

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《CPU虚拟化技术分为软件虚拟化和硬件虚拟化》
文章链接:https://zhuji.vsping.com/497658.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。