在 VMware ESXi 虚拟机上运行虚拟机,被称为多层虚拟或者嵌套虚拟机(Nested VMs)。如果只有一台电脑想测试多节点 OpenStack 环境的话,使用 VMware ESXi 虚拟几个运行 KVM Hypervisor 的 OpenStack 计算节点是个不错的办法。
VMware ESXi 6.0 默认情况下不支持嵌套虚拟,所以在 VMware ESXi 虚拟机里安装完 KVM 以后会发现 KVM 虽然能装但不可用:
# egrep -c '(vmx|svm)' /proc/cpuinfo
0
解决办法很简单:1、修改 VMware ESXi 的设置;2、修改对应虚拟机的设置。
1、修改 VMware ESXi 的设置;
登陆 VMware ESXi 控制台打开 VMware ESXi 6.0 的 SSH 服务(默认 SSH 服务是关闭的),然后用 ssh 登陆 VMware ESXi 后在 config 文件中最后加入 vhv.enable = "TRUE" 一行:
1: [root@localhost:~] cat /etc/vmware/config
2: libdir = "/usr/lib/vmware"
3: authd.proxy.nfc = "vmware-hostd:ha-nfc"
4: authd.proxy.nfcssl = "vmware-hostd:ha-nfcssl"
5: authd.proxy.vpxa-nfcssl = "vmware-vpxa:vpxa-nfcssl"
6: authd.proxy.vpxa-nfc = "vmware-vpxa:vpxa-nfc"
7: authd.fullpath = "/sbin/authd"
8: vhv.enable = "TRUE"
9: [root@localhost:~]
最后启动虚拟机后再执行egrep -c '(vmx|svm)' /proc/cpuinfo 一下就可以看到结果为非0了, KVM 可以用了:
# egrep -c '(vmx|svm)' /proc/cpuinfo
8