在 Azure Lab Services 中啟用巢狀虛擬化
重要
Azure 實驗室服務將於 2027 年 6 月 28 日淘汰。 如需詳細資訊,請參閱 淘汰指南。
巢狀虛擬化支援 Azure 實驗室服務中的實驗室,其中包含多個虛擬機器 (VM) 環境。 您可以為多個 VM 環境準備實驗室範本。 使用者不需要在其實驗室 VM 上啟用巢狀虛擬化,或在其上安裝巢狀 VM。 當您發佈實驗室時,每位實驗室使用者都會有一部已包含巢狀虛擬機器的實驗室 VM。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶。
- 具有管理實驗室權限的 Azure 帳戶,例如實驗室建立者、擁有者、參與者或 實驗室服務參與者等 Azure RBAC 角色。 深入了解 Azure Lab Services 內建角色和指派範圍 (部分機器翻譯)。
- Azure 實驗室計畫。 如果您還沒有實驗室計畫,請按照快速入門:設定資源以建立實驗室 (部分機器翻譯) 中的步驟操作。
如需巢狀虛擬化的相關概念、考量和建議,請參閱 Azure Lab Services 中的巢狀虛擬化。
注意
Hyper-V 以外的虛擬化應用程式不支援巢狀虛擬化。 這包括任何需要硬體虛擬化延伸模組的軟體。
重要
在建立實驗室時,請選取 [大型 (巢狀虛擬化)] 或 [中型 (巢狀虛擬化)] 作為虛擬機器大小。 否則,將無法使用巢狀虛擬化。
啟用巢狀虛擬化
若要在範本 VM 上啟用巢狀虛擬化,您必須先使用遠端桌面 (RDP) 用戶端來連線到 VM。 然後,您可以執行 PowerShell 指令碼或使用 Windows 工具來套用設定變更。
重要
建議您搭配 Windows 11 使用巢狀虛擬化。 您可以在 Windows 用戶端 OS 上安裝 Hyper-V 時,利用所建立的「預設交換器」。 當您需要對網路設定進行額外控制時,您應該在 Windows Server 作業系統上使用巢狀虛擬化。
重要
Azure 實驗室服務將於 2027 年 6 月 28 日淘汰。 如需詳細資訊,請參閱 淘汰指南。
您可以使用 PowerShell 指令碼,在 Azure Lab Services 的範本 VM 上設定巢狀虛擬化。 下列步驟將引導您如何使用 Lab Services Hyper-V 指令碼。 指令碼適用於 Windows 11。
請依照下列步驟,連線到範本電腦並進行更新。
以系統管理員身分啟動 PowerShell。
您可能必須變更執行原則,才能成功執行指令碼。 執行以下命令:
Set-ExecutionPolicy bypass -force
下載並執行指令碼,以啟用 Hyper-V 功能和工具。
Invoke-WebRequest 'https://aka.ms/azlabs/scripts/hyperV-powershell' -Outfile SetupForNestedVirtualization.ps1 .\SetupForNestedVirtualization.ps1
注意
指令碼可能要求重新啟動 VM。 若是如此,請從 Azure 實驗室服務網站停止並啟動範本 VM,並重新執行指令碼,直到您在輸出中看到指令碼已完成為止。
別忘了重設執行原則。
Set-ExecutionPolicy default -force
範本 VM 現在已設定為與巢狀虛擬化搭配使用。 您可以在其內部建立 VM。 建立新的 Hyper-V VM 時,請使用指令碼指定的切換。
連線至另一個實驗室 VM 中的巢狀 VM
需要額外的設定,才能從一個實驗室 VM 上的巢狀 VM 連線到另一個實驗室 VM 中裝載的巢狀 VM。 使用 Add-NetNatStaticMapping PowerShell Cmdlet,將靜態對應新增至 NAT 執行個體。
注意
您無法使用 ping
命令來測試與巢狀 VM 的連線。
注意
靜態對應僅適用於您使用私人 IP 位址。 實驗室使用者所連線的 VM 必須是實驗室 VM,或使用進階網路時,VM 必須位於相同的網路上。
範例案例
請考慮以下的實驗室設定範例:
實驗室 VM 1(Windows Server 2022、IP 10.0.0.8)
- 巢狀 VM 1-1 (已允許 Ubuntu 20.04、IP 192.168.0.102、SSH)
- 巢狀 VM 1-2 (Windows 11、IP 192.168.0.103、啟用及允許遠端桌面)
實驗室 VM 2 (Windows Server 2022、IP 10.0.0.9)
- 巢狀 VM 2-1 (已允許 Ubuntu 20.04、IP 192.168.0.102、SSH)
- 巢狀 VM 2-2 (Windows 11、IP 192.168.0.103、啟用及允許遠端桌面)
啟用從實驗室 VM 2 連線到巢狀實驗室 VM 1-1 的 SSH 連線:
在實驗室 VM 1 上,新增靜態對應:
Add-NetNatStaticMapping -NatName "LabServicesNat" -Protocol TCP -ExternalIPAddress 0.0.0.0 -InternalIPAddress 192.168.0.102 -InternalPort 22 -ExternalPort 23
在實驗室 VM 2 上,使用 SSH 連線:
ssh user1@10.0.0.8 -p 23
啟用從實驗室 VM 2 或其巢狀 VM 連線到巢狀實驗室 VM 1-2 的 RDP 連線:
在實驗室 VM 1 上,新增靜態對應。
Add-NetNatStaticMapping -NatName "LabServicesNat" -Protocol TCP -ExternalIPAddress 0.0.0.0 -InternalIPAddress 192.168.0.103 -InternalPort 3389 -ExternalPort 3390
在實驗室 VM 2 或其巢狀 VM 上,使用 RDP 連線至
10.0.0.8:3390
。重要
在使用者名稱前面包含
~\
。 例如,~\Administrator
或~\user1
。
疑難排解
這些建議可能會解決一些常見問題。
Linux VM 只會顯示黑色畫面
執行下列步驟來驗證您的巢狀 VM 設定:
檢查您用於巢狀 VM 的 Hyper-V 虛擬機器世代。 某些 Linux 發行版本不適用於第 1 代 Hyper-V VM。
深入了解 Hyper-V 中支援的客體作業系統。
Hyper-V 未啟動。錯誤: The virtual machine is using processor-specific xsave features not supported
當實驗室用戶將 Hyper-V VM 保留在儲存狀態時,就會發生此錯誤。 您可以在 Hyper-V 管理員中以滑鼠右鍵按一下 VM,然後選取 [刪除儲存狀態]。
警告
刪除儲存狀態表示任何未儲存的工作將會遺失,但儲存至磁碟的任何項目則會保持不變。
當 Hyper-V VM 已關閉且 VHDX 檔案損毀時,就會發生此錯誤。 如果實驗室使用者建立 VDHX 檔案的備份,或儲存快照集,他們可以從該點還原 VM。
建議您設定將 Hyper-V VM 自動關機動作設為關機。
Hyper-V 太慢
增加 Hyper-V 管理員中指派給 Hyper-V VM 的 vCPU 和記憶體數目。 vCPU 總數不能超過主機 VM (實驗室 VM) 的核心數目。 如果您使用可變記憶體的預設選項,請提高指派給 VM 的記憶體數量下限。 如果您使用可變記憶體,則指派的記憶體數量上限可能會超過主機 VM 的記憶體數量。 此方法在只需要其中一個 Hyper-V VM 上完成密集作業時,能夠有更大的彈性。
如果您針對實驗室使用中型 (巢狀虛擬化) VM 大小,請考慮改用大型 (巢狀虛擬化) VM 大小,讓每部實驗室 VM 有更多的計算資源。
巢狀 VM 的網際網路連線無法運作
確認您已依照先前的步驟啟用巢狀虛擬化。 請考慮使用 PowerShell 指令碼選項。
如果您使用的是 Windows Server,請檢查主機 VM (實驗室 VM) 是否已安裝 DHCP 角色。
不支援以 DHCP 伺服器身分執行實驗室 VM。 請參閱 是否可以在虛擬網路中部署 DHCP 伺服器?。 變更實驗室 VM 的設定可能會導致其他實驗室 VM 發生問題。
檢查 Hyper-V VM 的網路介面卡設定。
將 DNS 伺服器和 DHCP 伺服器的 IP 位址設定為 168.63.129.16。
如果客體 VM IPv4 位址已手動設定,請確認其位於連線到 Hyper-V 交換器之 NAT 網路的範圍內。
-
Get-VMNetworkAdapter * | Set-VMNetworkAdapter -RouterGuard On -DhcpGuard On
注意
您無法使用從 Hyper-V VM 到主機 VM 的 ping
命令。 若要測試網際網路連線,請啟動網頁瀏覽器,並確認網頁已正確載入。
無法啟動 Hyper-V VM
當您建立實驗室時,您可以選擇建立非系統管理員使用者。 若要能夠啟動或停止 Hyper-V VM,您必須將這類使用者新增至 Hyper-V 系統管理員群組。 如需 Hyper-V 和非系統管理員使用者的詳細資訊,請參閱 非系統管理員使用者。
相關內容
現在您已在範本 VM 上設定巢狀虛擬化,您可以使用 Hyper-V 建立巢狀虛擬機器。 請參閱 Microsoft 評估中心來查看可用的作業系統和軟體。