建立 Nested VMs 最大的用途大多是用於實驗目的,一般使用者不會有這麼多的機器來試驗一些未實作的虛擬機功能,小弟也是如此。
針對一些試驗性的測試不免都是使用虛擬機來測試是比較方便,但如果要測試虛擬環境呢?
以下圖的架構為例,如果想要測試 Hyper-V 的虛擬環境功能就會遇到在 Guest 中再建立 Sub-Guest 出現 CPU 無法支援的問題
如上圖在 Hyper-V 上的虛擬化其實僅是半虛擬化,無法將 CPU 完整的虛擬化完成,即使是 Server 2012 R2 Hyper-V 3.0 R2 亦是如此,如果要玩 Nested VMs 還是要借助 VMware 來實現,VMware 不管是 vCenter , ESXi , Workstation 都具有完全虛擬化的能力。
在進行模擬之前,必須確認實體機的 CPU 必須支援 VT-x ,多數的 Intel CPU 如 i3 / 5 / 7 都具備此功能,而 AMD 則部分支援。
ESXi 5.5 Nested 設定
setp.1 在主體安裝好 ESXi 5.5 之後,編輯 /etc/vmware/config 加入以下
shell# vi /etc/vmware/config vhv.enable = "TRUE"
如果是5.0 以下請使用 vhv.allow = “TRUE”
setp.2 建立你所需要的 Guest ,Windows Hyper-V / ESXi 都可以。ESXi 安裝前必須先將設定加入後再安裝。
然後找到 Guest 設定檔 *.vmx 進行編輯
vi /vmfs/volumes/datastore1/Win2k12R2_clean/Win2k12R2_clean.vmx hypervisor.cpuid.v0 = FALSE
或是使用 vSphere Client 來加入 hypervisor.cpuid.v0 = FALSE
setp.3 檢查 VT-x 的支援設定為 「自動」
setp.4 趕緊到 Guest 裡面安裝 Hyper-V 看看
在未設定時,勾選角色 Hyper-V 就會出現不支援錯誤,現在已經可以勾選並安裝 SubGuest 囉!!
參考資料
Nesting Hyper-V 2012 R2 on ESXi 5.5