桌面虛擬化中的3D虛擬化解決方案經驗總結
相較于普通的桌面虛擬化,3D桌面虛擬化是一個普通桌面虛擬化中研發桌面的衍生場景。過去多年,3D用戶的桌面虛擬化需求一直都存在,但受限于技術很難完成交付。3D用戶主要分布在包括工程制造、能源、科研、醫療等幾個行業及相關的研究機構,在國外還有金融、政府這些行業。而在國內,近兩年受到制造2025的大環境的影響,特別是在工程制造行業及對口的研究機構,3D桌面虛擬化需求呈現一種井噴式的發展趨勢。

但3D虛擬化技術發展并不是一蹴而就的。整個技術發展都是有一個漫長的過程,當然還會不斷發展下去。大約在10年之前,當時的飛機制造巨頭波音公司找到做遠程交付最厲害的Citrix和做顯卡最牛NVIDIA,希望雙方能做做一個解決方案,使得其設計的圖紙都保存在其數據中心,但是其分布在全球的生產、制造工廠都能讀取到這些圖紙。但以當時的技術來說,無論這些很難做到,但為后來的合作埋下了伏筆。
大約在2007年的時候,Citrix通過無盤工作站的方式,即通過一臺服務器推送操作系統到遠端的工作站上運行,達到所謂的虛擬化以及遠程接入物理工作站的方式來解決這個問題,這也無奈之舉。
到了2008年左右,Citrix開始將物理工作站通過Citrix的HDX協議進行遠程交付,這個就和HP RGS非常類似的一種方式。但他開啟了Citrix HDX 3D PRO的先河,為后續Citrix在3D虛擬化的領域的領導者地位打下了堅實的基礎。
到了2009年,Citrix第一次實現了在服務器上安裝一塊Quadro 專業顯卡,安裝在虛擬化服務器XenServer上,然后將這塊顯卡透傳給其中一臺虛擬機,使得這臺虛擬機獲得了相應的GPU性能。這在業界是第一次真正實現了虛擬化與GPU物理顯卡技術的結合。
到了2012年,Citrix將GPU虛擬化技術應用到了其當家應用虛擬化XenApp上,使得3D 應用可以直接進行交付,而跳出了桌面這個框架。
時間來到了2013年,跨時代的vGPU解決方案在孕育了幾乎10年以后,時任Citrix CEO Mark Templeton和NVIDIA CEOJensen Huang攜手發布了全球首個GPU虛擬化解決方案。
2016年Citix又完成了Linux 的3D交付,應該說發展步伐還是非常清楚的。
那么說了這么多Citrix在3D虛擬化發展史上的里程碑,回到客戶的實際場景中,看看最終到底是否需要一個什么樣的方案。
回到3D項目本身(不一定是虛擬化場景),其實需要解決用戶的3個問題,
1. 如何保證3D使用的體驗
2. 如何合理使用包括GPU在內的所有資源
3. 如何合理控制成本
其實Citrix做桌面虛擬化,首先會做的是分析用戶的場景及用戶類型。其實這個也是為了在項目中、后期合理的規劃來應對前面3個問題。所以一般3D項目中,我們會把用戶分成大概4個類別:
1. 重度3D用戶
2. 中度3D用戶
3. 輕度3D用戶
4. 2D用戶

對其最終的不同的類型的定義,就成為了后續我們在資源投入的依據。
既然有了用戶的分類,其實在資源投入上就不可能是完全一致的,這個肯定是不合理。即使非專業人士相信也能理解,不同的需求配置不同的技術手段。
從目前的GPU虛擬化來說,一共有4種基本形態:
1. 軟件虛擬GPU
2. GPU穿透
3. GPU-APP共享
4. vGPU,GPU虛擬

這四種形態很好理解:
1. 軟件虛擬GPU:就是由虛擬機自帶的虛擬顯卡來提供顯示性能
2. GPU穿透:將一塊顯卡透傳給一個虛擬機
3. GPU-APP共享:將一塊顯卡透傳給一臺基于Windows Server的XenApp虛擬機,交付一個個帶有GPU效能的應用
4. vGPU,GPU虛擬化:利用NVidia K1/K2,M60為代表的GPU完全虛擬化
其實這4種形態,很多時候也就正好對應前面用戶的4種類型
而在這些模式中,目前最受用戶關注的就是vGPU這種,的確他在很多地方有其獨到的優勢。目前在Citrix 3D解決方案中,他也是最重要解決方案組成之一。用戶喜歡他,在我看來有幾個原因:
1. 性能值得期待。K1/K2,M60本身性能都不俗,即使切割之后仍然有很強的GPU性能,能夠滿足絕大部分的用戶需求。
2. 由于顯卡是切分的,在一定程度上可以給用戶調整GPU規格的可能。這比給每個用戶買工作站,硬件配置固化來的更為靈活。至少不用等3年甚至5年才能調整這些參數。
3. 雖然現在vGPU還不能實現VM的在線熱遷移,但是多用戶使用的模式、數據中心統一標準機架或者刀片服務器,還是比較受到IT管理人員的喜歡,畢竟不用維護那么多工作站,那是超級占用機房空間的。
目前市面上最主流的vGPU顯卡型號為K1/K2,NVIDIA正在逐漸推廣其新一代產品M6/M60。以K1/K2為例他們的性能羅列如下:

NVidia也有官方的對應表,非常容易讓我們選擇合適的配置。

