Hyper-V GPU 直通:初學者必備指南

Hyper-V 虛擬機器預設使用模擬的顯示卡,這雖足以應付基本的顯示任務,但缺乏執行 3D 渲染、機器學習推論或基於 CUDA 的運算等 GPU 加速工作負載所需的效能。Hyper-V GPU 直通功能透過將實體顯示卡直接指派給虛擬機器來解決此問題,藉此繞過模擬過程,並讓來賓作業系統能完全存取硬體 GPU。

本指南涵蓋 Hyper-V 中可用的兩種 GPU 指派方法:直接裝置指派 (DDA) 與 GPU 分割 (GPU-P)。閱讀這篇文章,了解如何滿足硬體與軟體需求、在 Windows Server 及客戶端 Windows 版本上設定各方法,以及排除常見問題。

NAKIVO 適用於 Hyper-V 的備份解決方案

NAKIVO 適用於 Hyper-V 的備份解決方案

適用於 Hyper-V 的無代理程式、具備應用程式感知能力的備份解決方案。提供防勒索軟體防護、從備份檔案即時啟動虛擬機器,以及對其他虛擬/實體平台的支援等功能。

新增功能

本指南已更新,以反映 Windows Server 2025 和近期 Windows 用戶端版本所導入的變更:

  • Windows Server 2025 將 GPU 分割 (GPU-P) 作為完全支援的企業級功能推出,讓多個虛擬機器透過以 SR-IOV 為基礎的隔離機制,共享單一實體 GPU。
  • Windows Server 2025 現已支援 GPU 分割虛擬機器的即時移轉,讓您可以在不造成虛擬機器停機的情況下維護主機。
  • 故障移轉叢集支援已擴充:GPU-P 虛擬機器可設定為叢集角色;如果有相容的 GPU,DDA 支援的虛擬機器也可以在另一個叢集節點上重新啟動。
  • RemoteFX vGPU 元件已在 Windows Server 2025 中完全移除(自 Windows Server 2019 起已淘汰)。
  • 已更新 GPU 啟用虛擬機器的疑難排解指引和備份注意事項。

什麼是 GPU 直通?

Hyper-V 虛擬機器啟動時,會取得一個模擬的視訊介面卡,由主機 CPU 負責轉譯圖形。這足以供主控台存取和基本桌面使用,但無法提供 GPU 相依工作負載所需的硬體功能:計算著色器、硬體視訊編碼、CUDA 核心或 DirectX 12 支援。

GPU 直通可消除此模擬層。Hyper-V 不會透過虛擬介面卡傳送圖形,而是在 PCI Express (PCIe) 層級將實體視訊卡指派給虛擬機器。客體作業系統會使用供應商的原生驅動程式直接與 GPU 通訊,而非透過 Hyper-V 抽象層。從虛擬機器內執行的應用程式來看,GPU 的運作方式就如同安裝在實體機器中一樣。

Hyper-V 支援兩種機制。直接裝置指派 (DDA) 會將整個實體 GPU 指派給單一虛擬機器。GPU 分割 (GPU-P) 則會將單一顯示卡分割成彼此隔離的部分,讓多個虛擬機器共享。稍後本指南將詳細介紹這兩種機制。

注意: GPU 可以整合在 CPU 晶粒上(常見於近期的 Intel 和 AMD 處理器),也可以安裝在透過 PCIe 連接至主機板的獨立視訊卡上。 GPU 直通和分割通常以獨立 GPU 為目標,不過用戶端 Windows 版本上的 GPU-P 也可搭配整合式顯示卡運作。

Hyper-V 中 GPU 直通的主要優點

透過 GPU 直通連接的實體顯示卡,可供需要在虛擬機器中使用硬體加速圖形的家庭使用者、開發人員、設計師及其他人使用。常見情境包括:

  • 執行 3D 建模、AutoCAD 製圖、工程模擬、遊戲開發和硬體加速算繪等圖形密集型應用程式;
  • 執行需要硬體加速功能的遊戲;某些遊戲若沒有實體顯示卡可能無法運作;
  • 執行運用 GPU 運算能力的機器學習 (ML) 和人工智慧 (AI) 作業量。

