Hyper-V 嵌套虛擬化解析
Hyper-V 嵌套虛擬化是一項首次隨 Windows Server 2016 和 Windows 10 發布的特點,適用於工作站及伺服器。隨著此特點的發布,Microsoft Hyper-V 虛擬化平台(hypervisor)的應用範圍得以擴展。本文將說明何謂嵌套虛擬化,並闡述 Microsoft Hyper-V 中嵌套虛擬化的使用情境、需求及限制。
什麼是嵌套虛擬化?
Microsoft Hyper-V 中的嵌套虛擬化是一項特點,可讓您在 Hyper-V 主機上運行的其他 Hyper-V 虛擬機器 (VM) 內建立虛擬機器。這些在虛擬機器內運行的虛擬機器稱為嵌套虛擬機器。請注意, 在 VMware 中亦可設定嵌套虛擬化 環境。
使用情境
以下是虛擬環境中嵌套虛擬化的一些使用情境:
Creating isolated environments. 您可以利用此特點建立透過隔離虛擬網路相互連線的嵌套虛擬機器。如此一來,您便能建立一個完全隔離的環境,且不會對您的常規虛擬機器和網路造成任何影響。Training/testing/development. 培訓對於讓新使用者或管理員熟悉軟體(或讓現有使用者或管理員熟悉新軟體)非常有用。然而,在生產環境中進行培訓可能會導致系統不穩定,甚至造成故障。透過嵌套虛擬化,您可以在嵌套虛擬機器上模擬生產環境,而不會對實際的生產環境造成任何影響。除了管理員的培訓外,品質保證專員(測試人員)和開發人員也可能需要此類環境來進行測試或開發。其優勢在於,您可以在現有的虛擬環境中使用嵌套虛擬機器來達成這些目的,而無需購買額外的專用硬體。
Building a private cloud. 部署一個配備使用者自助服務入口網站的真正私有雲,成本高昂且耗費大量人力。透過嵌套虛擬化,您可以部署一個功能性與此類雲端完全相同的擬似私有雲。例如,您可以建立一台已安裝 Hyper-V Server 的虛擬機器,並配置 256 GB 的記憶體。使用者可在安裝了 Hyper-V 的虛擬機器內部,根據需求建立並配置嵌套虛擬機器,但其記憶體使用量不得超過 256 GB。您可利用熱擴充特點,在不造成任何停機的情況下,為安裝了 Hyper-V 的虛擬機器新增記憶體及虛擬網路介面卡。
需求與限制
若要在 Hyper-V 中實作嵌套虛擬化,您應符合以下需求:
- 主機作業系統必須是 Windows Server 2016 或 Windows 10(週年更新)或更新版本。
- Hyper-V 虛擬機器必須為第 8 版或更高版本。
- 實體伺服器必須配備相容的 CPU,且該 CPU 須支援適當的虛擬化特點。
- 僅具備 VT-x 和 EPT 技術的 Intel 處理器,才支援 Windows Server 2016、Windows Server 2019 及 Windows 10 中的嵌套虛擬化功能。
- 如果您使用的是具備 AMD-V 虛擬化特點的 AMD 處理器,則必須使用 Windows Server 2022 或 Windows 11,才能支援 Hyper-V 嵌套虛擬化。
- 最新的 Windows 版本同時支援 AMD 和 Intel 處理器。
- 必須有足夠的實體記憶體來執行虛擬機器。
- 虛擬機器不應 使用動態記憶體.
- 雖然並非需求,但建議您使用 SSD 硬碟來 提升虛擬機器效能,因為磁碟速度過低會顯著降低系統效能。
對於託管嵌套虛擬機的虛擬機(嵌套虛擬機可稱為"最內層的客機"),存在以下限制:
- 檢查點 無法套用至正在運行的虛擬機器。
- 該虛擬機的即時遷移失敗。
- 執行階段記憶體調整大小功能性無法運作。
註: 與上述三項限制相關的特點 可以 供最尊貴的賓客使用。
何謂嵌套式 VT-x/AMD-V?
Intel VT-x 和 AMD-V 是處理器的指令集,可實現硬體虛擬化。當您使用嵌套虛擬化時,必須為用於嵌套的虛擬機器啟用其中一項特點。只有這樣,虛擬機器才能利用處理器的硬體虛擬化特點來執行嵌套的虛擬機器。
如何啟用 Hyper-V 嵌套虛擬化並建立嵌套虛擬機器
本節說明如何在 Windows Server 2019 中設定 Hyper-V 嵌套虛擬化。此設定流程與 Windows Server 2016 及 Windows Server 2022 相同。
設定 Hyper-V 主機
首先,您需要設定 Hyper-V 主機:
- 請準備一台配備相容 CPU、足夠記憶體及適當儲存容量的實體伺服器。
- 請確認 BIOS 中已啟用 CPU 虛擬化特點(例如 Intel VT-x)。
- 安裝 Hyper-V Server 2019、Windows Server 2019 或 Windows 10 作業系統。
- 新增 Hyper-V 伺服器角色 如果您使用的是功能齊全的 Windows 作業系統(或 在 Windows 10 中啟用 Hyper-V)。您也可以使用圖形使用者介面 (GUI) 和伺服器管理員。
部署來賓虛擬機器
接下來,您需要建立一台虛擬機器並安裝客體作業系統:
- 在 Windows Server 中建立 Hyper-V 虛擬機器 或 在 Windows 10 中建立虛擬機器.
- 在客體虛擬機器上安裝支援 Hyper-V 嵌套虛擬化的作業系統,也就是安裝 Windows 10 週年更新版或更新版本,或是 Windows Server 2016 或更新版本。
本操作指南以 Windows Server 2016 為示範對象。您亦可使用較新版本的 Windows。
設定客體虛擬機器
預設情況下,客體虛擬機的硬體虛擬化支援已停用。若您嘗試為該虛擬機新增 Hyper-V 角色,作業系統將會顯示錯誤訊息。
您只能透過 PowerShell 為客體虛擬化程式啟用硬體虛擬化。請注意,必須先關閉客體虛擬機的電源,才能執行以下指令。
- 首先請確認客體虛擬機器是否已啟用硬體虛擬化。請在主機作業系統(即安裝於實體機器上的作業系統)上執行以下指令:
Get-VMProcessor -VMName vm_name | fl *請將 vm_name 替換為您的虛擬機器名稱。在本範例中,虛擬機器的名稱是 Server2016。WIN2018 則是代表安裝了 Windows 及 Hyper-V 角色的實體機器的電腦名稱。
- 若要在客體虛擬機器內啟用硬體虛擬化,請先停止該虛擬機器,然後執行以下指令:
Set-VMProcessor -VMName vm_name -ExposeVirtualizationExtensions $true如果一切正常,輸入指令後不應顯示任何訊息。如果虛擬機器正在執行,則會顯示以下錯誤訊息:
虛擬機器網路連線
現在,您需要為虛擬機器設定網路設定。將嵌套虛擬機器連接到網路有兩種方式: MAC spoofing 以及 NAT.
- 如果透過提供對真實區域網路(LAN)的存取權限來配置嵌套虛擬機器的網路,則主機上的某個網路介面卡將會承載多個 MAC 位址——這可能會導致網路問題。這就是為什麼
MAC address spoofing必須啟用此選項(此選項預設為停用狀態)。 - 若部署了偽私有雲,則無法在虛擬機器網路中使用 MAC 位址偽造功能,您應設定
NAT在此情況下。
註: 以下將介紹這兩種方法,但我們將採用 NAT 方法來設定虛擬機器,使其使用 Hyper-V 嵌套虛擬化。
設定 MAC 位址偽造
若要使用 MAC 位址偽造功能,請在虛擬 Hyper-V 主機的網路介面卡上啟用此功能:
- 在已安裝 Hyper-V Server 的實體機器上,輸入以下指令以啟用 MAC 位址偽造:
Get-VMNetworkAdapter -VMname vm_name | Set-VMNetworkAdapter -MacAddressSpoofing On請將此處的""替換為您的虛擬機器名稱
vm_name. 在我們的情況下,它是Server2016如上所述。
- 如果您偏好使用圖形化使用者介面,請前往
VM Settings>Network adapter>Advanced features並選取Enable MAC address spoofing勾選方塊,然後按一下"確定"。
設定 NAT
NAT 只能透過 PowerShell 啟用。雖然前面的指令是在主機作業系統上執行的,但以下指令必須在客體作業系統上執行。
若要為虛擬機器網路連線啟用 NAT:
- 首先, 建立一個新的虛擬交換器.
New-VMSwitch -Name "SwitchName" -SwitchType Internal請使用您的開關名稱,而非
SwitchName. 我們正在使用NAT-Switch在本操作指南中。
- 定義 NAT 後方的子網,並啟用 NAT。該網路位址不得與您現有網路中的 IP 位址重複。在此範例中,網路名稱是
NAT-net而網路位址是192.168.2.0/24New-NetNat -Name "network_name" -InternalIPInterfaceAddressPrefix 'ip-address/netmask'
- 接著為已啟用 NAT 的介面指派 IP 位址。
執行以下指令,產生可用網卡清單以確認其名稱:
Get-NetAdapter | ft -Autosize在此範例中,連接至先前建立之虛擬交換器的虛擬網路介面卡名稱是
vEthernet (NAT-Switch).
- 現在您應為此虛擬網路介面卡設定 IP 位址,該位址必須屬於已建立的網路。嵌套虛擬機器將使用此網路介面的 IP 位址作為閘道。在本範例中,此 IP 位址為 192.168.2.1,它屬於 192.168.2.0/24 網路
Get-NetAdapter "adapter_name" | New-NetIPAddress -IPAddress ip_address -AddressFamily IPv4 -PrefixLength mask_number
設定嵌套虛擬機器
現在您可以建立並設定嵌套虛擬機器。在此操作指南中,將使用安裝了 Windows Server 2016 的虛擬機器作為嵌套虛擬機器。
- 在虛擬機的網路設定中,選取該虛擬交換器(即您剛建立的) Hyper-V 管理員.
- 請在 TCP/IP 設定中進行設定
Network Adapter Properties嵌套虛擬機的。如果虛擬網路中沒有 DHCP 伺服器,請手動指派 IP 位址、子網遮罩、預設閘道和 DNS 伺服器。
註: 請檢查您的防火牆設定,因為防火牆可能會阻擋網路連線。
您的嵌套虛擬機器現在已配置好網路,並已準備就緒。
使用 NAKIVO Backup & Replication
應備份所有虛擬機器(包括嵌套虛擬機器),以確保 Hyper-V 虛擬環境的可靠性。 NAKIVO Backup & Replication 提供 可靠的 Hyper-V 備份 透過基於影像的快速增量備份,該技術利用原生的 Hyper-V 彈性變更追蹤 (RCT) 技術。透過這些備份,您可以還原應用程式物件/檔案、立即啟動虛擬機器,或將 Hyper-V 虛擬機器還原為 VMware vSphere 虛擬機器,此外還有其他還原選項。












