在 Azure 實驗室服務中啟用巢狀虛擬化

巢狀虛擬化支援 Azure 實驗室服務中的實驗室,其中包含多個虛擬機 (VM) 環境。 您可以為多個 VM 環境準備實驗室範本。 使用者不需要在其實驗室 VM 上啟用巢狀虛擬化,或在其上安裝巢狀 VM。 當您發佈實驗室時,每個實驗室使用者都有已包含巢狀虛擬機的實驗室 VM。

必要條件

  • 具有有效訂用帳戶的 Azure 帳戶。 如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶
  • Azure 實驗室方案。 如果您還沒有實驗室計劃,請遵循快速入門:設定資源以建立實驗室中的步驟。

如需巢狀虛擬化的概念、考慮和建議,請參閱 Azure 實驗室服務中的巢狀虛擬化。

注意

巢狀虛擬化不支援 Hyper-V 以外的虛擬化應用程式。 這包括任何需要硬體虛擬化擴充功能的軟體。

重要

在建立實驗室時,針對虛擬機大小選取 [大型] (巢狀虛擬化)[中] (巢狀虛擬化)。 巢狀虛擬化無法運作。否則為 。

啟用巢狀虛擬化

若要在範本 VM 上啟用巢狀虛擬化,請先使用遠端桌面 (RDP) 用戶端連線到 VM。 接著,您可以執行 PowerShell 腳本或使用 Windows 工具來套用設定變更。

重要

建議您搭配 Windows 11 使用巢狀虛擬化。 您可以在 Windows 用戶端 OS 上安裝 Hyper-V 時,利用所建立的「預設交換器」。 當您需要對網路設定進行額外控制時,您應該在 Windows Server 作業系統上使用巢狀虛擬化。

您可以使用 PowerShell 腳本在 Azure 實驗室服務的範本 VM 上設定巢狀虛擬化。 下列步驟會引導您瞭解如何使用 實驗室服務 Hyper-V 腳本。 腳本適用於 Windows 11。

  1. 請遵循下列步驟來 連線並更新範本電腦

  2. 以 管理員 istrator 身分啟動 PowerShell

  3. 您可能必須變更執行原則,才能成功執行腳本。 執行以下命令:

    Set-ExecutionPolicy bypass -force
    
  4. 下載並執行腳本,以啟用 Hyper-V 功能和工具。

    Invoke-WebRequest 'https://aka.ms/azlabs/scripts/hyperV-powershell' -Outfile SetupForNestedVirtualization.ps1
    .\SetupForNestedVirtualization.ps1
    

    注意

    腳本可能需要重新啟動 VM。 如果是,請從 Azure 實驗室服務網站 停止並啟動範本 VM,然後重新執行腳本,直到您在輸出中看到 腳本完成 為止。

  5. 別忘了重設執行原則。

    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 連線:

  1. 在實驗室 VM 1 上,新增靜態對應:

    Add-NetNatStaticMapping -NatName "LabServicesNat" -Protocol TCP -ExternalIPAddress 0.0.0.0 -InternalIPAddress 192.168.0.102 -InternalPort 22 -ExternalPort 23
    
  2. 在實驗室 VM 2 上,使用 SSH 連線:

    ssh user1@10.0.0.8 -p 23
    

啟用從實驗室 VM 2 或其巢狀 VM 到巢狀實驗室 VM 1-2 的 RDP 連線:

  1. 在實驗室 VM 1 上,新增靜態對應。

    Add-NetNatStaticMapping -NatName "LabServicesNat" -Protocol TCP -ExternalIPAddress 0.0.0.0 -InternalIPAddress 192.168.0.103 -InternalPort 3389 -ExternalPort 3390
    
  2. 在實驗室 VM 2 或其巢狀 VM 上,使用 RDP 連線至 10.0.0.8:3390

    重要

    在使用者名稱前面包含 ~\ 。 例如,~\Administrator~\user1

疑難排解

這些建議可能會解決一些常見問題。

Linux VM 只會顯示黑色畫面

執行下列步驟來驗證巢狀 VM 組態:

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 網路的範圍內。

    • 請嘗試啟用 Hyper-V DHCP 防護路由器防護

      Get-VMNetworkAdapter * | Set-VMNetworkAdapter -RouterGuard On -DhcpGuard On
      

注意

您無法使用 ping Hyper-V VM 到主機 VM 的命令。 若要測試因特網連線能力,請啟動網頁瀏覽器,並確認網頁已正確載入。

無法啟動 Hyper-V VM

當您建立實驗室時,您可以選擇建立非系統管理員使用者。 若要能夠啟動或停止 Hyper-V VM,您必須將這類使用者新增至 Hyper-V 管理員 istrators 群組。 如需 Hyper-V 和非系統管理員使用者的詳細資訊,請參閱 非系統管理員使用者

在範本 VM 上設定巢狀虛擬化之後,您可以使用 Hyper-V 建立巢狀虛擬機。 請參閱 Microsoft 評估中心 查看可用的作業系統和軟體。