Linux找出CPU是否支持KVM的Intel VT/AMD-V虚拟化

时间:2020-01-09 10:42:29  来源:igfitidea点击:

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

/proc/cpuinfo文件

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

是否使用64位CPU /系统?

  • lm如果看到lm标志,则表示您拥有64位Intel或者AMD cpu。

我有硬件虚拟化支持吗?

  • vmx Intel VT-x,在BIOS中启用了虚拟化支持。
  • svm AMD SVM,在BIOS中启用了虚拟化。

我是否具有硬件AES/AES-NI高级加密支持?

  • " 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 lscpu命令找到虚拟化AMD-V支持

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

验证Intel或者AMD 64位CPU

输入以下grep命令:

grep -w -o lm /proc/cpuinfo | uniq

有关更多信息,请参阅我们的教程"在Linux上查找处理器(CPU)是64位/32位"。

lscpu命令

lscpu命令显示Linux服务器上的CPU体系结构信息:

lscpu

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

  • 启用了Intel扩展页表支持,可以更快地仿真来宾页表。
  • vpid英特尔虚拟处理器ID。在来宾之间进行上下文切换时,无需进行昂贵的TLB刷新。
  • " tpr_shadow"和" flexpriority"英特尔功能可减少访问任务优先级寄存器时对虚拟机管理程序的调用,这在运行某些类型的SMP来宾时会有所帮助。
  • vnmi英特尔虚拟NMI可帮助解决来宾中的选定中断事件。

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

  • npt AMD嵌套页表,类似于Intel EPT。
  • lbrv AMD LBR虚拟化支持。
  • svm_lock AMD SVM锁定MSR。
  • nrip_saveAMD SVM next_rip保存。
  • tsc_scale AMD TSC缩放支持。
  • vmcb_clean AMD VMCB清除位支持。
  • flushbyasid支持AMD ASID刷新。
  • decodeassistsAMD解码助手支持。
  • pausefilterAMD过滤暂停拦截。
  • 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。