amd 虚拟化怎么开_楼主告诉你--CPU虚拟化是啥玩意儿?真香

虚拟化并不是一个新的技术,早在20世纪60年代的IBM大型机系统中就层涉及过这个话题的内容。到现在,全球x86服务器虚拟化市场预计在2016年将达到56亿美元规模(来自Gartner)。
云少在接下来的几期文章中,就虚拟化的基础知识,通过几个大的板块的形式,带大家一起总结回顾虚拟化的基础知识。
那么,接下来就带来今天的内容——CPU虚拟化。

CPU虚拟化是什么?

CPU虚拟化指的是将单个物理CPU虚拟化成多个虚拟CPU供虚拟机使用。虚拟CPU分时复用物理CPU,由虚拟机监控器(Virtual Machine Monitor,VMM)对虚拟CPU分配时间片,并同时对虚拟CPU的状态进行管理。

CPU虚拟化三种实现方式

基于全虚拟化的CPU虚拟化
基于半虚拟化的CPU虚拟化
基于硬件辅助的CPU虚拟化
下面我们将对其逐个介绍。

基于全虚拟化的CPU虚拟化

在虚拟化技术刚刚出现的时候,大家依旧遵循“模拟”二字。尽可能的用软件模拟一个物理主机所需要的硬件设备。当虚拟机要执行一行代码时,VMM会将此指令拦截,拦截之后会将此指令发送至BT翻译器(也叫二进制翻译器)。经过翻译的指令这样一来,每个虚拟机的特权指令都需要VMM进行翻译,虚拟机的隔离和封装性得到了保证。
但是翻译过程会很耗费物理机的计算资源,效率很低。人们开始想办法提高CPU利用的效率。这时候就出现了基于半虚拟化的CPU虚拟化。

e7f9db6182a993fcaf0b3764d3d35d20.png

优劣势分析

不需要修改Guest OS,x86指令在虚拟机层次上得到了保证;对VMM和虚拟机之间的内存空间进行保护,实现了虚拟机之间的隔离存在频繁的VMM与虚拟机之间的上下文切换开销,性能大打折扣。

基于半虚拟化的CPU虚拟化

为了解决全虚拟化开销较大的问题,半虚拟化技术应用而生。半虚拟化在虚拟机操作系统和虚拟层之间增加了一个特殊指令的过渡模块,通过修改虚拟机操作系统的内核,将执行特殊敏感指令替换为对虚拟化层进行超级调用的方式来达到此目的。除CPU之外,虚拟化层也对内存操作诸如内存管理、中断处理、时间同步提供了超级调用的接口。
选用基于半虚拟化的CPU虚拟化,能使虚拟机使用CPU如同在物理机上使用CPU一样。对于开源的系统我们可以对其内核指令替换,那么对于Windows操作系统,这样闭源的操作系统,这种方式就吃不开了。

b0d545536a9d0c722252b249bda6c18b.png

优劣势分析:

使Guest OS的相关操作都可以在底层硬件上直接实现,获得与本地物理CPU相近的性能。但是需要开源操作系统的支持,安全性,可移植性较差。

基于硬件的CPU虚拟化技术

随着虚拟化技术的快速发展,硬件厂商也逐渐关注了起来。这其中十分有名的便是Intel和AMD,他们针对虚拟化环境对硬件进行了优化。对于这个优化,大家怎么理解起来好理解一点呢,大家可以理解成软件层的下移。当虚拟机要执行一条特权指令时,会引发一个中断,虚拟机会被挂起并且CPU会分配给VMM。接下来会检查引发虚拟机中断的指令,并根据被挂起时所保存的信息,CPU硬件模仿虚拟机的状态并执行相应特权指令,操作完毕后VMM会恢复虚拟机的状态并继续执行。原本是软件进行的操作,通过硬件模拟实现,极大的分担了虚拟化层的压力。

729a72cb6ff59dcdb96e13e664694eb5.png

优劣势分析:

优点是不需要修改客户机的OS,在大部分情况下也不需要进行二进制翻译;此种方法大大减少开销,指令集的变革也使得虚拟机之间的资源共享更加流畅;并且可以提供非常接近于原生环境的虚拟环境性能。但是此种CPU虚拟化技术需要硬件设备支持,成本较高。
Intel VT-x不光对以上的过程进行了优化,还针对虚拟化环境开发了很多指令集:

Intel VT FlexMigration

