云计算知识第六讲:CPU虚拟化-阿里云开发者社区

开发者社区> 云计算> 正文
登录阅读全文

云计算知识第六讲:CPU虚拟化

简介: 虚拟化技术的分类主要有服务器虚拟化、存储虚拟化、网络虚拟化、应用虚拟化

虚拟化技术的分类主要有服务器虚拟化、存储虚拟化、网络虚拟化、应用虚拟化。

服务器虚拟化技术按照虚拟对象来分,可分为:CPU虚拟化、内存虚拟化、I/O虚拟化;

按照虚拟化程度可分为:全虚拟化、半虚拟化、硬件辅助虚拟化

将不同的虚拟化对象和程度组合,可得出9种不同的服务器虚拟化技术

首先详细介绍下服务器虚拟化之CPU虚拟化,后续讲解中再详细介绍内存虚拟化及I/O虚拟化。

  二、CPU虚拟化

  ·CPU全虚拟化技术

  主要采用优先级压缩技术(Ring Compression)和 二进制代码翻译技术(Binary Translation)。优先级压缩技术让VMM和Guest 运行在不同的特权级下。

  对X86架构而言,即VMM运行在最高特权级别Ring 0下,Guest OS 运行在Ring 1 下,用户应用运行在Ring 3下。因此 Guest OS 的核心指令无法直接下达

  到计算机系统硬件执行,而是需要经过 VMM 的捕获和模拟执行(部分难以虚拟化的指令需要通过 Binary Translation技术进行转换)。

  image.png

  ·CPU半虚拟化技术

  主要采用Hypercall 技术。Guest OS 的部分代码被改变,从而使Guest OS会将和特权指令相关的操作都转换为发给VMM的Hypercall(超级调用),由VMM继续进行处理。而Hypercall支持的批处理和异步这两种优化方式,使得通过Hypercall 能得到近似于物理机的速度。

  image.png

  ·CPU硬件辅助虚拟化技术

  目前主要有Intel 的VT-x和AMD的AMD-V这两种技术。其核心思想都是通过引入新的指令和运行模式,使VMM和Guest OS分别运行在不同模式(ROOT 模式和非ROOT模式)下,且Guest OS 运行在Ring 0 下。通常情况下,Guest OS 的核心指令可以直接下达到计算机系统硬件执行,而不需要经过VMM。当Guest OS执行到特殊指令的时候,系统会切换到VMM,让VMM来处理特殊指令。

  image.png

  CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,

  从而显著提高计算机的工作效率。

  image.png

  GuestOS负责第2级调度,即线程或进程在VCPU上的调度(将核心线程映射到相应的虚拟CPU上。)

  VMM(Virtual Machine Monitor)负责第1级调度,即VCPU在物理处理单元上的调度。

  两级调度的调度策略和机制不存在依赖关系。VMM负责物理处理器资源在各个虚拟机之间的分配和调度,本质上即把各个虚拟机中的VCPU按照一定的策略和机制调度在物理处理单元上,可以采用任意的策略来分配物理资源,满足虚拟机的不同需求。

关注“传知摩尔狮”公众号,免费领取云计算入门课程~

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

其他文章
最新文章
相关文章