2017-05-12 97 views
5

在我已经虚拟化主机,试图通过该选项的选项-enable-kvm -m 1024,将失败:嵌套虚拟化KVM:-enable-KVM在嵌套虚拟化QEMU

qemu-system-x86_64 -vga std -enable-kvm -m 1024 -monitor telnet:localhost:9313,server,nowait -drive file=my_img.img,cache=none 
# Could not access KVM kernel module: No such file or directory 
# failed to initialize KVM: No such file or directory 

如果删除该选项-enable-kvm -m 1024,QEMU将加载(但需要永远的,因为它是用软件模拟):

qemu-system-x86_64 -vga std -monitor telnet:localhost:9313,server,nowait -drive file=my_img.img,cache=none 
# qemu running, OK, but image taking forever to load. 

当然,我的这个虚拟主机有筑巢自己的虚拟化能力。我到处都找不到有关它的信息[喜欢这里:https://docs.openstack.org/developer/devstack/guides/devstack-with-nested-kvm.html]告诉我,我必须检查的文件/sys/module/kvm_intel/parameters/nested这简直是不可用的,因为kvm-intel是不是,不能从图像中加载:

sudo modprobe kvm-intel 
# modprobe: ERROR: could not insert 'kvm_intel': Operation not supported 

调试嵌套虚拟化的方法可能只适用于裸机。 那么,如何从kvm内启用(转发支持)kvm?

附加信息:

lscpu # from inside the virtualized host 
# Architecture:   x86_64 
# ... 
# Vendor ID:    GenuineIntel 
# CPU family:   6 
# Model:     13 
# Model name:   QEMU Virtual CPU version (cpu64-rhel6) 
# Stepping:    3 
# ... 
# Hypervisor vendor:  KVM 

QEMU的ltrace

# open64("/dev/kvm", 524290, 00)     = -1 
# __errno_location()        = 0x7f958673c730 
# __fprintf_chk(0x7f957fd81060, 1, 0x7f9586474ce0, 0Could not access KVM kernel module: No such file or directory 

回答

4

要测试kvm支持在当前的主机(即,它工作在虚拟机)做启用:

grep -E "(vmx|svm)" /proc/cpuinfo 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 popcnt aes xsave avx f16c lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 tce tbm topoext perfctr_core perfctr_nb arat cpb hw_pstate npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold vmmcall bmi1 

在问题中:

grep -E "(vmx|svm)" /proc/cpuinfo | wc -l 
0 

这意味着支持被禁用,并且enable-kvm将不起作用。在裸机上的行动是必需的。