如何使用 RemoteFX vGPU 部署圖形裝置

在實體電腦上安裝視訊加速功能和顯示卡,以提升效能與影像品質,是一項常見的操作。但當您需要在虛擬機器上執行視訊渲染或 3D 建模應用程式,且需要硬體視訊加速和顯示卡時,該如何處理?

對於虛擬機器而言,硬體資源會在各虛擬機器之間共享,以實現靈活且合理的資源使用。 若某台虛擬機器正在執行資源密集型應用程式,其消耗的 CPU 和記憶體資源可能會比處於閒置狀態或執行較不耗資源作業的其他虛擬機器更多。此外,虛擬機器預設僅使用基本視訊功能性來顯示資料。在 Microsoft Hyper-V 環境中,您可以使用 Hyper-V RemoteFX,讓虛擬機器共享顯示卡資源與 3D 加速功能。

閱讀這篇部落格文章,了解 Hyper-V RemoteFX 以及如何在 Windows 電腦上設定 RemoteFX。

NAKIVO Hyper-V 備份解決方案

NAKIVO Hyper-V 備份解決方案

適用於 Hyper-V 的無代理程式、應用程式感知的備份解決方案。具備防勒索軟體防護功能、可從備份立即啟動虛擬機器,並支援其他虛擬/實體平台等更多功能。

什麼是 RemoteFX

RemoteFX 是一項特點,可讓 Hyper-V 虛擬機器共用實體 GPU(圖形處理單元)的功能。顯示卡的資源將由多個虛擬機器共同使用。當顯示卡的專用資源並非隨時都需要時,這便是處理高突發性工作負載的最佳情境。Hyper-V RemoteFX 可用於部署 VDI(虛擬桌面基礎架構)。 RemoteFX GPU 是一種連接至虛擬機器的虛擬裝置,它會共用安裝於 Hyper-V 主機上的實體顯示卡資源(包括 GPU 和視訊記憶體)。

RemoteFX 功能於 Windows 7 首次推出,並已支援 Windows 8、Windows 10、Windows Server 2008 R2 SP1、Windows Server 2012 以及 Windows Server 2016。 此特點未出現在最新版本 Windows Server 2019 的 Hyper-V 管理員中——您無法在圖形使用者介面 (GUI) 中啟用 Hyper-V RemoteFX。使用 RemoteFX 可降低 CPU(中央處理器)負載,並提升虛擬環境的可擴展性。 使用 Hyper-V RemoteFX 時,無需為每台虛擬機器 (VM) 配置專用 GPU,因為虛擬機器可根據工作負載動態共享 GPU。

在虛擬機器中進行影片渲染、處理高解析度影像、操作 CAD 應用程式以及 3D 建模等使用情境下,您可能需要 3D 加速功能及 RemoteFX GPU。現代 GPU 比 CPU 更適合並行處理,能同時處理更多任務,且具備更多處理核心。 顯示器數量與使用解析度取決於顯示卡的視訊記憶體及 GPU 效能。請使用"遠端桌面"而非"VMConnect(虛擬機器連線)"來連線至使用 RemoteFX 的虛擬機器。

RemoteFX 的優勢在於它可應用於桌面版與伺服器版本的 Windows 系統。雖然購買一款與伺服器硬體相容且受支援的顯示卡可能不太容易,但大多數通常執行客戶端 Windows 作業系統的桌上型電腦都已安裝 PCI Express 顯示卡。

支援結束

存在一項漏洞(CVE-2020-1036),網路犯罪分子可藉此進行遠端程式碼執行。駭客可透過在配備 RemoteFX GPU 的虛擬機器上執行經過特殊設計的應用程式,攻擊 Hyper-V 主機上的顯示卡驅動程式,從而於主機上執行遠端程式碼。在此情況下,主機伺服器無法正確驗證來自客體作業系統中已驗證使用者的輸入。 微軟並未提供修補程式來解決此漏洞,並表示這是架構上的問題。基於這些安全考量,微軟決定透過自動更新功能,在所有 Windows 版本中停用並移除 RemoteFX:

  • RemoteFX vGPU 已於 2020 年 7 月 14 日在所有 Windows 版本中停用。
  • RemoteFX vGPU 已於 2021 年 4 月 13 日移除。

