最新的Windows Server 2016雲端作業系統所建構的Hyper-V虛擬化平台,已經能夠原生內建支援巢狀式虛擬化運作的機制,善用這個機制,管理人員只要利用少量的實體伺服器,就能夠建構出複雜的測試研發環境。
在伺服器虛擬化運作環境中,談到「巢狀式虛擬化」(Nested Virtualization)的運作環境時,大家通常都會想到VMware vSphere虛擬化解決方案。沒錯,在過去的Hyper-V虛擬化平台中,要建構出「巢狀式虛擬化」的運作環境,確實非常困難並且難以達成。現在,透過最新發行的Windows Server 2016雲端作業系統,所建構的Hyper-V虛擬化平台便能原生內建支援「巢狀式虛擬化」運作機制。
簡單來說,在過去舊版Hyper-V虛擬化平台運作架構中,最底層Hyper-V Hypervisor虛擬化管理程序,會完全管控「虛擬化擴充功能」(Virtualization Extensions)的部分,也就是圖1中「最下方往上箭頭」的部分。
|
▲圖1 舊版Hyper-V虛擬化平台運作架構(不支援巢狀式虛擬化)。(圖片來源:Virtualization Blog - Windows Insider Preview: Nested Virtualization) |
同時,Hyper-V Hypervisor並不會將底層硬體輔助虛擬化功能,傳遞給運作於上層的客體作業系統,所以在舊版的Hyper-V虛擬化平台上很難實作出巢狀式虛擬化的運作環境。
現在,透過最新Windows Server 2016雲端作業系統所建置的Hyper-V虛擬化平台,Hyper-V Hypervisor虛擬化管理程序已經可以順利地將「虛擬化擴充功能」(也就是底層硬體輔助虛擬化技術)傳遞給Hyper-V虛擬化平台上運作的客體作業系統。
因此,當Hyper-V虛擬化平台上運作的客體作業系統為Windows Server 2016時,因為能夠順利接收到由底層所傳遞過來的硬體輔助虛擬化技術,所以便能啟用Hyper-V虛擬化功能並建立VM虛擬主機,達成VM虛擬主機中再生出VM虛擬主機的巢狀式虛擬化運作架構,如圖2所示。
|
▲圖2 新版Hyper-V虛擬化平台運作架構(支援巢狀式虛擬化)。(圖片來源:Virtualization Blog - Windows Insider Preview: Nested Virtualization) |
此外,一般對於巢狀式虛擬化技術的認知,僅止於建立測試研發環境上具備方便性而已,通常在線上營運的運作環境中並不會使用到巢狀式虛擬化技術。
然而,在新版Windows Server 2016中Hyper-V虛擬化平台支援巢狀式虛擬化技術,並非只是為了達到Nested VM這種VM虛擬主機再生出VM虛擬主機,方便建立測試研發環境的目的而已。
在新一代Windows Server 2016雲端作業系統運作環境中,同時支援Windows Containers及Hyper-V Container這兩種容器技術運作環境,其中「Hyper-V Container」容器技術運作環境的部分,便是在VM虛擬主機中再運作Container容器環境,達到更進一步的容器技術隔離運作環境。
事實上,Hyper-V Container的容器技術運作環境,便是透過Hyper-V巢狀式虛擬化技術所達成的,如圖3所示。
|
▲ 圖3 Windows Containers與Hyper-V Containers運作架構示意圖。(圖片來源:TechNet Wiki - Windows Containers vs. Hyper-V Containers in Windows Server 2016) |
了解Hyper-V巢狀式虛擬化
在開始實作Hyper-V巢狀式虛擬化機制之前,先了解建立Hyper-V巢狀式虛擬化的運作環境需求以及相關限制:
Hyper-V主機(Hyper-V Hypervisor)
‧ 運作Hyper-V巢狀式虛擬化技術的實體伺服器,在CPU處理器硬體輔助虛擬化技術的部分,必須採用支援「Intel VT-x及EPT」虛擬化擴充功能的CPU處理器才行。