GPU 直通的優點包括:

  • 提升圖形效能。 虛擬機器可直接存取顯示卡,以執行要求嚴苛的應用程式或遊戲。影片播放更加流暢,並可使用最新圖形 API 進行硬體加速算繪。
  • 彈性運用硬體。 在專用工作站不切實際的情況下,單一 Hyper-V 主機可執行多部具有不同圖形作業量的虛擬機器。
  • 成本效益。 GPU 直通可透過整合作業量降低硬體成本。此功能也適用於虛擬桌面基礎結構 (VDI) 部署。

GPU 直通與 GPU 分割 (GPU-P) 的比較

Hyper-V 提供兩種將 GPU 資源指派給虛擬機器的方法:

  • 直接裝置指派 (DDA)會將整個實體 GPU 專屬指派給單一虛擬機器。虛擬機器可完整存取硬體並獲得最高效能,但其他虛擬機器無法使用該 GPU。Windows Server 2016 及更新版本的資料中心版本支援 DDA。使用 DDA 的虛擬機器無法進行即時移轉。
  • GPU 分割 (GPU-P)使用 SR-IOV 將單一實體 GPU 分割成多個彼此隔離的部分,讓多部虛擬機器共享相同硬體。每部虛擬機器都會獲得專用的 GPU 資源(記憶體、運算資源和編碼器),並受到硬體強制隔離。GPU-P 是 Windows Server 2025 中受到完整支援的企業功能,也可透過 PowerShell 用於 Windows 10/11 用戶端版本。

當作業量需要使用完整 GPU,或硬體不支援分割時,建議使用 DDA。 GPU-P 更適合需要讓多個虛擬機器(VM)獲得 GPU 加速,但無需佔用顯示卡 100% 資源的環境。此外,GPU-P 還支援 Windows Server 2025 中的即時遷移與故障移轉叢集功能,而 DDA 則不支援。

實體 GPU 可以運作於 DDA 或 GPU-P 模式,但無法同時運作於兩種模式。

需求

若要在 Hyper-V 主機上為虛擬機器配置 GPU 直通,必須滿足特定的硬體與軟體需求。並非所有顯示卡都支援此特點。

硬體需求

  • Hyper-V 主機上的 CPU 必須支援 Intel VT-d 或 AMD-V 虛擬化功能。 必須在 UEFI/BIOS 設定中啟用相應特點。
  • CPU 必須支援輸入輸出記憶體管理單元 (IOMMU)。此特點是進行 PCI Express 直通(包括 GPU 直通)的必要條件。
  • 若要在 Windows Server 2025 中進行帶有即時遷移的 GPU 分割,CPU 必須支援特定的 DMA(直接記憶體存取)追蹤功能。 Intel Sapphire Rapids(或更新版本)及 AMD EPYC Milan(或更新版本)處理器均符合此需求。
  • 需配備支援 GPU 虛擬化技術(例如 NVIDIA GRID 或 AMD MxGPU(多使用者 GPU))之 GPU 的顯示卡。這些技術因供應商而異。採用伺服器級硬體可提高成功率。 使用 PCI 中斷 (INTx) 的舊式裝置不被支援。
  • 進行 GPU 分割時,GPU 必須支援 SR-IOV(單根輸入/輸出虛擬化)。支援的型號包括 NVIDIA A2、A10、A16 及 A40 GPU。

軟體需求

  • DDA 需使用 Windows Server 2016 或更新版本。若需支援叢集與即時遷移的 GPU 分割功能,建議使用 Windows Server 2025 Datacenter。
  • 若要在客戶端系統上進行 GPU 分割,需使用 Windows 10(版本 1903 或更新)或 Windows 11。客戶端 Windows 版本不支援 DDA。
  • 必須在 Windows 中啟用 Hyper-V 角色。
  • Hyper-V 主機及虛擬機器 (VM) 來賓作業系統中必須安裝最新的 GPU 驅動程式。
  • 僅能使用第 2 代 Hyper-V 虛擬機器進行 DDA 的 GPU 直通。