RemoteFX 可在 Windows 10 版本 1803 及更早的 Windows 版本上運作(可在 Hyper-V 管理員的 GUI 中透過幾次點擊完成設定)。在安裝 KB4571756 更新(2020 年 9 月發布的累積更新)後,此特點在 GUI 中已被停用。 因此,在 Windows 10 版本 1809 的 Hyper-V 管理員 GUI 中,由於該特點已被停用,故無法進行 Windows 10 RemoteFX 的設定。在 2021 年 4 月的更新推出之前,必須透過 PowerShell 執行特定指令來啟用 RemoteFX GPU。

RemoteFX 系統需求

  • Hyper-V 主機上支援的 Windows 版本(Windows 7 Ultimate/Enterprise、Windows 8 Ultimate/Enterprise、Windows 10;Windows Server 2008 R2 SP1、Windows Server 2012、Windows Server 2016、Windows Server 2019)。切勿安裝會移除 Hyper-V RemoteFX 的更新。
  • 主機上的 GPU 必須相容於 DirectX 11(若在實體機器上安裝 Windows Server 2008 或 Windows 7,則可使用 DirectX 10)。若 Hyper-V 主機上安裝了多張顯示卡,這些顯示卡必須完全相同。在客體虛擬機器上,Windows 8.1 及更新版本的 Windows 皆支援 DirectX 11。
  • CPU 必須支援 SLAT(第二級位址轉換)。此特點在 Intel 處理器中稱為"擴展頁表"(EPT),在 AMD 處理器中則稱為"嵌套頁表"(NPT)。
  • 支援的客體作業系統包括 Windows 7 SP1、Windows 8 和 8.1、Windows 10 1703 或更新版本、Windows Server 2008 R2、Windows Server 2012 以及 Windows Server 2016(僅限單一工作階段部署)。

如何設定 RemoteFX

準備用作 Hyper-V 主機的實體機器。請確保已在 Hyper-V 主機上安裝顯示卡的驅動程式。建議安裝 GPU 供應商(例如 NVIDIA 或 AMD)提供的最新穩定版本驅動程式。

準備一台執行受支援 Windows 版本的虛擬機器,以便使用 Hyper-V RemoteFX。在此範例中,虛擬機器的名稱為 Windows-VM,Hyper-V 主機的名稱為 Hyper-V-prim。

安裝所需的特点

安裝 Remote Desktop Virtualization Host Hyper-V 主機上的服務。

開啟 Server Manager, 然後點擊 Manage > Add Roles and Features.

"新增角色與特點精靈" 開啟。

Installation Type. 選取 Role-based or feature-based installation. 點擊 Next 在精靈的每個步驟中,請按一下以繼續。

Installing roles and features in Windows

Server Selection. 從伺服器池中選取一台伺服器。請確認您已選取您的 Hyper-V 主機。

Selecting a server to install a role or feature

Server Roles. 選擇 Remote Desktop Services 在角色清單中。如果尚未安裝 Hyper-V 角色,請選取並安裝該角色。

Installing Remote Desktop Services to use Microsoft RemoteFX on Hyper-V

Features. 跳過此步驟。

Remote Desktop Services. 請閱讀說明,然後進行下一步。

Role Services. 選擇 Remote Desktop Virtualization Host. 您可以在右側窗格中閱讀說明。

Installing the Remote Desktop Virtualization Host service to use RemoteFX

角色安裝完成後,請重新啟動 Hyper-V 主機。

設定 Hyper-V 設定

開啟 Hyper-V Manager 透過執行 virtmgmt 在命令列中或透過 Windows 圖形使用者介面。接著開啟 Hyper-V Settings.

在的導覽窗格中 Hyper-V 設定 視窗,點擊 Physical GPUs. 在下拉式選單中,選擇您的顯示卡,然後選擇 Use this GPU with RemoteFX 核取方塊。

Selecting a video card to use the GPU with RemoteFX

如果您無法選取此核取方塊,表示您的顯示卡無法用於 RemoteFX,或者 RemoteFX 已停用。

停止虛擬機器。

開啟 Hyper-V Manager, 選取您的虛擬機器,右鍵點擊該虛擬機器,然後開啟 VM Settings.

虛擬機器設定 視窗,點擊 Add Hardware 在左側窗格(導覽窗格)中。在右側窗格中,您會看到一組可新增至虛擬機器的裝置清單。第 1 代與 第 2 代虛擬機器.

RemoteFX 3D Video Adapter 若處於啟用狀態(顯示為黑色字體),請選取此轉接器並按一下 Add. 此選項在 2020 年 7 月 14 日之前的 Windows 版本中有效,且已安裝更新。

