
企業採用伺服器虛擬化的比例日漸提高後,接下來,很多人都在觀察使用者PC端的虛擬化能否普及,但相較於伺服器本身的系統操作環境,要將多位使用者PC桌面予以虛擬化的工程,就複雜許多。
另外,使用者在虛擬化後的桌面環境的操作流暢度,能否跟原本用實體PC一樣,也受到很大的質疑,你的公司除了需要有足夠的網路頻寬,以及採用針對遠端桌面設計的通訊協定,提供桌面虛擬化服務的伺服器平臺,也必須能充分支應使用者對於高品質視訊、音訊的播放,甚至編輯的需求。
GPU廠商改善虛擬化支援技術
事實上,若光靠CPU和虛擬化平臺來模擬圖形加速處理,目前的技術對於一般文書處理需求,可以應付;但對於進階的多媒體內容編修,勉強能運作;但面對更高階的3D專業圖形、動畫設計任務,恐怕就難以負荷。
也許你會認為,只需要在提供虛擬化平臺的伺服器端插上高階繪圖卡,就可以讓使用者所操作的虛擬桌面,獲得更多圖形加速處理的能力,理論上的確是應該如此,但實際上,過去相關的技術發展只解決了第一種的基本電腦操作需求。
因此針對後兩種使用模式,GPU廠商決定開發出在虛擬化環境下,可獲得更高圖形加速處理效能的作法,而成果就是去年推出、真正以硬體支援虛擬化的專屬GPU產品──Nvidia的GRID K1和K2,以及AMD的FirePro S10000、S9000和S7000。
因應這樣的變革,虛擬化軟體廠商也從善如流,開始提升相關的支援。不過,比較有具體作為的,是以Nvidia的GRID GPU為主的平臺,而虛擬化軟體商中,與Nvidia合作最密集的是Citrix,旗下的多種虛擬化產品XenDesktop、XenApp和XenServer都持續在改良對GPU虛擬化支援。
另一家強化對GPU虛擬化支援的廠商是VMware。今年3月起,該公司終於在桌面虛擬化產品View的5.2新改版中,正式增加對Nvidia GRID GPU的支援,利用新的vSGA(virtual Shared Graphics Acceleration)和vDGA(virtual Dedicated Graphics Acceleration),分別對應第1種(一般文書處理)與第3種桌面虛擬化應用(專業圖形、動畫設計)。
至於微軟,他們的RemoteFX、Windows Server 2012仍停留在第1種桌面虛擬化應用,而且並未表態支援Nvidia的GRID GPU。
桌面虛擬化面臨瓶頸,VM上的圖形加速處理需求開始浮現
以Hypervisor為基礎的虛擬化技術風行至今,已成為當前IT基礎架構必備的平臺,過去幾年以來,在伺服器端的虛擬化應用已經相當成熟,硬體層面對於該技術的支援大致趨於完備,從兩大CPU廠商開始在自家處理器內建專用的指令集(如Intel VT和AMD-V),到後來在各自平臺納入了I/O虛擬化(如Intel VT-d和AMD Vi),不過在GPU如何支應虛擬化需求,無論是虛擬化軟體商或硬體廠商始終沒有詳細提出具體的作法。用戶只是概略知道,VM在圖形顯示上不會有太大問題。
以VMware的虛擬環境下的硬體規格演變為例,正式支援3D硬體加速是在第8版(ESXi 5.x、Workstation 8.x、Player 4.x)以後,時間大約是2011年下半。但更早之前,VMware其實就在嘗試提供相關的支援──他們在第7版虛擬硬體規格中(ESXi/ESX 4.x、Workstation 6.5.x/7.x、Player 3.x),開始提供實驗性質的硬體3D加速(Direct3D)。因此,使用這些版本虛擬化平臺的用戶,能夠在自行建立的Windows VM,流暢地執行Google Earth這類3D應用軟體。
即便如此,若要在先前VMware虛擬化平臺的VM上,執行專業圖形或動畫設計,恐怕還是力有未逮,因為當時的軟體並無法讓VM中的設計應用軟體直接存取GPU硬體的方法,或是利用近期才出現的GPU硬體虛擬化技術。直到最近改版的vSphere 5.1與View 5.2的虛擬化平臺,才獲得了這兩種GPU硬體加速功能。
相較之下,Citrix遠端桌面與虛擬化平臺對於應用GPU的技術,投入時間較久,至今為止,發展長達7年。2006年起,他們針對波音夢幻客機的設計師遠距使用CATIA軟體,成立了一個名為K2的專案,之後並在XenApp 6.0上增加了GPU共用,以及在XenServer 6.0提供GPU直接存取(Passthrough),去年他們也利用Nvidia VGX的API來提升遠端桌面存取的每秒畫面呈現張數。
就目前能提供的GPU虛擬化應用來說,Citrix可以因應的產品主要是XenDekstop和XenApp。若是高階的專業3D圖形設計,需要用到OpenGL和DirectX,以及讓單一使用者配置專屬GPU,是用XenDesktop搭配HDX 3D Pro技術;若是一般商用的3D圖形處理,可共用GPU,此時可用XenApp搭配HDX 3D技術,來利用針對DirectX的硬體加速處理;對於圖形處理需求如果再比前一項應用低一些,則用XenDekstop搭配RemoteFX的方式進行。
現行實現GPU虛擬化的3種方式
就廣義而言,要實現桌面虛擬化,並不只是用Hypervisor技術來進行,過去已發展出許多透過遠端桌面的技術,可達到專屬(一對一遠端連接)或共用(把一臺伺服器或PC當成多臺PC使用)的形式。而GPU虛擬化技術的發展上,都已經將這樣的模式納入。
整體而言,GPU虛擬化的應用模式有下列三種:
多臺VM共享GPU(Shared GPU)
這種模式是指透過虛擬化軟體來做到GPU虛擬化。但實際作法又可細分為用軟體來描繪圖形(Software Rendered Graphics),以及API攔截(API intercept)。以前者來說,在VM內的Guest OS環境下,裡面會執行一支編碼器程式Software Graphics Software Encoder,即可讓虛擬層之下的CPU模擬出圖形加速的效果。而這支程式隸屬於該平臺提供的虛擬圖形驅動程式的一部分。
至於API攔截,需要配合的層面較廣:GPU、Hypervisor和VM都有一定要求。
以Nvidia支援的架構來說,GPU需為Quadro 4000/5000/6000、
Tesla M2070Q,以及GRID K1/K2;Hypervisor需要搭配Nvidia提供的驅動程式,以及一支負責轉譯、執行、回讀的程式,目前支援的有微軟Windows Server 2008 R2與2012內建的RemoteFX,以及VMware View 5.2裡面的vSGA;VM內的Guest OS需安裝API擷取的驅動程式(主要是針對DirectX 9)
1臺VM獨佔1顆GPU(GPU pass-through)
與第一種GPU虛擬化模式相比,GPU pass-through的作用,是讓使用者所存取的每一臺VM,都能配置一顆專用的GPU,以便獲得最大的圖形加速處理效能,而不是與其他使用者、VM共用。
運作架構上,GPU pass-through的配置比起Shared GPU單純很多,基本上,只要考量底層的硬體GPU與VM,但在Hypervisor層與VM上的桌面代理程式(Virtual Desktop Agent,VDA,作用是加速遠端存取)還是有一些限制。
而Nvidia可應用此架構的GPU,有Quadro 2000到6000系列、K2000到K5000系列,以及GRID K1/K2。而VM上的Guest OS只需安裝Nvidia提供的GPU驅動程式,即可穿透Hypervisor層到GPU硬體去執行圖形加速。至於Hypervisor層,目前支援GPU pass-through的平臺,有Citrix XenServer和VMware ESXi,VM桌面管理軟體支援該模式的,有Citrix XenDesktop 5.6 FP1和VMware View 5.2。
可多臺共享,也可1臺獨佔(Hardware virtualization of the GPU)
為了讓GPU更徹底支援硬體虛擬化,這種應用模式所需改變的層面最廣──從GPU、Hypervisor、VM,甚至VM內使用者桌面所使用的遠端桌面存取協定,都牽涉在內。
以Nvida GRID技術來看,首先,關鍵技術主要是在GRID GPU的設計上。它整合了GPU記憶體控制器(Memory Management Unit,MMU)、針對每臺VM的專屬通道,以及遠端顯示能力,分別直接聯繫Hypervisor、VM與遠端桌面存取協定等三個部分。
其次是Hypervisor層的部份,這裡增加了GPU Hypervisor與裝置模擬框架(Hypervisor Device Emulation Framework)。其中,GPU Hypervisor裡面包含了虛擬GPU管理員和資源管理員傳等兩個元件。
接著,在VM內的Guest OS上,Nvidia設計了一個稱為「使用者可選式機器(User-Selectable Machines,USM)的硬體組態選項,系統管理者可依照不同使用者對於繪圖處理的需求,將特定硬體加速性能派送到個別的VM上。而USM目前有三種配置,最高階的是Quadro USM,所針對的是高階圖形與動畫設計;其次是NVS USM,對應的需求是需要處理大量圖形的知識工作者;至於最低階的選項是標準USM,它針對的是一般使用者的桌面操作體驗,具有DirectX 9、10、11的硬體加速效果。
就實際運作的流程來看,這些元件所要執行的任務,主要是狀態傳遞、命令執行與遠端畫面呈現。
以前兩個工作來說,VM中的USM是執行的核心。例如,GPU的記憶體控制器會將執行狀態傳給Hypervisor的GPU Hypervisor,由當中的資源管理員傳給虛擬GPU管理員,接下來再聯繫Hypervisor內的裝置模擬框架,最後USM再從框架中接收這些狀態;另一個執行流程則是從GPU的VM專屬通道連至VM內的USM上,這裡面傳達的是圖形處理的命令。
而遠端畫面呈現的部份,則是由GPU的遠端顯示元件,直接連至VM內Guest OS執行的使用者桌面代理程式,透過這邊的遠端桌面存取協定,將畫面和互動傳至使用者端的精簡型電腦上。
整體而言,上述的GPU虛擬化執行架構,複雜度相當高,目前能支援這個模式的產品相當有限。以GPU而言,只有Nvidia GRID K1/K2,Hypervisor層需搭配Nvidia提供的VGX軟體,目前只有XenServer已經支援。而在VM的Guest OS中,則可以使用標準Nvidia的驅動程式。
因應不同圖形加速處理需求,桌面虛擬化的軟硬體搭配將是重點
從上述GPU虛擬化技術應用架構來看,其實可以得知他們對於桌面虛擬化的目標使用者,都已經涵蓋到。若要評估桌面虛擬化導入,實行前兩種模式時,可選擇的軟硬體平臺比較多,GPU硬體虛擬化應用能否快速普及,仍要看虛擬化軟體廠商跟進的速度而定。
_01(3).png)
GPU虛擬化架構1:多臺VM共享GPU
這種GPU虛擬化是透過軟體模擬,或攔截API的方式進行,也是多數虛擬化平臺與GPU能夠支援的應用模式。例如微軟的Windows Server 2008 R2與2012所使用的RemoteFX,以及VMware基於ESX 5.1 的新版桌面虛擬化軟體View 5.2
GPU虛擬化架構2:每臺VM獨佔1顆GPU
遇圖形處理需求高的專業設計應用,可用這種直接配置專屬GPU的方式。目前支援該模式的虛擬化平臺有Citrix XenServer和VMware ESXi,而搭配的桌面虛擬化軟體,則為Citrix XenDesktop 5.6 FP1和VMware View 5.2。
_03(2).png)
GPU虛擬化架構3:可多臺共享,也可1臺獨佔
此種模式屬於硬體層級的GPU虛擬化技術,在GPU硬體、虛擬化軟體與VM本身的架構上,都有很大的改變,運作上也較其他兩種作法複雜,但目前支援這種作法的產品很有限,虛擬化平臺只有Citrix XenServer,而GPU可搭配的是Nvidia GRID K1/K2。
_01(2).png)
Nvidia GRID板卡
針對虛擬化應用,Nvidia推出2款GRID板卡,其中,K1有4顆GPU,內含768顆CUDA核心,而K2有2顆GPU、3072顆CUDA核心,分別針對大量使用者與專業設計。
Grid Enterprise 次世代GPU伺服器大觀
_02(2).png)
HP ProLiant SL250
本身為2U寬度半高刀鋒伺服器,可搭配Nvidia Tesla GPU或Intel Xeon Phi協同處理器。而在GRID Enterprise方案中,可搭2張Nvidia GRID K2板卡。
_03(1).png)
HP ProLiant WS460c Gen8
屬於工作站等級的刀鋒設備,同時為WS460c G6後繼機種,主要搭配Nvidia Quadro GPU。在GRID Enterprise方案中,可搭1張Nvidia GRID K1或K2。
Dell PowerEdge R720
這臺看似普通的2路2U機架式伺服器,可選購GPU加速配備,強化高效能運算或桌面虛擬化效能。在GRID Enterprise方案中,可搭2張Nvidia GRID K1或K2。
_05(1).png)
IBM System x iDataPlex dx360 M3
機箱為2U半深式尺寸的2路伺服器dia Tesla 與GRID GPU,以及Intel Xeon Phi。在GRID Enterprise中,可搭2張Nvidia GRID K1或K2。
熱門新聞
2025-12-02
2025-12-01
2025-11-30
2025-12-01
2025-12-01
2025-12-04