如何在 VMware ESXi 虛擬機(jī)上運(yùn)行 KVM
記得以前就有人問過 “能不能在一個(gè)虛擬機(jī)上運(yùn)行虛擬機(jī)”,答案當(dāng)然是可以的,Xen HVM, KVM, VMware, Qemu 等 Hypervisor 都可以這樣嵌套虛擬,不過由于性能低下實(shí)際用處不大。在 VMware ESXi 虛擬機(jī)上運(yùn)行虛擬機(jī),被稱為多層虛擬或者嵌套虛擬機(jī)(Nested VMs)。如果只有一臺(tái)電腦想測(cè)試多節(jié)點(diǎn) OpenStack 環(huán)境的話,使用 VMware ESXi 虛擬幾個(gè)運(yùn)行 KVM Hypervisor 的 OpenStack 計(jì)算節(jié)點(diǎn)是個(gè)不錯(cuò)的辦法。VMware ESXi 5.0 默認(rèn)情況下不支持嵌套虛擬,所以在 VMware ESXi 虛擬機(jī)里安裝完 KVM 以后會(huì)發(fā)現(xiàn) KVM 雖然能裝但不可用:
# kvm-ok INFO: Your CPU does not support KVM extensions KVM acceleration can NOT be used
解決辦法很簡(jiǎn)單:1、修改 VMware ESXi 的設(shè)置;2、修改對(duì)應(yīng)虛擬機(jī)的設(shè)置。
登陸 VMware ESXi 控制臺(tái)打開 VMware ESXi 5.0 的 SSH 服務(wù)(默認(rèn) SSH 服務(wù)是關(guān)閉的),然后用 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 后編輯虛擬機(jī)選項(xiàng)(需要先關(guān)閉虛擬機(jī)),打開 Edit virtual machine settings 對(duì)話框,在 options 頁面的 General Options 選項(xiàng)里把 Guest Operating System 的類型換成 Other 里面的 VMware ESxi 5.x,如圖:
最后啟動(dòng)虛擬機(jī)后再 kvm-ok 一下就可以看到 KVM 可以用了:
# kvm-ok INFO: /dev/kvm exists KVM acceleration can be used