限制事項與不支援的設定

請注意,在使用 GPU 直通時,以下設定 不 受支援:

  • 已啟用 Hyper-V 動態記憶體的虛擬機器無法使用 GPU 直通。 指派 GPU 之前,必須停用動態記憶體。
  • 使用 DDA 進行 GPU 直通僅適用於 Windows Server 資料中心版本。叢集環境中的 GPU 分割也需要資料中心版本。
  • 如果 Hyper-V 主機上部署了適用於 Linux 的 Windows 子系統,透過分割指派 GPU 時,虛擬機器可能會發生代碼 43 錯誤。
  • 在 Windows Server 2025 之前的版本中,GPU 虛擬機器不支援高可用性 (HA) 和虛擬機器即時移轉等叢集功能。Windows Server 2025 新增了對 GPU-P 虛擬機器即時移轉的支援,以及對 DDA 虛擬機器的故障移轉重新啟動功能。
  • GPU 指派給虛擬機器時,不支援虛擬機器儲存/還原和自動檢查點。指派 GPU 之前,請停用自動檢查點。

設定 GPU 直通:須知事項

指派 GPU 給 Hyper-V 虛擬機器時所採用的方法,取決於您的 Windows 版本,以及您需要的硬體共享程度。Microsoft 曾先後提供三種方法,目前僅有兩種仍受支援。

RemoteFX vGPU (已淘汰)。RemoteFX 從 Windows Server 2012 R2 到 Windows Server 2016 皆有提供,擴充了遠端桌面通訊協定 (RDP),可讓多部虛擬機器共享單一主機 GPU。對於無法實際為每部虛擬機器配置一張完整顯示卡的高密度 VDI 環境而言,此功能相當實用。然而,RemoteFX 將每部虛擬機器的專用視訊記憶體限制為 1 GB,並將影格速率限制為 30 FPS。由於 Hyper-V 實作中存在架構安全性漏洞,Microsoft 在 Windows Server 2019 和 Windows 10 組建 1809 中將其淘汰,並且已將其完全移除在 Windows Server 2025 中。如果您仍在執行隨附 RemoteFX 的版本,可使用專題更新移除此元件。

直接裝置指派 (DDA)。DDA 在 Windows Server 2016 中推出,取代 RemoteFX,適用於需要完整 GPU 效能的情境。它會將整個 PCIe 裝置(GPU、NVMe 磁碟機或其他介面卡)直接指派給單一虛擬機器,不進行共享,也不使用模擬層。虛擬機器會載入供應商的原生驅動程式,並可不受限制地存取視訊記憶體和影格速率。DDA 相當於 Hyper-V 版本的 VMware PCI 直通。其取捨在於彈性:只有一部虛擬機器可以使用該顯示卡;虛擬機器無法即時移轉(因為它會繫結至主機上的實體 PCIe 路徑);而且 DDA 僅適用於 Windows Server 資料中心版本。. 在 Windows Server 2025 中,使用 DDA 的虛擬機器已獲得故障移轉叢集支援,這表示如果有相容的 GPU,叢集就能在另一個節點上重新啟動虛擬機器,但仍不支援即時移轉。

GPU 分割 (GPU-P)。GPU-P 是 RemoteFX 的新一代技術。在 Windows Server 2025 上,它使用 SR-IOV 將單一實體 GPU 分割成多個彼此隔離的區塊,讓每個虛擬機器都能專用一部分運算、記憶體和編碼器資源,並由硬體強制隔離。與 DDA 不同,GPU-P 在 Windows Server 2025 資料中心版中支援即時移轉和故障移轉叢集,因此適用於需要虛擬機器移動性的生產環境。在用戶端 Windows 版本 (Windows 10 組建 1903 以上版本和 Windows 11) 上,可透過 PowerShell 使用 GPU-P,但其仰賴 WDDM 半虛擬化,而非真正的 SR-IOV 分割。主機和來賓必須執行相同的作業系統版本,而且必須手動將 GPU 驅動程式從主機複製到來賓。

