VMware EVC的BIOS中(VT、XD、AES)和Monitor/Mwait功能的关系
业务环境
客户需求
开启VMware EVC 功能
遇到问题
服务器BIOS设置中的VT、XD、AES三大功能已经开启,为何配置VMware EVC时还有未开启前的报错?
解决办法
再次进入BIOS设置,将CPU的Monitor/Mwait功能设置为Enabled。
开机后再次开启EVC功能,则成功。
Monitor/Mwait与VT、XD、AES的关系
-Monitor/Mwait介绍
Monitor指令:MONITOR EAX, ECX, EDX
---设置硬件要监视的线性地址范围,并激活监视器。地址范围应该是写回内存缓存型。
Mwai指令:MwAIT EAX, ECX
---这是一个提示,允许处理器停止指令执行,并进入取决于具体版本的优化状态,直到发生某类事件。
(引用自:中国科学院青岛生物能源与过程研究所超级计算中心)
在以上两个指令的使用方式中,EAX寄存器是在Intel IA32架构中通过执行CPUID命令,把EAX作为输入参数。当EAX=0时,将返回CPU的基本信息和制造商信息;当EAX=1时,会将CPU的版本信息返回给EAX寄存器,将功能信息返回给EDX寄存器。
EDX寄存器中的功能位则将CPU支持的各项功能用1来标识支持,EDX寄存器中存放的功能信息就包括了一些功能,比如超线程、 SSSE3和SSE4.1指令以及NX/XD CPU安全功能,其中XD功能是EVC要求启用的。
-VT介绍
VT全称为Virtualization Technology,是Intel的一项虚拟化技术,有VMX root operation 和 VMX non-root operation两种模式,两种模式都支持Ring 0 ~ Ring 3 这 4 个运行级别。ESXi可以运行在VMX root operation模式下,虚拟机运行在VMX non-root operation模式下。
-XD介绍
XD全称为Excute Disable Bit,是一项数据执行保护技术,当虚拟机需要访问内存区域时,ESXi主机中一部分的内存区域被标识为从不执行,处理器将禁止在该被保护的区域内运行任何代码,这种技术可防止大多数的缓存溢出式攻击。
-AES介绍
AES 是一种针对加密计算的CPU测试。
其中,启动了Monitor/Mwait指令,CPU才能支持XD功能,在ESXi3.0以后的版本,默认启用了XD功能的支持。
假如你在以后的虚拟化环境中遇到类似的问题,并且使用了Intel的CPU,请尝试开启Monitor/Mwait功能。
社区会员评论补充:
@noxudu:遇到过一样的问题,电话咨询过华为,开了mwait就好了.
----------------
更多相关主题文章,请点击阅读原文
长按二维码关注公众号