天天看點

3D虛拟化技術透析及競争分析

标簽: sVGA vSGA vDGA GPU vGPU citrix vmware 原創作品,允許轉載,轉載時請務必以超連結形式标明文章 原始出處 、作者資訊和本聲明。否則将追究法律責任。 http://virtualworld.blog.51cto.com/1412963/1308627

因為每篇blog字數限制,是以我們分四章節來介紹這個vGPU專題。這是第一篇。

一:3D虛拟化技術透析及競争分析

sVGA、vSGA、vDGA、vGPU、GPUPass-through,天哪,太多的縮寫了,我要瘋掉了!

小夥伴們别急,讓我們一個一個來分析這些所寫的含義。

1名詞解釋

lsVGA:VMware公司技術縮寫,意思是:軟體3D模拟渲染技術;

lvSGA:VMware公司技術縮寫,意思是:虛拟共享圖形加速技術

lvDGA:VMware公司技術縮寫,意思是:虛拟專用圖形加速技術

lGPUPass-through:Citrix公司技術縮寫,意思是:GPU透傳技術

lSharedGPU:Citrix公司技術縮寫,意思是:GPU共享技術;

lvGPU:業内統一術語,意思是:以類似于伺服器虛拟化上将CPU虛拟化的技術,将GPU卡虛拟化後,提供給虛拟機使用。

目前,Citrix公司和NVIDIA公司合作,開發出了業界首個vGPU技術!

2不同技術的适用場景分析

2.1sVGA的原理:VMware設計的虛拟的WDDM驅動程式(WindowsDisplayDriverModel)1.1版本相容驅動。原理圖如下:

3D虛拟化技術透析及競争分析

簡單地說,就是通過軟體模拟出軟體GPU卡的能力,實際上還是消耗CPU的負荷,隻能;目前sVGA技術隻能支援到DirectX9.0和OpenGL2.1的渲染技術,利用伺服器記憶體模拟技術最大隻能虛拟512M顯存。

這種技術隻适用于改善普通使用者桌面使用體驗。至于渲染技術隻支援DirectX9.0和OpenGL2.1有什麼問題,請參見2.5章節的解釋。

2.2vSGA的原理:多個虛拟機均分安裝在實體伺服器上的顯示卡資源

原理圖如下:

3D虛拟化技術透析及競争分析

事實上,vSGA的工作原理上是基于API的共享,即用于欺騙應用程式API的虛拟顯示卡驅動程式安裝于guestOS中并運作于核心模式。這個vGPUDriverAPI事實上功能分為前向接口和後向接口兩個功能,他們的功能分别是:

1)FrontEnd(前向接口)功能:

lGPU操作的API攔截,包括:

nparameterspassed傳遞過來的GPU調用參數

nordersemantics傳遞過來的GPU調用語義

l包裝以上的函數調用,并将資料傳給後向接口

l終結虛拟仿真的顯示卡驅動的GPU調用,并提供向真實顯示卡的互操作和執行結果

2)BackEnd(後向接口)功能:

l負責将前向接口傳來的資料交給真實的GPUdriver進行處理

l解包前向接口傳來的函數調用

l映射記憶體指針

l執行真實的GPU操作

l傳回執行結果

l将執行結果傳回前向接口

下圖就是這個API的原理示意圖:

3D虛拟化技術透析及競争分析

好吧,按照VMware的說法,這種技術是使用者共享GPU處理能力,貌似确實實作了類似vGPU的能力,但是事實如此嗎?

我們上面分析了vSGA的實際工作原理,了解到這種技術實際上是欺騙應用程式API的虛拟顯示卡驅動程式。那麼結果也就一目了然了,做過圖形設計的碼農們應該更清楚:

l“APIRemoting”看似很簡單,但它的處理是極其複雜,需要消耗大量的額外資源來做驅動的模拟仿真、API截獲、API傳遞、API隊列等待、API真實驅動處理、結果回傳等多種複雜的軟體計算過程

l虛拟顯示卡驅動的設計需要對所支援的所有GPU的API進行仿真,但行業标準的API規範也在不斷改進和更新,這種設計需要不斷持續的支援.

l另外,還需要面對不同的API标準,如:OpenGL,DirectX,CUDA,OpenCL…

就目前該技術的實際應用來看,vSGA和sVGA一樣,也隻是支援DirectX9.0和OpenGL2.1的渲染技術,已經夠舊了吧。此外,vSGA支援的最大虛拟顯存聽起來是是512M,事實上虛拟的GPU顯存,其中一半為GPU提供,一半為伺服器記憶體模拟,是以,最大隻能使用到256M的真實GPU顯存。

從使用者回報來看,vSGA對改善部分情形圖形軟體體驗還是有所幫助的。

至于和Citrix的對比,請參見2.5章節。