實際上很簡單:如果您在 Windows Server 上需要讓單一虛擬機器使用完整的 GPU,請使用 DDA。如果多個虛擬機器需要 GPU 加速,或您需要即時移轉,請在 Windows Server 2025 上使用 GPU-P。在用戶端 Windows 上,透過 PowerShell 使用 GPU-P 是唯一受支援的方式。

在 Hyper-V 中設定 GPU 直通

請依照下列步驟準備環境並設定 Hyper-V GPU 直通。

準備設定 GPU 直通

  1. 確認您的硬體和軟體符合 GPU 虛擬化需求。
  2. 在 Hyper-V 主機的 UEFI/BIOS 中,為 CPU 啟用 Intel VT-d 或 AMD-V 虛擬化功能。
  3. 啟用 IOMMU 。IOMMU 設定的位置會因主機板和 UEFI/BIOS 版本而異。在某些情況下,該設定會位於 North Bridge 組態中。啟用 Intel VT-d 或 AMD-V 時,也可能會一併啟用 IOMMU。請檢查 UEFI/BIOS 中的 Memory Remap 功能。

    您可以在 Hyper-V 主機上使用下列 PowerShell 命令 (以系統管理員身分執行),確認是否已啟用 IOMMU:

    (Get-VMHost).IovSupport; (Get-VMHost).IovSupportReasons

    True = 已啟用; False = 已停用。

  4. 移除將使用 GPU 直通的虛擬機器的所有檢查點。

    若要停用虛擬機器的自動檢查點,請執行:

    Set-VM -Name VMName -AutomaticStopAction TurnOff

Windows Server

中的 GPU 直通 以下步驟會使用 DDA,在 Windows Server 上將實體 GPU 指派給虛擬機器。

  1. 設定虛擬機器的快取類型和 MMIO(記憶體對應 I/O)空間限制。請以系統管理員身分執行此 PowerShell 命令:
    Set-VM -Name VMName -GuestControlledCacheTypes $True -LowMemoryMappedIoSpace 3Gb -HighMemoryMappedIoSpace 33280Mb

    您也可以分別執行三個命令:

    Set-VM -GuestControlledCacheTypes $true -VMName YourVMName
    Set-VM -LowMemoryMappedIoSpace 3Gb -VMName YourVMName
    Set-VM -HighMemoryMappedIoSpace 33280Mb -VMName YourVMName

    這些限制會定義記憶體視窗,讓虛擬機器能夠存取裝置。您可以使用 Microsoft 提供的 機器設定檔腳本 計算最佳 MMIO 值。不同的視訊介面卡所需的正確值各不相同。如果啟動虛擬機器時看到資源不足的訊息,請將其關機並調整這些值。MMIO 空間中 32 位元以上部分使用的值為 33280 MB(32 位元 MMIO 視窗適用 3 GB)。

  2. 識別您要直通的顯示卡之 PCI Express 位置路徑。

    您可以在裝置管理員中找到此資訊。執行下列命令以開啟裝置管理員:

    Devmgmt.msc

    在裝置管理員中:

    • 在"顯示卡"下方,以滑鼠右鍵按一下目標顯示卡,然後按一下 "屬性"。
    • 選取 "詳細資訊" 索引標籤。
    • 從屬性下拉式選單中選取 "位置路徑",然後複製該值。

    Viewing the location path of a video card in Device Manager

    或者,使用 PowerShell 擷取位置路徑:

    Get-PnpDevice | Where-Object {$_.Present -eq $true} | Where-Object {$_.Class -eq "Display"}|select Name,InstanceId

    以及:

    Get-PnpDevice -Class Display | ForEach-Object { Write-Output "$($_.FriendlyName) has a device id of $($_.DeviceId) and is located at $($_ | Get-PnpDeviceProperty DEVPKEY_Device_LocationPaths | Select-Object -ExpandProperty Data | Where-Object { $_ -like "PCIROOT*" })"; }

    輸出應包含類似下列的字串:

    "PCIROOT(0)#PCI(0300)#PCI(0000)"

    Identifying the GPU location path in PowerShell

  3. 在裝置管理員中停用顯示卡。以滑鼠右鍵按一下視訊介面卡,然後按一下 "停用裝置"。Disabling a video card
  4. 在 PowerShell 中卸載已停用的顯示卡:
    Dismount-VmHostAssignableDevice -LocationPath "PCIROOT(0)#PCI(0300)#PCI(0000)" -Force

    未安裝分割區驅動程式時,必須使用 -Force 旗標。裝置供應商可能會提供此選用的安全性緩解驅動程式。如果您打算安裝此驅動程式,請先安裝,再從主機卸載 PCIe 裝置。

    上述使用的位置路徑僅供說明之用; 將其替換為您的特定值。

  5. 將 顯示卡指派給虛擬機器:
    Add-VMAssignableDevice -VMName VMName -LocationPath "PCIROOT(0)#PCI(0300)#PCI(0000)"
  6. 開啟虛擬機器電源,並確認實體顯示卡與預設的微軟 Hyper-V 視訊介面卡一同出現在 裝置管理員 中。
  7. 在虛擬機器的客體作業系統中安裝顯示卡的驅動程式。從 NVIDIA 或 AMD 官方網站下載驅動程式。
  8. 若要從虛擬機器中中斷顯示卡連線,請停止虛擬機器並執行:
    Remove-VMAssignableDevice -VMName YourVMName -LocationPath $locationPath

    然後將 GPU 重新連線至 Hyper-V 主機:

    Mount-VMHostAssignableDevice -LocationPath $locationPath