若您的 Windows 已更新,"RemoteFX 3D 視訊適配器"選項將處於停用狀態(字體呈灰色),且您無法在 Hyper-V 管理員的 GUI 中新增此適配器。同時,該 Physical GPUs 該選項不再顯示於 Hyper-V Settings.

Configuring virtual hardware for a VM – adding a RemoteFX 3D Video Adapter

您可以在 PowerShell 中解決此問題。

在 Hyper-V 主機的 PowerShell 中執行此指令,即可將 RemoteFX 3D 顯示卡新增至虛擬機器:

Add-VMRemoteFx3dVideoAdapter -VMName your_VM_name

如果指令執行成功,系統會顯示一則警告訊息。

警告:我們已不再支援 RemoteFX 3D 顯示卡。若您仍在使用此顯示卡,可能會面臨安全風險。

如果您看到以下錯誤訊息: Add-VMRemoteFx3dVideoAdapter:若要啟用此裝置,請使用"伺服器管理員"安裝"遠端桌面虛擬化主機"角色服務

遠端桌面虛擬化服務 未安裝在 Hyper-V 主機上。請參閱 Installing the needed features 在本篇文章稍早之前。

Enabling Windows 10 RemoteFX after installing updates

如我先前所述,若已安裝 2020 年 7 月 14 日的 Windows 更新,Microsoft RemoteFX 將會被停用。若您有虛擬機器 (VM) 設定為使用 RemoteFX,這些虛擬機器將無法啟動。當嘗試啟動虛擬機器時,系統會顯示以下針對已安裝 2020 年 7 月 14 日更新的 Windows 10 所產生的 RemoteFX 錯誤訊息:

嘗試啟動所選的虛擬機器時發生錯誤:

"VM-name"無法啟動。

合成 3D 顯示控制器 (實例 ID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx):開機失敗,錯誤訊息為"系統資源不足,無法完成所請求的服務。"。

無法啟動虛擬機器,因為在 Hyper-V 管理員中,所有支援 RemoteFX 的 GPU 均已停用。您必須啟用至少一個 GPU。

該錯誤的另一種變體:

由於伺服器的 GPU 資源不足,無法啟動虛擬機器。

您可以在 PowerShell 中解決此問題。此方法適用於 Windows 10 及相應的 Windows Server 版本。請使用 PowerShell 中的指令來修復此錯誤並啟用 RemoteFX。執行以下指令以查看 Hyper-V 主機上的顯示卡資訊:

Get-VMRemoteFXPhysicalVideoAdapter

尋找這段字串:

Enabled: False

這表示 RemoteFX 已停用。請將此值變更為 True.

Windows 10 RemoteFX configuration in PowerShell

複製顯示卡的名稱(以我的例子來說, NVIDIA GeForce GTX 1060).

執行以下指令:

Enable-VMRemoteFXPhysicalVideoAdapter -Name "video_card_name"

請輸入您的顯示卡名稱。

請嘗試再次使用 RemoteFX 啟動虛擬機器。虛擬機器現在應該可以啟動了。

此外,請注意以下用於管理 RemoteFX 3D 顯示卡的 PowerShell 指令:

設定 VMRemoteFx3dVideoAdapter

Get-VMRemoteFXPhysicalVideoAdapter

在虛擬機器中新增 RemoteFX 3D 顯示卡後,該顯示卡應會出現在虛擬機器硬體清單中,並提供設定解析度、顯示器數量及專用顯示記憶體的選項。

若您在 Hyper-V 管理員的 GUI 中未看到這些選項,請在 PowerShell 中為虛擬機器新增 RemoteFX 顯示卡時使用額外參數,例如:

Set-VMRemoteFx3dVideoAdapter -VMName Windows-VM -MaximumResolution 1024x768 -VRAMSizeBytes 536870912

如果 Microsoft RemoteFX 已成功設定,在虛擬機器上執行的 Windows 來賓系統中,您會看到一個 Microsoft RemoteFX Graphics Device – WDDM 裝置位於 顯示卡 "……部分" 裝置管理員. 此 RemoteFX 3D 顯示卡是一種虛擬裝置,它透過 RemoteFX 技術,共用安裝在實體 Hyper-V 主機上的實體顯示卡資源。

疑難排解

有時可能會發生其他錯誤。以下將說明一種常見的錯誤情況:當使用者無法透過 Remote Desktop RemoteFX 連線至正在運行的虛擬機器時。

