企業採用伺服器虛擬化的比例日漸提高後,接下來,很多人都在觀察使用者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硬體虛擬化應用能否快速普及,仍要看虛擬化軟體廠商跟進的速度而定。


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。

GPU虛擬化架構3:可多臺共享,也可1臺獨佔
此種模式屬於硬體層級的GPU虛擬化技術,在GPU硬體、虛擬化軟體與VM本身的架構上,都有很大的改變,運作上也較其他兩種作法複雜,但目前支援這種作法的產品很有限,虛擬化平臺只有Citrix XenServer,而GPU可搭配的是Nvidia GRID K1/K2。 

Nvidia GRID板卡
針對虛擬化應用,Nvidia推出2款GRID板卡,其中,K1有4顆GPU,內含768顆CUDA核心,而K2有2顆GPU、3072顆CUDA核心,分別針對大量使用者與專業設計。  


Grid  Enterprise 次世代GPU伺服器大觀

HP ProLiant SL250
本身為2U寬度半高刀鋒伺服器,可搭配Nvidia Tesla GPU或Intel Xeon Phi協同處理器。而在GRID Enterprise方案中,可搭2張Nvidia GRID K2板卡。

 

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。

IBM System x iDataPlex dx360 M3
機箱為2U半深式尺寸的2路伺服器dia Tesla 與GRID GPU,以及Intel Xeon Phi。在GRID Enterprise中,可搭2張Nvidia GRID K1或K2。 


Advertisement

更多 iThome相關內容