2.3vDGA的原理:為每個虛拟機配置設定獨立的安裝在實體伺服器上的實體顯示卡

這個技術和我們後文中介紹的來自Citrix的GPUPass-Through技術是類似的,隻是我弄不明白,V公司非要弄這麼多簡寫差不多的名詞嗎?

下圖就是vDGA的技術原理圖:

3D虛拟化技術透析及競争分析

關于這種技術的原理,我們在Citrix的GPUPass-Through部分也介紹過很多次了,此處不再詳述它的原理。從功能上兩者是高度相似的,畢竟V公司是抄襲Citrix的,想當年,Citrix的GPUPass-Through都釋出多久了,vDGA才姗姗來遲。

功能相似,但是易用性就不一定了,去問問VMware,vDGA能把顯示卡透傳給上面運作的什麼作業系統平台上,如果回答者夠老實,他就隻能回答你說,隻能運作在Windows764-bit平台。如果你的開發軟體隻能跑在XP上怎麼辦?I’msorry.

夠清楚了吧。好了,V公司看到vDGA釋出時間遠晚于CitrixGPUPass-Through,功能也PK不過GPUPass-Through,他們隻好說《VMware在性能上目前領先于競争對手》(百度文庫上可以找到這個ppt,名字就叫做VMwareGPU虛拟化技術介紹)。對于他們這種做法,就好象一個巨人和一個矮子,明明在外形上矮子已經落敗,他偏偏嘴硬說:“他那麼大個有什麼用,我的力氣比他大”。

哈哈,誰更威武,不是已經一目了然了嘛。當然,你有難處,我表示了解。

2.4GPUPass-through的原理:為每個虛拟機配置設定獨立的安裝在實體伺服器上的實體顯示卡

這部分的原理我就不再詳述了,基本上Citrix的GPUPass-through技術和VMware的vDGA技術如出一轍,但是在具體的功能上,雙方還是有明顯差距,Citrix功能更全面,也是被業界證明真正具有生産環境下實施能力的解決方案。

下圖示就是兩者技術的功能性對比。

3D虛拟化技術透析及競争分析

2.5SharedGPU的原理:将GPU卡透傳給Hypervisor之上的XenApp平台

SharedGPU技術實際上是将CitrixGPUPass-Through和CitrixXenApp技術完美結合的産物。

大家都知道CitrixXenApp的原理,我以一張簡圖為例再次解釋一下:

3D虛拟化技術透析及競争分析

XenApp的優勢在于雖然隻在一個作業系統上安裝過一次應用程式,但是這個應用程式卻可以被多個使用者同時使用,如果GPU資源也能被這麼分享,豈不是完美。這就是SharedGPU的原理。這就實作了多個使用者同時分享一個GPU卡的能力。

我們看看下面的原理圖:

3D虛拟化技術透析及競争分析

在上面這張圖中,底層伺服器安裝了一塊GPU卡,在硬體平台之上我們安裝了Hypervisor層,随機我們在此之上安裝了三個XenApp虛拟機(都是WindowsServer作業系統),每個虛拟機上面都安裝了CitrixVDA用戶端軟體,此外還有供最終使用者使用的應用程式。随後運作在Hypervisor平台上的NVIDIA驅動程式直接将GPU資源釋出給虛拟機使用。

請注意我上面使用的一個單詞是:“直接”。為什麼這麼說?請注意2.2章節的vSGA是如何做到的?vSGA要消耗大量的額外資源來做驅動的模拟仿真,說到底,真正能使用到多少百分比的GPU資源還是個未知數。

我們首先來看看VMwarevSGA和CitrixSharedGPU技術在功能上的對比:

3D虛拟化技術透析及競争分析

是騾子是馬,拉出來溜溜就知道孰強孰弱了。我們還有必要就上面的DirectX和OpenGL技術做一個解釋,在介紹2.1的sVGA和2.2的vSGA技術時我們都提到了這兩種技術都是隻支援DirectX9.0和OpenGL2.1的渲染技術,那麼這有什麼意義嗎?我們來看看DirectX和OpenGL是幹什麼用的。

1)DirectX

lDirectX是DirecteXtension的簡寫,可以進一步簡寫成DX。為微軟公司開發的多媒體程式設計接口,目前隻支援Windows平台。

lDirectX發展到現在已經有11代産品了,目前最常用的有兩個DirectX11.1和Direct9.0c。前者是Windows7/8的标準配置,後者是WindowsXP的标準。對于很多新遊戲而言都以DirectX11為接口。

2)OpenGL

lOpenGL是由開源社群提供的免費開源的多媒體程式設計接口,全稱是OpenGraphicsLibrary。OpenGL功能非常強大,但是使用起來也是相當的複雜,開源社群為任何作業系統提供OpenGL支援,是以适用範圍也是相當的廣。很多遊戲開發采用OpenGL作為渲染方式,這樣可以友善的向Linux和OSX等平台移植。

