記得之前就有人問過 「能不能在一個虛擬機上運行虛擬機」,答案固然是能夠的,Xen HVM, KVM, VMware, Qemu 等 Hypervisor 均可以這樣嵌套虛擬,不過因爲性能低下實際用處不大。在 VMware ESXi 虛擬機上運行虛擬機,被稱爲多層虛擬或者嵌套虛擬機(Nested VMs)。若是隻有一臺電腦想測試多節點 OpenStack 環境的話,使用 VMware ESXi 虛擬幾個運行 KVM Hypervisor 的 OpenStack 計算節點是個不錯的辦法。VMware ESXi 5.0 默認狀況下不支持嵌套虛擬,因此在 VMware ESXi 虛擬機裏安裝完 KVM 之後會發現 KVM 雖然能裝但不可用:css
# kvm-ok INFO: Your CPU does not support KVM extensions KVM acceleration can NOT be used
解決辦法很簡單:一、修改 VMware ESXi 的設置;二、修改對應虛擬機的設置。vim
登錄 VMware ESXi 控制檯打開 VMware ESXi 5.0 的 SSH 服務(默認 SSH 服務是關閉的),而後用 ssh 登錄 VMware ESXi 後在 config 文件中最後加入 vhv.allow = 「TRUE」 一行:centos
# vi /etc/vmware/config libdir = "/usr/lib/vmware" authd.proxy.vim = "vmware-hostd:hostd-vmdb" 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" authd.soapServer = "TRUE" vmauthd.server.alwaysProxy = "TRUE" vhv.allow = "TRUE"
重啓 VMware ESXi 後編輯虛擬機選項(須要先關閉虛擬機),打開 Edit virtual machine settings 對話框,在 options 頁面的 General Options 選項裏把 Guest Operating System 的類型換成 Other 裏面的 VMware ESxi 5.x,如圖:ssh
最後啓動虛擬機後再 kvm-ok 一下就能夠看到 KVM 能夠用了:性能
# kvm-ok INFO: /dev/kvm exists KVM acceleration can be used
相關閱讀:
在 CentOS 上安裝和配置 KVM.
在 VMware ESXi 上安裝 Minix.
在 VMware ESXi 虛擬機上運行不一樣的 Hypervisor 能夠看看 VMware 的 Running Nested VMs.測試