《KVM实战:原理、进阶与性能调优》 —1.2.2 软件虚拟化和硬件虚拟化

举报
华章计算机 发表于 2019/11/24 18:36:57 2019/11/24
【摘要】 本节书摘来自华章计算机《KVM实战:原理、进阶与性能调优》一书中第1章,第1.2.2节,作者是任永杰 程舟。

1.2.2 软件虚拟化和硬件虚拟化

1.软件虚拟化技术

软件虚拟化,顾名思义,就是通过软件模拟来实现VMM层,通过纯软件的环境来模拟执行客户机里的指令。

最纯粹的软件虚拟化实现当属QEMU。在没有启用硬件虚拟化辅助的时候,它通过软件的二进制翻译仿真出目标平台呈现给客户机,客户机的每一条目标平台指令都会被QEMU截取,并翻译成宿主机平台的指令,然后交给实际的物理平台执行。由于每一条都需要这么操作一下,其虚拟化性能是比较差的,同时其软件复杂度也大大增加。但好处是可以呈现各种平台给客户机,只要其二进制翻译支持。

2.硬件虚拟化技术

硬件虚拟化技术就是指计算机硬件本身提供能力让客户机指令独立执行,而不需要(严格来说是不完全需要)VMM截获重定向。

以x86架构为例,它提供一个略微受限制的硬件运行环境供客户机运行(non-root mode),在绝大多数情况下,客户机在此受限环境中运行与原生系统在非虚拟化环境中运行没有什么两样,不需要像软件虚拟化那样每条指令都先翻译再执行,而VMM运行在root mode,拥有完整的硬件访问控制权限。仅仅在少数必要的时候,某些客户机指令的运行才需要被VMM截获并做相应处理,之后客户机返回并继续在non-root mode中运行。可以想见,硬件虚拟化技术的性能接近于原生系统,并且,极大地简化了VMM的软件设计架构。

Intel从2005年就开始在其x86 CPU中加入硬件虚拟化的支持—Intel Virtualization Technology,简称Intel VT。到目前为止,在所有的Intel CPU中,都可以看到Intel VT的身影。并且,每一代新的CPU中,都会有新的关于硬件虚拟化支持、改进的feature加入。也因如此,Intel x86平台是对虚拟化支持最为成熟的平台,本书将以Intel x86平台为例介绍KVM的虚拟化。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。