何新彪
(銳捷網絡股份有限公司,福建福州 350002)
隨著云計算和虛擬化技術的發展,VDI 云桌面(Virtual Desktop Infrastructure 虛擬桌面基礎架構,以下簡稱云桌面)逐漸成為了計算機桌面的應用選擇之一。云桌面也叫虛擬桌面、虛擬機,云桌面運行在云服務器上。云服務器一般為單臺或者多臺高性能計算機組成,并為用戶提供遠程的云桌面服務。
但隨著云桌面運行的業務越來越繁重,運行一些高負載的應用如3D 動畫[1],圖形設計,編程軟件,語音視頻軟件等,或者多用戶并發地同時操作云桌面時,VDI 云桌面的卡頓、資源不足、性能不佳、體驗差等問題逐一暴露出來。這些問題由于云桌面是通過云服務器的虛擬化技術實現導致的,在該技術架構下,相對于普通PC(個人計算機,PC,Personal Computer)的桌面使用體驗,VDI云桌面在性能上和普通PC 相比還是存在差距。
針對上述問題,特別需要一種新架構來提升云桌面性能。
VDI 云桌面是指將一臺云服務器虛擬為多臺邏輯的計算機桌面,每個邏輯計算機桌面稱為VDI 云桌面。云桌面上可部署Windows、Linux 系統、及應用軟件(以下簡稱軟件)等。用戶通過云終端計算機VDI 客戶端與云服務器通信。云服務器將VDI 云桌面通過交互協議呈現給云終端的用戶使用。
提升VDI 云桌面性能,最基本是擴容云服務器的硬件,例如單臺服務器增配CPU、內存、硬盤、GPU 顯卡,或者多臺云服務器組合使用,但成本的增加導致競爭處于劣勢。因此轉向采用軟件方案來提升VDI 云桌面性能,主要有3 種方法:
重定向技術是指將云桌面的部分計算任務轉移到云終端上[2],例如播放視頻文件時,把音視頻流傳輸到云終端上進行解碼、渲染,然后把聲音、畫面回傳到云桌面上播放,從而減輕云服務器計算壓力。該方案應用范圍窄,僅限視頻播放類應用,無法推廣。
該技術在云終端本地直接運行桌面系統[3]、或者其他架構的桌面系統,例如直接在云終端運行的Windows、Linux、Android 操作系統上,安裝一些軟件應用,替代部分VDI 云桌面的應用。同時云終端本地系統運行VDI 客戶端連接服務器的VDI 云桌面。云終端本地系統和VDI 云桌面,通過簡單浮動或者隱藏菜單進行相互切換使用。該方案需要來回切換兩套桌面,僅能在指定桌面完成對應的應用打開,使用混亂,操作體驗差。
該技術通過在云服務器中,根據用戶請求云桌面的資源消耗特點,對云桌面需要的資源進行動態分配,使得云桌面的資源需求與云服務器的能力達到匹配,最大化地提升了云桌面的運行效率[4]。該方案主要是針對云服務器的資源進行最大化的利用,未對整個云服務器,包括云終端的資源進行最大化利用[5]。
基于云終端算力提升VDI 云桌面性能的架構(簡稱融合架構),是一種基于x86 架構的云終端來提升VDI 云桌面性能的架構,能夠實現在VDI 云桌面內流暢的運行高性能軟件,并保證用戶使用軟件的操作體驗如同在云桌面一樣。
融合架構通過調度算法分析軟件的歷史性能數據、云服務器資源數據、云終端本地資源數據,判斷用戶請求的軟件類型,自動調度軟件適合運行的最優系統,最大化的利用了云服務器和云終端的硬件資源,提升了軟件的運行效率,達到如同普通PC 運行軟件的效果。
融合架構見圖1,包括:

圖1 架構圖
云終端:為x86 架構體系;安裝并運行Windows 系統;用于運行軟件、客戶端。
客戶端:用于遠程連接云桌面;接收融合調度中心多種指令,例如打開或者關閉云終端軟件;監控云終端軟件消耗資源數據。
云終端軟件:運行在云終端本地系統上。
云服務器:創建并運行云桌面。
云桌面:為Windows 系統桌面;提供給云桌面軟件運行桌面環境。
云桌面軟件:運行在云桌面Windows 系統上。
融合調度中心:融合調度中心運行在云桌面上。
融合調度中心實現軟件管理,包括:軟件類型、名稱、軟件所在路徑、需占用的CPU 資源、需占用的內存資源、需占用的磁盤資源、需占用的網絡資源、軟件在云桌面的安裝路徑、軟件在云終端本地系統的安裝路徑。軟件分為兩類:A 類、B 類。
a.A 類軟件為云桌面和云終端本地系統都可以運行的軟件,且兩個系統都安裝就緒。b.B 類軟件是指僅能在云終端本地系統安裝和運行的軟件。
4.2.1 系統空閑資源的采集分析 系統空閑資源數據采集,包括實時獲取云服務器和云終端本地CPU 使用率、內存使用率、磁盤讀寫使用率、網絡發送與接收帶寬使用率,從而計算得出各個資源空閑率。
a.云服務器資源信息,通過運行在云桌面的融合調度中心來采集。b.云終端本地資源信息,通過客戶端進行采集。
采集的資源是為了計算云服務器資源、云終端本地資源的剩余可利用資源還有多少,以便融合調度中心判斷A 類軟件在哪個系統桌面打開。
4.2.2 軟件占用系統資源的采集分析 軟件占用系統資源的采集分析,包括軟件使用云服務器資源、云終端系統資源數據采集。采集的資源是為了用于計算軟件歷史消耗系統資源的情況,以便分析軟件消耗資源的參數主要是CPU、內存、磁盤,還是網絡帶寬,進一步判斷軟件在哪個系統的桌面運行更流暢。
a.采集的軟件參數包括:CPU 使用率、內存使用率、磁盤讀取速度使用率、磁盤寫入速度使用率、網絡發送帶寬使用率、網絡接收帶寬使用率。b.采集方式為軟件運行時占用系統資源的所有歷史數據,并且不斷地更新數據用于分析。c.A 類軟件既可運行在云服務器,也可運行在云終端本地系統,需要采集在兩個系統的運行歷史數據,以判斷其在哪個系統中運行的體驗最佳。d.B 類軟件僅能在云終端本地系統運行,不需要判斷其使用資源的情況,不涉及到調度問題。
4.3.1 A 類軟件啟動調度流程 a.如圖2 所示,在云桌面打開A 類軟件,融合調度中心判斷軟件類型是A 類軟件,且是第一次打開該軟件,由于還未有該軟件歷史數據,直接打開該軟件。b.如果非第一次打開,則獲取軟件資源占用類型數據,判斷其為何種資源占用類型的軟件。例如為內存占用型軟件。c.融合調度中心實時獲取云服務器、云終端本地資源數據,判斷哪個系統資源空閑更多。d.融合調度中心判斷該軟件是“何種參數占用型軟件”、“云終端本地系統、還是云桌面運行更優”,并在更優的系統打開。

圖2 A 類軟件啟動調度流程
4.3.2 B 類軟件啟動調度流程 在云桌面打開軟件,融合調度中心判斷是B 類軟件,通知客戶端在云終端本地系統打開軟件。
融合架構還對這兩個桌面的操作體驗進行優化。VDI 云桌面作為用戶操作的主界面,并在云終端屏幕上始終置頂,且為用戶操作始終可見的Windows 桌面。云終端本地系統的Windows 桌面為云終端本地系統,對用戶不可見。
4.4.1 A 類軟件桌面融合 a.如圖3 所示,在云桌面打開A 類軟件,融合調度中心判斷是A 類軟件。b.如果是在云桌面運行的,操作體驗同Windows 桌面。c.如果軟件在被隱藏的云終端本地系統打開,需要通過客戶端將云終端本地的軟件界面、任務欄圖標、通知區域圖標,映射到云桌面的操作界面上。

圖3 A 類軟件桌面融合流程圖
如圖4 所示,兩個桌面的融合元素包括:窗口融合、任務欄圖標融合、通知區域圖標融合等。

圖4 A 類軟件桌面融合示意圖
例如,在云終端本地系統打開的A 類軟件,會隨著軟件獲取到了鼠標或者鍵盤的焦點后,優先置頂顯示,讓用戶感知就是在云桌面里面運行。
例如,當在云終端本地系統的A 類軟件被打開后,被用戶最小化,實際最小化到的是云終端本地系統桌面的任務欄上。但是云桌面針對該A 類軟件虛擬了一個云桌面上的任務欄圖標,用戶感知是被最小化到云桌面的任務欄上。
例如,當軟件有通知消息時,可在云桌面右下方的通知區域看到軟件的通知消息。實施方案是通過融合調度中心通知云終端本地系統的客戶端實施監控打開的軟件在右下方通知區域的消息情況;然后在云桌面的通知區域創建一個一樣的圖標,并顯示通知消息。
4.4.2 B 類軟件桌面融合 如圖5 所示,在云桌面打開B 類軟件,融合調度中心判斷是B 類軟件,則云終端本地系統打開該軟件,由于云終端本地系統是被隱藏的,因此也需要通過客戶端將軟件界面、任務欄圖標、通知區域圖標,映射到云桌面操作界面。

圖5 B 類軟件桌面融合流程圖
B 類軟件在云桌面上的窗口融合、任務欄圖標融合、通知區域圖標融合等,同A 類軟件實施方案一致。
融合架構方案通過對整個云桌面系統的各方面資源進行了最大化利用,一定程度上解決了VDI 云桌面運行卡頓問題,提升了云桌面軟件的運行效率,達到如同普通PC 運行軟件的性能效果以及操作體驗。
融合架構方案還可以拓展到ARM 體系架構安卓、Linux 系統云終端,同樣可以實現在其他體系架構云終端的本地系統和云桌面系統之間,實現性能和操作體驗的無縫融合。