|
首先检查 KVM host(母机)上是否打开了嵌套虚拟机功能(默认是开启的):
# modinfo kvm_intel | grep nestedparm: nested:bool# cat /sys/module/kvm_intel/parameters/nestedY如果上面的显示结果不是 Y 的话需要开启 nested:
# modprobe -r kvm-intel# modprobe kvm-intel nested=1# cat /sys/module/kvm_intel/parameters/nestedY然后在 KVM guest(虚拟机)的 xml 配置文件中加入 vmx 选项,并启动虚拟机(这里用的是 Ubuntu 官方发布的 Ubuntu KVM 镜像 ubuntu-12.04-server-cloudimg-amd64-disk1.img):
# vi nestedvm.xml...<cpu match='exact'/> <model>core2duo</model/> <feature policy='require' name='vmx'//></cpu/>...# virsh create nestedvm.xml启动虚拟机后登陆并安装 KVM,执行 kvm-ok 和 modinfo 均出现错误:
# apt-get install ubuntu-virt-server# kvm-okINFO: /dev/kvm does not existHINT: sudo modprobe kvm_intelINFO: Your CPU supports KVM extensionsKVM acceleration can be used# modinfo kvm_intelERROR: modinfo: could not find module kvm_intel这是因为我们使用的是 ubuntu-12.04-server-cloudimg-amd64-disk1.img 这个官方虚拟机镜像,这个镜像使用的是 linux 3.2.0-23-virtual 内核,缺少 KVM 模块(kvm-intel.ko),所以我们需要改为 generic 内核:
# uname -aLinux test 3.2.0-23-virtual #36-Ubuntu SMP Tue Apr 10 22:29:03 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux# apt-get install linux-generic重启后进入虚拟机执行 kvm-ok 和 modinfo 均成功:
# kvm-okINFO: /dev/kvm existsKVM acceleration can be used# modinfo kvm_intelfilename: /lib/modules/3.2.0-30-generic/kernel/arch/x86/kvm/kvm-intel.kolicense: GPLauthor: Qumranetsrcversion: 3BAF54F96ECD4B02292CAA0depends: kvmintree: Yvermagic: 3.2.0-30-generic SMP mod_unload modversions parm: vpid:boolparm: flexpriority:boolparm: ept:boolparm: unrestricted_guest:boolparm: emulate_invalid_guest_state:boolparm: vmm_exclusive:boolparm: yield_on_hlt:boolparm: fasteoi:boolparm: nested:boolparm: ple_gap:intparm: ple_window:int现在应该可以在这个虚拟机上创建另一个虚拟机了。
|
|
|
|
|
|
|