何新彪
(銳捷網(wǎng)絡(luò)股份有限公司,福建福州 350002)
隨著云計算和虛擬化技術(shù)的發(fā)展,VDI 云桌面(Virtual Desktop Infrastructure 虛擬桌面基礎(chǔ)架構(gòu),以下簡稱云桌面)逐漸成為了計算機桌面的應(yīng)用選擇之一。云桌面也叫虛擬桌面、虛擬機,云桌面運行在云服務(wù)器上。云服務(wù)器一般為單臺或者多臺高性能計算機組成,并為用戶提供遠程的云桌面服務(wù)。
但隨著云桌面運行的業(yè)務(wù)越來越繁重,運行一些高負載的應(yīng)用如3D 動畫[1],圖形設(shè)計,編程軟件,語音視頻軟件等,或者多用戶并發(fā)地同時操作云桌面時,VDI 云桌面的卡頓、資源不足、性能不佳、體驗差等問題逐一暴露出來。這些問題由于云桌面是通過云服務(wù)器的虛擬化技術(shù)實現(xiàn)導(dǎo)致的,在該技術(shù)架構(gòu)下,相對于普通PC(個人計算機,PC,Personal Computer)的桌面使用體驗,VDI云桌面在性能上和普通PC 相比還是存在差距。
針對上述問題,特別需要一種新架構(gòu)來提升云桌面性能。
VDI 云桌面是指將一臺云服務(wù)器虛擬為多臺邏輯的計算機桌面,每個邏輯計算機桌面稱為VDI 云桌面。云桌面上可部署Windows、Linux 系統(tǒng)、及應(yīng)用軟件(以下簡稱軟件)等。用戶通過云終端計算機VDI 客戶端與云服務(wù)器通信。云服務(wù)器將VDI 云桌面通過交互協(xié)議呈現(xiàn)給云終端的用戶使用。
提升VDI 云桌面性能,最基本是擴容云服務(wù)器的硬件,例如單臺服務(wù)器增配CPU、內(nèi)存、硬盤、GPU 顯卡,或者多臺云服務(wù)器組合使用,但成本的增加導(dǎo)致競爭處于劣勢。因此轉(zhuǎn)向采用軟件方案來提升VDI 云桌面性能,主要有3 種方法:
重定向技術(shù)是指將云桌面的部分計算任務(wù)轉(zhuǎn)移到云終端上[2],例如播放視頻文件時,把音視頻流傳輸?shù)皆平K端上進行解碼、渲染,然后把聲音、畫面回傳到云桌面上播放,從而減輕云服務(wù)器計算壓力。該方案應(yīng)用范圍窄,僅限視頻播放類應(yīng)用,無法推廣。
該技術(shù)在云終端本地直接運行桌面系統(tǒng)[3]、或者其他架構(gòu)的桌面系統(tǒng),例如直接在云終端運行的Windows、Linux、Android 操作系統(tǒng)上,安裝一些軟件應(yīng)用,替代部分VDI 云桌面的應(yīng)用。同時云終端本地系統(tǒng)運行VDI 客戶端連接服務(wù)器的VDI 云桌面。云終端本地系統(tǒng)和VDI 云桌面,通過簡單浮動或者隱藏菜單進行相互切換使用。該方案需要來回切換兩套桌面,僅能在指定桌面完成對應(yīng)的應(yīng)用打開,使用混亂,操作體驗差。
該技術(shù)通過在云服務(wù)器中,根據(jù)用戶請求云桌面的資源消耗特點,對云桌面需要的資源進行動態(tài)分配,使得云桌面的資源需求與云服務(wù)器的能力達到匹配,最大化地提升了云桌面的運行效率[4]。該方案主要是針對云服務(wù)器的資源進行最大化的利用,未對整個云服務(wù)器,包括云終端的資源進行最大化利用[5]。
基于云終端算力提升VDI 云桌面性能的架構(gòu)(簡稱融合架構(gòu)),是一種基于x86 架構(gòu)的云終端來提升VDI 云桌面性能的架構(gòu),能夠?qū)崿F(xiàn)在VDI 云桌面內(nèi)流暢的運行高性能軟件,并保證用戶使用軟件的操作體驗如同在云桌面一樣。
融合架構(gòu)通過調(diào)度算法分析軟件的歷史性能數(shù)據(jù)、云服務(wù)器資源數(shù)據(jù)、云終端本地資源數(shù)據(jù),判斷用戶請求的軟件類型,自動調(diào)度軟件適合運行的最優(yōu)系統(tǒng),最大化的利用了云服務(wù)器和云終端的硬件資源,提升了軟件的運行效率,達到如同普通PC 運行軟件的效果。
融合架構(gòu)見圖1,包括:
圖1 架構(gòu)圖
云終端:為x86 架構(gòu)體系;安裝并運行Windows 系統(tǒng);用于運行軟件、客戶端。
客戶端:用于遠程連接云桌面;接收融合調(diào)度中心多種指令,例如打開或者關(guān)閉云終端軟件;監(jiān)控云終端軟件消耗資源數(shù)據(jù)。
云終端軟件:運行在云終端本地系統(tǒng)上。
云服務(wù)器:創(chuàng)建并運行云桌面。
云桌面:為Windows 系統(tǒng)桌面;提供給云桌面軟件運行桌面環(huán)境。
云桌面軟件:運行在云桌面Windows 系統(tǒng)上。
融合調(diào)度中心:融合調(diào)度中心運行在云桌面上。
融合調(diào)度中心實現(xiàn)軟件管理,包括:軟件類型、名稱、軟件所在路徑、需占用的CPU 資源、需占用的內(nèi)存資源、需占用的磁盤資源、需占用的網(wǎng)絡(luò)資源、軟件在云桌面的安裝路徑、軟件在云終端本地系統(tǒng)的安裝路徑。軟件分為兩類:A 類、B 類。
a.A 類軟件為云桌面和云終端本地系統(tǒng)都可以運行的軟件,且兩個系統(tǒng)都安裝就緒。b.B 類軟件是指僅能在云終端本地系統(tǒng)安裝和運行的軟件。
4.2.1 系統(tǒng)空閑資源的采集分析 系統(tǒng)空閑資源數(shù)據(jù)采集,包括實時獲取云服務(wù)器和云終端本地CPU 使用率、內(nèi)存使用率、磁盤讀寫使用率、網(wǎng)絡(luò)發(fā)送與接收帶寬使用率,從而計算得出各個資源空閑率。
a.云服務(wù)器資源信息,通過運行在云桌面的融合調(diào)度中心來采集。b.云終端本地資源信息,通過客戶端進行采集。
采集的資源是為了計算云服務(wù)器資源、云終端本地資源的剩余可利用資源還有多少,以便融合調(diào)度中心判斷A 類軟件在哪個系統(tǒng)桌面打開。
4.2.2 軟件占用系統(tǒng)資源的采集分析 軟件占用系統(tǒng)資源的采集分析,包括軟件使用云服務(wù)器資源、云終端系統(tǒng)資源數(shù)據(jù)采集。采集的資源是為了用于計算軟件歷史消耗系統(tǒng)資源的情況,以便分析軟件消耗資源的參數(shù)主要是CPU、內(nèi)存、磁盤,還是網(wǎng)絡(luò)帶寬,進一步判斷軟件在哪個系統(tǒng)的桌面運行更流暢。
a.采集的軟件參數(shù)包括:CPU 使用率、內(nèi)存使用率、磁盤讀取速度使用率、磁盤寫入速度使用率、網(wǎng)絡(luò)發(fā)送帶寬使用率、網(wǎng)絡(luò)接收帶寬使用率。b.采集方式為軟件運行時占用系統(tǒng)資源的所有歷史數(shù)據(jù),并且不斷地更新數(shù)據(jù)用于分析。c.A 類軟件既可運行在云服務(wù)器,也可運行在云終端本地系統(tǒng),需要采集在兩個系統(tǒng)的運行歷史數(shù)據(jù),以判斷其在哪個系統(tǒng)中運行的體驗最佳。d.B 類軟件僅能在云終端本地系統(tǒng)運行,不需要判斷其使用資源的情況,不涉及到調(diào)度問題。
4.3.1 A 類軟件啟動調(diào)度流程 a.如圖2 所示,在云桌面打開A 類軟件,融合調(diào)度中心判斷軟件類型是A 類軟件,且是第一次打開該軟件,由于還未有該軟件歷史數(shù)據(jù),直接打開該軟件。b.如果非第一次打開,則獲取軟件資源占用類型數(shù)據(jù),判斷其為何種資源占用類型的軟件。例如為內(nèi)存占用型軟件。c.融合調(diào)度中心實時獲取云服務(wù)器、云終端本地資源數(shù)據(jù),判斷哪個系統(tǒng)資源空閑更多。d.融合調(diào)度中心判斷該軟件是“何種參數(shù)占用型軟件”、“云終端本地系統(tǒng)、還是云桌面運行更優(yōu)”,并在更優(yōu)的系統(tǒng)打開。
圖2 A 類軟件啟動調(diào)度流程
4.3.2 B 類軟件啟動調(diào)度流程 在云桌面打開軟件,融合調(diào)度中心判斷是B 類軟件,通知客戶端在云終端本地系統(tǒng)打開軟件。
融合架構(gòu)還對這兩個桌面的操作體驗進行優(yōu)化。VDI 云桌面作為用戶操作的主界面,并在云終端屏幕上始終置頂,且為用戶操作始終可見的Windows 桌面。云終端本地系統(tǒng)的Windows 桌面為云終端本地系統(tǒng),對用戶不可見。
4.4.1 A 類軟件桌面融合 a.如圖3 所示,在云桌面打開A 類軟件,融合調(diào)度中心判斷是A 類軟件。b.如果是在云桌面運行的,操作體驗同Windows 桌面。c.如果軟件在被隱藏的云終端本地系統(tǒng)打開,需要通過客戶端將云終端本地的軟件界面、任務(wù)欄圖標(biāo)、通知區(qū)域圖標(biāo),映射到云桌面的操作界面上。
圖3 A 類軟件桌面融合流程圖
如圖4 所示,兩個桌面的融合元素包括:窗口融合、任務(wù)欄圖標(biāo)融合、通知區(qū)域圖標(biāo)融合等。
圖4 A 類軟件桌面融合示意圖
例如,在云終端本地系統(tǒng)打開的A 類軟件,會隨著軟件獲取到了鼠標(biāo)或者鍵盤的焦點后,優(yōu)先置頂顯示,讓用戶感知就是在云桌面里面運行。
例如,當(dāng)在云終端本地系統(tǒng)的A 類軟件被打開后,被用戶最小化,實際最小化到的是云終端本地系統(tǒng)桌面的任務(wù)欄上。但是云桌面針對該A 類軟件虛擬了一個云桌面上的任務(wù)欄圖標(biāo),用戶感知是被最小化到云桌面的任務(wù)欄上。
例如,當(dāng)軟件有通知消息時,可在云桌面右下方的通知區(qū)域看到軟件的通知消息。實施方案是通過融合調(diào)度中心通知云終端本地系統(tǒng)的客戶端實施監(jiān)控打開的軟件在右下方通知區(qū)域的消息情況;然后在云桌面的通知區(qū)域創(chuàng)建一個一樣的圖標(biāo),并顯示通知消息。
4.4.2 B 類軟件桌面融合 如圖5 所示,在云桌面打開B 類軟件,融合調(diào)度中心判斷是B 類軟件,則云終端本地系統(tǒng)打開該軟件,由于云終端本地系統(tǒng)是被隱藏的,因此也需要通過客戶端將軟件界面、任務(wù)欄圖標(biāo)、通知區(qū)域圖標(biāo),映射到云桌面操作界面。
圖5 B 類軟件桌面融合流程圖
B 類軟件在云桌面上的窗口融合、任務(wù)欄圖標(biāo)融合、通知區(qū)域圖標(biāo)融合等,同A 類軟件實施方案一致。
融合架構(gòu)方案通過對整個云桌面系統(tǒng)的各方面資源進行了最大化利用,一定程度上解決了VDI 云桌面運行卡頓問題,提升了云桌面軟件的運行效率,達到如同普通PC 運行軟件的性能效果以及操作體驗。
融合架構(gòu)方案還可以拓展到ARM 體系架構(gòu)安卓、Linux 系統(tǒng)云終端,同樣可以實現(xiàn)在其他體系架構(gòu)云終端的本地系統(tǒng)和云桌面系統(tǒng)之間,實現(xiàn)性能和操作體驗的無縫融合。