。以下內容據此翻譯。

試試 NAKIVO Backup & Replication 搭配 Hyper-V

試試 NAKIVO Backup & Replication 搭配 Hyper-V

立即開始您的 15 天免費試用,體驗無代理、具備應用程式感知能力的 Hyper-V 備份功能,並享有即時完整與細粒度還原,以及內建的勒索軟體防護。

Windows 10 和 11 中的組態

在用戶端 Windows 版本(Windows 10 組建 1903 及更新版本、Windows 11)中,DDA 無法使用。支援的方法是 GPU 分割:

  1. 確認您的顯示卡是否支援 GPU 分割。在 Windows 10 中,請執行:
    Get-VMPartitionableGpu

    在 Windows 11 中 :

    Get-VMHostPartitionableGpu
  2. 使用 Add-VMGpuPartitionAdapter Cmdlet 將 GPU 分割指派給虛擬機器。不過,您必須將 GPU 驅動程式從 Hyper-V 主機複製到虛擬機器。主機和客體上的驅動程式版本必須相同。Easy-GPU-PV 指令碼可自動執行此程序。請將指令碼下載為 ZIP 檔案,並解壓縮至 Hyper-V 主機上的資料夾。此指令碼運用 Windows Subsystem for Linux (WSL2) 和 Windows Sandbox 所使用的 GPU 半虛擬化機制。
  3. 以系統管理員身分開啟 PowerShell,並允許執行指令碼:
    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
  4. 關閉虛擬機器。執行指令碼,將 GPU 驅動程式從主機複製到虛擬機器:
    .\Update-VMGpuPartitionDriver.ps1 -VMName YourVMName -GPUName "AUTO"
  5. 設定虛擬機器以使用 GPU 分割:
    Set-VM -VMName VMName -GuestControlledCacheTypes $true -LowMemoryMappedIoSpace 1Gb -HighMemoryMappedIoSpace 32Gb
    Add-VMGpuPartitionAdapter -VMName YourVMName
  6. 更新 Hyper-V 主機上的 GPU 驅動程式後,也請更新虛擬機器中的驅動程式。虛擬機器必須關閉電源:
    .\Update-VMGpuPartitionDriver.ps1 -VMName YourVMName -GPUName "AUTO"
  7. 若要從虛擬機器移除 GPU 分割:
    Remove-VMGpuPartitionAdapter -VMName "YourVMName"

    成功完成組態後,虛擬機器內的 裝置管理員 中應會出現相應的顯示卡。您也會在客體 Windows 佈景主題中看到桌面透明等視覺效果。