l在非Windows平台下,目前僅能使用OpenGL進行加速,而在Windows平台下視訊功能可以由DirectX或者OpenGL完成。由于開發商的選擇不同,通常的硬體都是支援者兩種加速方式的。客觀的來說在超高端硬體上對OpenGL的支援更好。

好吧,看完DirectX和OpenGL的解釋後你應該知道2.1的sVGA和2.2的vSGA技術有多弱了吧。

VMware自吹vSGA技術可以支援多少種3D設計軟體,還有一個辦法戳破他們的謊言就是去Nvidia首頁上看看有多少種應用程式是在vSGA技術下得到認證的,我這裡有個圖可以分享一下:

3D虛拟化技術透析及競争分析

OK,真相大白,我們繼續。

2.6vGPU技術出場:将GPU卡資源切片分給Hypervisor之上運作的VM

概念不做解釋了,了解什麼是vCPU就知道什麼是vGPU。

正如第一節的名詞解釋所述,vGPU不是哪家公司的專有名字,而是業内通用術語。在去年NVIDIA公司宣布與Citrix公司合作後,最早現身的時間點是今年5月份在CitrixSynergy2013大會上,CitrixCEOMarkB.Templeton示範了NVIDIA的vGPU技術如何和CitrixXenDesktop産品結合,其流暢的渲染技術獲得了滿堂喝彩。此後NVIDIACEO黃仁勳也登台介紹了NVIDIA的GRID圖形虛拟化處理平台以及vGPU技術。

在這次會議上,雙方宣布思傑與NVIDIA将會在今年下半年推出業界首個為主機共享應用提供直接GPU共享的方案,并配合支援最新的OpenGL标準,此外還為開發提供遠端性能的新代碼。

有興趣的朋友可以看看下面幾個視訊:

http://v.youku.com/v_show/id_XNjEyMTA2OTUy.html

Citrix營銷副總裁-KrishnaSubramanian說明CitrixXenServer如何透過NVIDIAGRIDVGPU提供最棒的服務。

也可以從NVIDIA首頁上找到相關資訊:

http://www.nvidia.cn/object/xendesktop-vgpu-cn.html

回到正題,在本月1日,哈,也就是我們的國慶節,Citrix釋出了第一個技術預覽版的vGPU解決方案,也是目前全球第一個真正實作該技術的商業化産品。大家可以通路下面的網址擷取第一手的資訊:

CitrixVirtualGPUSolutionTechPreview

這次釋出的ReleaseNotes請參見下面的連結位址:

vGPUTechPreviewReleaseNotes

讓我們也來看看它的原理圖吧:

3D虛拟化技術透析及競争分析

看到了嗎?這才是真正的vGPU技術,虛拟機通過NVIDIADriver直接通路切片後的GPU資源,而不是像vSGA技術那樣,通過欺騙應用程式API的虛拟顯示卡驅動程式來調用GPU,後者白白消耗掉大量的計算能力。

從圖中我們可以看出,vGPU技術是需要Hypervisor層面支援的,目前就隻有XenServer支援。vSphere?好像還要等不少時間吧。

3競争分析

那到底我用那個技術好呢?VMware也說好,Citrix也說好?怎麼辦?

在2.4章節介紹CitrixGPU透傳技術和2.5章節介紹SharedGPU技術時我們都分别針對這兩項技術和VMware的對應方案作了onebyone的對比。有需要可以往上翻頁看看細則。現在我們來一個大餐,看一個放大的圖,把所有的技術中放在一起,看看各有什麼優缺點。

3D虛拟化技術透析及競争分析

你如果看不清楚,可以通路我的ShareFile雲盤空間直接下載下傳這個jpg檔案:

https://citrix.sharefile.com/d/s49dcfead9f74e168

從上面的具體分析可以看出以下幾點:

1.Citrix是真正的跨平台技術,無論是那種3D解決方案,不但支援自己的XenServer,也支援VMware的Hypervisor平台;

2.就目前的技術來看,即使沒有剛釋出的vGPU技術,Citrix在GPU共享領域的能力都要遠勝于VMware的技術;

3.Citrix的3D虛拟化技術無論是在作業系統支援層面還是顯存支援,又或者是在對渲染技術的支援版本上,要遠優于VMware的解決方案;

4.在實施能力上,Citrix的PVS技術能幫助使用者批量實施,而不用像VMware那樣隻有預覽技術而沒有實施能力;

5.現在有了真正的vGPU技術,将會給設計行業的客戶帶來更多更好的選擇!

本文出自 “Citrix的虛拟世界有你有我” 部落格,請務必保留此出處http://virtualworld.blog.51cto.com/1412963/1308627