淺談GPU虛擬化技術:GPU圖形渲染虛擬化
此節為第三章上節GPU SRIOV及VDI的一個補充,簡短介紹一下。
新增上一節地址:http://cloud.it168.com/a2018/0520/3204/000003204070.shtml
VDI的使用者體驗問題
無論是AMD的GPU SRIOV還是Nvidia的M60等直通裝置虛擬化,亦或者是GVT-g這樣的分片虛擬化,在處理圖形渲染為主的虛擬化方案都會定位於VDI客戶。但都會面臨一個問題:圖形渲染的遠端顯示。而這些虛擬機器以windows guest為主。如何解決遠端顯示的問題(既以前提到的remote display的問題),在很大程度上決定著使用者體驗和使用者粘性。
然而即便是現在雲端計算服務非常成熟的情況下,依然沒有一款通用的,適合大多數場景的解決方案。
那麼VDI使用者體驗的問題主要體現在哪裡呢?
支援GPU圖形渲染的虛擬機器,通過KVM SPICE 你很有可能看到的是黑屏。
要發揮圖形渲染的能力,你將要在虛擬機器內部安裝額外的軟體來支援遠端顯示的問題
在絕大多數傳統客戶都已經非常熟悉KVM SPICE VNC這個方式遠端連線客戶機的情況下,在支援圖形渲染的虛擬機器,竟然無一例外的提供一個黑屏給客戶。這使得客戶在虛擬機器啟動過程中一旦載入SeaBIOS結束後,將無法操作客戶機,因為你看不到螢幕顯示。
更讓人無語的是問題2的解決,你需要在客戶機內部安裝一些支援遠端連線的協議。由於問題1的存在,你將看不到螢幕。你沒辦法安裝軟體!!!是不是開始覺得頭疼了?
所以很多時候使用者(公用雲服務廠商都會有解決方法去避免這種情況的發生),在自己搭建VDI環境的時候,是先把GPU虛擬化功能禁止。然後在虛擬機器內部安裝自己想要的遠端連線工具,並配置成自啟動方式。然後才能開啟GPU虛擬化功能。
如此使用者體驗已經被詬病多年,而各方貌似也沒有要去解決它的意願。所以只能使用第三方遠端顯示協議來彌補了。為什麼沒有人去解決?因為就算解決了你也未必會為此付費。
選幾個用的比較多的方法和Display Remote Protocol遠端顯示的效果。
遠端桌面連線(RDP)
在不帶vGPU的虛擬機器上,QEMU會自帶一個全模擬的VGA裝置(cirrus or qxl),這些裝置與KVM的SPICE配合默契,可以通過VNC檢視虛擬機器桌面。但是一旦安裝了vGPU的驅動,由於顯示被vGPU驅動接管,那麼使用者往往在這個VNC看到的是黑屏。使用者體驗相當差。
這個時候使用者需要通過windows自帶的遠端桌面連線(RDP)來連線虛擬機器。這在一定程度上解決了客戶需求。然而RDP並不能解決所有問題。RDP在對2D的支援上不錯,但在需要用到overlay的情況下windows RDP就沒有辦法顯示。另外在全屏模式下的3D顯示有會有問題。
當然優點是windows guest自帶。但你至少需要登陸一次虛擬機器並開啟遠端協助共享功能。
Tightvnc
為數不多的開源vnc軟體,可以遠端顯示2D,3D渲染結果,體驗也不錯。但是需要客戶在Window guest內部安裝一個tightvnc server。不能像RDP一樣原生支援。
X11vnc:
X11vnc是用於Linux客戶端的一個遠端桌面協議。支援3D,2D。目前為止是用於Linux唯一一個還不錯的開源免費軟體。
更多的遠端桌面協議可以參考:https://en.wikipedia.org/wiki/Comparison_of_remote_desktop_software
使用者痛點的解決:圖形工作站:
阿里雲圖形工作站
由於上述問題的存在,很多虛擬化大廠都開始研發遠端連線協議。商用協議比如Citrix的HDX,HP的RGS等等。這些協議被公有云產品包裝起來提供VDI完整顯示支援而不需要讓客戶去考慮如何遠端顯示的問題,提升了使用者體驗。
比如最近阿里雲提供的雲圖站的功能就是一個很好的例子。做了使用者所有不願意接觸的技術細節,只提供使用者最關心的業務。請檢視阿里雲圖形工作站介紹。
阿里雲圖形工作站採用的是Citrix HDX協議。通過CitrixReceiver遠端顯示,效果如下:
XenApp and XenDesktop
在傳統VDI的基礎上,Citrix很早就開始了遠端協助的另類服務:XenApp與XenDesktop。XenApp/XenDesktop不再以虛擬機器為服務物件,而是把遠端執行連結APP或者Desktop作為服務物件。並把遠端APP在Citrix HDX協議的基礎上派發給客戶端。使用者按需使用XenAPP上面部署的App而無須關注背後的虛擬機器及其伺服器。XenApp等服務在混合雲及私有云範圍內應用廣泛。IT服務部門在對大規模應用程式作集中部署和應用更新。交付的時候只需要在XenAPP伺服器端註冊新增服務就可以。而同一個公司的成千上萬的客戶通過瘦客戶機或者web頁面來訪問該更新應用。並且收費模式也以按需收費為主。
XenApp的App部署和交付並非簡單的VDI重定向,而是在系統層面做了極大的應用優化:比如memory,CPU,GPU渲染等等。作為一個商用產品Citrix各方面的宣傳中對技術細節語焉不詳。我們也無從得知更多的資訊。
看一個例子:
AWS AppStream
AppStream是與XenApp/XenDesktop同型別的應用。如果XenApp是在私有云上面應用廣泛的化,那麼AppStream其在AWS上面部署,提供的是公用雲上的服務。
AppStream採用了AWS自己開發的STX協議,STX協議以低延時高壓縮比的H264作為基礎。其協議針對公用雲網路環境,在720p的顯示解析度的情況下頻寬可以縮小到500kbps以下。
容器化的GPU圖形渲染
不好意思,目前沒有看到這樣的產品與技術。只有NGC這樣的GPU容器化的計算服務。
本文作者:鄭曉
原文連結:https://yq.aliyun.com/articles/591405?spm=a2c4e.11155435.0.0.5ec936e6m3eGb5
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31473948/viewspace-2155961/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 淺談GPU虛擬化技術(四)- GPU分片虛擬化GPU
- 淺談GPU虛擬化技術(四)-GPU分片虛擬化GPU
- 虛擬化四、KVM虛擬化技術
- GPU虛擬機器建立時間深度優化GPU虛擬機優化
- GPU虛擬機器建立時間深度最佳化GPU虛擬機
- 虛擬化技術概述(一)
- Docker技術( 容器虛擬化技術 )Docker
- 後端技術雜談6:白話虛擬化技術後端
- 網路虛擬化技術棧
- 虛擬化技術淺析第二彈之初識Kubernetes
- 虛擬化技術之kvm基礎
- 虛擬化技術之kvm虛擬機器建立工具virt-install虛擬機
- 虛擬化技術之kvm虛擬機器建立工具qemu-kvm虛擬機
- 在Linux中,什麼是虛擬化?並且列出常見的虛擬化技術。Linux
- 淺談GPU 及 “App渲染流程”GPUAPP
- 伺服器虛擬化技術深度科普伺服器
- win10虛擬化技術怎麼開啟_win10系統cpu虛擬化技術如何開啟Win10
- iOS 淺談GPU及“App渲染流程”iOSGPUAPP
- NFV關鍵技術:儲存虛擬化概述
- 伺服器虛擬化技術的優點伺服器
- Docker與虛擬化技術淺析第一彈之docker與KubernetesDocker
- 伺服器虛擬化基礎知識:如何虛擬化?伺服器
- 啥是伺服器虛擬化,虛擬化的優勢伺服器
- 在Centos6.5上部署kvm虛擬化技術CentOS
- 恆訊科技分析伺服器虛擬化技術是啥?常見虛擬化架構有幾個?伺服器架構
- 虛擬化-總覽
- 玩玩虛擬化-KVM
- 虛擬現實技術
- 什麼是伺服器虛擬化,虛擬化的優勢!伺服器
- 網路虛擬化之linux虛擬網路基礎Linux
- 虛擬蜜罐:從資訊模擬到實現虛擬蜜罐技術
- 2023 SDC 議題預告 | 虛虛實實——深入研究汽車虛擬化技術
- 【原創】Linux虛擬化KVM-Qemu分析(六)之中斷虛擬化Linux
- 【原創】Linux虛擬化KVM-Qemu分析(七)之timer虛擬化Linux
- 硬核虛擬化技術 SR-IOV的原理及探索
- 虛擬化技術之kvm WEB管理工具kimchiWeb
- KVM虛擬化新型漏洞CVE-2015-6815技術分析
- 虛擬機器去虛擬化過魯大師教程虛擬機