請注意,即使完成 GPU 直通組態,某些遊戲和應用程式仍可能無法執行。若應用程式強制執行硬體相容性檢查,而客體作業系統回報的 GPU 資訊與主機上的資訊不同,就可能發生此情況。有些應用程式也會偵測到自己正在虛擬機器內執行。

如果相依於 OpenGL 的應用程式無法在虛擬機器中運作,安裝 OpenGL 相容性套件 可能會有幫助。

在 Windows 10 或 11 上使用 GPU 分割時,裝置管理員中列出的顯示卡會顯示為 Microsoft 驅動程式,而非實體 GPU 型號。NVIDIA 控制台等廠商專用工具無法在虛擬機器中使用。

若您未先中斷連線就關閉 RDP 工作階段,可能會發生另一個問題。在此情況下,虛擬機器可能會失去對 GPU 記憶體的存取權,而依賴 GPU 的應用程式會回報視訊記憶體無法存取。透過 RDP 重新連線無法解決此問題; 您必須重新啟動受影響的應用程式。

GPU 直通問題疑難排解

如果視訊卡指派給虛擬機器後無法正常運作,請檢查下列項目:

  • 確認已安裝最新的 GPU 驅動程式,且沒有與驅動程式相關的錯誤。開啟"裝置管理員"並檢查裝置狀態。請從供應商網站(NVIDIA、AMD、Intel)安裝驅動程式,而不要依賴 Windows Update。
  • 確認已為虛擬機器配置足夠的 MMIO 空間。
  • 確認供應商正式支援在您的特定圖形介面卡上使用 GPU 直通。並非所有消費級視訊卡都支援此功能。有些供應商只在較高階的型號上提供 GPU 直通。
  • 確認在虛擬機器內執行的應用程式支援您的視訊卡及其驅動程式。
  • 啟用下列群組原則,以允許透過遠端桌面使用 GPU:
    Computer ConfigurationTemplatesComponentsDesktop ServicesDesktop Session HostSession Environmenthardware graphics adapters for all Remote Desktop Services sessions

    將此值設為 已啟用 。

  • 如果您看到類似 "作業失敗,因為找不到物件" 或 錯誤 12 的錯誤,請將下列登錄機碼新增至:

    HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsHyperV

    值:

    RequireSecureDeviceAssignment = 0 (REG_DWORD)

    RequireSupportedDeviceAssignment = 0 (REG_DWORD)

    您可以使用 PowerShell 設定這些值:

    Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\HyperV" -Name "RequireSecureDeviceAssignment" -Type DWORD -Value 0 -Force
    Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\HyperV" -Name "RequireSupportedDeviceAssignment" -Type DWORD -Value 0 -Force
  • 若要略過虛擬機器內的 Hypervisor 驅動程式檢查,請使用 Enterprise Windows 驅動程式開發套件 (WDK):
    • 將 WDK ISO 掛接至虛擬機器的虛擬 DVD 磁碟機。
    • 執行 E:LaunchBuildEnv.cmd (其中 E: 是虛擬 DVD 磁碟機),然後執行 PowerShell 。
    • 瀏覽至包含 Remove-HypervisorChecks.ps1 指令碼的目錄。
    • 執行命令以移除視訊驅動程式的 Hypervisor 檢查(以 NVIDIA 為例):
      ./Remove-HypervisorChecks.ps1 -Nvidia -DriverPath "C:\path-to-driver\package.exe"
    • 等待指令碼執行完成。
    • 將產生的驅動程式(patched-driver.zip)複製到虛擬機器,啟用測試模式並安裝驅動程式。
  • 如果遇到 錯誤 43 ,請確認 GPU 及其音效控制器(NVIDIA 顯示卡通常包含音訊裝置)已一併指派給虛擬機器。
  • 如果執行下列項目時出現錯誤:
    Update-VMGpuPartitionDriver.ps1 -VMName “YourVMName” -GPUName “AUTO”

    這可能是由虛擬硬碟上有多個分割區(容量卷)所造成。 請嘗試在非系統磁碟分割區上設定 hidden 屬性,或先備份資料,再暫時移除這些磁碟分割區。或者,請在 PowerShell 指令碼或命令中明確指定系統磁碟分割區。

