Nested KVM

Nested KVM

在Intel处理器上,KVM使用Intel的vmx(virtual machine eXtensions)来提高虚拟机性能,即硬件辅助虚拟化技术。如果一台虚拟机能够和物理机一样支持”vmx”,那么就可以在这台虚拟机上再次安装虚拟机。Nested KVM是一个可通过内核参数来启用的功能。它能够使一台虚拟机具有物理CPU特性,支持vmx或者svm(AMD)硬件虚拟化。

物理服务器开启Nested KVM支持

ubuntu14.04

  • 打开/etc/default/grub,把”kvm-intel.nested=1”追加到GRUB_CMDLINE_LINUX
# cat /etc/default/grub | grep GRUB_CMDLINE_LINUX
GRUB_CMDLINE_LINUX="apparmor=0 nomodeset noautogroup kvm-intel.nested=1"
update-grub
  • 重启Hostreboot
  • 检查是否使能Nested KVM
$ cat /sys/module/kvm_intel/parameters/nested
Y

Y代表使能Nested KVM

创建一台支持vmx的虚拟机

如果你使用libvirt管理虚拟机,需要修改虚拟机xml中的CPU的定义。

  • CPU定义 1
  <cpu mode='custom' match='exact'>
    <model fallback='allow'>Nehalem</model>
    <feature policy='require' name='vmx'/>
  </cpu>

这种方式为虚拟机定义需要模拟的CPU类型Nehalem,并且为CPU添加vmx特性。

  • CPU定义 2
  <cpu mode='host-model'>
    <model fallback='allow'/>
  </cpu>
  • CPU定义 3
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='2' threads='2'/>
  </cpu>

后两种CPU定义,CPU穿透,在虚拟机中看到的vcpu与物理机的CPU是同样的配置,这种方式的缺点在于如果要对虚拟机进行迁移,迁移的目的服务器硬件配置必须与当前物理机一样。

如果使用qemu命令行启动虚拟机,那么可以简单的添加-enable-kvm -cpu qemu64,+vmx

然后,启动虚拟机,查看cpuinfo的配置cat /proc/cpuinfo

--- snip ---
Model name:            Intel Core i7 9xx (Nehalem Class Core i7)
Stepping:              3
CPU MHz:               2394.456
BogoMIPS:              4788.91
Virtualization:        VT-x
Hypervisor vendor:     KVM
Virtualization type:   full
--- snip ---
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi flexpriority ept vpid fsgsbase bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap

Reference

http://www.rdoxenham.com/?p=275
http://www.linuxidc.com/Linux/2015-05/117026.htm
https://www.kernel.org/doc/Documentation/virtual/kvm/nested-vmx.txt

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值