最新的Windows Server 2016雲端作業系統所建構的Hyper-V虛擬化平台,已經能夠原生內建支援巢狀式虛擬化運作的機制,善用這個機制,管理人員只要利用少量的實體伺服器,就能夠建構出複雜的測試研發環境。
完成Guest Hypervisor虛擬主機啟用MAC位址變更功能的組態設定後,便會發現「WS2016-Inner」Nested VM虛擬主機已經可以順利通過WS2016-Outer這台Guest Hypervisor的vSwitch虛擬網路交換器,以及HV01這台Hyper-V實體伺服器的vSwitch虛擬網路交換器進行路由,進而與實體網路環境溝通或碰觸到網際網路,如圖13所示。
|
▲圖13 Nested VM虛擬主機順利地在二層vSwitch虛擬網路交換器之間順利路由。 |
Guest Hypervisor啟用NAT機制
當Guest Hypervisor虛擬主機運作在能夠掌控的Hyper-V虛擬化平台時,便可透過上述PowerShell指令或Hyper-V管理員幫Guest Hypervisor虛擬主機啟用MAC位址變更功能,進而讓Nested VM虛擬主機能夠與實體網路環境溝通或碰觸到網際網路。
倘若Guest Hypervisor虛擬主機運作在無法掌控的Hyper-V虛擬化平台時,例如Microsoft Azure公有雲服務。或者,其他並非採用Hyper-V虛擬化解決方案的虛擬化平台,例如Amazon AWS公有雲服務、VMware vSphere虛擬化解決方案等等。
此時,便需要在Guest Hypervisor虛擬主機端,建立具備NAT功能的vSwitch虛擬網路交換器,以便屆時在Guest Hypervisor中所產生的Nested VM虛擬主機,能夠順利地與實體網路環境溝通或碰觸到網際網路。
請在Guest Hypervisor虛擬主機端執行PowerShell指令或透過Hyper-V管理員操作介面,建立類型為「內部」(Internal)的vSwitch虛擬網路交換器。
如圖14所示,透過「New-VMSwitch」的PowerShell指令建立名稱為「VM-NAT」,並且類型為內部的vSwitch虛擬網路交換器,然後透過Hyper-V管理員操作介面驗證是否建立完成。
|
▲ 圖14 建立屆時Nested VM虛擬主機對外溝通連線的vSwitch虛擬網路交換器。 |
接著,再次執行「New-NetNat」的PowerShell指令,建立屆時用於NAT運作機制中的IP網段,在本實作中建立名稱為「LocalNAT」,並且採用「192.168.100.0/24」IP網段的NAT網路環境,如圖15所示。
|
▲圖15 建立屆時用於NAT運作機制中的IP網段網路環境。 |
最後,再為剛才所建立名稱為VM-NAT的虛擬網路交換器指定所要採用的IP位址即可。在本文實作環境中,指派VM-NAT虛擬網路交換器採用「192.168.100.254」的IP位址,屆時Nested VM虛擬主機在設定網路組態時,如圖16所示便需要將預設閘道的IP位址設定為192.168.100.254後,才能順利地與實體網路環境溝通或碰觸到網際網路。
|
▲ 圖16 為VM-NAT虛擬網路交換器指派使用192.168.100.254的IP位址。 |
在Guest Hypervisor虛擬主機端進行NAT組態設定的動作執行完畢後,首先為Nested VM虛擬主機調整該網路介面卡所連接的vSwitch虛擬網路交換器,在本文實作環境中便是將WS2016-Inner虛擬主機的網路介面卡,改為連接至剛才所建立的VM-NAT虛擬網路交換器,然後在設定網路組態的部分則是指派為192.168.100.10,當然最重要的是預設閘道必須指向至192.168.100.254的IP位址。
此時,Nested VM虛擬主機便可以透過WS2016-Outer虛擬主機(也就是Guest Hypervisor的VM-NAT虛擬網路交換器)進行NAT,進而能夠碰觸到網際網路,如圖17所示。
|
▲圖17 Nested VM虛擬主機透過具備NAT功能的vSwitch虛擬網路交換器碰觸到網際網路。 |
Nested VM再生Nested VM
至此,已經順利透過新一代Windows Server 2016雲端作業系統中,原生內建的Hyper-V巢狀式虛擬化技術建立Nested VM運作環境,讓管理人員只要透過一台硬體伺服器,便能建立出「Hyper-V Host > Guest Hypervisor > Nested VM」的Hyper-V巢狀式虛擬化運作環境。
那麼,有沒有可能更進一步在Nested VM虛擬主機中再生出Nested VM虛擬主機?答案是可行的,只要遵循前述所條列的Hyper-V巢狀式虛擬化技術運作環境需求及限制,便可以讓Nested VM再生出Nested VM虛擬主機。
因為實作方式與前述的操作步驟相同所以便不再贅述,如圖18所示總共建立出四層的Hyper-V巢狀式虛擬化技術運作環境:因為實作方式與前述的操作步驟相同,所以便不再贅述,如圖18所示總共建立出四層的Hyper-V巢狀式虛擬化技術運作環境:
‧ 第1層(HV01):Hyper-V Hypervisor實體伺服器
‧ 第2層(WS2016-Outer):VM虛擬主機並擔任Guest Hypervisor
‧ 第3層(WS2016-Inner):Nested VM虛擬主機並再擔任Guest Hypervisor
‧ 第4層(WS2016-Innermost):由Nested VM再生出的Nested VM虛擬主機
|
▲圖18 由Nested VM再生出的Nested VM虛擬主機。 |
結語
透過本文的說明及實作演練,相信大家已經完全了解新一代Windows Server 2016雲端作業系統中原生內建的Hyper-V巢狀式虛擬化的強大功能,將能夠有效幫助管理人員只要利用少量的實體伺服器,即可建構出複雜的測試研發環境,有效減少過往建立測試研發環境時的困擾。
<本文作者:王偉任,Microsoft MVP 及 VMware vExpert。早期主要研究 Linux / FreeBSD 各項整合應用,目前則專注於 Microsoft 及 VMware 虛擬化技術及混合雲運作架構,部落格 weithenn.org。>