GPU 虛擬機器的備份與還原考量

標準 Hyper-V 備份工作流程假設虛擬機器具有可攜性:您可以將其還原至任何相容的主機並啟動。啟用 GPU 的虛擬機器打破了這項假設。無論是透過 DDA 還是 GPU-P 指派,虛擬機器都會與實體硬體連結,而復原目標上可能沒有該硬體,或其設定可能不完全相同。這使得備份過程簡單明瞭,但復原則取決於硬體是否可用。

GPU 本身也帶來資料一致性方面的考量。備份軟體會擷取磁碟狀態,但無法對 GPU 影片記憶體的內容建立快照。對於執行大量 GPU 工作負載的虛擬機器,這表示即使磁碟資料符合應用程式一致性,備份所反映的仍是硬體狀態的 離線 或 與崩潰一致 檢視。若要盡量縮小差距,請使用搭配 卷影複本服務 (VSS) 的生產檢查點,或使用支援 VSS 的備份工具,確保從 GPU 記憶體寫入磁碟的資料能以一致的狀態擷取。

對啟用 GPU 的虛擬機器而言,選擇 主機層級與虛擬機器層級的備份 比標準虛擬機器更不明顯:

  • 主機層級備份會擷取 VHDX 檔案和虛擬機器組態。這是標準做法,但還原後需要手動重新對應 GPU。
  • 客體層級備份需要在虛擬機器內安裝備份代理程式。對 GPU 工作負載而言,這種做法通常更實用,因為它會將虛擬機器視為標準伺服器,並在擷取資料時避開 GPU 直通的複雜性。

對於採用專用直通的 DDA 組態,虛擬機器會繫結至主機上的特定 PCI Express 路徑。如果您將啟用 DDA 的虛擬機器還原至不同的主機,虛擬機器可能無法啟動,因為原始 PCIe 路徑 (例如 PciRoot(0x0)/Pci(0x3,0x0)…) 可能不存在,或可能已指派給不同的裝置。

若要在復原後解決硬體不相符的問題:

  1. 從虛擬機器組態中移除遺失的 GPU 裝置。
  2. 在新主機上卸載相容的 GPU。
  3. 使用 PowerShell 將新的 GPU 重新指派給還原後的虛擬機器。

在 Windows Server 2025 和 Windows 11 中,GPU 分割功能讓組態更具彈性,但也帶來了自身的復原考量。 GPU-P 要求主機與客體 GPU 驅動程式版本相符。如果您將虛擬機器還原至執行不同驅動程式版本的主機,GPU 加速可能會無法初始化。

在復原期間(尤其是在 Hyper-V 故障移轉叢集 中),目標主機必須有足夠可用的 GPU 分割容量。如果主機的 GPU 已完全分配給其他正在執行的虛擬機器,還原的虛擬機器將無法啟動,或會改用軟體呈現。

Windows Server 2025 改善了啟用 GPU 的虛擬機器的移動性。GPU-P 虛擬機器支援叢集和獨立組態中的即時移轉。在故障移轉情境中,只要目標上已設定相容的 GPU 供 DDA 或 GPU-P 使用,叢集就能在另一個節點上重新啟動虛擬機器。

請遵循下列建議,備份和復原啟用 GPU 的虛擬機器:

  • 記錄 PCI 路徑,並記下用來指派 GPU 的 PowerShell 命令。準備好可直接使用的指令碼,可減少在不同主機上還原時的停機時間。
  • 使用所有叢集節點上相同的 GPU 型號和驅動程式版本,將硬體標準化。如此可確保還原的虛擬機器無論在哪個主機上啟動,都會使用相同的硬體環境。
  • 定期將啟用 GPU 的虛擬機器測試還原至不同主機,以確認復原團隊能夠重新對應 PCI 裝置。
  • 建立還原後指令碼,以偵測可用的 GPU,並自動將其指派給還原的虛擬機器。

