微軟的RemoteFX特性可以幫助改善虛擬機圖形密集型應用工作負載的性能。
服務器虛擬化已經成熟到大多數工作負載都能夠在虛擬機內運行的程度。毫無疑問,與其他工作負載相比,某些工作負載在虛擬機內運行將面臨更多的挑戰,例如圖形密集型應用一直面臨挑戰。因為正常情況下,虛擬機內的圖形處理是由服務器的CPU完成的。對于大多數工作負載來說并不存在什么問題,但有一些工作負載肯定會受益于圖形硬件加速。
在Hyper-V中,該類型的硬件加速可以通過使用RemoteFX以及vGPU實現。vGPU將圖形處理任務交給主機服務器的物理GPU而不再使用CPU完成上述任務。
在啟用Hyper-V GPU卸載前,有兩件重要的事兒你需要知道。首先大多數虛擬機不應該啟用Hyper-V GPU卸載,最好是讓GPU卸載需求最大的虛擬機使用節省下來的GPU資源,而不是讓不需要硬件GPU的虛擬機浪費掉GPU資源。
你還需要知道GPU卸載基于RemoteFX,而RemoteFX依賴于遠程桌面協議(RDP)客戶端。在某種程度上這非常有意義,運行在虛擬機上的圖形密集型工作負載通常是通過RDP客戶端訪問的,因此按道理講RDP客戶端應該在渲染過程中扮演角色。 RDP v 7.1及更高的版本支持RemoteFX以及Hyper-V GPU卸載。Windows 7 SP1使用的是RDP v 7.1。新版Windows操作系統包括了更高版本的RDP,這些版本應該全面支持RemoteFX以及vGPU,例如Windows 8.1使用的是RDP v8.1。
如果打算讓虛擬機使用主機的GPU資源,那么首先要讓Hyper-V能夠感知到GPU的存在。打開Hyper-V Manager,右鍵單擊Hyper-V主機服務器,然后在快捷菜單中選擇Hyper-V 設置命令。這時Windows將會顯示已選主機的Hyper-V設置對話框。單擊物理GPU容器,然后在GPU下拉菜單中選擇要優先使用的GPU。最后,勾選“通過RemoteFX使用GPU”復選框。 Hyper-V要求你在下拉菜單中選擇一個GPU。你可以選擇啟用多個GPU,但選擇的所有GPU規格型號必須相同。這引出了另一個很重要的問題——如果你計劃啟用虛擬機的GPU卸載,那么需要考慮這會對在線遷移或者故障切換帶來怎樣的影響。虛擬機可以被在線遷移到任何一臺主機服務器,在主機發生故障時虛擬機也可能會故障前移到任何一臺主機服務器,運行該虛擬機的主機服務器必須配置與之前物理主機相同的GPU。
給單個虛擬機增加vGPU相對簡單。在Hyper-V Manager內,右鍵單擊虛擬機然后在彈出的菜單中選擇設置命令。打開設置對話框后,單擊添加硬件,選擇顯示適配器然后單擊添加。硬件對話框列表將會更新,包括已經選擇的顯示適配器列表。如果在硬件列表中選擇顯示適配器,你可以指定監視器的最大數量,設置最大的顯示分辨率,或者從虛擬機中移除顯示適配器。 正如你所看到的那樣,將物理GPU鏈接給一個Hyper-V虛擬機的操作步驟簡單明了。然而請記住Hyper-V GPU卸載應該僅用于正在運行圖形密集型工作負載的虛擬機,而且在考慮在線遷移或者故障切換計劃時必須格外當心。