在 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、开启ESXI服务器 ssh服务 2、修改 VMware ESXi 的设置;3、修改对应虚拟机的设置。
1、登录 esxi 选中左边服务器ip节点--》右边安全配置文件--》右上角属性
1、修改 VMware ESXi 的设置;
用 ssh 登陆 VMware ESXi 服务器shell, 后在 /etc/vmware/config文件中最后加入 vhv.enable = "TRUE" 一行:
[root@localhost:~] vi /etc/vmware/config libdir = "/usr/lib/vmware" authd.proxy.nfc = "vmware-hostd:ha-nfc" authd.proxy.nfcssl = "vmware-hostd:ha-nfcssl" authd.proxy.vpxa-nfcssl = "vmware-vpxa:vpxa-nfcssl" authd.proxy.vpxa-nfc = "vmware-vpxa:vpxa-nfc" authd.fullpath = "/sbin/authd" vhv.enable = "TRUE"
修改完成配置后重启VMware ESXi 物理机器才能生效!
2、修改对应虚拟机的设置。
重启 VMware ESXi 后编辑虚拟机选项(需要先关闭虚拟机),打开“编辑虚拟机设置”对话框,在“选项”页面的“客户机操作系统”选项里把“版本”的类型换成“其它”里面的 “VMware ESxi 6.x”,如图:
最后启动虚拟机后再执行egrep -c '(vmx|svm)' /proc/cpuinfo 一下就可以看到结果为非0了, KVM 可以用了:
# egrep -c '(vmx|svm)' /proc/cpuinfo