在 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