那么有了一塊K1/K2顯卡就能解決3D用戶的問題了嗎?
答案是否定的。
原因很簡單,任何系統都不是靠一個組件來實現的。3D虛擬化也不僅僅只靠GPU就能完成所有的工作來支撐用戶訪問。
既然是Windows+虛擬化+3D,我們就需要從這三個層面去看待這個問題。
1. 為了實現3D虛擬化,GPU是一定需要。這個是肯定的,而且根據重、中、輕度用戶,我們需要分配合適的GPU、vGPU,否則效果肯定不好。
2. 除了GPU,最容易在項目用戶忽視的重要資源是CPU,特別是CPU主頻。由于虛擬化經驗的慣性思維,很多技術人員在配置CPU的時候總是更關注CPU核數。覺得CPU性能不夠,分幾個vCPU就好了。但事實上,在3D或者一些高應用負載場景中,CPU主頻直接決定使用的效果。由于3D場景一般VM密度都不高,這個時候物理CPU核數關注度相對的低。
3. 再接下來比較容易出問題的就是存儲。主要原因在于圖紙方面,由于虛擬桌面場景中一般會用NAS,Windows Server做用戶數據盤。而用戶的圖紙一般都比較大,少者幾十MB,大的幾個GB的也并不稀奇。這個時候由于CIFS協議的影響,很多用戶會覺得這圖紙讀取、編譯效率不如原來PC上,如果再遇到領配件數多的情況,反饋的結果可能就是操作非常卡頓。這個時候合理的規劃用戶圖紙訪問模式就變得特別重要。我曾經有客戶直接使用VM+HBA卡透傳直連企業圖庫存儲的方式來解決這個問題。當然這種方式比較極端,但在實際場景中還是要與用戶溝通選擇合適的存儲方案進行支撐。
4. 網絡在3D項目中也是一個要考慮的重點。相比普通桌面,3D虛擬化桌面、應用對于網絡帶寬壓力要大的多。如果是局域網內要保證最優的質量,優質的100M網到終端,匯聚1000M起始必須保證的。如果網絡帶寬能整體提升一個檔次當然就更好。如果是互聯網場景,網絡時延、丟包以及合理帶寬動態調整就非常重要。Citrix通過新的Framehawk協議+策略,來幫助用戶得到很好的體驗。
5. 操作系統、應用程序優化。這點在很多時候是很容易被忽略的,其實現有的所有操作系統、3D類應用程序都并不是原生為虛擬化而設計,那么操作系統不做優化,本身就會導致在虛擬化環境中效能不高。而應用程序特定的優化則有可能提升明顯的使用體驗。例如,Catia V5軟件,如果你不增加一個特定的系統參數,再好的配置都會跑著很卡。
6. 外設,在很多時候僅僅交付桌面、應用可能還是不夠的,因為和普通虛擬桌面場景一樣,3D虛擬化場景中,也是一樣,只是外設類型可能有所不同。比如:3D鼠標,繪圖板這些高精度的設備,以及雙屏、四屏的多顯示器需求,則是用戶需要的。而Citrix HDX協議對于這些功能的都有很好的支持,保證在用戶最終使用時盡可能的保持與本地工作站的使用一致性。
7. 合理的終端選型。一般來說,如果用戶使用PC/MAC類的設備作為終端,效果都會理想,很多時候MAC設備由于其架構特殊性,效果會極為驚艷。但是不是每個用戶都能接受使用MAC設備來作為終端,而很多時候會使用瘦客戶機。
過去很長一段時間都有個經驗是,即使老舊的PC也會比大部分的瘦客戶機的顯示效果好。所以在選擇瘦客戶機的時候,一要注意CPU主頻,二要確保自帶GPU解碼芯片。因為隨著Citrix Receiver支持終端GPU解碼,這樣會對顯示的效果帶來不小的提升。

那么使用vGPU就一定是使用vGPU+Win7這種模式嗎?
答案當然也是否定的。
其實Citrix這么多年來,在虛擬化場景一直有一個宗旨就是:應用為王。很多時候用戶其實只是希望使用一個個的設計應用,在這個過程中,是否要先獲取一個桌面則不一定。所以在很多場景中,我們會通過vGPU+GPU-App(XenApp)共享的方式來交付各種應用。這種方式有幾種好處:
1. 按需交付應用。不再需要把所有應用都整理到一個模板或者按部門整理幾個應用為一個模板,完全按照需要需求申請應用。
2. 很多時候,一上來就將用戶的PC替換為虛擬桌面,極大的改變了用戶使用習慣,導致最終用戶抵觸,反而難以讓項目推進。而虛擬應用只是把需要的3D應用上收,并直接將快捷方式投遞到其任何可以訪問的終端上,最大程度降低用戶使用習慣的改變。
3. 更高的資源利用率。雖然vGPU能分攤一塊GPU,但由于這種整體成本的高企,很多用戶還是會打退堂鼓。所以合理的引導用戶使用就變得很重要。
4. 相比Win7完整的操作系統,App共享的方式則對于各種資源需求要少的多。對于最終用戶來說,網絡需求能夠節約30%以上,而對于后臺管理員,則存儲、服務器、顯卡的需求在會降低不少。

其實這樣做也是為了回答用戶最容易關心的幾個問題。
1. 如何保證3D使用的體驗
2. 如何合理使用包括GPU在內的所有資源
3. 如何合理控制成本
從3D虛擬化未來發展來說,個人感覺將會在不久的將來解決如下幾個問題:
1. GPU資源化。GPU將會和CPU/RAM一樣完全資源化,這樣也就可以實現VM的在線熱遷移。
2. 更多的GPU類型選擇,目前AMD/Intel都在發展各自的GPU虛擬化技術,與NVIDIA一起完善整個產業鏈。
3. 對于終端的弱化。未來不僅僅是瘦客戶機,類似于Android棒,樹莓派等都可以來作為終端使用,極大的拓展其使用面和降低接入成本。