如何在 VMware ESXi 虛擬機上運行 KVM
記得以前就有人問過 “能不能在一個虛擬機上運行虛擬機”,答案當然是可以的,Xen HVM, KVM, VMware, Qemu 等 Hypervisor 都可以這樣嵌套虛擬,不過由于性能低下實際用處不大。在 VMware ESXi 虛擬機上運行虛擬機,被稱為多層虛擬或者嵌套虛擬機(Nested VMs)。如果只有一臺電腦想測試多節點 OpenStack 環境的話,使用 VMware ESXi 虛擬幾個運行 KVM Hypervisor 的 OpenStack 計算節點是個不錯的辦法。VMware ESXi 5.0 默認情況下不支持嵌套虛擬,所以在 VMware ESXi 虛擬機里安裝完 KVM 以后會發現 KVM 雖然能裝但不可用:
# kvm-ok INFO: Your CPU does not support KVM extensions KVM acceleration can NOT be used
解決辦法很簡單:1、修改 VMware ESXi 的設置;2、修改對應虛擬機的設置。
登陸 VMware ESXi 控制臺打開 VMware ESXi 5.0 的 SSH 服務(默認 SSH 服務是關閉的),然后用 ssh 登陸 VMware ESXi 后在 config 文件中最后加入 vhv.allow = “TRUE” 一行:
# 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,如圖:
最后啟動虛擬機后再 kvm-ok 一下就可以看到 KVM 可以用了:
# kvm-ok INFO: /dev/kvm exists KVM acceleration can be used