2017-05-12 19 views
5

मेरी पहले से ही आभासी मेजबान में, विकल्प विकल्प -enable-kvm -m 1024 पारित करने के लिए कोशिश कर रहा है, असफल हो जायेगी:नेस्टेड वर्चुअलाइजेशन: नेस्टेड वर्चुअलाइजेशन में 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 

शायद नेस्टेड वर्चुअलाइजेशन डीबग करने की विधि केवल नंगे धातु में काम करती है। तो, मैं केवीएम के अंदर से केवीएम को कैसे सक्षम करूं (समर्थन का समर्थन)?

अतिरिक्त जानकारी:

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: अगर kvm समर्थन वर्तमान मेजबान (यानी, यह आभासी मशीन में काम करता है) कर में सक्षम किया गया है

# 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

परीक्षण करने के लिए:

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 काम नहीं करेगा। नंगे धातु मशीन में कार्रवाई की आवश्यकता है।

संबंधित मुद्दे