Linux如何检测CPU是否支持KVM的Intel VT/AMD-V虚拟化


原文地址:Linux如何检测CPU是否支持KVM的Intel VT/AMD-V虚拟化

本分分享了如何检测自己的电脑是否支持KVM虚拟化技术,包括Intel VT虚拟化和AMD-V虚拟化。

英特尔和AMD CPU均支持虚拟化技术,该技术允许使用硬件虚拟化以安全高效的方式在x86服务器或计算机上同时运行多个操作系统。XEN,KVM,Vmware和其他虚拟化软件可以使用Intel和AMD硬件虚拟化进行完全虚拟化。换句话说,使用Intel VT或AMD-V,您可以运行未修改的来宾操作系统,例如MS-Windows,而不会出现任何问题。要运行KVM,您需要一个支持硬件虚拟化的CPU。

查看CPU详细信息 /proc/cpuinfo 

cpuinfo文件包含有关CPU的信息。这些信息包括cpu、线程、核心、套接字和非统一内存访问(NUMA)节点的数量。还有关于CPU缓存和缓存共享、家庭、模型、bogoMIPS、字节顺序和步进的信息。您需要记下以下供应商特定的cpu标志:

在检查你的电脑是否支持虚拟化先要记住几个术语:

  1. vmx – Intel VT-x,代表在BIOS中启用了虚拟化支持。
  2. svm – AMD SVM,代表在BIOS中启用了虚拟化。
  3. aes –使用Intel和AMD cpus上的高级加密标准执行加密和解密的应用程序。

检查您的硬件是否支持虚拟化的命令

使用以下命令来验证是否在您的BIOS中启用了硬件虚拟化扩展。

验证Linux上的Intel VT CPU虚拟化扩展

以root用户身份键入以下命令,以验证主机cpu是否支持Intel VT技术,并输入:

# grep --color vmx /proc/cpuinfo

示例输出:

Linux检查Intel VT-服务器是否可以运行完全虚拟化

如果输出具有vmx标志,则Intel CPU主机能够运行硬件虚拟化。

在Linux上验证AMD V CPU虚拟化扩展

以超级用户身份键入以下命令,以验证主机cpu是否支持AMD – V技术:

# grep --color svm /proc/cpuinfo

Linux如何检测CPU是否支持KVM的Intel VT/AMD-V虚拟化

同样,输出具有svm标志,然后AND CPU主机能够运行硬件虚拟化。

验证Intel或AMD 64位CPU

getconf LONG_BIT

输出"64”

lscpu命令

该命令可以查看CPU的具体信息:

Linux如何检测CPU是否支持KVM的Intel VT/AMD-V虚拟化

把全部命令放在一起查看CPU信息

egrep -wo 'vmx|ept|vpid|npt|tpr_shadow|flexpriority|vnmi|lm|aes' /proc/cpuinfo 
 
## Only show Intel CPU flags ##
egrep -wo 'vmx|ept|vpid|npt|tpr_shadow|flexpriority|vnmi|lm|aes' /proc/cpuinfo  | sort | uniq
 
## OR better use the following ##
egrep -wo 'vmx|lm|aes' /proc/cpuinfo  | sort | uniq\
| sed -e 's/aes/Hardware encryption=Yes (&)/g' \
-e 's/lm/64 bit cpu=Yes (&)/g' -e 's/vmx/Intel hardware virtualization=Yes (&)/g'

Linux如何检测CPU是否支持KVM的Intel VT/AMD-V虚拟化

其他Intel x86 CPU特定的虚拟化标志

  1. ept –启用了英特尔扩展页表支持,可以更快地模拟来宾页表。
  2. vpid–英特尔虚拟处理器ID。在来宾之间进行上下文切换时,无需进行昂贵的TLB刷新。
  3. tpr_shadowflexpriority-英特尔功能访问任务优先级注册,运行某些类型的SMP客人时,这有助于在降低呼叫到虚拟机管理程序。
  4. vnmi –英特尔虚拟NMI帮助解决来宾中的选定中断事件。

其他AMD x86 CPU特定的虚拟化标志

  1. npt – AMD嵌套页表,类似于Intel EPT。
  2. lbrv – AMD LBR虚拟化支持。
  3. svm_lock – AMD SVM锁定MSR。
  4. nrip_save – AMD SVM next_rip保存。
  5. tsc_scale – AMD TSC缩放支持。
  6. vmcb_clean – AMD VMCB清洁位支持。
  7. flushbyasid – AMD按ASID刷新。
  8. decodeassists – AMD解码助手支持。
  9. pausefilter – AMD过滤的暂停拦截。
  10. pfthreshold – AMD暂停过滤器阈值。

解决您的问题的一些技巧。

提示1:查看Linux内核消息

键入以下命令以查看是否在BIOS中启用了kvm支持:

# dmesg | less
# dmesg | grep -i kvm

提示2:检查您的BIOS设置

默认情况下,许多系统制造商在BIOS中禁用AMD或Intel硬件CPU虚拟化技术。您需要重新引导系统并在BIOS中打开它。启用后,请按照前面所述运行lscpu或grep命令,以查看是否启用了虚拟化支持: 示例输出:

$ lscpu
$ egrep -wo 'vmx|ept|vpid|npt|tpr_shadow|flexpriority|vnmi|lm|aes' /proc/cpuinfo | sort | uniq
$ egrep -o '(vmx|svm)' /proc/cpuinfo | sort | uniq

输出:

svm

提示3:XEN内核

默认情况下,如果您引导到XEN内核,则使用grep命令将不会显示svm或vmx标志。要查看是否已通过xen启用它,请输入:

cat /sys/hypervisor/properties/capabilities

您必须在输出中看到hvm标志。如果不重新启动计算机,请在BIOS中设置Virtualization。

评论

登录后评论

服务器优惠活动

Top