結論

在 Hyper-V 主機上使用具備 GPU 直通功能的虛擬機器,對某些工作負載而言可能是最佳解決方案,但其限制需要仔細規劃。一般建議使用伺服器級硬體和 Windows Server,以透過 DDA 將獨立 GPU 直通。開始設定之前,請驗證軟體和硬體的相容性。請定期備份 Hyper-V 虛擬機器,以便在 GPU 設定或持續運作期間發生問題時,避免資料遺失。

.

試試 NAKIVO Backup & Replication

試試 NAKIVO Backup & Replication

立即申請免費試用,全面探索本解決方案的所有資料保護功能。免費試用 15 天。無任何特點或容量限制。無需提供信用卡資訊。

FAQ

如何在 Hyper-V 中啟用 GPU 直通功能?

若要啟用 Hyper-V GPU 直通,請停用虛擬機器的自動檢查點和動態記憶體。在裝置管理員或 PowerShell 中,識別目標 GPU 的 PCI Express 位置路徑。在主機上停用 GPU,使用 Dismount-VmHostAssignableDevice Cmdlet 卸載 GPU,然後使用 Add-VMAssignableDevice 將 GPU 指派給虛擬機器。在用戶端 Windows 版本(Windows 10 和 11)上,請改用 Add-VMGpuPartitionAdapter Cmdlet 進行 GPU 分割。

Hyper-V 中的 GPU 直通是什麼?

GPU 直通是一項 Hyper-V 特點,可將實體顯示卡直接指派給虛擬機器。虛擬機器會直接使用硬體 GPU 而不進行模擬,相較於預設的模擬顯示卡,在處理圖形密集型及運算密集型工作負載時,能提供顯著更佳的效能。 Hyper-V 支援兩種方法:直接裝置指派 (DDA),將整個 GPU 指派給單一虛擬機器;以及 GPU 分割 (GPU-P),允許多個虛擬機器共用單一 GPU。

Hyper-V 中執行 GPU 直通功能有哪些需求?

GPU 直通功能需要配備 NVIDIA 或 AMD 的獨立 PCIe GPU,且該 GPU 須支援 NVIDIA GRID 或 AMD MxGPU 等 GPU 虛擬化技術。CPU 必須支援 IOMMU(Intel VT-d 或 AMD-Vi),且此特點必須在 UEFI/BIOS 中啟用。Hyper-V 主機與來賓虛擬機器兩者皆須安裝最新的 GPU 驅動程式。 若要使用 DDA,您至少需要 Windows Server 2016;若要使用 GPU 分割,則需 Windows 10(版本 1903 以上),並已啟用 Hyper-V 角色。DDA 僅支援第 2 代虛擬機器。

Hyper-V 中 GPU 直通技術有哪些限制?

使用 Hyper-V GPU 直通功能的虛擬機器無法使用"動態記憶體"或自動檢查點。DDA 僅限於 Windows Server Datacenter 版本,且每台虛擬機器僅分配一顆 GPU,不支援即時遷移。GPU 分割功能需要主機與來賓作業系統的驅動程式版本相符。 在 2025 年之前的 Windows Server 版本中,啟用 GPU 的虛擬機器無法使用故障移轉叢集和即時遷移功能。主機上的 Windows Subsystem for Linux 可能會導致虛擬機器發生錯誤 43。

如何在 Hyper-V 中排除 GPU 直通問題?

首先,確認已從供應商網站安裝正確的 GPU 驅動程式(而非透過 Windows Update)。確認已停用虛擬機器的動態記憶體和自動檢查點。確認已配置足夠的 MMIO 空間。如果出現錯誤 43,請確認 GPU 和其音訊控制器已一併指派,並嘗試在主機上停用 WSL2。若出現錯誤 12 或"找不到物件"錯誤,請在 HKLM 下將 RequireSecureDeviceAssignment 和 RequireSupportedDeviceAssignment 登錄值設為 0。

其他人也在看