據說以前不提供這個功能是因為微軟認為不需要
但 Windows Server 2016 要開始支援 Container, 所以不得不提供巢狀虛擬化的功能
要使用巢狀虛擬化, 必須滿足/留意以下條件:
- 實體 Virtualization Host 的 CPU 必須支援 VT-x 、EPT
- Guest Hypervisor VM 必須啟用 vCPU Virtualization Extensions
- Guest Hypervisor VM 提供給 Guest VM 的網卡必須啟用 MAC Address Spoofing
- Guest Hypervisor VM 必須為 Generational 2
- Guest Hypervisor VM Configuration Version 必須為 8.0
- Guest Hypervisor VM 不可使用 Dynamic Memory
- Guest Hypervisor VM 無法進行 Runtime Memory Resize
建立一個 Windows Server 2016 的 Guest Hypervisor VM
用 CoreInfo 檢查會發現這個 Guest VM 不支援虛擬化
此時先將他關機
再在實體 OS 上執行以下 PowerShell 指令 (TestVM 為 Guest Hypervisor VM 的 Name)
$VMName = 'TestVM'
Set-VMProcessor -VMName $VMName -ExposeVirtualizationExtensions $true
Set-VMNetworkAdapter -VMName $VMName -MacAddressSpoofing on
再將 Guest Hypervisor VM 開機用 CoreInfo 檢查會發現已經具有虛擬化能力
安裝 Hyper-V Role 時也能成功
便可以開始巢狀虛擬化之路了
*. 可以多層巢狀虛擬化, 就像 Inception 一樣進入多層夢境...
沒有留言:
張貼留言