症狀:

  1. 視訊遠端連線已中斷,並顯示相應訊息。
  2. RDP 連線失敗:您的遠端桌面工作階段已結束,可能原因如下:

如果您的虛擬機器出現此錯誤,請在虛擬機器內的 Windows 作業系統中編輯群組原則。

點擊 Start > Run > gpedit.msc 以開啟本機電腦的"群組原則編輯器"。

在左側窗格中 群組原則編輯器 視窗中,請導航至

Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Remote Session Environment > RemoteFX for Windows Server. 雙擊 Configure RemoteFX 在視窗的右側窗格中。

一個視窗會顯示 設定 RemoteFX "屬性"視窗隨即開啟。請選取 Enabled,然後按下 OK 儲存設定。

雙擊 Use WDDM graphics display driver for Remote Desktop Connections (適用於 Windows 10 版本 1903 及更新版本)。

在開啟的視窗中,請選取 Disabled,然後按下 OK.

使用以下命令更新群組原則設定,以套用新設定:

gpupdate /force

重新啟動您的虛擬機器。嘗試使用"增強型連線模式"連線至您的虛擬機器。

如何防止在 Hyper-V 主機上停用 RemoteFX

安裝 2021 年 4 月發布的 Windows 更新後,使用 RemoteFX 3D 顯示卡的虛擬機器將無法啟動。您可以自行承擔風險,在 Windows 電腦上停用自動更新以繼續使用 RemoteFX。請注意,若停用 Windows 更新,Windows 電腦將不會自動安裝安全性修補程式。未修補的漏洞會對您的電腦構成威脅,導致電腦面臨遭勒索軟體、病毒及其他惡意軟體感染的風險。

您可以手動從 Microsoft 網站下載 Windows 更新(修補程式)並進行安裝。請確認哪些 Windows 更新旨在移除 RemoteFX,並避免安裝這些更新。建議在您的組織中部署 WSUS(Windows Server Update Services),並取消選取不需要的更新。

請務必備份您的 Windows 伺服器與 Hyper-V 虛擬機器。若發生災難或勒索軟體攻擊,擁有備份可讓您在短時間內恢復資料、重建工作負載並恢復運作。請使用 NAKIVO Backup & Replication 用來備份您的實體與虛擬機器。

試試看 NAKIVO Backup & Replication

試試看 NAKIVO Backup & Replication

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

Hyper-V RemoteFX 的替代方案

微軟建議客戶在 2021 年 4 月之後改用 DDA,而非 RemoteFX。

DDA(離散裝置指派)是一項特點,可讓您將裝置(以我的情況為例,即 PCI Express 裝置)直接連接至虛擬機。若以顯示卡為例,該顯示卡應從主機斷開連接,並連接至虛擬機。在任何特定時刻,僅有一台虛擬機可透過 DDA 使用該顯示卡。

GPU 的顯示卡驅動程式必須安裝在虛擬機的客體作業系統上,而非主機上。在此情況下,虛擬機可使用 DirectX 12 和 CUDA(統一運算裝置架構)的特點(使用 RemoteFX 時,虛擬機無法使用 CUDA)。使用直接裝置指派時,無法在 Hyper-V 主機之間遷移虛擬機。

建議在執行虛擬機器的伺服器和桌面電腦上,考慮採用 VMware 的替代方案。請在 VMware vSphere 中使用"虛擬共用圖形加速 (vSGA)"及"虛擬共用直通圖形加速",以讓多個虛擬機器共用 GPU。請選用相容且支援 GPU 虛擬化、並具備適當硬體特點的顯示卡:

  • nVidia GRID vGPU
  • AMD Multiuser GPU

您可以在 VMware 工作站 如果您使用的是桌上型電腦而非伺服器。

結論

Hyper-V RemoteFX 是一項實用的特點,可讓虛擬機器共享安裝於 Hyper-V 主機上的實體顯示卡硬體資源,並為虛擬機器上的應用程式提供 3D 加速功能。 要在虛擬機器上設定 RemoteFX,請在 Hyper-V 主機上安裝"遠端桌面虛擬化主機"服務,編輯 Hyper-V 一般設定以選取用於視訊加速的 GPU,並在虛擬機器的虛擬硬體選項中新增 RemoteFX 3D 顯示卡。遺憾的是,Microsoft 已將 Hyper-V RemoteFX 列為過時功能,且僅能在安裝 2021 年 4 月的 Windows 更新之前使用 RemoteFX。

People also read