针对虚拟机迁移开发了—英特尔虚拟化灵活迁移技术(Intel VT FlexMigration),开启此项功能后,会将高级代次的IntelCPU的高级指令集屏蔽,使两个CPU运行一些基本的指令,这样便实现来了工作负载的无缝迁移。管理程序就能够在迁移池内的所有服务器中建立一套一致的指令,实现工作负载的无缝迁移。并且由此技术的支持可以实现多代次CPU共建统一的服务器资源池;并且可以实现基于英特尔处理器的当前服务器与未来服务器之间的无缝迁移。

6e15f1dd49a95a8cacc8c84231638b48.png

Intel VT APICv(中断虚拟化)

此项功能的全称是——Advanced Programmable Interrupt Controller Virtualization,即高级可编程

中断控制器虚拟化

对于这个功能的讲解,大家首先要了解虚拟机中断和VM exit是什么。中断有两种类型,一种是外部中断,来自于外部设备的中断,I/O输入输出的。第二种是内部中断,这种中断是CPU时钟的中断。

支持VT-x技术的CPU有两种运行模式,VMX模式和非VMX模式。VMX模式就是支持VT技术的主要模式,而非VMX模式则与不支持VT-x技术的CPU运行模式完全相同。而VMX模式又分为两种操作模式,VMXroot模式和为VMXnon-root模式,VMXroot模式是提供给VMM使用的,在这种模式下可以调用VMX指令集,VMM用以创建和管理虚拟机。而VMXnon-root模式就是虚拟机运行的模式,这种模式不支持VMX指令集。下图主要描述的是VMexit过程。

7f288d50fdd1f64e213bc11f3e5ecc78.png

APICv优化的便是内部中断。现在,Ivy Bridge-EP引入的APICv就主要针对的是内部中断:虚拟机处理IO中断的时候需要不断访问APCI寄存器,每一次访问均需要VMM(或者Hypervisor,虚拟机管理员)进行指令截取、解码,因而导致VM exit。通常地,每一次VM exit都会带来2000~7000个时钟周期的消耗,如果存在大量的虚拟机,每个虚拟机又存在着大量的VM exit,那么虚拟化主机的效率将会大为降低。提升虚拟化IO效率的目标就在于降低VM exit。而通过APICv,原有的寄存器访问便可以在虚拟机内部完成,不再需要VM exit,因而提升了性能。

除以上之外,还有CPU虚拟化的优化技术。

HT(Hyper-Threading)超线程

在每个单位时间内,CPU只能处理一个线程(Thread)。除非有两个核心处理单元,否则要想在单位时间内处理超过一个的线程是不可能的。超线程HT(Hyper-Threading)技术是在单个核心处理单元中集成两个逻辑处理单元,也就是一个实体内核(共享的运算单元),两个逻辑内核(有各自独立的处理器状态),从而可以在单位时间内模拟双内核运作.可以提高40%的性能。

ca394426be0ba11e74d92326f387557a.png

以上便是对CPU虚拟化技术的简单介绍。下次预告——内存虚拟化技术。

CPU 绑定技术

CPU 绑定技术就是利用CPU 亲和性,把一个或多个进程绑定到一个或多个CPU上,可以在线配置,立即生效,有效解决CPU利用率严重不平均的问题。CPU 热添加技术——动态向运行中的系统添加 CPU,并且可以实现业务不中断。

CPU Nested(嵌套)

CPU Nested(嵌套)技术在虚拟机上运行虚拟机;可以将物理CPU特性全部传给虚拟机,理论上可以嵌套N多层。

vSMP(虚拟同步多进程)Virtual Symmetric Mutil-Processing

通过此功能实现了多个vCPU协同工作。实现方式是通过多个vCPU通过一个总线访问存储器,也被成为一致内存结构体系(UMA)。在存储器接口达到饱和时,扩展性有限(开启vSMP时,一个VM最多可配置 64 个vCPU)

b5d661966cc7bf255460f8c627b84e2d.png

vNUMA(虚拟非统一内存访问)vNUMA(虚拟非统一内存访问)是一种VMware虚拟机(VM)内存访问优化方式,可以消除内存带宽瓶颈。vNUMA(虚拟非统一内存访问)是一种虚拟机内存访问优化方式,可以消除内存带宽瓶颈。每个vCPU 都有自己的存储器,每个处理器也可以访问别的处理器的存储器。如果一个虚拟机有超过8个vCPU,那么vNUMA就会自动启动。

84a81cf8802192f1394c6039ac603d80.png

以上数据由云南蓝队云运营提供

36ea1344c8f8928371193b0898da14ab.png

友情链接:https://www.landui.com/?a1470 联系我们:15697044137 微信fanxc123520

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值